#include <iostream>
#include <fstream>
#include <vector>
std::fstream in ("strmatch.in", std::ios::in) ;
std::fstream out ("strmatch.out", std::ios::out) ;
int sol[1001] ;
int main() {
std::string A, B ;
in >> A >> B ;
std::string tot = A + '!' + B ;
int i, left(0), rightMost(0), elem(0) ;
std::vector<int> z(tot.size()) ;
for (i = 1 ; i < tot.size() ; ++ i) {
if (i <= rightMost) {
z[i] = std::min(rightMost - i + 1, z[i - left]);
}
while (i + z[i] < tot.size() && tot[z[i]] == tot[z[i] + i]) {
z[i] ++ ;
}
if (i + z[i] - 1 > rightMost) {
left = i ;
rightMost = i + z[i] - 1 ;
}
if (z[i] == A.size()) {
if (sol[0] < 1000)
sol[++ sol[0]] = (i - A.size() - 1) ;
elem ++ ;
}
}
out << elem << '\n' ;
for (i = 1 ; i <= sol[0] ; ++ i) {
out << sol[i] << ' ' ;
}
}