#include <bits/stdc++.h>
using namespace std;
char s1[2010], s2[2010];
int n, ans[6110], h1[27], h2[27];
int idx(char c) { return c - 'a'; }
bool jg() {
  for (int i = 0; i < n; ++i)
    if (s1[i] != s2[i]) return 0;
  return 1;
}
bool ck(int l1, int r1, int l2, int r2) {
  for (; l1 <= r1; ++l1, ++l2)
    if (s1[l1] != s2[l2]) return 0;
  return 1;
}
int main() {
  scanf("%d", &n);
  scanf("%s", s1);
  scanf("%s", s2);
  int len = 0;
  int i;
  for (i = 0; i < n; ++i) h1[idx(s1[i])]++, ++h2[idx(s2[i])];
  for (i = 0; i < 27; ++i)
    if (h1[i] != h2[i]) {
      printf("-1");
      return 0;
    }
  while (!jg()) {
    int apos = -1, bpos = -1, cpos = -1, xpos = -1;
    for (i = n; i >= len && !ck(0, i - 1, n - i, n - 1); --i)
      ;
    len = i;
    apos = len - 1;
    for (i = apos + 1; s1[i] != s2[n - len - 1]; ++i)
      ;
    bpos = i - 1;
    xpos = i;
    cpos = n;
    ans[++ans[0]] = n;
    ans[++ans[0]] = bpos + 1;
    ans[++ans[0]] = 1;
    char tmp[2010];
    tmp[0] = s2[n - len - 1];
    int ps = 0;
    for (i = 0; i <= apos; ++i) tmp[++ps] = s1[i];
    for (i = apos + 1; i <= bpos; ++i) tmp[++ps] = s1[i];
    for (i = n - 1; i >= xpos + 1; --i) tmp[++ps] = s1[i];
    for (i = 0; i < n; ++i) s1[i] = tmp[i];
  }
  printf("%d\n", ans[0]);
  for (int i = 1; i <= ans[0]; ++i) printf("%d ", ans[i]);
}
