#include <bits/stdc++.h>   using namespace std;   const int oo = 0x3f3f3f3f;   const int MAXN = 200010;   const double EPS = 1e-7;   inline int read() {     char c = getchar();     int x = 0, f = 1;     while (c <  0  || c >  9 ) {       if (c ==  - ) f = -1;       c = getchar();     }     while (c >=  0  && c <=  9 ) {       x = x * 10 + (c -  0 );       c = getchar();     }     return x * f;   }   char s[55], t[55];   int cnt[30], vis[55];   vector<int> pos[30];   vector<int> ans;   int main() {     int n = read();     scanf( %s , s + 1);     scanf( %s , t + 1);     for (int i = 1; i <= n; i++) cnt[s[i] -  a ]++;     for (int i = 1; i <= n; i++) pos[t[i] -  a ].push_back(i);     int flag = 1;     for (int i = 0; i < 26; i++)       if (cnt[i] != (int)((pos[i]).size())) flag = 0;     if (flag) {       for (int i = 1; i <= n; i++) {         for (int j = i; j <= n; j++) {           if (s[j] == t[i]) {             for (int k = j - 1; k >= i; k--) {               swap(s[k], s[k + 1]);               ans.push_back(k);             }             break;           }         }       }       cout << (int)((ans).size()) << endl;       for (int i = 0; i < (int)((ans).size()); i++) cout << ans[i] <<    ;     } else       puts( -1 );     return 0;   }   