#include <bits/stdc++.h>
using namespace std;
const int NMAX = 4e6;
int kmp[NMAX + 1];
int main() {
ifstream fin( "strmatch.in" );
ofstream fout( "strmatch.out" );
string s1, s2, s;
fin >> s1 >> s2;
s = "#" + s1 + "#" + s2;
kmp[1] = 0;
for ( int i = 2; i < (int) s.size(); i ++ ) {
int x = kmp[i - 1];
while ( x != 0 && s[x + 1] != s[i] ) {
x = kmp[x];
}
if ( s[x + 1] == s[i] ) {
kmp[i] = x + 1;
} else {
kmp[i] = 0;
}
}
vector <int> ans;
for ( int i = 1; i <= (int)s.size(); i ++ ) {
if ( kmp[i] == (int)s1.size() ) {
ans.push_back( i );
}
}
fout << ans.size() << '\n';
for ( int i = 0; i < min( (int)ans.size(), 1000 ); i ++ ) {
fout << ans[i] - 2 * (int)s1.size() - 1 << ' ';
}
fout << '\n';
return 0;
}