// Author - Sumit
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace std;
#pragma GCC optimize("O3")
#pragma GCC target("avx")
#define ll long long
#define int ll
#define ps push
#define pb emplace_back
#define INF 1LL<<60
#define MOD 1e9+7
#define mp make_pair
#define rep(i,a,b) for (int i = a; i < b; i++)
#define repd(i,a,b) for (int i = a; i >= b; i--)
#define all(v) v.begin(),v.end()
#define pii pair<int,int>
#define F first
#define S second
#define mii map<int,int>
#define vi vector<int>
#define vvi vector<vi>
#define vpii vector<pair<int,int>>
#define itr :: iterator it
#define WL(t) while(t --)
#define gcd(a,b) __gcd((a),(b))
#define lcm(a,b) ((a)*(b))/gcd((a),(b))
#define lower(v,x) (lower_bound(all(v),x)-v.begin())
#define upper(v,x) (upper_bound(all(v),x)-v.begin())
#define debug(x) cout << x << "\n";
#define debug2(x,y) cout << x << " " << y << "\n";
#define debug3(x,y,z) cout << x << " " << y << " " << z << endl;
void solve(){
int n;
cin>>n;
int cnt1[26];
int cnt2[26];
string a,b;
cin>>a>>b;
vector<int> arr1[26];
vector<int> arr2[26];
vector<int> req[26];
set<char> st;
rep(i,0,n){
cnt1[a[i]-'a']++;
cnt2[b[i]-'a']++;
arr1[a[i]-'a'].pb(i);
arr2[b[i]-'a'].pb(i);
st.insert(a[i]);
}
bool flag = true;
int cnt=0;
rep(i,0,n){
if(st.find(b[i])==st.end()){
// Debug(b[i]);
debug(-1);
return;
}
}
vi ans;
rep(i,0,n){
if(a[i]!=b[i]){
req[b[i]-'a'].pb(i);
cnt++;
}
}
cout<<cnt<<"\n";
set<int> s;
repd(i,25,0){
if(req[i].size()!=0){
// cout<<(i+'a')<<" ";
int sz = req[i].size() + arr1[i].size();
cout<<sz<<" ";
for(auto x:req[i]){
cout<<x<<" ";
}
for(auto x:arr1[i]){
cout<<x<<" ";
}
cout<<endl;
}
}
}
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
freopen("error.txt","w",stderr);
#endif
int t=1;
cin>>t;
WL(t){
solve();
}
cerr << "Time elapsed: " << clock() / 1000 << " ms" << endl;
}
Ly8gQXV0aG9yIC0gU3VtaXQgCiAKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxleHQvcGJfZHMvYXNzb2NfY29udGFpbmVyLmhwcD4gCiNpbmNsdWRlIDxleHQvcGJfZHMvdHJlZV9wb2xpY3kuaHBwPiAKdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojcHJhZ21hIEdDQyBvcHRpbWl6ZSgiTzMiKQojcHJhZ21hIEdDQyB0YXJnZXQoImF2eCIpCiAKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBpbnQgbGwKI2RlZmluZSBwcyBwdXNoCiNkZWZpbmUgcGIgZW1wbGFjZV9iYWNrCiNkZWZpbmUgSU5GIDFMTDw8NjAKI2RlZmluZSBNT0QgMWU5KzcgCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgcmVwKGksYSxiKSBmb3IgKGludCBpID0gYTsgaSA8IGI7IGkrKykKI2RlZmluZSByZXBkKGksYSxiKSBmb3IgKGludCBpID0gYTsgaSA+PSBiOyBpLS0pCiNkZWZpbmUgYWxsKHYpIHYuYmVnaW4oKSx2LmVuZCgpCiNkZWZpbmUgcGlpIHBhaXI8aW50LGludD4KI2RlZmluZSBGIGZpcnN0CiNkZWZpbmUgUyBzZWNvbmQKI2RlZmluZSBtaWkgbWFwPGludCxpbnQ+CiNkZWZpbmUgdmkgdmVjdG9yPGludD4KI2RlZmluZSB2dmkgdmVjdG9yPHZpPgojZGVmaW5lIHZwaWkgdmVjdG9yPHBhaXI8aW50LGludD4+CiNkZWZpbmUgaXRyIDo6IGl0ZXJhdG9yIGl0CiNkZWZpbmUgV0wodCkgd2hpbGUodCAtLSkKI2RlZmluZSBnY2QoYSxiKSBfX2djZCgoYSksKGIpKQojZGVmaW5lIGxjbShhLGIpICgoYSkqKGIpKS9nY2QoKGEpLChiKSkKI2RlZmluZSBsb3dlcih2LHgpIChsb3dlcl9ib3VuZChhbGwodikseCktdi5iZWdpbigpKQojZGVmaW5lIHVwcGVyKHYseCkgKHVwcGVyX2JvdW5kKGFsbCh2KSx4KS12LmJlZ2luKCkpCiNkZWZpbmUgZGVidWcoeCkgY291dCA8PCB4IDw8ICJcbiI7CiNkZWZpbmUgZGVidWcyKHgseSkgY291dCA8PCB4IDw8ICIgIiA8PCB5IDw8ICJcbiI7CiNkZWZpbmUgZGVidWczKHgseSx6KSBjb3V0IDw8IHggPDwgIiAiIDw8IHkgPDwgIiAiIDw8IHogPDwgZW5kbDsKIAoKCnZvaWQgc29sdmUoKXsKICAgIGludCBuOwogICAgY2luPj5uOwogICAgaW50IGNudDFbMjZdOwogICAgaW50IGNudDJbMjZdOwogICAgc3RyaW5nIGEsYjsKICAgIGNpbj4+YT4+YjsKICAgIHZlY3RvcjxpbnQ+IGFycjFbMjZdOwogICAgdmVjdG9yPGludD4gYXJyMlsyNl07CiAgICB2ZWN0b3I8aW50PiByZXFbMjZdOwogICAgc2V0PGNoYXI+IHN0OwogICAgcmVwKGksMCxuKXsKICAgICAgICBjbnQxW2FbaV0tJ2EnXSsrOwogICAgICAgIGNudDJbYltpXS0nYSddKys7CiAgICAgICAgYXJyMVthW2ldLSdhJ10ucGIoaSk7CiAgICAgICAgYXJyMltiW2ldLSdhJ10ucGIoaSk7CiAgICAgICAgc3QuaW5zZXJ0KGFbaV0pOwogICAgfQogICAgYm9vbCBmbGFnID0gdHJ1ZTsKICAgIGludCBjbnQ9MDsKICAgIHJlcChpLDAsbil7CiAgICAgICAgaWYoc3QuZmluZChiW2ldKT09c3QuZW5kKCkpewogICAgICAgICAgICAvLyBEZWJ1ZyhiW2ldKTsKICAgICAgICAgICAgZGVidWcoLTEpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQogICAgdmkgYW5zOwogICAgcmVwKGksMCxuKXsKICAgICAgICBpZihhW2ldIT1iW2ldKXsKICAgICAgICAgICAgcmVxW2JbaV0tJ2EnXS5wYihpKTsKICAgICAgICAgICAgY250Kys7CiAgICAgICAgfQogICAgfQogICAgY291dDw8Y250PDwiXG4iOwogICAgc2V0PGludD4gczsKICAgIHJlcGQoaSwyNSwwKXsKICAgICAgICBpZihyZXFbaV0uc2l6ZSgpIT0wKXsKICAgICAgICAgICAgLy8gY291dDw8KGkrJ2EnKTw8IiAiOwogICAgICAgICAgICBpbnQgc3ogPSByZXFbaV0uc2l6ZSgpICsgYXJyMVtpXS5zaXplKCk7CiAgICAgICAgICAgIGNvdXQ8PHN6PDwiICI7CiAgICAgICAgICAgIGZvcihhdXRvIHg6cmVxW2ldKXsKICAgICAgICAgICAgICAgIGNvdXQ8PHg8PCIgIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IoYXV0byB4OmFycjFbaV0pewogICAgICAgICAgICAgICAgY291dDw8eDw8IiAiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvdXQ8PGVuZGw7CiAgICAgICAgfQogICAgfQoKCn0KCiAKc2lnbmVkIG1haW4oKXsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKICAgIGNvdXQudGllKE5VTEwpOwoKICAgICNpZm5kZWYgT05MSU5FX0pVREdFCiAgICBmcmVvcGVuKCJpbnB1dC50eHQiLCJyIixzdGRpbik7CiAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwidyIsc3Rkb3V0KTsKICAgIGZyZW9wZW4oImVycm9yLnR4dCIsInciLHN0ZGVycik7CiAgICAjZW5kaWYKCiAgICBpbnQgdD0xOwogICAgY2luPj50OwogICAgV0wodCl7CiAgICAgICAgc29sdmUoKTsKICAgIH0KCiAgICBjZXJyIDw8ICJUaW1lIGVsYXBzZWQ6ICIgPDwgY2xvY2soKSAvIDEwMDAgPDwgIiBtcyIgPDwgZW5kbDsKfSAgIA==