#include <bits/stdc++.h>
using namespace std;
int n, rev, l, r = -1;
char s[2020], t[2020];
vector<int> res;
void add(int l) {
  if (l == 0) return;
  res.push_back(l);
  reverse(s + (n - l), s + n);
  int rt = (n - l) % n;
  rotate(s, s + rt, s + n);
}
int main() {
  scanf("%d%s%s", &n, s, t);
  for (int i = 0; i < n; i++) {
    int pos = -1;
    char g;
    if (!rev)
      g = t[++r];
    else {
      l = (l + n - 1) % n;
      g = t[l];
    }
    for (int j = i; j < n; j++) {
      if (s[j] == g) {
        pos = j;
        break;
      }
    }
    if (pos == -1) {
      puts("-1");
      return 0;
    }
    int l = n - pos;
    add(l);
    add(n - i - l);
    add(i + 1);
    rev = 1 - rev;
  }
  if (!rev) add(n);
  add(r + 1);
  add(n - r - 1);
  add(n);
  printf("%d\n", res.size());
  for (auto &it : res) printf("%d ", it);
  return 0;
}
