#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<set>
#include<vector>
#include<queue>
#include<map>
#include<algorithm>
#include<cmath>
#include<stdlib.h>
#include<time.h>
using namespace std;
#define mmax 100000+10
void extendkmp(char *a,char *b,int m,int n,int *next,int *ret){
int i,j,k;
memset(next,0,sizeof(next));
for(j=0;1+j<m&&a[j]==a[1+j];j++); next[1]=j;
k=1;
for(i=2;i<m;i++){
int len=k+next[k],l=next[i-k];
if(l<len-i){
next[i]=l;
}
else{
for(j=max(0,len-i);i+j<m&&a[j]==a[i+j];j++); next[i]=j;
k=i;
}
}
for(j=0;j<n&&j<m&&a[j]==b[j];j++); ret[0]=j;
k=0;
for(i=1;i<n;i++){
int len=k+ret[k],l=next[i-k];
if(l<len-i){
next[i]=l;
}
else{
for(j=max(0,len-i);j<m&&i+j<n&&a[j]==b[i+j];j++); ret[i]=j;
k=i;
}
}
}
int main(){
char p[mmax],q[mmax];
int next[mmax],ret[mmax];
while(cin>>p>>q){
extendkmp(p,q,strlen(p),strlen(q),next,ret);
for(int i=0;i<strlen(q);i++) cout<<ret[i]<<" ";
cout<<endl;
}
}