#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
FILE *f,*g;
char sir[2000003],subsir[2000003];
int pozitii[10001];
int main()
{
f=fopen("strmatch.in","r");
g=fopen("strmatch.out","w");
int i,j,n1,n2,k;
i = 0; j = 0; n1 = 0; n2 = 0; ; k = 0;
while(fscanf(f,"%c",&subsir[j])==1)
{
if(subsir[j] == '\n')
break;
else j++;
}
n2 = j;
while(fscanf(f,"%c",&sir[i])==1)
{
if(sir[i] == '\n')
break;
else i++;
}
n1 = i;
j = 0;
for(i = 0 ; i <=n1 ;i++)
{
for(j; j <= n2 ; j++)
{
if(subsir[j]== '\n')
{
pozitii[k] = i-n2;
k++;
if(n2 >= 2)
i -=2;//pt ca i-ul crese odata inainte sa ajunga aici si mai creste odata dupa ce face break
else i -=1;
j = 0;
break;
}
if(sir[i]==subsir[j])
{
j++;
break;
}
else
{
j = 0;//subsirul incepe de la 0 daca nu sunt egala
break;//o sa iese din for-ul pt j si o sa creasca i-ul
}
}
}
fprintf(g,"%d\n",k);
for(i = 0 ; i < k ; i++)
{
if (i >= 1000)
break;
fprintf(g,"%d\t",pozitii[i]);
}
fclose(f);
fclose(g);
return 0;
}