#include <string>
#include <iostream>
using namespace std;
int main(){
string txt;
string pttrn;
int sizeP;
int sizeT;
//Se ingresa el patrón a buscar en el texto.
getline(cin, pttrn);
//getchar();
getline(cin, txt);
//Se encuentra la longitud del patrón y del texto en el que se buscará.
sizeT = txt.length();
sizeP = pttrn.length();
//Si no hay ningún patrón, se retorna 0.
if (sizeP == 0 || sizeT < sizeP){
return 0;
}
//Aquí se recorre el texto en búsqueda de ocurrencias del patrón, saltando las posiciones del string
//donde no puedan haber ocurrencias del patrón. En caso de que haya una ocurrencia, se imprime la
//posición del texto en la que empieza la ocurrencia.
for(int i = -1; i < (sizeT - sizeP); i++){
int j = 0;
if(pttrn[j] == txt[i + 1]){
while(j < sizeP){
if(pttrn[j] == txt[i + 1]){
i += 1;
j += 1;
if(j + 1 == sizeP) cout << i - j + 1 << " ";
} else break;
}
}
}
cout << endl;
//system("PAUSE");
return 0;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCl7CiAgICBzdHJpbmcgdHh0OwogICAgc3RyaW5nIHB0dHJuOwogICAgaW50IHNpemVQOwogICAgaW50IHNpemVUOwogICAgLy9TZSBpbmdyZXNhIGVsIHBhdHLDs24gYSBidXNjYXIgZW4gZWwgdGV4dG8uCiAgICBnZXRsaW5lKGNpbiwgcHR0cm4pOwogICAgLy9nZXRjaGFyKCk7CiAgICBnZXRsaW5lKGNpbiwgdHh0KTsKICAgIAogICAgLy9TZSBlbmN1ZW50cmEgbGEgbG9uZ2l0dWQgZGVsIHBhdHLDs24geSBkZWwgdGV4dG8gZW4gZWwgcXVlIHNlIGJ1c2NhcsOhLgogICAgc2l6ZVQgPSB0eHQubGVuZ3RoKCk7CiAgICBzaXplUCA9IHB0dHJuLmxlbmd0aCgpOwogICAgCiAgICAvL1NpIG5vIGhheSBuaW5nw7puIHBhdHLDs24sIHNlIHJldG9ybmEgMC4KICAgIGlmIChzaXplUCA9PSAwIHx8IHNpemVUIDwgc2l6ZVApewogICAgICAgICAgICAgIHJldHVybiAwOwogICAgfQogICAgLy9BcXXDrSBzZSByZWNvcnJlIGVsIHRleHRvIGVuIGLDunNxdWVkYSBkZSBvY3VycmVuY2lhcyBkZWwgcGF0csOzbiwgc2FsdGFuZG8gbGFzIHBvc2ljaW9uZXMgZGVsIHN0cmluZwogICAgLy9kb25kZSBubyBwdWVkYW4gaGFiZXIgb2N1cnJlbmNpYXMgZGVsIHBhdHLDs24uIEVuIGNhc28gZGUgcXVlIGhheWEgdW5hIG9jdXJyZW5jaWEsIHNlIGltcHJpbWUgbGEKICAgIC8vcG9zaWNpw7NuIGRlbCB0ZXh0byBlbiBsYSBxdWUgZW1waWV6YSBsYSBvY3VycmVuY2lhLgogICAgZm9yKGludCBpID0gLTE7IGkgPCAoc2l6ZVQgLSBzaXplUCk7IGkrKyl7CiAgICAgICAgICAgIGludCBqID0gMDsKICAgICAgICAgICAgaWYocHR0cm5bal0gPT0gdHh0W2kgKyAxXSl7CiAgICAgICAgICAgICAgICAgICAgIHdoaWxlKGogPCBzaXplUCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihwdHRybltqXSA9PSB0eHRbaSArIDFdKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSArPSAxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqICs9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGogKyAxID09IHNpemVQKSBjb3V0IDw8IGkgLSBqICsgMSA8PCAiICI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICB9CiAgICBjb3V0IDw8IGVuZGw7CiAgICAvL3N5c3RlbSgiUEFVU0UiKTsKICAgIHJldHVybiAwOwp9Cg==