题目:给你一些单词组成一个字典,然后再给你一个由字母组成的矩阵,连接横、竖和斜线可以组成单词。
统计字典中,每个单词出现的次数。
分析:字符串、字典树(Trie)、AC自动机。单词统计问题,一定想到字典树和AC自动机。
首先,将字典存入字典树(可以在字典树上构造AC自动机,加快查询)
然后,枚举每条直线上的单词查询计数(AC自动机,只要输入最长串即可)
最后,遍历字典树(或AC自动机)输出统计结果。
注意:单词是单个字母时,要统计8次。
代码,字典树(Trie)版:
#include <algorithm> #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> using namespace std; char word[15005][1005]; int C[15005]; /* Trie define */ #define nodesize 400004 //节点个数 #define dictsize 26 //字符集大小 typedef struct node1 { int flag; //值域 node1* next[dictsize]; }tnode; tnode dict[nodesize]; int ID[256]; class Trie { private: int size; tnode* root; char cput[105]; public: Trie() {makeID(); initial();} void makeID() { for ( int i = 0 ; i < 26 ; ++ i ) ID['a'+i] = i; } void initial() { memset( dict, 0, sizeof( dict ) ); root=NULL; size=0; root=newnode(); } tnode* newnode() {return &dict[size ++];} void insert( char* word, int l, int id ) { tnode* now = root; for ( int i = 0 ; i < l ; ++ i ) { if ( !now->next[ID[word[i]]] ) now->next[ID[word[i]]] = newnode(); now = now->next[ID[word[i]]]; }now->flag = id; } void query( char* word, int L ) {//统计字串出现个数0 tnode* now = root; for ( int i = 0 ; i < L ; ++ i ) { if ( !now->next[ID[word[i]]] ) return; now = now->next[ID[word[i]]]; }if ( now->flag ) C[now->flag] ++; } void output(){output( root, 0 );} void output( tnode* now, int d ) { if ( C[now->flag] ) { for ( int i = 0 ; i < d ; ++ i ) printf("%c",cput[i]); printf(" %d\n",C[now->flag]); } for ( int i = 0 ; i < 26 ; ++ i ) if ( now->next[i] ) { cput[d] = 'a'+i; output( now->next[i], d+1 ); } } }trie; /* Trie end */ char maps[105][105]; char save[105]; int d[8][2] = {{0,1},{1,0},{-1,0},{0,-1},{1,1},{-1,1},{1,-1},{-1,-1}}; int main() { int T,n,m,r,c,x,y,count,L,t,i,j,k,a; while ( ~scanf("%d",&T) ) for ( t = 1 ; t <= T ; ++ t ) { scanf("%d",&n); for ( i = 1 ; i <= n ; ++ i ) scanf("%s",word[i]); trie.initial(); for ( i = 1 ; i <= n ; ++ i ) { L = strlen(word[i]); if ( L < 101 ) trie.insert( word[i], L, i ); } printf("Test Case #%d\n",t); scanf("%d",&m); for ( k = 1 ; k <= m ; ++ k ) { printf("Query #%d\n",k); scanf("%d%d",&r,&c); for ( i = 0 ; i < r ; ++ i ) scanf("%s",maps[i]); memset( C, 0, sizeof(C) ); for ( i = 0 ; i < r ; ++ i ) for ( j = 0 ; j < c ; ++ j ) for ( a = 0 ; a < 8 ; ++ a ) { int count = 0,X = i,Y = j; while ( 1 ) { if ( X < 0 || X >= r || Y < 0 || Y >= c ) break; save[count ++] = maps[X][Y]; trie.query( save, count ); X = X + d[a][0]; Y = Y + d[a][1]; } }trie.output(); }printf("\n"); } return 0; }测试数据:
4 4 hello bye one two 2 3 3 bye okk res 3 3 one wzq too 4 hello madam hello madam 1 6 6 helloh oezxec lnllbv lmllas eogfod hmadam 6 x xx xxx xxxxxxxxx xxxxxxxxxx xxxxxxxxxxx 15 1 1 x 1 2 xx 1 3 xxx 2 1 x x 2 2 xx xx 2 3 xxx xxx 3 1 x x x 3 2 xx xx xx 3 3 xxx xxx xxx 4 4 xxxx xxxx xxxx xxxx 5 5 xxxxx xxxxx xxxxx xxxxx xxxxx 10 1 x x x x x x x x x x 1 10 xxxxxxxxxx 10 10 xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx 100 100 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 120 a b c aa ab ac ba bb bc ca cb cc aaa aab aac aba abb abc aca acb acc baa bab bac bba bbb bbc bca bcb bcc caa cab cac cba cbb cbc cca ccb ccc aaaa aaab aaac aaba aabb aabc aaca aacb aacc abaa abab abac abba abbb abbc abca abcb abcc acaa acab acac acba acbb acbc acca accb accc baaa baab baac baba babb babc baca bacb bacc bbaa bbab bbac bbba bbbb bbbc bbca bbcb bbcc bcaa bcab bcac bcba bcbb bcbc bcca bccb bccc caaa caab caac caba cabb cabc caca cacb cacc cbaa cbab cbac cbba cbbb cbbc cbca cbcb cbcc ccaa ccab ccac ccba ccbb ccbc ccca cccb cccc 3 100 100 bbaabaaaaabbbbbbbababaabaabaabbabababbbabbabbabbbabaabbbbbbaabaaaaaaaaababaaabbabbaaaaaabaababbaaabb bbbaaabababbaaabbbbaaababbbabaaabaaabbbbbbbbbbbabaaaaabaabababababbbaabaaaababaababbaaaabbababbbabba babbabbaabaaabbabbbbbbabaaaaaaabbabbaaaaabababbaabaaabaaaabbbaaabaabbbbaabbaaabbbabbbbababaabbaababb abaabbabbabaabbbbabbbbabbbbaabaabaabababbbbbaaabbabaaabaaabbbabaababbaaabbabaaaabbababbaaaaaabbabbab babaabaabbabbbbababbbabbbbaaaaaababaaabbbaabbaaababbaaaabaabbaaabaabaaabababbaabaabbbabbbabaaababbbb aaaaaabbbbbaaaababababaabbbaabbabababbbaaababababaaabbaaababbbbbaabababbbbbbbaabbaaaaabbabbbbbbababa abbbbbbaaabbaabbbabaababaababbbbaabbaaabababbaaabaabbbaababbabbabaaabbababbbbaabbabbbbbababbbbbaabab aababaaabbabbbababbaaabbbaaaabbbbaabaababbbaaababbbababaaabbaaababbbbbabbbabbabbbbbbaaaabaaaaabbaaab abbababbaabbbaabaabbbbbaabaabbaaaaaabbabaabbbaabaaaaaaabbbabbbbaaaaabbaaaabababaaabbbaaaaaabbababbab baabaaabbbababbbbbaabbabaababaabbbbbbbaababbbbabaaaabaaaabbbbbaababaabbababbaaaabbabbbbbababaabbaaab bababbaaaaabbaaabababbababbabbaaaabbbaaaabaaabaaabaabababaaababbabaabaaaabaaaabbbaabaaaaabaaaabbabab ababaabbabaaababbabaaaaaababbbbbbaaababababbababbabababaaabbbbbabbaaaabbabaaaaaabaabbbbbbbbbaabbaaba babbbbaaabaaaaabaaabbaaaabaaababbbbbaababaabaaabababbaaababaaababaaabbbabababaaaabaaabaabbbabaababab abbabbabababbbbaababaabbbbbbaaaababbaaababbbbbbbaaaaabaabababaaaaaababbbabbaaaabbababbbbaabaaaaabaab abbaaaabaaaababaabbbbbbaaabbabbaaabbaabaabbbbaababaaabbbabbaababbbbbabaaaaababbbaaaababbabaaabbbaabb aaababaaababaaaabaabaababbabbbaaaabababbbbaabbabbaabbaabbbaabaaabbbaabbaabbbbbaaabbaabbaabbbbbaaaabb babbabbbaabaabaaabbbbbbabbaaabbaaabaaabbabbbabbaababbbbaabaabaababbababaaaabbbbbabbbbaabbbbabbabbaab babbaababbabaaaabaabaababababbaaaaabaabbabaabbbbaabbbaabababababbbbabaaabaabaabbbbbabbbbbabbbaabbbab aaabbaaabbababaabbbbbbabbaabaabbbabaaabababaaabaaaaaabaaabbabaabbababababbaabababaaaaabaaabbbbbabbbb bbabbbbabbaaaabbaababbabaababaaabbbabbbabaabbababbbaabbbbbbabbabbaaaabaabbaabbbabbbbbbbbabbaabbbbaba aaabbaaabaabbaababbaaabbbaababbbbaaabaaabbabaaababbaabbbbabababbbbababbaaabbaabaabbbaaabbbabbbbbbbab bbaabbbbbaaaabbabbbabbababbabbbaaaabaabaabbababaaaabbbbbbabbabbbababaaababbabbabbabbabababbbbabaaabb bbabababbaababaababaaaabbabaabaaabbbbbabaabbbaabababaabaaababbababbbbaababbbaabaaaabababaaaabaabbbba aaaaabbaabbaabbbbabbbaabbaaaabbabaabbabbabbbaababbaabbbbabababbbbabbbabbbaabbbbbbbabaaababaabaaaabba bbabaaaaabbbaaabbbababbababbbbabaabababbbbbbababbbbababbabaababaabababaabbababaababbbaaababbaaaaabba bbbbbaaabbaabaabaabaababbbababbabbabbaabbaaaababbababababababbabbbbabbabbabaabaabaabbbabaabaabababbb ababaaabaabbbaabbababbbbbabbabbbbabbaabbbabaaaabbaaabababbaabbabbbbaaaabbbaaaaaababaababbaaaaabaaaba aaaabbaabaabaaabaaabbabbaabaaabababbbbabababbbaaabbabbbababababaaabbabbaabbbbbabbaabababababbaabbaba bbbabaaabaababbbbabbabbaaaaababbabaaaabbbaaabbabbabbaaabaabaaaababaaababbbbbbaaabbaaaababaaabbababab bbbaabbabbbabbababbbbbbabbbaabbbaabbbbaabbbabbbbbaaabaabaaabbaaaabbbbbbaaabaababaaaaababbabbbaabbabb aaaaaabbbabbababbbbabbabbbabaabaabbbbaababaababaaaababaaabbabbbbbabbababaaababbbaabbbaaaaaaababbbbab bbbaabbbbababbaabbaaaaaabbaaaabbabaaaaabbbaabbaaaaabbbbababbabaabbbabbbababaabbabbaabbbbaaaabbbbbbba ababbaaabbabaaaaabababbbbabbbbabbaababaaaabbabbaabbaaabbbaabababaabbaabbbbabaaabbabbbaababaaabababab aabbbaaaabbabbabbbabbbabbbaaabbabbbbbbbbbaaaaaaabbabaabaababbaabbbbababbbabbabbaaaaabaaaaabbaaabbabb abbabbbabbaaaababbaabababbbbaaabbbbaaabababaabbabbababababbaabababbaaabaababbbaababaabbaabbbabbabbaa abbbaaaabbbaabaabaaaabaabbaababbbbbbaaaabbaabaaaaaabaababbbabaaabbbbbbaaabbabbbaabbabbbaabbbabbabaab abaaabbbaabbbabaabbbbbaabbaaaabababbbbaaabaaabbbbbaabbaaaabbaaaaaabbabaaabbaabbabbbabbaabbaababaaaab ababbbbabaabbababbabbabbaabbaaababaaababbbabbaabbaaababbaaaaabaaaababaaabababaaababababbaaaababbaaaa babaaaabaabbaaabaaaabaababbbaaababbabbbbbbababbabaabbaaabaababbbbbbaaaabbbbbbbaaaabbabbabbabababbaab bbaabbaaaabaaaabbbbabaaaaaabaaaaabbabbbbbbababaabbaabaababbabababababaabbbaaaaaaaabaababaabaaaaaaaba aaabbaaabbaabbaababbbabaabbbbbbbbaabbbabbbaabbbaabaaabbbaaaaababaabaaaaabaaaaabbbbbbaabbababbbabaabb bbaaaaabbbbbbaabbbabbabbaabaaaabbabaabbabbbbbbbbbabbaaaabaaaaabbababaaabaabbaaabbbbababaaababbaaaaba bbababbbaabaaaaabaaaaabaaabbabaabbaaaabbababbaaabbabaaabbbbabbbbaaabbbabbabbabbbbbbbaaababaaaabaabaa aababbabaababaaabaabaabbbbabbaaaababbabaaabaaabbaaaaaaaaababbbbabbbbbbababbabbaabbabbbbbbaaaaaabbaaa aabbbbbbbbaabbbbabbbaabbabbabbabbbbabbbbbabaabbabbabbabbbbabababaabbaaabbabbbaabababbbaaaaabaaabbaaa baaabaaababaaaaabbbbabbaaaaabbabaabbaabaabaaabaaabaaaababbaabbbbbaabbbbabaabaaaaabbaaaaabbaaaaabaaab aaaabababbbaabababbbbbbababbaabaabababbaaaababaabbbbaaababaaaabaaabbbabbbbbabbbaabaaaabbbbaaaabaaaaa abbabaaaabbaababbaabbaaababbbbabaaabbbbabbabaabaaaaabbaaaabaaabbababbbaabaabaaaaaabbbaabbababbbaaaba aabbaaabaabbaabbaaaabbaaabaabbabaaabbabbbaabbbbabaababbbaabababbababbbabaaabbbbbbabbbaaaaaaabbabbbab abbabaaaababaaaabababbbbabaabababaabbaaabbababbbababbabbbabbbabbbbaaababbabbaaaabaaabbbaaabababaabbb bbbaaaabbbaabaaaabbabbbaaabababbbbbbbbbbabbaabaaaabbabbbbbbbbbbbababbbabbabbaaababaabaabaaaaaabbbaab aaaaaabaabaaaaaaaaababababaabaaabbaaabbabaaabbbbaabaaabbaaaabbbbbaaaabbaabbbabbaaaaaaabbbbbbbabbaaaa baaaaaaabbbbbbbbbabaaaabbbababaaababbbbbabbabbbaaaababbbababaaabbaaabbabaabbbbabbbaababbbaaabbbaaaaa baaabababbabbbbabaaaabbbababaaaaabbabbbabaabaabbbbaaaaabaabaaabbabbbababbaaababbabaaababbbaaaabaaaba babbaaabbbabaaabaaaababbbabbbabbbabaaabbabbaaaaabbbbbabaaabbbbaaababbbbbbabbbbbaabaaabbabbbabbababab abaaaabbbbbabaaaaabaaaaaabbbbbabaabaaaaaababbbbbaabbabaaababbbaabaaaaababbbbaabababbbbbbbababaaaabab aabaababbaabbbbbbaabaaababbbaababaaabbabbbbbbbabaababaaabbbababaaaababbbabbbabbabbabaabbbbbbbbbabaaa abbabbababaaaaaabbbbabbbbabbbaaabbbbabaabbbaabbabbbaaabbbbabbbaaabbaaabaabbbabababbbbbaabaabbbbaabbb aaaaabaababbbbabaaabbbbaaabbaaabbaaaabaabbabbaabaabaaaabbabbaabababbababaaaaaabaabaaabbbabbaabbbaaba bbaaabbabbaaababababbbbbabbbaaaaabbbbbabbbbaaababaaabaabaaabbaaabababbbaaababbbbabbbbaabaababbaabaaa bbabbaabaaabbbbbbbbaabbbbbbbabbaaaabbbabaaabaabaaaaaaabbaababbaababbaaabbaabbabbbbbbabbabbaababaabba bbaababaaaabbbaababbaabbaabbababbaaaaababbababababbbbaabbbbbbabaabbbaaaabbbaaaabaaabbabaaaabaabaaaaa baaabbabababbbbababaabbbababababbaababbbbaabbaababaaaabbbbaababbaabaabaaaaabbbbbbbaaabbaaaababbbabba bbabbaaaaaabababbaabbbabbbaaabaaababbaaaaaabbbbbabbabaabaaabbaaaababbbaaabbabababaabbbbabbabaaababaa bbabbababbabbbbbbabbababbbabbbabbaabbabbbbabbbaaabaabbaaababbaababaabaaaabaabaabbbbaaaaaaabbaabbbaba abaaabaaabababbababaaababbaabaababbbaaaaabbbababaabbaabbbbbaabbaabaababaaaaabaaaabaabaaaaaaaaaaabbbb babbbaabaabaabbaaabbbaabbbabbaabbababaababbabbbabaabbbbababaaabaabbaabbabbbbbbabbabaaabaabbbbabbbaba bbabaaaaababbaababbaaaaabbababababbbaaabbbabbabbabbbbabbbbabbbaabbabbbbbbaabababbabbbabbabbabaababaa babbbaabbbbaababbaaaabbabbababbbabbabaaaabbbaabaababbababaababbbababbabbabbbbaabbbbaaaaaaabaabbabbab bbaababbbbbbaaaaaabababbabbbbabbabbbaabbbaabbaaabbabababaaaaabbabaabaaaaabbabbbbaabaaabbbaabaababbba baababbbbabaaabaababbabbbababbbbabbbaabbabaabbaaabbaababbabababbbbabbabaabbaaaaabababbbbaaaabbabbbba bbbbbbaabaaabbaabaabbbbbbababbabbbabbbbbbbabbabaabaabbaabbbbbbaaabababbbbabbaaababaababbaabbabbaaaba abaabbbbaabaaabababbbbabbbaaaaabbbbbaaaaaabbabaabbaaaabbabbbbabbbbabbabaababaaaaaaabbbaaabaabaaaabba ababbbbaababbbbaaabaaaaaaaabbababaaaababbabaabaaaabbaababaabbaaaabbbabbaabababaabbaaabbbbaabbbbabbbb babababaabbabaaabbbabaaabbabaabbbbaaaaaaabbbbaabaabbbbabbabababbabaabbbbbbababaaaabbababaabaabbbabaa babaabbbabbbababbbbbbbaabbabbbabaababaababbaabbaaaaabaabababaaababaabababaaaababaabaabaabbbaaabbabbb babbbabbbbbbbbaaabbbaaaaabaababababbaaababbbbaabbbabaabaaabbbababbbbbababbabbababbbaaabaaaabaaababba babbbbaabbbaabaabaaababbbbbabbabbaaabbbababaaababaababaaabaabbaaaaaabbabbbbbbbababaaababbbbaaabaaaab aaaaaabbbaabbbabbaaaabbbbababbaaaaaabbabbababbaaabaaabaababbabbaaabbbabaabbbabbaaaabbbaaaaaaabbabaab ababbbaabaabbbbbaaabbababaabbbabaabbaababaaaaabbaaaaaabaaabbbbabababbaaaabaabbaaaabbaabaabababbabbba bbbbbbbaaabaaababaabbbababbbbabbbbbabaababbbbbaaaabbaababaabbabbaabaabaabbbaabbaabbaabbababbabbaabba bbaababbaaabbbabbababaaaabbbaababaabaabbaabaaaabbbbbbabbaaabbbababaabbbbabbbaaaabbbabababaabbaaaaaaa bbbaaabaabbaaaaaaaaababaabbaabbababbabababaababbbabbbaabbaaabaabbabbbbbbaababbbaabababbbbbbbabbabbbb aabbbaabaaaababbabaaabaaabaaabbbabbaaabbabaabbbabbabaaaabababbaabaabbaaaaabbbbaaababbababbbbabbbbaba bbbbbabaaabbaaabbababbababbbbbabbaabbbaabaaaaaaababbaaabababaabbbbbabbaaabbbaaabaaaaaaaaabbabbaaaaaa aabbbbbbaaabaaaaabbbbbabababbaaaaabbbaaaabbbbbbabbbbabbabaabaaaaaaabbbaaabaabbbbbbaababaabbbaabbbbaa aabbaababbbabaaabaabbbaaabbabbbbaaabaaaabbbbbabaabaaabababaabbabbaabababbabbaababbbbbaabaabaababbaba aabaababbaabbaaaaababaaaabbaaabaaababaaaaaaaaaabbaababbbbbbaaaaaabbaababaababbbbbabbabbbabbababaaabb bbbbaabaabbabaababbbabbabbbabbbbbaabababaaaaaaaaabbbbbbaababaaababbaabababbaaabbaaaaaabbbaaabbbaaabb ababbaaababbbbbbaaaabbbbbaabbabababbbbbbaabaaabbabbbbaabbbbbabbabaaaaabaaabbbbababaabbbabbababbaabba abbbaaaababbaababaaaaababaabbbaababaababbbaaaaabaaaaabbbbbaaaaabbbbaabbbbbbbabaabbababbbaabaabbbbbab aaabbabbaaabbbaabababaaaabbbaaaaaabaababbabaabaababbaaaaaabbbabaababaaaaababababbaabbabbbbbaabbaabaa baabaaaabbabababbabaaaaabbbbaaabbbabbbaabbababbabaaaabaabaaaabbabbabbabaababababbaaababbbaaabaaabbbb bbabbaaaabbbababbbaaabbaabababbaabbbbbabbbaaaabababaabbaaaabbabbbaabbaababababbbaabbbbbbbbbabbbbabaa babbbbabbbabbbaabbbbbaabaabbbbbbababbbabbaaaababbbbabbbaaaaaaabbabbaabaabaabbaaabbaaaaaabaabbbbaaaaa bbababbaabaabbbbbabbbbababbbbaaabaababaabbaabbaaabbaaaaabbbabbbababbaaaaabaaabbabababbabaaaababbbbaa bbaaaabaaabaaaaabbbababbbbbabbbababbaaabbaaabbbbbabbaaaaabbbbaaabaabbababbababbabaabbababbbbbaabbaab baabbbbabbbaabbbaaababaabbbaaabbbaabaaaaaaabababaaaaababaabababababbaaaababaaabaaabbabaabbbaabbbaaba abbabaaababaaabbabaabbbbaabbbabbbbbbbababbaaaababaaaaabbbbbbaababaabaabbbbbaaabbaabbbbababababbbbbbb aaaabbabbbabbbbaaabaaaaabbabbabbbaaaabbabbabababbaabbaaaabbaabbaaaabbbbbabbaaabbabbbabaaaabbbaabaaaa 100 100 abccbaaaababbaacbababacabcbcbaabcabaababbaacacababbbabccabbccbccbaabbbcaabbabbbbcccbabbbcbaacababcca acbccbcbaaaacbaaabcbbcbbcbaabaaccaaccbcaaabaccaacbbacaccbabbcaabbabaabbabcacccccbacbcbbcbccaabbbaabc bcbabcbacacabbacbcaccccbacaaccabcbbcbacacbaaccbcbabbacccacbabcbbbbbabaacbbacbacacaccabbcacbbcbcaabbc aacbaccbacacabbaaabccccbbbabaccbbccabbaccaaacabaaaaacbcccbbbaabaccacbaabaabbaccacbacbcaaaacccbaabccb bcaabcbbabbbbaacacabbbcabbcccabbcbcbccacabaaccbcacabccbbbacaccccabcbacbababbbabccbaaaababacabbabbcba bbabbabbbccaaaccaababcaccbaaaccccbbcaabccbabbccccbcabacccbbabacbacacbcbcbaaabcbbcbaccaccaabbababbabb bbababccacbacacbabcacbaacaaaacacabbcccacbbbabcccbbccabccacabcabaacbcbabbbbccaacbccccbbcaaacacaaccccb bbacbccccbbabcbabccbccaaabccccacacabbccacbbabccccacbbacbcbcbcabccaccbbcccbbbcacbbcbcaabbcabccbcbaaca bcbbbacccaaaccbcabbbaaababbababcbccaacaccccbacbabbaabacaaabccbccccbbcbbaabaabcbcbcbcacacbaaaacbaabac baaacbbbbaccabcbbbaaacabcbbcbacacbbaacbabacaabacbbacbbcccabcccbbcabcaccccbaaccbcbacacbbccbbacbaabaac cccbacbbcaacccbaccbabbbacaaabcabacccbccabcbbbbaccccacacbbccbcabaabbbbabbacbbaacbcbaacaccbababbabbacc cbcaccbccbacbcacbcabcacabbccccbbcbabaaacbbaaababccbabaaabbcbabcbabbacbcbacbaaacacbbbacaaaacacbbaaacc cabaccacbacbacbabccaaacbccabbacabbccacbacababbaaabcbbabcacbcacccbacbccaccacabccbaabbcbccaccacbacabca ccaacaabccbaabacaccacbcabaccbcbaaaaacbbbbcabaacabbaccbaabbbbaccabbabbbbabbccbcccacbabacbbbcbabcbabba abbabcaccaaabcaccaccbbbaaacbabbbbccaacaacbacabacbacabcaabaacaaaccabbbbbacbabacabbbacabbaabbbabacbbac babcaabbbbbabacaacccabccbccabaccabcccbcbacccbbcbbcaacccbcaaabaccbccbbcbcabababccccbabaacaabaacbcbcca acbbcbababaacabcbbabbbbcbcaaacbcbcbacbcbbcccacaabacaccabcccaccbccaacbaccbbaccaaabccbcbbaacbacbbbbabc aacaabbbcbaabaaacaacaacabacbbcbcaabaaaccbabbabaabbaaaccbbcbccaabaaaabcaacbcaacbaabccbccabcccccbaaccc acbbcccbbbbabaabbabacaccaabaacacabcccccbbbbbcbcbbccababbabaacbcbcbbccaaaaaabaccbccabaaabcbbbcaacbbbb aabcccbccaaaccbaaaacabccbcccbcaaababcbaabaabbccbbabccccbbbabababaabcbabbcbaaaccaccbccccbbabcccacbaab cabbabbbabbaccabccabaaccbabaacccccbabbccabbcbcaabbabbaaaacbcbacaabbccbacaaacbbaabbcaccacbabbcaccaacb bcbabcbaccacabaccccaacabccbaacbbccacbaaccbabcbcabccaaababcbcbaacababbcbcbcbcbbaacacbaabcacaabacaabbc ccaabaabbcaaaaabbbbccaacbccbccbbbaacbcaababcacbbbccccccbcccabbabcccabccaaacbccbccbbbcabbbaacaaaaaccb abbbbcbaaabcaaaaacabacbcabbacacacaaacbacacabaacabababaaaacbbaabbbcabbcabbaabcaccabcacccbabccbabbacba babbbbcaaaaacacccbaaaccbcbccbcaaaaabaccabbabbbbacaccaabbabcaaaaaacaacbbacbcbcbcaabcbbaccaabbabbcccaa bbabbacaabccabcbcacbaaccbcbbbacbcabbaccbcbaabccacabaacbcababbbbcbbbccaaccbacaccbbcaabccccabacbbaabbb cabcbcaaaacbbacccaaacacbcbbaaacbcbacbcababacaacbaaabcabccabbccaaaaabacccbaacacaabbbabaabbcabbcbcaaba bcbbccbcaaaccabaccccaaacabaaacccabbbcabcacccacbacacabaacbbabbbcbbaccacccbcacacbccbbbacbabaacabcaaacb aacbabcbbbcbbcbaaababbacbbbaaccccaababbbbaaabacccbcbcccaaaacbbacbbacbbccacabccabaaaacbbacabcabaabaca bcababbbccccbbcabccbbcbcbccbbaacccabaccabcbacbacbbaacacabbbcbcaababacacacacbacbbcbbaabbbacccbcabbbac cbcccbcaaacabcbbaaccbcccbccacccacbbbcbcabccbabaccbabcbbcabbbabacbaccaabacccacaacccabcacbbccaacabcaba bccaabbcaacbaaabcaaccbaaaccbabccabbabccaaabccccaaccaaabcbbbbabababacaaccbababccbbcaaacccbcbcabbbcbab cabcbbabbcccbaabcaacaaaaaacaccbbccbcaccbbbbbacbaabccaaacabaaaabbcacbbcabcaacccbcbbbbccacbbcccabaaabc bbacbcabcbbccbbccccabbbaccabbcacaccaccababbbaaaccaabbbbabaabcbbcacbbaacabbaabaababbbaaacababcbbbcbca ccbcaaaccbacbabbccbbbbacbbcbbaacacbaaabcacbcbbabacbabacbabbaababbcaababcbabbacccccbcbbbbcccacbaccacc cbaabacccaabccbacbccccabbbbababcaccabbbbbbcbacaabbcbcacacacbaccaabbaacabcbaaabbaabbcbcaaaccbccbbcbaa aabaabbaaabbbcabbcbabbabbbbbcacccbbacbcabacaacccabcccabcbbcbbcbcbcacccbaabccccaacabbabbccccbaabcccbc caabacbabbacaacaacaabbbcccaabbbcbbbbbbacaaccbcacaabbaccbbbcacababcaaacaaacaaabbbbaaaababbbcbcacabcbb bbacccbcbcaaacacbabcbcbccaacabcbbccbaacbaacbbcbbbbbcbaacbcababccacaacbabccabcacacccaccbbaacaabbcbcbb bbccbbccacabbcaacaabcabbaaaaaacacbbbcacbbccaccccccbabcababaababaacbbaccbbaccbabacaaccacaaccccbccbcab bbcccabbbcaccbbbbbcbcbacbaaacbbcbbcbccacbcccabacaccbccacccacbbabbbacabbbccacbbccaabacacacbcbaabaabaa cbccbbbcccccabcbccabccaacbcbbccaabccbccbcbaaabacccbbbbbababcaacccbccaaccabcbcbcbacaccababacaabcccaba baccccabababbabcabbccabcaccaaaacacbbbaabbbaabbcacaacacabacacaabcaaacaabababbcabbacccaacababacbbbccab bcbbcacacaabcbcacacaccccabbbbabaabbcbbcabbcacbbabcbaaabaabbbbbaabbcaacabbcababbbbacaabccbaacbbccbbcb aaabcbbbbbbcccbacacacacaacaaabcbbcaccccbabbcbccaacccbaccacbbccbacababacababbabbbaababccacbcabcbacbab abcbacaabbabcababaccababbabcaaabbbcaccbbacbcaabcababbbbaaabacabcaaababababcbbcbcbaacabcabbbcaacbcacb abacbababbacabaccccbccaaabcbaaaaaaabcccacbcaaccbcbcbccabaacbabaacababaacbabaccaaccbbabbcbabcbaaccaca baabcbaccaabaaaacacabbbbccacccbbabaacbbcabcbcbaaabcbabaaaccacabccaabaccbbbaaaababbcacacbccacbbacbacb abacacbcbcbcbaaaabaacaabbcacbcbacbabbbbabaccbbbcbbabacacaaacbaabbaaacaccabaccccbabcabbccaacbbaccbacc aabaabcaccabccabcabcabababcbccccabbbaacaaacccbcaaccacabcbaacbcabcaabaababaccbaabccbaabbbbbacabcbaacb bcbcbacbcaccabcabbaabbbabbbcbbbcaccabbbabacbabacbbcabaabcbaabaaaacacbbcbacaabaabaaaacbcaacbabaabbaca acbbaabcabbcbcbcacababccccccacacccabcacaccbaaacbbbbbaacccacbacbcbcabbbcabcacccccaabcaacbcbaaccacbabc aacbbbaaccacbccbccaaaacbcbabbcbbbbccacacccccbaccacbabbbbbcbbbbbaabbaccabbccbaabbccccbabbcabbaabaacab acacccbaacaabcbabacbaccbacbacbbacacacaaabbbacacaabccbabbbbacbcbacabcbabcacbccbcbbcaaccbaccbcaacaabcc babbcccbbcaccccabbbacbaacabbabaacaabbbccccaabbbbcacaababbbcbbcababaaccbcabcccbcabacbbccacbcaccababbb bcbabbcbccccbbbbbccaccbacabcabcbcbbcbaaaabccbbaaaacabbbbcbabcabcabbacccbabbaaacabbcabbaabaabbbccbaca ccbbbbcbacccccccbcbbcccacacacbacabcbaaccbbccaabcaccbabaabbacacbbbacaaacbacbaccccbbacaacacccaabccacca cccbabacbaccbcbacacbbcbbababacbbbbaacbabbcbcbcaaabacbcaababaabbaacbccbbacabbcbbacacccbcbccabbbcabbcb caabaacbbcaccbaacbccaabcabacabbbbaaaccbccacbababbacababcbccbabcaacabcacccabbaaaaaaabbacabccabbaccaca bcababbacbcbbacaacabcaabaaccabbacbacbacbcaaabaabaacbbbaccaabcbcbaccaacacaabcbaaccacbbaabbabacacabaaa abacccccbbaccbcbcccbccbbabacaabacbcabccabcabbbbacbacccccbacacbcbabaaaabbcbccababbbbcbacbaccaabbbbccc bcacbbcbbbbbabcbcabccbbbaaabcbcabaccbcacbbcccbaabcbbaacbcabcbabcbcaacccbaabaabcbacacabbacccbcaabbccb abccbababcccacbbabbabbcbbcbbabbcbbccccbccabbabacaccccbbbbcaaababbbcbbacbacbcbcacabbbbbcbabccbabbacca cbabcbabbabcacbcbbbcabaaccbaaacaacaabbbabaacaccabacabbbababcbacaacaababccabacbcabcbccbcabcbbccacbbac abacbccacaabbbaccbbaccccabcbabaacababbcbaabaaabaaaacbabbbbcbbccccbcbbaabbbbcccabbcbccbcccbbbcbcbccaa abbbbabacbaaacccbcbcbbbababbbbbbabbacccbbaaccbbccbaaacbccbacacbbbacbbcccbacbcbaabcabbbcbbbbccbaacbac cccabbbacbacbaabbbbaaccaccabbcbbbbcacbabaababccacbabbabbcbcbcacbcaacaaacbabaccbaccaabccacaaaabcbbccb bbcbbbcabbbcacbcbccaabbccbbbaaaaacccbcaacbabacacbaccacccacccbabbbcbaabaabaacbcbbbbacaacccbccaccaacba ccbbaacccbabccbaaccabbaabbcbcabaacbaaaabcbcacbbcacbbbacbccabbbacacbbbaabbbcaacbacbbbbbbabccaaabcaacc caabaaccacbcbbababbcccacccabccaaccabccbbcbcbbaccabcaabbaaacbcabbcaacbbaaababbbabbabcaccababcabbabcca bbacbbbcacaaaaabaaaacaabaccbcaaaabaabcacabbcacbbcbacbbbacccbccbcbcccbaaccabccaaabaccaacacacccbbaacaa cbbcbacbabbcbaacabccbaccabcababaabcccacaabcccbabccbabccacbbaacbabcaccbabccacacbbcbacbacbaaabcccacaaa bcccbabaccaacbbccbbcacbaabccabaacccacccaaababbcccbcaacabcbabbbbacaccaccaaaabacbabbacbbcaaaaaacbababc bbbacccabbabaccaacbcbbabbcbbbacacccabacaccacaaacaabacabbbbacbbccaabacbcacbccacabacbbbabbabbaaaacaaca ccbbbbccbccababcbaaabccccaababbababacbcbaabacbbbaaaabaabbcaacbccccbaabbcbcacbaaabcabcacaccbbcacacaab cbbbcccacacabaacbcbcabaaaaccbacaabacaababaacabcccaacbbaaabbabacabcbaabccabbaccccccbabcabbabbbbbabacc bccccabcabbccbacabbaacbacccacccbcabaacbcabbcbccaacbccccbbbaccaaabababacccccacccaaacabcccaabababcabbc ccaaccabcacbcbbaacaaaabcaaacbcaaabbbbaccbccbabcabccabacabbccacacbabcabaacbcaababccaacbbcbacbacbbbaba bbaaaaaaaabbbabbcaaacbbaababaabbcaabcababaaaaaabcaabaaaabaaacacabaaabbccbbccacbcacbaccbcbcaabbcbcacb cbcccacaccaabcccccccbcacaccbaabbbaaaacabbcaaacacaccccacaabcaacccbcaababaacbcabbacbbccaaaaaaccaaaaaac bcaaccaccaacababcbccacccabcacacbabbabaccbbbcacacacbacaabcbcaccaccbbcaaccabcbabbcacaaaaaccbbcbcacaccc bccabccbabccacaacbcbcacabbabcaacabaabcbacababbcacabcbccbbbbbcbbbaababcbbbcabaabaaaabccccbcabcacbcabb abcbabcbbbbbaaabccaacbbbbbbaabababbcccacccabaabbaabbaaccbcacabaabbbcbbbccccbccaacbabbabaccacaccbbbbc bcacabbcbaaaacacccabbcabcaacbbbaccccbccabcbabccbbbabbccaabbcbbbaaaccaacabcaaaacacabbbaaaacccacabacba acabaccbabacbbaaaacbcacbcacbbcbbcaaccacccbcaaacbbacacaababbcabccccabbcacaccacacbccacaaaaabbcacbbcaca ccbaabaacbabbaaaaabbbaaabccbcbbbababaacbbaaacbabcaacaabacacbaaacbbccabbaabbcaaacaacabcbcbbaaabbcccbc baaabaaacbbbcabbbbabaababbacbcbbbcaaaacabaaabbcaaaaaccacabaccaccbcabcbcabcbbcacbcaabbacbccbbabbbaaac bbcaaaababcaaacbbbacbabbacaccabbbcaaabaaabbaacacbbaaccbacbabaccbbcabbbcbcbbccbbcacaacabcaababbabaccb bcacbcbbccbcabbbabaacaccacaabacbbaababccaacbbcbaaabaccaaaabbabcbbbbcaabccccaaccbcabcbbaaacbaaaaaabaa aabaaaaacbbcacbcbbcbbccbbacaabccabaaabbaccabccccccccbccbbbaacccaacbcacababcacabbcacbccbacccaabccabcb bacccacabaaccabacabbbbcbcbbaacabaaabaaaaaaaabaacccbbcabacaacbbccbbacabcccaabbccbbaacccacccccbacaaaac cbbcbbabbabcbcbbaccbcaaaabbbbbcccbbabbabaaacaabbbccbaaabcabcbbcacbcbbbcbccbaabbccbccbaacacaacaacbcbc cbbcbaacbbbabbaccccbbbbbacbaabbbccababccbbbcacaccacbbbcbbbccaacccbcbbaacaccaaccccbbbcaaccccbabcbbbcb bcacbbbbaaabcbaabcbcccccacabaaaabbababcccbbbbaacacabbacabcbabbaabbacbcbaaaacccccbcacbbcbcaabccaabcab acacacaaabbacacbcaccbbcabacaabccccaaaacacacaabccbbcbaccaabaaabccbbbcbcbabbbcbaccbcbbbaacacbcacbaacab caccccbcabbbabaacabccaacbababcaaabcbbccbbbccbbcabbcccbababcccbabcbccccbaacccabccbcbabbaaacbbbaabcacb bcaccabaabbbbccccccbbccaabbcacbbacbacbbbcbabcbacacabbaaabbcbcbbbcccabcccbbbcbccabccbcbbaaaabaacabacc abaaacbaabbcbbcaabccaaaabababccabaacaacccbaabcbbccacaaaabaabcaccacabcaabbaccbcbcacaccccabccbcbcbbbbb bcabacbcbaaccabcacaacbccbbabcaaabacbccbbcccbcbacaaacabbbacaabaaabcaaabccbcccacbbbcbacacacbbbabaabbab aaabcabbacbccacaaacaaabaaabbabaccbaabbaccbccbcccccccbbabbbacbbcbabacacaabccabbaaaaaaaccccabaabccbbac 100 100 ddaadbcbccddccddaaddbacddaddbdbaaccbbcbadbabdbbcacdaaddbaadcdbccdcbadbccaaadaaccdbddcbbbcdbaddccadbb adbcbbcaadacbcbdaacaaaccabdbdacdacbbccabacbdbddbbbabdbbacddbbdacadadababcbcbdccacbabcbabbbdcbdcdddad cadbbadddbcbbcddbabbcdcaaabcbaccabaabddbbccaaccaadbcaccbbdccdabddcbdddabcaaacdaaaaabdabaaccaacddcbab ccaacccbaddcaacbacbdbcaaabccbacdccabdcbabbbdbdcdcbdcbddbadadacdbabacddbbbbacbcccbdcddccdddccaddcdbad bbcabdbacdaaccbddbcdbbdaadcddadbcaddaddaaabbabdbccdbcbcbbcddbacdbacbcbadbdbcdabcddbaddcacaddaacdcbba dbcbdcddacabccdbddbcdbcdaaacbdbaadcbbabdcbbaacdddbbcacaccadddccdadadaabdbaddacddbbcbcbbaaacddddcabab daacbdadcaabaacdadacbaabbacacbcacdcbdccacdcabaadcbcacacdcdbcaabdcbdacbdbbdaaccdbbbdbbaabbcbdcacacccc dbadcaadcdacabdcbacacdcbcdbdccadaaabccacbbdcddcccbaacaaacdcbcbcaddbaabbaacabdbacbbbaadcbccbcddbbadba acdccacbdcacbbcbadbaadbbababcccacdcddbdbdbdbccacddbacbdcbbcbbcbadbbbdabdaabdbcaaabccdcaddacbbbbccbca dbbdbcccbdbcdaababbcbdbacbbddbdbcadccdbdcacbaadcacbddadcbaacddbabbcaddabbacbabcadbddcbaacadabbdadaaa bcbcbbcbcdcabccbbaacdadabbdcabdddabcccccdddcdbdcadcdcabaacdbaaaaccacadcdcdbbacccabdacaaabdbcabdaaccc aabbdadcbcdaacdaaadbacdbdadddbcbbbbdccdabdbbabcadabdccbbcccadabdacacacdaaccabaaddadbbdbcdbcacbdcaddc acabcaacbcacaabaabbcadacccadbacccacaadadcaabdbddaadcbcacdbabdcacddbbbbccaacddbaddabbaaccdadcdddaccad babdcddbabbaabaaddbaacacaabbddacacddabdcdcdbdadccbdabcacccdacbcadcccccbddcacbdabdbcddcdccdbcaadccadd bdcdadabbdbbaddbbbbbdbdcadcdddcdacddddbddbdaadcbddbabdacdacbabdcdbcddabdadcdabcdcabcbabcadcaabbddcdc abccddcadbbbaadaccdadcdbadccddabdccdaaddbdbaddabaadbacbacaaaddadcdbaabaacddddcacdcaaadaabcababcbaabb cacbdbdaddcdaabccbabcccabddccbbdcabbdbbdddadccbcdbabdabccaddccacbbbccaabddadcabcbbbcdbdcdabddddbbdcb babcabdcdcbccddacdcbbdddcacbbcdbddbbbdbbbbbdcbcabadcdbddbbbbccbcadbdcdcdadbbdbcbdccccccccddccdacbcad adbbbbaddbcaadcbbcabbabaabadbcbcccacdadcbdabbbbcacbdabacaabbabddadbaccdbcccdbcbcdabbbdcadbdbdcddcaba dbbbbcbdabdadbdcaadaacbdbbbcbaaabdabcdaaccdbdcaddcbddbacccbdadbaacdccbbdabbadbaaaacabaaccbddabcdbbba dacabcacaadadcaabbbacccbacbcdddcdaaccbbdbbaacdbcdccabbdcacdbccbbcbdbccbcccbddbbaabbcaccbacadcbdadddc bbcaacabbdccdbabcbddbadaaaaacdabdcaabbcabbdbacabdccdcbcbddcaddbbbcbdaddcbddbaabddcccdcdcacdbdaddcdda caddabdbcdcdddbabbdccbadbdcdccaababadadccdbaccbadaccbbbbbccdcaccaddbacddaaadaaddbbabbabdaddcbabdabdb cacbbcadcacaacaaddccbbacdbdddccbbdbaabbbdbaadcadcdccaddabbcbdcdacbbdbbdadbdccacbcccdcdcdcdacabadaaac bdbbcdbdccdcaccdbacaccdbbadbdccddbaabdadcdcadbcbaccccaadcbbdabbdaabaaaabcdbadbbdabacaacddccbcddbcbcb badccccbbbabdbcddcdcbbccbcccdddbccdbdadbababacbcacbadabccbabcbcbcdcdabcaaacadabdbababccddabaabbabbcd ccadbababacbbbdcdcdcddddacbaabacdbacaaabbaabaddaccccdcbdcdcbcddabdaaaacdabccddbdbbdbbbcadcaaaabaabcb caabaacbbbacbdadaadbccdbacaccbddbbcdddcbdcbcbaabadadddcdacbdbbddbbacbacddaacbacdcdbbcbddabadbdcacbcc abaddbbabddabcbaabaaccbbabdabcdccadacaabcbdacbbaabcdaadcacddbcbddaccbaaaddcbdbcadcadcbacabdccccabbcc ddcbbddbcacadaabcacababbbdccccdaaadcccaadabccaabcacaccbdbadabbbabdaaabddadbdaabcbdadddbbcaaddbdabaac dcbbddacdcdaaadbbddcbbadcccdadccbdcaddaabacbcdbbccbdbcadbbddcabaadbbbddacaccdaaaaabdcdaabaaaadcbabac adbaabccdabbdcddaaabaabababbddbdadaabcdddbabccbdabddbbaacdcddabacddbabbbcaaabbccbcdbaaddbbaadaadadbd cbababdbaabbadcacdacaabdadcdaddbccadcbdaabdddabacdbadbdbbbcccdbaaaacdcbdacabbbaaabddabdcccbabdddadbd dcbdabacdccababdbcbbdcddbaaddddbddddbacddabbadbbccbcbbaacabaabcbcddbccdaabddbabbbaccddacbadbadccabab ddaacdbbbcccadbbbbdcbbacbccbcbdaaccdcadadbabcbccabadcbabbdacdcabcbacdcbadbdbabbcdaadbcbdaacadcdcadbb bdcabccdbdcbdddcbdbdadbacadadaadbbdacadcbdaccabbcaccdcbbbacbcacbbdbbbdadabbbcbcaaacdbdbadccbbaddabcd ddccdbddcbbcabbaaadabdaaacdaddcbcabcbddadadabcbbcdbccbabadcaabdaadaadabdababadbdcdabcbcaaddacddabcbd acabbcacaaacbaacbdbcadaacbdaaccaaccbdcddbbdbccabaacdbbddcddabaacdbbaabadddcbbbcbcccccdbcbbdbacdccbcb ddbcdabbcbaddddaddbaaaddbccaaabbbaababdcccdcabbabdbcbccbbdddbabaabcacdbaaaddaccddcdadacaaaadbdabdacc caacbaabdbaabaabcdbdadccbaabcccadccadabbcbaaaaacdbddddbbbdcdcdacbdddabdddacdcadcbacdaabddacacacdbbbd aadcbbcacdbbadbaacbcbcadcdcdcccdbdcdbaadbbbbbbdccbdccddbdcadaaaabadbbbdcbcaacabacbbadcbcaacdacbcacbb aaacbdcccdddacaacaabbaccbabaaadcdbdcbcdaccbcbbabcdbcdacbdcccdacbabaacadcabccaaadaaddbdadcadbabcbbcda dbbddaacbacacdabdbbbdcdbadddcbddbcddadbdbcacdbcdbcadbadbccbdcdcbcbdabccbdadbdaddacdabcdcccdabccbaacd abdddadcdcbbdbaacbddaddddaaadbddbbdbcadacbacddaaadcbbbddaddbbcacdaaadcbaadccdadadbbaaadbbbbbacdacdaa cbdcccbadabdaabdcabbcbaddbbccdaaaacbdadbdabcccacbcabbccadccaacababccdacaacbbbbccdadaacbaddcbdcadcdda ccdcbdddcdbdaadacabcddbcdcdbccbabcbccaaadcdadaacaaaddcccabcdbcdcdacbaaabdbccdccbbcacaaccdbcccdcbbaac ccccdaabdaacbcdabcbbabbccccbccadaaacbdbaaaaaaadadcdabbdcabddcccbdbacacddabaadbbdbbadabcdabadbacccadb bbbdcdbcbdaadddbababccdaabacbdbadacadcdbddcbbbbdcbccdbcdcddaabcccddbcbbbdcbdabdaababcacadaabacbaccad ddbddccadbcbaccadbdbacdbacdcabbbdbbddbbacdbbccaaddbbadadbbbddbbaaacabbcccbdbbcbabbdcdbddbabadabaaaad daadbcdbbddbbbcbccdddbdabdcadbdaabbdcccacdacdccbabcaabbaadcaaaccbddbcaacbaaaaaddbbcbcbbdacbbdddbbadb dcbababcddbccaddadacccbdadacadbaadaccbcbbdadbbdbcacbbcababcbdaaccdddaccbbadbbabbbbddbcaacdabadccacaa accbdcdbdbadabdbdbdacdadcabbcbabcdccdbadbabaddbccbbaaaaccdccacdbaacdcbccccaacbcdcbaabccdcabcdcbaabbb dcbdcbbccccddbdbbaacbabbcbbdbcbddbabccdddcbdcbbdcaccdbacbaacddacaaabbcacdbdccbdbcbcdbaabbbcadadbabbc ddcaadabacbaaddccccabcdcacccdcdbbccbbadaccddbcadcbcabbdaddacdbcccaaadabcccadddcbcdaacacacaddcabacaab adcaadbaaabbbdabdcdbacbbdbbdcbbbcbcbdddbacaddabcaddbcddddddabbaabdacdaaccbbcbaabcdcbcbbcbcbdddbbddcc aaaaccccccbcdbaaccdcbcdabdabcdcccbbdadaaccaccdadbaacaddbcbbdcbbccbbcbcdabaabaaabacbcabdbcbdabddbaccc abdbaadcdbcdbadddaacbdaabdddcdcdbcaaccdccadadbabbacaadcccddccabababaacbbbcdbddadbbbbcbcdccbddbbbccdc aabbbdbcabbcdabcabacddcbccbddcccbbdbbadccdbcddbcaadaaacccdacbdcdadcdcddbbbbbcdccaabacaacdadbcbdbddaa cbcbcabcdbabacadadccbbcbbaacbcddddaaacbdcddbcdbacbccbdbbdacdccaababcaabbaddcabaaacbbcadccbbddbcbcdaa adadaadbccaddddaabbababddcdaacdbcbacccbccbdaccacadacbdcccabbcaaccddbdadacbdacaaabacaadacabbbbbadccbb bacababcbccbdcddbbcdcadaaaddababdbbbabbdbcdcddbdadbcdbdbddadaddccdcacadcccddabcdccbdaabacbbcacbaacda dbcacacdcdaacdcbabadcdabcbdcacbddaabdcaccbbcabdbdabdcdcdbabbcdacdbdabcacddbabdccbbaddcdbcddadcadcaab ccdabaccddbbdabbaacdabaacbbcbcccabbdaddbbabcacabbcbadbcaabcccbdacdcbbbdbaccabbaacccbdadbddaaacbcbacc dddbcbddacdcabcbbdacbbddacccaaaddbdccbcbdcdccabbacbacbdaadaaddcaddddbcbdcdbbacdabbbdabaddddbcbcabbcb cabaddbcdcddcbccbdbdbabbccbdbababdcbabccbcdcbaccbcabcabdcccdbcbdcaabaababbbacaccccdadccdccdcdbaccbcc acdbadcbddcdccdaacbddacaddccadcadccbadcccdcbaaaddacbacacdcbdadcbbacdadaddcbdbdbdcaabbcbdbbdadddcdaba bdcaacabdddaabbadcbbbaccababdcbdcbcddcaabbddccdbbaabbcabdddcacabdcbddcdaaddacadbdcbbdbbabdcbdaabacdc bcbaccdcdabacdcbcaddbadacacacbdaacabccbcccbbbdbaddbddcacacbbaadcacccaaddbcdbabddaccadbbbbddbcbbabcaa bcdcdbcdaddcabdbcbaccbcabbcbaccdacdcabdadadaabaddcdaccdbabccacacbcdabacaaabbcabbdaadbacbdabdccccbabd badcaacdbdbabdbbabdddbcdaddcdcaaadccbccdbdbabddacdbadcdcadbddcdddacbcdbadccadabadacadccbcacacdddbcbd ddcdcccaadbcadababaaaadcdbabcdbdbdddcbbbdcbcaaacadacabdacacaccdcdbccabbdadcdddcbcaaaccaddaabcdcabdaa daabaaabbabddacbacaddbaabcaaadbcdaaacddcddddbdacadadbdaaaddcddaabadaccddaaccdbacbaaaccbbccadccdbdaba bdddbdddbcccababaccaddddcdacaaaacbaabacdacacacddbabbddabcaacbadbbaccadccdcbbbddbbcaddadccadcaabdcdbc cbbddaaadacadbbdcddbcdbcaadbcabaaabcccccdbbddccbabbddbbbbabaacbdbcdaccdaacadbdaacabdacadabddbccabbdb dcdbdacabccadcdccccbabadacacbdbadabccbbbacccdbdaabddcbbabddcacbcacccdcddccccddaacadaacdbabddcacdbddc cabbbaddcdddabcbacaccadcdabcddccbbdaddbcabaadbdccdaacbbdaccdbcdbcdbaddaccadacbdcadbdacdbbcbddaaabbca cadaccacbdcbaabcbbcaaaccbbdcacaadcaddcddbbaabbccaaccdaadabcababbcbbacaddbbbdaccdbbcabcaddadcdccddbdd bbbbbbabadbabdabcccbdccddacbddcdddbccacdbdbbdccddacccdbdacdabbbbaddbccdaabbddbbcdaacdacdcaddbacabbcd addbdcacbcbddddaddddbcddabdbbcadbcccaddbcabcbdbaaccccadabcbdaadcdbdcdacbbddcdcaabdabaddbabaddbadbaab dbbbddbabcbbcaaddbddcadbbdddabdaacdcdaadbbdcddabadcbcbaacadccbbdcababdaabbabbccdcccdadbadccdbacbcbac bcbcbaccaadacabdbbddddcdbcbdddcaacccdbcccbdacdadabccccabbadbbaddbaaabaaabbcbabcdbccabdacbabbbcbdacad cbacaaaadabaaaccdccbbabccacdccadddcbacaaaddccdadadbdccdcabaaccacdbbaaddccbbacdcbacdadabcddbcaacccaca adbbbadcbbbaadcdabbbabbabdadabbaaccdcdbccdbcdcdababacdccacdccaccbacaacccbcbacdbadddccbdbbddcdbbcccac dbacccdbddcdbbaadddbbbaadbbbdcccdabdcabcaaabacdbbbdbcacadcadbcccbdcaacacbdbadcccaadcdaabcbaddabcaddc acadabddcbddbcddbbaaadccbcccacdbddbbdbcabddddacbcdaacdcdacdbcbaaaacbccaabacdddbdbcbcdadddccdbbaaddad dcacbbacdbbdcdcbdacbcbabcaaaaddcaabccaabbdaccabcdcaccdbddaabaaddadacccadacccacabccdcbabacdadccababbd dacbbbbdacabaddacaabcddbdbcbdbaabadddddadcbdbdcacdbbadddcbadbdadcadaccccaadccbcadbbbddccdcdccdcaacbb dbabddbdccbcacaadcbccadcdbcadadbbabdbcbbcabcbccdbcdcadaadcadbbdbadddbdbbbadbdbdcdccdadbadaaaabcaacbd dbccdcccbacaacaadbabbacadaadcbcaaaabacacabbcbcccdddadcbcdcbbbadbcadcbbdbcccdadabcddabdcdddadcdadabca bbacbbcaadcaadaccbbddddbacbbddcaaadcaaaabdaddbcccccbdcacdcbabcdbdaaaabcaaababaadbbbbaaaddbbdbcbabdcb accdaadabddcdbbabbcdbbcadaaacadaacbcbaacaaacbaacdbadaacaacdcddbcbbdbabbabcaddbacabacaabbdbaccdbdcdad acbcabcddacbcddbcdbdacbdccdcdaabbccbcbbadbbdbbbaadabaddcadcaaaccadcbbcaccadddbccbdaaccccccaacdddaacb daacbbcbcbcdcdddcbbaddddabdabbcbadbacadcbaabbdbdbcbdadaadccaaccdddddabccbbbbbcaacadadadabcaddcbaabca aadabcccdcdbbdbccdadacacbabdddbcabcbbcaccdbdddacbacaaadbdbacbcbcdbcacbcbcddbdadacacdacbddcdbbdcdbcac cddaddbabcaddbabaccbadcbdbacdcacaacdcdddbbbaabacaccccaacaddcadcbbaabcdadabdcdccbaabdccddddcaadcdddbd dacdbccccccdbccaddbbaadaabddbcbacadaaacabadaddcabbddababdaccdddbcbaccacccacdadbdbcbcbacabcddcdbbdbaa cadddbdaccddcadccaaacccdbdbbccbdbbbbdbcaaadbabacabacdadbababcdbcbaabdddddbdaadccbdacdaccadcaddccaaac cdbabbbcbbddacbddcccaacccaccbabbabbabacdddabbcdbccaaadcacbcdbccbbbdcaccadbadbacbaaaabcacdcbbdbadcadd adbaddbcdccdbbcacababdbddbddcabdaacbcbbbabcccdbbdbbabaaccbdabcabadcabdbbccddcddcabdbcbdbddacadcbbcba cbbcddbcbccbcabbbdcbccbccbbbcddcadbddcacacdcacbbaabbdcdadcccdaabdbbaabadcbccddaabbdcdaddaaadbaadaaad