#include #include #include #include using namespace std; vector findKnuthMorrisPratt (string s, string t) { vector res; string r = s + "#" + t; int m = s.size (), len = r.size (); int k = 0; vector p (len); p[0] = k; for (int i = 1; i < len; i++) { while (k > 0 && r[i] != r[k]) k = p[k - 1]; if (r[i] == r[k]) k += 1; if (k == m) res.push_back (i - m * 2 + 1); p[i] = k; } return res; } int main () { string s, t; cin >> s >> t; vector res = findKnuthMorrisPratt (s, t); if (res.empty ()) cout << "none"; else copy (res.begin (), res.end (), ostream_iterator (cout, " ")); return 0; }