#include <bits/stdc++.h>
using namespace std;
char ch[6700][3000];
char c[3000];
int vis[2000];
vector<int> ans;
int len;
void shift(int x, int k) {
  int num = 0;
  for (int i = len - 1; i > len - 1 - x; i--) {
    ch[k][num++] = ch[k - 1][i];
  }
  for (int i = 0; i < len - x; i++) {
    ch[k][num++] = ch[k - 1][i];
  }
  ch[k][num] = '\0';
}
int main() {
  scanf("%d", &len);
  scanf("%s", ch[0]);
  while (ch[0][0] == ' ' || ch[0][0] == '\n' || ch[0][0] == '\r')
    scanf("%s", ch[0]);
  scanf("%s", c);
  while (c[0] == ' ' || c[0] == '\n' || c[0] == '\r') scanf("%s", c);
  if (strlen(c) != strlen(ch[0])) {
    printf("-1");
    return 0;
  }
  for (int i = 0; i < len; i++) {
    vis[ch[0][i]]++;
    vis[c[i]]--;
  }
  for (int i = 'a'; i <= 'z'; i++) {
    if (vis[i] != 0) {
      printf("-1");
      return 0;
    }
  }
  int num = 1;
  for (int i = 1; i <= len; i++) {
    for (int j = 0; j <= len - i; j++) {
      if (c[i - 1] == ch[num - 1][j]) {
        ans.push_back(len - j - 1);
        ans.push_back(1);
        ans.push_back(len - 1);
        shift(len - j - 1, num++);
        shift(1, num++);
        shift(len - 1, num++);
        break;
      }
    }
  }
  printf("%d\n", num - 1);
  for (int i = 0; i < ans.size(); i++) printf("%d ", ans[i]);
}
