#include <iostream>
#include <fstream>
#include <string.h>
#define NM 2000005
using namespace std;
ifstream in("strmatch.in");
ofstream out("strmatch.out");
char T[NM],P[NM];
int dp[NM],n,m;
int poz;
int nrsol,sol[NM];
int main()
{
in>>P+1;
in>>T+1;
n=strlen(P+1);
m=strlen(T+1);
poz=0;
for(int i=2;i<=n;++i)
{
while(poz>0 && P[poz+1]!=P[i])poz=dp[poz];
if(P[poz+1]==P[i])++poz;
dp[i]=poz;
}
poz=0;
for(int i=1;i<=m;++i)
{
while(poz>0 && P[poz+1]!=T[i])poz=dp[poz];
if(P[poz+1]==T[i])++poz;
if(poz==n)
{
poz=dp[poz];
sol[++nrsol]=i-n;
}
}
out<<nrsol<<'\n';
for(int i=1;i<=min(nrsol,1000);++i)out<<sol[i]<<" ";
return 0;
}