#include <bits/stdc++.h>
using namespace std;
using LL = long long;
using STR = string;
using CAR = char;
int main() {
  int n;
  STR s, t;
  cin >> n >> s >> t;
  STR order;
  int i = n / 2;
  int d = -1;
  while (i >= 0 && i < n) {
    order.push_back(t[i]);
    i += d;
    if (d < 0)
      d = -d + 1;
    else
      d = -d - 1;
  }
  int sz = 0;
  vector<int> ans;
  while (sz < n) {
    int tar = order[sz];
    int j = -1;
    for (int i = sz; i < n; ++i)
      if (s[i] == tar) j = i;
    if (j == -1) break;
    ans.push_back(n - 1 - j);
    ans.push_back(j - sz + 1);
    ans.push_back(sz);
    STR a = s.substr(0, sz), b = s.substr(sz, j - sz + 1),
        c = s.substr(j + 1, n - 1 - j);
    reverse(a.begin(), a.end());
    reverse(b.begin(), b.end());
    reverse(c.begin(), c.end());
    s = a + b + c;
    sz++;
  }
  if (sz == n) {
    if (s != t) ans.push_back(n);
    cout << ans.size() << endl;
    for (int i = 0; i < ans.size(); ++i) {
      cout << ans[i];
      if (i < ans.size() - 1) cout << " ";
    }
  } else
    cout << "-1";
}
