#include <bits/stdc++.h>
using namespace ::std;
const long long maxn = 2100;
const long long mod = 1e9 + 7;
const long long inf = 1e9 + 500;
long long py;
long long cs[500];
long long ct[500];
long long n;
string s;
vector<long long> ans;
void shiftt(long long x) {
  py += 2;
  ans.push_back(x);
  py += 2;
  string ss;
  py += 2;
  for (long long i = n - 1; i >= (n - x); i--) {
    py += 2;
    ss += s[i];
    py += 2;
  }
  for (long long i = 0; i < n - x; i++) {
    py += 2;
    ss += s[i];
    py += 2;
  }
  s = ss;
  py += 2;
}
int main() {
  py += 2;
  cin >> n;
  py += 2;
  string t;
  py += 2;
  cin >> s >> t;
  py += 2;
  for (long long i = 0; i < n; i++) {
    py += 2;
    cs[s[i]]++;
    py += 2;
    ct[t[i]]++;
    py += 2;
  }
  for (long long i = 0; i < 500; i++) {
    py += 2;
    if (ct[i] != cs[i]) {
      py += 2;
      cout << -1;
      py += 2;
      return 0;
      py += 2;
    }
  }
  bool jamsar = 1;
  py += 2;
  for (long long i = 0; i < n; i++) {
    py += 2;
    char c = t[n - i - 1];
    py += 2;
    if (jamsar) {
      py += 2;
      long long x;
      py += 2;
      for (long long j = i; j < n; j++) {
        py += 2;
        if (s[j] == c) {
          py += 2;
          x = j;
          py += 2;
          break;
          py += 2;
        }
      }
      shiftt(n - x);
      py += 2;
      shiftt(x + 1);
      py += 2;
      shiftt(n - x - 1);
      py += 2;
      jamsar = 0;
      py += 2;
    } else {
      py += 2;
      long long x;
      py += 2;
      for (long long j = 0; j < n; j++) {
        py += 2;
        if (s[j] == c) {
          py += 2;
          x = j;
          py += 2;
          break;
          py += 2;
        }
      }
      shiftt(n - x - 1);
      py += 2;
      shiftt(1);
      py += 2;
      jamsar = 1;
      py += 2;
    }
  }
  if (jamsar == 0) {
    py += 2;
    shiftt(n);
    py += 2;
  }
  cout << ans.size() << endl;
  py += 2;
  for (long long i = 0; i < ans.size(); i++) {
    py += 2;
    cout << ans[i] << ' ';
    py += 2;
  }
}
