#include<cstring>#include<iostream>#include<algorithm>#include<unordered_map>#include<queue>usingnamespace std;constint N =6;int n;
string a[N], b[N];intextend(queue<string>& q, unordered_map<string,int>& da, unordered_map<string,int>& db, string a[], string b[]){
for(int k =0, sk = q.size(); k < sk; k ++){
string t = q.front();
q.pop();for(int i =0; i < t.size(); i ++)for(int j =0; j < n; j ++)if(t.substr(i, a[j].size())== a[j]){
string state = t.substr(0, i)+ b[j]+ t.substr(i + a[j].size());if