#include <bits/stdc++.h>
using namespace std;
char s[2004], temp[2004], e[2004], c, cnt;
int n;
int q[27];
void f(int x) {
  cnt++;
  if (cnt != n * 3)
    printf("%d ", x);
  else
    printf("%d\n", x);
  int i;
  for (i = n - x + 1; i <= n; i++) temp[n - i + 1] = s[i];
  for (i = 1; i < n - x + 1; i++) temp[i + x] = s[i];
  for (i = 1; i <= n; i++) s[i] = temp[i];
}
int main() {
  int t, i, j, k, x, l1, l2, flag, o;
  scanf("%d", &t);
  scanf("%s", s + 1);
  scanf("%s", e + 1);
  l1 = strlen(s + 1);
  l2 = strlen(e + 1);
  if (l1 != l2) {
    printf("-1\n");
    return 0;
  }
  memset(q, 0, sizeof(q));
  for (i = 1; i <= l1; i++) {
    q[s[i] - 'a']++;
    q[e[i] - 'a']--;
  }
  flag = 1;
  for (i = 0; i < 26; i++) {
    if (q[i]) flag = 0;
  }
  if (flag == 0) {
    printf("-1\n");
    return 0;
  }
  n = l1;
  printf("%d\n", n * 3);
  cnt = 0;
  for (o = 0; o < n; o++) {
    f(n);
    c = e[n - o];
    for (i = n - o; i >= 0; i--) {
      if (s[i] == c) break;
    }
    f(n - i);
    f(1);
  }
  return 0;
}
