fork download
  1. /* Look for:
  2. * the exact constraints (multiple sets are too slow for n=10^6 :( )
  3. * special cases (n=1?)
  4. * 1LL<<i and not 1<<i
  5. * overflow (ll vs ll?)
  6. * array bounds
  7. * if you have no idea just guess the appropriate well-known algo instead of doing nothing :/
  8. */
  9.  
  10. // Author:: Subash Singha Roy
  11. // Institution:: Jalpaiguri Government Engineering College
  12.  
  13. #include <bits/stdc++.h>
  14. using namespace std;
  15. #define ll long long
  16. #define dd double
  17. #define fio ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
  18. #define mod (ll)(998244353)
  19. #define sz(a) (ll)a.size()
  20. #define all(a) a.begin(),a.end()
  21. #define fr(i,a,b) for(ll i=a;i<b;i++)
  22. #define frr(i,a,b) for(ll i=a-1;i>=b;i--)
  23. #define pb emplace_back
  24. #define ee emplace
  25. #define rr return 0
  26. #define mp make_pair
  27. #define pr pair <ll,ll>
  28. #define ff first
  29. #define ss second
  30. #define pie 3.1415926535898
  31. #define inf LLONG_MAX
  32. ll mult(ll a,ll b, ll p=mod){return ((a%p)*(b%p))%p;}
  33. ll add(ll a, ll b, ll p=mod){return (a%p + b%p)%p;}
  34. ll neg(ll a,ll p=mod){return (p-(a%p))%p;}
  35. ll sub(ll a,ll b,ll p=mod){return add(a,neg(b));}
  36. ll fpow(ll x, ll y)
  37. {
  38. ll res = 1;
  39. x = x % mod;
  40. if (x == 0) return 0;
  41. while (y > 0)
  42. {
  43. if (y & 1LL)
  44. res = (res*x) % mod;
  45. y = y>>1LL;
  46. x = (x*x) % mod;
  47. }
  48. return res;
  49. }
  50. ll inv(ll a, ll p = mod) {return fpow(a, p - 2);}
  51. bool sa(const pair<ll,ll> &a,const pair<ll,ll> &b){return (a.second<b.second);}
  52. bool fd(const pair<ll,ll> &a,const pair<ll,ll> &b){return (a.first>b.first);}
  53. bool sd(const pair<ll,ll> &a,const pair<ll,ll> &b){return (a.second>b.second);}
  54. ll dx[4]={0,0,1,-1};
  55. ll dy[4]={1,-1,0,0};
  56. bool valid(ll x,ll y,ll n,ll m){
  57. if(x<0 || y<0){
  58. return false;
  59. }
  60. else if(x>=n || y>=m){
  61. return false;
  62. }
  63. else
  64. return true;
  65. }
  66. #define maxn 500005
  67.  
  68. vector<ll>v;
  69.  
  70. void findPrefix(string& t, ll m, ll pref[]){
  71. ll len=0;
  72. pref[0]=0;
  73. for(ll i=1;i<m;i++){
  74. if(t[i]==t[len]){
  75. len++;
  76. pref[i]=len;
  77. }
  78. else{
  79. if(len!=0){
  80. len = pref[len-1];
  81. i--;
  82. }
  83. else{
  84. pref[i]=0;
  85. }
  86. }
  87. }
  88. }
  89.  
  90. void KMP(string &s, string &t){
  91. ll n,m,i=0,j=0;
  92. n=(ll)s.length();
  93. m=(ll)t.length();
  94. ll pref[m];
  95. findPrefix(t,m,pref);
  96. while(i<n){
  97. if(s[i]==t[j]){
  98. i++;j++;
  99. }
  100. if(j == m){
  101. v.pb(i-j);
  102. j = pref[j-1];
  103. }
  104. else if(i<n && s[i]!=t[j]){
  105. if(j!=0){
  106. j=pref[j-1];
  107. }
  108. else{
  109. i++;
  110. }
  111. }
  112. }
  113. }
  114.  
  115. int main(){
  116. fio
  117. ll T;
  118. T = 1;
  119. // cin >>T;
  120. fr(tc,1,T+1){
  121. // cout<<"Case #"<<t<<": ";
  122. ll q;
  123. string s,t;
  124. cin>>s;
  125. cin>>q;
  126. while(q--){
  127. cin>>t;
  128. v.clear();
  129. KMP(s,t);
  130. cout<<(ll)v.size()<<" ";
  131. fr(i,0,(ll)v.size()){
  132. cout<<v[i]<<" ";
  133. }
  134. cout<<"\n";
  135. }
  136. }
  137. rr;
  138. }
  139.  
Success #stdin #stdout 0.01s 5280KB
stdin
babbbbabaabbabaabbbbaaaababbbbaabbbbaaaaabaabaaababbabaabbbaabbababbabaabaaaabaabbbbbbbabbbbaabbaabbabbbbabbbbbaabbbabababbabaabbbabaaabababaababaabbabbbaaaaabbbaabaaaababbaaabaabaaabbabbabaaaaababbaaabaabaaaabaabbbbbabaabbbaabbaababbabbabbbbbaaabbabababaabbbbbbbbaaaaabbaabaabaaababbbbaaabaaabbbbbbaaaaabaabaabbaabbbbabaabbbaabbbbbbbbbbaaaabbbbaaababaabbabbbbaaabbaaaaaaababaaaaaaaabbbbaaabaaabbaabaaaaaaaaaabaabababaabaabaabbabbabbabbaabababaaaaababbabaaababaaabbaabaaababbabbaabaaabaabbbaababaaaaaaababaaabbbbbbbabbbaabaabaaaaaaaaaabaaaabbbaaaabbbbaaaaaaaaabaabaabbabbaaaaaabbbaabbabbaababbaaaabbbaabaabaaabbbabaaabbaabbbaabababaaaaaabaaaababbbbaaaabbabbbababbaabbaababbababaaaaaaababbabaabbababbbbbaabbbbabbabbaaaababbaaaabbaaabaabbbaabbbaababbaabaabaababbabaabaabaaaaaaabbbababbaaaabaababbbbbbaabaabbaaaaababbabbabbaabababbbbbbbbaabbabbabbbbaaabbabaabbbaaabbaaaabbbbababaaaaabbabbbaaaabbbabbabababababbabbabaaaabaaaabbbaaaabaaaaababbabaaabaabaabaabbbbbbbabbabbabbbbabbaaaabaabaaabbbaaaababbbbaaa
1000
aabbaababb
aabaaabbab
abbaaabbaa
baaaababba
baaaabbaab
baaaaaaabb
aababbbbbb
babaabbbbb
bbabbaaaab
baaabbaaab
babaababbb
aaaababbab
bbabbbabba
ababbabbba
baababbbbb
baabbaabbb
baaabaaaba
aaaaaaabab
bbbbaababb
babaaaabbb
bbabaababb
baaaaaabab
aabbaaaabb
baabbabaab
abbabbbbbb
abbabbabbb
abbaaabaab
bababaaaab
baababaaaa
bababbaabb
babababbab
aababaabaa
babaaaabab
ababababaa
aaababbaba
baaabaabba
abbabbbbab
babaaabbaa
bbbbbaabbb
bbbbaaabbb
babaabaabb
aaabaababa
bbaaaaaabb
baabbaabab
ababaabaaa
abbaabaaaa
abaaababbb
abaaaaabaa
ababbabaab
aaaaababab
aaaabbabab
aaaaababba
abbaabbaab
baabababab
aabaabbaab
baaababaaa
abaabbbbab
aaaaaabbba
aaababbbaa
babaaabbab
aabaabbaaa
abaaaaabba
bbabbababb
bbaaaabbab
baabbabbaa
bbbbaabaaa
bbbbbbaaaa
abbaaabbbb
aaabbbaaba
aaababbaab
aabbabbbba
abababaabb
bbbbbbaaba
baaabbabab
bbaaaababb
baaabbabbb
abbabbbbaa
abbabbbbba
aaaaabaaab
aaabbaaaba
aaabababab
babbbaabab
aabbaababa
bbabbbabab
bababaaabb
bababbbaaa
abbbaaaaaa
bbabbabaab
bbbabaaaaa
aababbabba
abbaababba
aabbabbabb
aaababaaba
bbbabbbaaa
abaaabbaba
baabbababa
aabbaaaaaa
abbbbaaaab
abbbbbbaba
abababbaba
abbaaaaaaa
aabbbaabab
baaababbaa
bbbabaabaa
baaaaababb
aaaaabbbab
bbabbbbbab
bbaaaaabab
aababaaaba
bbaaabbbba
aabaabaaab
bbbbbabbaa
aabaabbbaa
bbbbbbaaab
bbaaabbbbb
abbbbbbabb
baaababaab
bbbbbbaabb
abababbbaa
bbabbabaab
ababaaaaab
aaaaababaa
bbbbbabaab
aaaabaaabb
bbbabbbbab
bbbabaaaab
aababbbbba
aabaaabbaa
bbbaaaaaba
bbbbbaaabb
aabbaaabba
babbabbaaa
bbbaabaabb
babbbbbbba
babbbbabaa
bbabbaabbb
aababbbaaa
babababbbb
abaaabaaab
bbabbbaaaa
bbaabbaaba
abbabbabba
babbbaabba
aabaaaaabb
ababbbabab
ababababbb
bbbbbbbbba
aababbbaaa
babbaababa
babababbaa
baabbaaaaa
abbabbaabb
aabbabbbab
bbaaabaaba
babaaabaaa
baaababbbb
aabaabbaab
abbabbaabb
aabaabaaab
bababaaaaa
bbbababbaa
aaaaabbabb
bababaabbb
baaabbaaaa
bbabbaaaab
bbaabbbaaa
bbabbbabaa
bbbbaabbab
abaaabbbbb
baabbbbbab
ababaaabba
aaaaaaaabb
baaabbbaba
bbbbaaaabb
babbaabaaa
abaabbbbaa
bbbabaabaa
abaaaaabba
bbbbbbbaab
bbaabbaaab
abaabbabab
baaabbbaab
bbaababaaa
babbaaaabb
aabaaaaaba
babaaaaaaa
ababbabbaa
aaabbaabab
babaaaaaab
aaaabbaaba
abbabaabbb
aabbabbabb
bbbababbaa
baaaababab
aabbbbabab
abaabbabab
bbbbaaaaba
ababaababb
bbabbaaaba
babaabaaab
baabbabaaa
bbaaabaabb
aababbbbab
bbbbabaaba
abaabaabbb
ababbbbbab
abaababbaa
bbbbbaabbb
bbabbaaaba
bbabbbbaaa
bbbababbaa
abaaabaabb
aababababb
aabbaaabba
abbabbbaba
bbaaabbbba
baaabaabab
baaaabbbba
bbabbaaabb
aabaabbaab
babbabbaaa
abbaabaaba
baabababba
ababababba
abbbabaaba
ababaaaaab
aaababaaab
baaaaaaabb
abaaaabaab
abbaabbaaa
bbabbaabbb
bbabababba
abbbabbbbb
baaaabaabb
babbbbabaa
aabbbbbaba
babbabbbba
aaabbbaaba
ababaabbaa
aaabbbaaab
aabaaaaaab
baabaabbaa
baabbbabaa
aabbbbbbba
aaaaaaabba
baababbaab
babababbba
bbbbbbaaab
aaabbaaaab
bbbbbbbaab
bbaaaabaab
aababbaaba
bbaaabbbab
ababbbbabb
bbbbbbabbb
aaaaaabaab
baaabbbaba
bbababaabb
bbbabbaaba
abbabaaabb
aaaabaabab
aaababbaba
bbbaaaaaab
bbaabbabbb
abbabbbabb
aaaaaaabab
aaaaabaabb
bbaaabbbbb
aabbaababa
bbabaabaaa
babbabbaba
bbaaaaaabb
aabaababba
baaabbaabb
baabababbb
abbbbbabab
bbbaabbaba
baabaaaabb
baaabbaaaa
baabaaabab
bbabaabbab
abbbbaabab
aababbabaa
abbaababaa
abbbabaaaa
baaaabbaab
ababbabaab
aaaaaababb
aaabbaaabb
abaabbbabb
babaababbb
aaaabbbbba
abbaaaabab
aabbabbaaa
abaabbbaba
abaaaaaabb
bbbbababbb
abaabbaaab
baabaabbaa
aabbbbabbb
abbabaabba
aaabbbbaaa
aaabbbabab
ababbaabbb
babababaab
aabababbba
bbbbbabbab
abbbbabaab
bbbabaabbb
babaaaabba
abababbbaa
abbbaababa
aabbabbbaa
bbbbabbaab
aaabbababb
abbbaaabbb
baaaaabbab
aabababbaa
aabbabbaaa
bbbbbbaaaa
babaaaabba
bbaabababb
baaaabbabb
aabbabaabb
aabbbabaaa
abbabbaabb
bbaabaabbb
abbbaababa
abbbbbabbb
bbbbbabbba
abaabaaaab
abaaaabbba
aabbbbbbaa
bbabbbabba
babbaabbbb
bbbbbbaaaa
bbbbbaabab
bbbbabbaaa
babababbbb
babbbabbbb
aaaabbbaba
aaaaabaaab
bbbaaaaabb
baaaabbbaa
baabaaabaa
aaaaaaabaa
aaaaaaabba
bbababbbaa
baabaaabba
baabaababa
aabbbaabba
baababbaab
abbbabbbab
babbbbbbaa
bbaaaabbab
ababaabbbb
aababbbaab
aaabaabbba
aababbaaab
bbbbbbaaba
baabbababa
ababbaabab
aaaabbbbba
baaabbaaaa
aabbabbaab
bbbbbaaabb
abbbbaabaa
bbbbababba
abbaaaabaa
abbaaaaabb
bbaaaababa
abbabaaabb
ababbabaaa
bbbbbbbaba
babaabaabb
bbbbaabbaa
bbbbababba
baabbaabab
baaabaabbb
baaabbbaab
aababaabaa
abaabaabbb
aabbabaaba
bbaabbbbab
baaaabaaab
bbbbabaabb
aaabbbaaab
bbbbbaabaa
aabbbbbbba
aabababbab
abaaaaaaba
aaaabbbaab
babaaaabba
aabbabbaba
ababbaabab
abbbbabbba
baaababaaa
abababbaab
babbbabaaa
bbabababba
aababbbaaa
bbaaaabbab
abaabaabab
babbaaabaa
baaaaaabaa
aaababbaab
abbbababba
baababaaaa
bbabaaabba
bbbaaaaabb
babbaaaaab
abaaaaaabb
aaaabbabbb
aabbabbaba
bbbbbabaab
bbbababbba
abbbbbbaba
abaaabaaba
bbbabababa
ababbbaaba
aabaabaabb
aaaabbaaba
aabababaab
abbbbbabba
bbabbbbaba
aaabaaaaaa
bababbbbaa
bbbabbbabb
abbbabbabb
babaaabbba
bbbbbaaaab
bbaaaaabbb
aaabaabaaa
abbbaaaaba
babbbbabab
aababbbabb
bbaabbbbba
bbababaaab
bbbabbaabb
bababababa
aababaaaaa
babaabbabb
abbbbabaaa
aaaabaabaa
bbabbbabbb
ababababba
babaaaaaba
aabbbaabbb
bbbbbbbbba
baaaaaaaab
abababaabb
bababaaabb
babbbaabaa
bbbbabaabb
abbbbbbbba
aaaaabaaba
aabababbab
baaabbbabb
abbbbbabbb
aabbaabbaa
abaabaabab
ababaababa
ababbaaaaa
aabbbabbbb
abaabaaaba
abbbaababb
ababababab
babbaaabab
baaababbba
abbababbbb
aabbaababb
baababbbaa
bbabbbbbaa
aabaababbb
babbbbaabb
baabbbaaaa
bbaababbaa
abababaabb
baabbbbbab
bbaabbaaaa
aababbbaaa
bbbbbabaab
bbaabbbaba
abaababaab
abbbbaaaaa
bbbbbbabbb
bbabbbbbbb
abbbbabbab
bbbaaababa
baabababab
bbaaabaaaa
bbbaabbbba
aababbbbaa
abbabbabba
bbaabababa
bbaabbbbab
babababbab
bbababbbab
abaabaaaba
babaaabbbb
aaaaaaabaa
aabbaabaaa
bbaaaaabbb
aabaabbabb
abbbabbbab
bbbbbbbbab
aabbabbbaa
aabbaabbbb
bbaaabbaab
bababbbabb
abaabaaabb
baabababba
aaababbbaa
babbaabaaa
abbaabbaba
abaabaaaaa
ababababba
bbaaaaabbb
abaaabbabb
abaababbbb
baabbaabab
aaaaaaabab
aababaaabb
baaaabaaaa
baababaaaa
abbbbabaaa
baabaaaaaa
bbabbbabbb
bbaaababbb
bbbaababbb
baaaabbaaa
baabaabbaa
abbbbaaabb
baabaabbab
aababaaaba
bbaaabaabb
baabaabbaa
aaaaabaaab
bbabbaaaaa
bbabbaaaba
aaaaaaaaaa
bbbbaabbab
baabbbabab
babbbbbbba
bababaaabb
babababbab
bbaabbaaab
abaabbabab
abbbbaabaa
abbababbbb
bbabbbabba
ababbbabaa
bbbababbaa
abbbabaaab
bbbbaaaabb
aaabababaa
bbbbabaaba
aabbbabaaa
bbabaaaaab
ababaaaaaa
baaabaaaab
abaaaababb
bbabbbbbba
baaabaabaa
abbabbbaba
bbbaaabaaa
abbabaabbb
baaaabbbab
bbabbabaab
bababaabab
abbaaaabba
abbaabbbbb
baaaabaaaa
ababbabbbb
baabaaabbb
baabaaabba
bbbbabbaab
babbbbbbba
aababbbbaa
babbbbabba
aaabbbaaab
bbbabababa
abababbaaa
aabbbaaabb
baababbbab
baabaabbab
baaabbbaba
bbabaaabba
abbaababaa
bbbbaaabaa
bbbbabbbaa
bbbabababb
aabbbbaaaa
ababaaabba
bbbbbbbbba
abbbbaabaa
babbbbabab
aaabbaaabb
abbbbaabba
aabbaabaab
bababaaaab
bbaaabaabb
bbaaaaabaa
bbaababbab
abababaabb
aaaaababaa
bbbaababaa
abbbabaaab
aaaaaababa
abbbbbabab
bbaaaaaaaa
baabbaaaab
aaaabbbaaa
bbbbabbabb
aaaaabaaba
baaaabbbba
bababbbaba
abbabbbbba
baabaabaaa
abbbaabbba
ababbbaabb
aabbaabbab
bababbbaaa
babbbaabab
aaaabaabba
aaabbbaaab
abbbabbaab
abbabbabab
babbaaaaaa
babbbbaaaa
babbaaaaba
baaabababb
aaaabbbbab
abbbabaabb
aaabbbbaba
babbaabbab
baaabbabbb
baabbbaaba
baaaaaabba
aaaababbbb
aabababaaa
abbabbaaab
aaababbaaa
bababaaaaa
baaaabbabb
aababbbabb
aabbaaaaba
babbababaa
aaabababba
ababbbabbb
bababbaaaa
aaaababbba
bbbaaababa
bbbababbab
babbaabbaa
bbbbbabaab
baaaabaabb
babbaabbbb
abbbaabbba
aaaaaaaaab
babbbbbaba
abbbabbaba
abaaaaaabb
bababaaaab
baaabaabab
baaaaaabab
abababbaab
bbabbbbbaa
aaababbaaa
aababbbabb
baabbabbbb
babbbbaaaa
aaaaabbbbb
bbbbabbbab
bbbaaaabaa
bbaabababb
baabaaabaa
abbbbbbbaa
babbaabbab
aababbbbbb
bbaabbbaba
aaabaabbba
aaaaabbbaa
abaabbaabb
aababbabba
bbabbaabaa
babbbaabaa
ababbbbaaa
abbaabaaaa
abbbbabbba
bbbbaabbab
babbababaa
babaaaabab
bbaabbbaab
baaabaabba
bbaababaab
bbaaabbbbb
abbababbba
bababbaaba
baabaabbba
bbbaabbbaa
babbaaaaab
bbbbaabbba
aabbbbaaab
aabbbbbbbb
aaabbbbaab
aabaaabaaa
bbaaabbaab
bababbbbbb
aaabaaabaa
babbaaaaaa
bbaabababb
abbaabaaaa
baaabbaaba
aaababbaaa
babaabbaab
abbbbbaabb
abbaababba
baaaaaabaa
babababbaa
ababbabbaa
bbbbabbabb
aaababbaba
abbababaab
ababbabaaa
aaaababbaa
bbaabbaaba
bbaabbaabb
abbabbabab
bbabbbabab
abbababaaa
baaaabbaab
baabbbbabb
bbaabaaaaa
abaabaabba
aaabaaabab
abaaabaaba
babbabaaab
babbbbbaab
bababbbbbb
aabbabaaaa
bbbaaaaaaa
babaaabbbb
abbbbbbbbb
aaabbabbaa
baaaaaaaba
bababaaaab
baabbbaaaa
abaaabaaba
aaaaabaaaa
abaabbbbab
baaababbba
bbabbababb
ababbbaaaa
babbaaabbb
bbabaabbaa
aabbbaaaab
abbbbbbbab
abaaaaabaa
aabbbaaaaa
bbaaabbaab
baabaabbbb
bbaabbbbbb
baabababba
aaaabbaaaa
abbaaabbbb
abbbaaabbb
babaaabbab
baaaaababa
bababaabba
aaabaabbbb
aaabbabaab
abbaaaaabb
abbaaabbba
aabababaab
babaabaabb
baabaabbba
aaababbbab
bbbaaabaaa
aaaabbbaaa
aaabbbaaaa
bbabbabaab
babbbaaaab
abbbabaaba
bbababbbab
abaaababbb
ababaaaaaa
bbbbababaa
babbaaabbb
abaaababba
baaababaab
abbaaaaabb
bbabbaabba
baabaaabaa
aabaabaabb
baabbbaaab
abaabaabaa
babaabbaaa
bbabbbabba
abaaabbaab
bbbababaab
aababababb
abaaaabbbb
aaababbbba
bbaabbabbb
aaaaaababa
bbaabababb
aaaaaaaabb
bbbabaaaaa
abbabaabba
abaaabaabb
bbabbabbab
bbabbababa
abaababaab
bbaaababaa
aabbbbbaba
bbbbbabbab
aaaaabbaab
abbaaabbba
bababaaabb
bbbbbbaabb
ababbaaabb
aabbaaaaab
bbbaaabbba
abaaabaaab
babaabaaba
bbbababbba
bbbbbbbbab
abbbabaabb
bbaabaaabb
aaababbbab
aaabbabbba
babbabbbba
aabbbbaaab
bababbaaab
bbbabababb
bbbaaabbbb
aabbaaabbb
aaaaabaaab
bbaabbaaab
baaabaaabb
babbaabaab
bbabbbabba
baabaabaab
abbbabbbbb
aaaabbbaba
aaabbababb
bbaaaabaaa
baaababaaa
baabbbaaab
bbabaaabaa
aaaaababaa
abbaaaaaba
babbabaaba
abaabaaaaa
aabbabaaab
abbabbbbba
bbbaabaaba
ababbbabba
aaababbbaa
ababbaaaab
aabbbaabbb
abbaabbbbb
abaaaaabaa
aaabbbbbaa
babaaaabbb
ababbabbbb
babbbbabab
bbbbaababa
baabbbbabb
babaaababa
bbbbabbbba
baabbbbbba
aaabbababb
aaaabababb
babbabbbaa
babbbaaaab
bbbbbbbaba
babbababaa
bbaaabaabb
bbababaabb
ababaaaaba
aabababbaa
aabababbab
aaaaaaaaab
baaaababab
bbbbbabbbb
abbaabaaaa
abaabababb
baaabaaabb
bbabbaabba
bbbbbbbaba
baaaaaaaab
baabbbabab
ababababbb
babbabbaba
baababaaaa
babbabaaab
abbbbabaaa
aababbbaba
aaaababbba
abbbaabbba
ababababbb
babaaaabbb
bbababbaaa
aaaababbbb
abbbbbbbaa
babbbaaaab
babbabbbaa
abbbaaaaab
abbaaaabaa
ababaaabbb
aaabbaaaaa
bbbabbabaa
baabaabaaa
baabbaabaa
bbbabaabba
babbbbaaba
bbababbabb
baaabbbbaa
babababbbb
baabbabbba
aaabababab
aabbaabaaa
bbabbababa
abaaababaa
aaabbbbbbb
bababaaaab
baababaaab
babbbbaaab
abbbbabbbb
aabbbbaaaa
bbaaabbbbb
abbaaaabab
aabbbbbbbb
baabaaaaba
babaaababb
aabbbbaaab
babbbaaaab
abbbabbbab
aabbbaaabb
babbaabaab
baabaaabba
ababbaabab
abbbababba
abbbabbaab
bbababbabb
bbbbbbabba
bbbaabbaba
babbabbbaa
bbbaaabbba
bbaababbaa
bbbabbbaab
abbbbbabab
bbabbaaaba
baaaabbbbb
bbbaaababa
abbaabaabb
babbababbb
baaaaaabba
bbbbbbaaab
bbabaaaaab
bbbbbbbbba
bababbabba
babbbbbabb
baabbbaabb
baaabbbbba
babababaaa
aaaabbabbb
babbbaaabb
babaaaabbb
bbbbbaabba
aaaabbaaaa
bbabbbbbaa
aabbbbbaab
abbabbabba
babababbbb
babbbbabba
abbbbaabab
bbaabbaaaa
aaabbbabab
baabaababb
abbabababa
abaaabbbaa
ababaababa
bbbabbbaba
abbabbbaab
abbbabbbba
bbbbbaaabb
abababbbbb
baaabababb
bbaaabbaaa
babbababbb
aabbaabbbb
aaaaaaabaa
bbabaaaabb
babbbbbaba
bbababbaab
aaaababbaa
baaabbaaab
stdout
2 224 663 
1 176 
0 
2 163 713 
0 
1 767 
1 788 
1 251 
2 709 968 
0 
0 
4 444 680 806 930 
0 
0 
1 787 
1 307 
0 
3 365 495 677 
0 
0 
0 
0 
1 859 
1 7 
0 
3 231 835 959 
3 169 195 725 
0 
1 489 
1 657 
2 115 899 
0 
0 
0 
4 45 445 681 931 
0 
2 97 962 
2 457 611 
2 106 697 
0 
0 
1 406 
1 569 
2 223 662 
0 
1 393 
1 275 
0 
5 47 63 118 683 755 
0 
0 
5 189 443 679 805 929 
1 660 
0 
1 305 
1 453 
0 
2 571 769 
0 
0 
1 798 
1 873 
0 
1 646 
2 563 579 
0 
3 258 293 331 
0 
2 155 594 
0 
2 96 351 
1 248 
1 792 
1 242 
3 18 712 985 
0 
2 352 838 
1 234 
0 
1 723 
0 
0 
0 
1 652 
0 
0 
0 
0 
0 
3 228 469 808 
3 225 584 664 
2 423 834 
0 
0 
0 
0 
1 361 
2 15 643 
0 
1 116 
1 362 
3 485 619 737 
0 
0 
4 188 442 804 928 
1 770 
0 
1 803 
0 
0 
5 39 173 271 600 975 
0 
2 482 729 
0 
0 
0 
1 344 
1 828 
0 
0 
2 439 871 
2 367 497 
1 212 
0 
0 
0 
0 
1 388 
2 33 296 
1 238 
0 
1 707 
1 795 
0 
1 0 
0 
0 
0 
0 
2 147 880 
2 222 661 
3 424 427 811 
0 
0 
0 
0 
1 328 
0 
2 432 816 
0 
1 800 
0 
1 650 
2 170 196 
0 
1 276 
1 305 
0 
5 39 173 271 600 975 
4 438 626 672 870 
2 655 775 
1 875 
1 249 
2 359 857 
2 709 968 
0 
0 
1 830 
2 288 503 
1 209 
1 456 
1 375 
1 605 
2 333 644 
1 474 
1 12 
0 
1 873 
1 827 
0 
1 688 
0 
1 488 
2 589 718 
1 926 
3 372 492 674 
1 470 
0 
1 628 
1 265 
4 9 49 120 848 
2 423 834 
2 655 775 
0 
1 865 
1 688 
1 16 
0 
0 
0 
0 
1 726 
0 
0 
1 945 
0 
0 
2 106 697 
0 
2 353 839 
2 655 775 
1 479 
0 
0 
1 651 
0 
0 
3 336 542 862 
0 
1 305 
1 707 
2 268 745 
0 
1 898 
0 
2 439 871 
2 454 499 
1 767 
2 71 203 
0 
0 
1 114 
0 
2 72 204 
1 0 
1 210 
2 837 961 
2 155 594 
0 
0 
0 
2 304 797 
1 124 
3 78 506 950 
0 
1 741 
0 
0 
1 858 
1 827 
2 781 971 
1 742 
0 
0 
2 81 509 
2 403 554 
1 605 
0 
0 
0 
2 405 783 
4 45 445 681 931 
0 
1 94 
0 
3 365 495 677 
0 
0 
0 
1 66 
1 903 
1 569 
1 751 
1 613 
1 819 
0 
1 56 
0 
2 359 857 
3 41 273 464 
2 4 686 
0 
5 46 446 682 754 932 
0 
0 
0 
5 47 63 118 683 755 
1 678 
0 
0 
0 
0 
1 711 
1 564 
1 123 
0 
0 
0 
2 304 797 
0 
1 685 
3 338 380 544 
1 772 
0 
1 247 
0 
1 954 
2 1 313 
2 214 315 
0 
0 
2 486 620 
2 145 878 
0 
0 
0 
1 874 
0 
1 564 
3 258 293 331 
0 
1 818 
1 647 
2 8 847 
2 125 607 
0 
0 
2 486 620 
0 
1 510 
2 68 200 
2 534 915 
1 291 
0 
0 
3 258 293 331 
0 
1 966 
0 
0 
1 771 
0 
2 150 261 
3 535 592 916 
1 477 
3 402 528 553 
0 
0 
1 175 
0 
3 54 219 575 
1 741 
0 
1 790 
1 646 
1 250 
0 
2 481 728 
2 166 192 
1 792 
0 
0 
0 
2 359 857 
1 580 
1 238 
0 
0 
2 780 970 
0 
0 
0 
2 447 933 
0 
0 
1 88 
0 
2 223 662 
2 480 727 
0 
0 
1 945 
0 
2 310 700 
0 
3 2 213 314 
0 
1 793 
3 78 506 950 
0 
1 629 
3 154 573 593 
0 
1 180 
0 
0 
1 453 
0 
0 
1 114 
0 
1 646 
1 749 
2 168 194 
1 630 
0 
2 654 774 
1 489 
1 610 
2 150 261 
0 
0 
2 648 876 
1 180 
1 212 
0 
0 
1 938 
0 
0 
4 302 417 558 944 
1 265 
2 133 410 
0 
0 
0 
0 
0 
0 
0 
1 332 
1 151 
4 38 172 198 974 
2 920 983 
0 
0 
0 
0 
0 
1 895 
2 370 490 
2 142 348 
0 
4 37 300 556 973 
0 
1 898 
2 186 440 
2 320 732 
1 328 
1 374 
1 248 
0 
1 514 
3 2 213 314 
2 255 825 
4 36 299 404 555 
0 
0 
0 
0 
1 749 
1 136 
0 
0 
2 40 272 
1 738 
1 896 
0 
0 
1 691 
2 224 663 
0 
2 103 235 
1 785 
2 24 86 
0 
2 585 740 
1 248 
1 209 
0 
0 
1 212 
1 109 
1 138 
2 31 546 
2 81 509 
0 
1 703 
1 342 
0 
0 
2 27 699 
4 22 278 640 989 
3 424 427 811 
2 434 622 
2 310 700 
2 115 899 
0 
2 40 272 
1 502 
3 402 528 553 
2 392 461 
1 151 
2 420 561 
0 
0 
2 145 878 
1 308 
0 
0 
3 174 601 976 
0 
0 
1 474 
0 
2 520 763 
1 898 
1 151 
1 177 
1 786 
2 223 662 
3 365 495 677 
2 455 500 
2 911 923 
1 489 
0 
3 395 521 764 
0 
0 
0 
1 721 
2 304 797 
2 355 841 
2 419 560 
0 
1 726 
2 304 797 
0 
1 566 
0 
2 399 525 
1 830 
1 110 
0 
0 
2 115 899 
0 
1 688 
0 
1 691 
0 
0 
2 655 775 
2 126 608 
2 333 644 
1 132 
0 
2 125 607 
1 185 
4 371 491 627 673 
0 
2 162 636 
0 
3 171 197 939 
1 651 
2 283 384 
4 9 49 120 848 
1 885 
0 
1 135 
1 719 
0 
2 911 923 
0 
2 602 977 
1 175 
0 
0 
4 22 278 640 989 
1 964 
0 
0 
0 
1 853 
0 
2 419 560 
1 605 
1 610 
0 
2 282 383 
1 511 
1 113 
3 14 30 545 
1 456 
1 328 
0 
0 
0 
1 87 
1 267 
0 
1 726 
2 34 297 
2 226 665 
1 248 
2 367 497 
1 487 
2 126 608 
2 366 496 
0 
1 549 
0 
2 536 917 
2 704 955 
4 36 299 404 555 
3 336 542 862 
0 
1 234 
4 270 518 599 761 
1 733 
0 
1 92 
0 
0 
0 
0 
0 
0 
1 567 
1 642 
3 710 779 969 
0 
1 863 
0 
1 864 
0 
0 
3 484 618 736 
0 
3 20 638 987 
2 436 624 
0 
3 165 191 715 
4 438 626 672 870 
1 647 
0 
0 
1 669 
0 
0 
1 777 
0 
1 342 
0 
1 659 
1 212 
2 72 204 
0 
1 733 
3 400 526 551 
0 
1 889 
0 
0 
0 
0 
0 
2 103 235 
3 165 191 715 
0 
2 95 350 
1 642 
0 
0 
1 921 
1 818 
1 477 
0 
0 
1 788 
1 109 
2 481 728 
2 153 572 
1 306 
3 228 469 808 
1 473 
1 514 
3 279 641 990 
1 393 
0 
1 830 
1 669 
0 
2 617 735 
0 
0 
0 
0 
0 
0 
1 734 
0 
1 107 
2 339 381 
2 254 325 
0 
0 
0 
1 822 
0 
1 567 
1 818 
1 393 
2 390 459 
3 165 191 715 
0 
2 105 696 
3 225 584 664 
1 630 
0 
1 470 
2 704 955 
4 45 445 681 931 
0 
2 447 933 
3 164 190 714 
2 222 661 
1 90 
0 
1 652 
1 670 
0 
1 701 
1 394 
3 303 418 559 
0 
1 938 
2 448 934 
2 104 695 
1 822 
0 
1 548 
1 502 
1 326 
0 
3 364 494 676 
0 
0 
1 938 
2 530 632 
0 
0 
0 
0 
0 
0 
3 538 919 982 
3 79 507 951 
0 
0 
0 
1 946 
1 323 
0 
0 
0 
0 
0 
0 
0 
2 74 206 
1 846 
0 
0 
2 133 410 
0 
0 
0 
2 283 384 
2 536 917 
3 537 918 981 
0 
1 881 
0 
0 
1 275 
4 371 491 627 673 
1 867 
0 
2 43 466 
1 344 
0 
0 
1 477 
4 302 417 558 944 
1 852 
3 415 760 942 
0 
0 
3 389 458 612 
0 
0 
0 
4 21 277 639 988 
1 94 
2 366 496 
1 818 
1 375 
0 
1 685 
1 479 
2 425 957 
1 891 
1 138 
1 343 
1 210 
1 954 
1 264 
0 
0 
1 828 
0 
1 801 
0 
0 
2 414 759 
0 
0 
0 
0 
0 
2 649 877 
2 837 961 
2 339 381 
0 
1 113 
0 
0 
0 
0 
2 285 386 
1 744 
0 
3 416 747 943 
0 
1 771 
0 
1 922 
1 453 
1 852 
1 936 
2 367 497 
1 802 
2 64 756 
2 520 763 
0 
1 234 
2 516 597 
0 
0 
3 588 717 778 
2 320 732 
0 
0 
0 
0 
0 
0 
0 
1 701 
2 129 451 
1 83 
0 
0 
0 
0 
1 881 
0 
1 669 
1 726 
0 
0 
0 
0 
3 400 526 551 
0 
1 82 
1 393 
0 
2 285 386 
0 
0 
1 374 
1 110 
0 
1 903 
1 489 
2 448 934 
0 
0 
0 
1 733 
0 
0 
1 776 
3 20 638 987 
0 
1 881 
0 
1 149 
2 780 970 
1 501 
1 360 
0 
4 270 518 599 761 
0 
1 3 
0 
0 
0 
0 
1 144 
0 
2 392 461 
1 891 
1 452 
1 505 
0 
0 
3 280 354 840 
1 100 
3 14 30 545 
0 
1 711 
2 254 325 
3 69 160 201 
0 
2 339 381 
1 881 
0 
1 853 
1 744 
1 175 
0 
2 654 774 
0 
0 
1 953 
1 56 
0 
0 
2 585 740 
1 512 
0 
0 
0 
1 342 
0 
0 
0 
0 
1 185 
1 328 
1 901 
0 
4 53 218 319 731 
0 
0 
2 648 876 
0 
0 
1 829 
0 
2 103 235 
0 
3 424 427 811 
0 
1 964 
0 
0 
1 772 
1 750 
2 245 893 
1 979 
1 136 
0 
0 
0 
1 238 
1 821 
0 
2 358 856 
0 
1 308 
3 402 528 553 
0 
0 
1 656 
3 164 190 714 
0