#include <bits/stdc++.h>
using namespace std;
ifstream fin("strmatch.in");
ofstream fout("strmatch.out");
int lps[2000001],i,j,sol[1005],nr;
string a,b;
void buildPrefix()
{ int i,k=0;
int n=a.size();
for (i=2; i<=n; i++)
{
while (k && a[k]!=a[i-1]) k=lps[k];
if (a[k]==a[i-1]) k++;
lps[i]=k;
}
}
void kmp()
{int i, k=0;
int m=b.size(),n=a.size();
buildPrefix();
for (int i=0;i<m;i++)
{
while (k && a[k]!=b[i])
k=lps[k];
if (a[k]==b[i]) k++;
if (k==n )
{nr++;
if(nr<=1000)
sol[nr]=i-n+1;
}
}
fout<<nr<<'\n';
}
int main()
{ fin>>a>>b;
kmp();
for(i=1;i<=min(nr,1000);i++)
fout<<sol[i]<<" ";
return 0;
}