#include <bits/stdc++.h>
using namespace std;
char s[2010], t[2010], _t[2010];
int n, ti[26];
int ansn, ans[6100];
void change(int x) {
  ans[++ansn] = x;
  for (int i = n - x + 1; i <= n; ++i) _t[n - i + 1] = s[i];
  for (int i = 1; i <= n - x; ++i) _t[x + i] = s[i];
  for (int i = 1; i <= n; ++i) s[i] = _t[i];
}
int main() {
  scanf("%d", &n);
  scanf("%s", s + 1);
  scanf("%s", t + 1);
  if (n == 1) {
    cout << 0 << endl;
    return 0;
  }
  for (int i = 1; i <= n; ++i) ti[s[i] - 'a']++;
  for (int i = 1; i <= n; ++i) ti[t[i] - 'a']--;
  for (int i = 0; i <= 25; ++i)
    if (ti[i] != 0) {
      cout << -1 << endl;
      return 0;
    }
  int cnt = n / 2 + 1, ct = 0;
  for (int i = 1; i <= n; ++i)
    if (s[i] == t[cnt]) ct = i;
  change(n - ct);
  change(1);
  int tl = cnt, tr = cnt, p = 1;
  while (1) {
    tl--;
    int tmp = 0;
    for (int i = p + 1; i <= n; ++i)
      if (s[i] == t[tl]) tmp = i;
    tmp = n - tmp + 1;
    change(tmp);
    tmp = n - (tmp + p);
    change(tmp);
    p++;
    change(p);
    if (p == n) {
      change(n);
      break;
    }
    tr++;
    tmp = 0;
    for (int i = p + 1; i <= n; ++i)
      if (s[i] == t[tr]) tmp = i;
    tmp = n - tmp + 1;
    change(tmp);
    tmp = n - (tmp + p);
    change(tmp);
    p++;
    change(p);
    if (p == n) break;
  }
  cout << ansn << endl;
  for (int i = 1; i <= ansn; ++i) cout << ans[i] << " ";
  cout << endl;
}
