#include <bits/stdc++.h>
using namespace std;
const int MAXN = 40;
int cnt[256], N;
string s, t;
vector<int> ans;
void shift(int x) {
  ans.push_back(x);
  string tmp = s;
  for (int i = 0; i < x; i++) s[i] = tmp[N - x + i];
  for (int i = x; i < N; i++) s[i] = tmp[i - x];
  reverse(s.begin(), s.begin() + x);
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> N >> s >> t;
  for (char c : s) cnt[c]++;
  for (char c : t) cnt[c]--;
  for (int i = 0; i < 256; i++)
    if (cnt[i]) {
      cout << -1 << "\n";
      return 0;
    }
  for (int i = 0; i < N; i++) {
    if (s[i] == t[N / 2]) {
      shift(N - (i + 1));
      shift(1);
      break;
    }
  }
  bool rev = false;
  int l, r, len = 1;
  if (N % 2)
    l = N / 2 - 1, r = N / 2 + 1;
  else
    l = N / 2 - 1, r = l + 2;
  while (len < N) {
    char tar;
    if (rev)
      tar = t[r++];
    else
      tar = t[l--];
    int pos;
    for (pos = len; pos < N; pos++)
      if (s[pos] == tar) break;
    int slen = N - (pos + 1) + 1;
    shift(slen);
    shift(N - (slen + len));
    shift(len + 1);
    rev ^= 1;
    len++;
  }
  if (rev) shift(N);
  assert(s == t);
  cout << ans.size() << "\n";
  for (int i = 0; i < ans.size(); i++) {
    cout << ans[i] << (i + 1 < ans.size() ? " " : "\n");
  }
}
