#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9 + 1;
const int MOD = 1e9 + 7;
const int MAXN = 4000;
int N;
char s[MAXN], t[MAXN];
char tmp[MAXN];
int cnt[30];
vector<int> ans;
void shift(int k) {
  ans.push_back(k);
  strcpy(tmp, s);
  for (int i = 0; i < k; ++i) {
    s[i] = tmp[N - i - 1];
  }
  for (int i = k; i < N; ++i) {
    s[i] = tmp[i - k];
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  scanf("%d", &N);
  scanf("%s", s);
  scanf("%s", t);
  for (int i = 0; i < N; ++i) {
    ++cnt[s[i] - 'a'];
    --cnt[t[i] - 'a'];
  }
  for (int i = 'a'; i <= 'z'; ++i) {
    if (cnt[i - 'a'] != 0) {
      puts("-1");
      return 0;
    }
  }
  int pref = 0;
  while (pref < N) {
    for (int i = 0; i < N - pref; ++i) {
      if (s[i] == t[pref]) {
        shift(N - i - 1);
        shift(1);
        shift(N);
        ++pref;
        break;
      }
    }
  }
  assert(!strcmp(s, t));
  printf("%lu\n", ans.size());
  for (auto num : ans) {
    printf("%d ", num);
  }
  return 0;
}
