//owo
#include <bits/stdc++.h>
//#include<queue>
#define ll long long
using namespace std;
const int N=1e7+10;
int main() {
char a[N>>1],b[N];
int pre[N];
// memset(pre,0,sizeof(pre));
// vector<int> pre;
scanf("%s",a);
scanf("%s",b);
// strcpy(b2,b);
int l=strlen(b);
b[strlen(b)]='$';
strcat(b,a);
for(int i=1;i<strlen(b);i++){
int len=pre[i-1];
while(len!=0&&b[len]!=b[i]){
len=pre[len-1];
}
if(b[len]==b[i])
pre[i]=len+1;
if(pre[i]==l){
printf("%d\n",i-l-l+1);
}
}
for(int i=0;i<l;i++){
printf("%d ",pre[i]);
}
return 0;
}
//sizeof(sum)/sizeof(int)