// DT2019T2.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
vector<int> leikkaukset;
string haluttu;
string leimaisin;
cin >> haluttu >> leimaisin;
string nykyinen(haluttu.length(), '?');
if (haluttu[0] != leimaisin[0] || haluttu.back() != leimaisin.back()) {
cout << "-1" << endl;
return 0;
}
leikkaukset.push_back(1);
string alku = nykyinen.substr(0, 0);
alku.append(leimaisin);
string loppuosa = nykyinen.substr(0 + leimaisin.size(), haluttu.size() - alku.size());
alku.append(loppuosa);
nykyinen = alku;
alku = nykyinen.substr(0, haluttu.size() - leimaisin.size());
leikkaukset.push_back(haluttu.size() - alku.size());
//cout << haluttu.size() - alku.size() << endl;
alku.append(leimaisin);
nykyinen = alku;
//cout << nykyinen << " ALUSTUS OK" << endl;
int done = false;
while (!done && leikkaukset.size() <= 10*haluttu.size()) {
for (int i = 0; i < haluttu.size(); i++) {
if (nykyinen[i] != haluttu[i]) {
//cout << "kohdassa " << i << " virhe" << endl;
leikkaukset.push_back(i+1);
string alku = nykyinen.substr(0, i);
alku.append(leimaisin);
loppuosa = nykyinen.substr(alku.size(), nykyinen.size());
alku.append(loppuosa);
//cout << alku << endl;
nykyinen = alku;
if (nykyinen == haluttu) {
done = true;
cout << leikkaukset.size() << endl;
for (auto i : leikkaukset) {
cout << i << " ";
}
int a;
cin >> a;
return 0;
}
}
}
}
if (!done) {
cout << "-1";
return 0;
}
int a;
cin >> a;
return 0;
}