#include<iostream>
using namespace std;
static string s1;
static string s2;
static int m_next[1000010];
int main()
{
cin >> s1;
cin >> s2;
for (int i = 1, j = 0; i < s2.size(); i++)
{
while (j && s2[i] != s2[j])j = m_next[j];
if (s2[i] == s2[j])j++;
m_next[i] = j;
}
int j = 0;
for (int i = 0; i < s1.size(); i++)
{
while (j && s2[j] != s1[i])
{
j = m_next[j];
}
if (s2[j] == s1[i])
{
j++;
}
if (j == s2.size())
{
cout << i + 2 - s2.size() << endl;
j = m_next[j - 1];
}
}
for (int i = 0; i < s2.size(); i++)
{
cout << m_next[i] << " ";
}
return 0;
}