#include <bits/stdc++.h>
using namespace std;
ifstream in("strmatch.in");
ofstream out("strmatch.out");
long long cod[2000000], putere[2000000];
long long X = 998757677, Y = 921314429, val = 0;
string a, b;
int main()
{
in >> a >> b;
for(int i = 0; i < a.size(); i++)
val = (val * X + a[i]) % Y;
cod[0] = b[0];
putere[0] = 1;
for(int i = 1; i < b.size(); i++)
{
cod[i] = (cod[i-1] * X + b[i]) % Y;
putere[i] = (putere[i-1] * X) % Y;
}
int nrSol = 0;
queue <int> sol;
for(int i = a.size(); i < b.size(); i++)
if((cod[i] - cod[i-a.size()] * putere[a.size()] + Y*Y) % Y == val)
{
nrSol++;
sol.push(i - a.size() + 1);
}
out << nrSol << '\n';
for(int i = 1; i <= min(nrSol, 1000); i++)
{
out << sol.front() << ' ';
sol.pop();
}
return 0;
}