#include using namespace std; using ll=long long; bool DEB=0; void naive(){ } using vll=vector; #define rep(i,n) for(int i=0;i 0; x -= x & -x) { ret += bit[x-1]; } return ret; } ll sum(ll L, ll R) { return sum(R) - sum(L); } }; //順列Aの転倒数. ll TE(vll A) { ll res = 0; ll N = A.size(); Fenwick_tree fw(N); rep(i, N) { res += i - fw.sum(A[i]); fw.add(A[i], 1); } return res; } //数列A,Bの転倒数 ll TTE(vll A,vll B){ ll res=0; ll N=A.size(); map PB; rep(i,N){ PB[B[i]].push_back(i); } vll CA(N); for(ll n=N-1;n>=0;n--){ CA[n]=PB[A[n]].back(); PB[A[n]].pop_back(); } return TE(CA); } vector V(vector D){ int N=D.size(); vector R(N); int cnt=0; for(int i=0;i>N; string A,B; cin>>A>>B; if(A[0]!=B[0]||A[N-1]!=B[N-1]){ cout<<-1<<"\n"; return; } vector D(N-1),E(N-1); ll c=0; for(int i=0;i>T; while(T--)solve(); }