func_code_string: #include <bits/stdc++.h>   #pragma warning(disable : 4996)   FILE *in = stdin, *out = stdout;   using namespace std;   int n, ans[100005], N;   int alpha[30];   char a[2005], b[2005], c[2005];   void input() {     fscanf(in,  %d , &n);     fscanf(in,  %s , &a[1]);     fscanf(in,  %s , &b[1]);   }   int most_fit(int start) {     for (int i = (start); i <= (n); i++)       if (a[i] == b[start]) return i;     return 0;   }   void method1(int l, int r) {     ans[++N] = r;     ans[++N] = l;     ans[++N] = r;     for (int i = (1); i <= (r); i++) c[i] = a[l + i];     int t = l;     for (int i = (r + 1); i <= (n); i++) c[i] = a[t--];     for (int i = (1); i <= (n); i++) a[i] = c[i];   }   void method2(int A, int B, int C) {     ans[++N] = C;     ans[++N] = A + B;     ans[++N] = C;     ans[++N] = A;     for (int i = (A + 1); i <= (A + C); i++) c[i] = a[i + B];     int t = A + B;     for (int i = (A + C + 1); i <= (n); i++) c[i] = a[t--];     for (int i = (A + 1); i <= (n); i++) a[i] = c[i];   }   void pro() {     for (int i = (1); i <= (n); i++) alpha[a[i] -  a ]++, alpha[b[i] -  a ]--;     for (int i = (0); i <= (25); i++)       if (alpha[i] != 0) {         fprintf(out,  -1 );         return;       }     for (int i = (1); i <= (n); i++) {       for (int j = (i); j <= (n); j++) {         if (a[j] == b[n - i + 1]) {           ans[++N] = n;           ans[++N] = j - 1;           ans[++N] = 1;           c[1] = a[j];           for (int k = (2); k <= (j); k++) c[k] = a[k - 1];           int t = n;           for (int k = (j + 1); k <= (n); k++) c[k] = a[t--];           for (int k = (1); k <= (n); k++) a[k] = c[k];           break;         }       }     }     fprintf(out,  %d n , N);     for (int i = (1); i <= (N); i++) {       fprintf(out,  %d  , ans[i]);     }   }   int main() {     input();     pro();     return 0;   }   