#include <bits/stdc++.h>
using namespace std;
char src[2002], tar[2002];
int ans[2002 * 4], n;
int get(int l, int r, char ch) {
  for (int i = l; i <= r; i++)
    if (src[i] == ch) return i;
  return -1;
}
void reverse(int l, int r) {
  for (int i = l; i < r - i + l; i++) swap(src[i], src[r - i + l]);
}
void doswap(int la, int lb) {
  reverse(la + lb + 1, n);
  reverse(1, n);
  reverse(2, n);
}
void work() {
  int step = 0;
  for (int i = n; i >= 1; i--) {
    int p = get(n - i + 1, n, tar[i]);
    if (p == -1) {
      puts("-1");
      return;
    } else {
      ans[++step] = n;
      ans[++step] = p - 1;
      ans[++step] = 1;
      doswap(n - i, p - n + i - 1);
    }
  }
  printf("%d\n", step);
  for (int i = 1; i <= step; i++) printf("%d ", ans[i]);
  putchar('\n');
}
int main() {
  scanf("%d", &n);
  scanf("%s", src + 1);
  scanf("%s", tar + 1);
  work();
  return 0;
}
