#include <iostream> #include <set> #include <algorithm> #include <cstring> #define mp make_pair using namespace std; set<int> st[10]; void pre() { st[0].insert(5); st[0].insert(1); st[0].insert(4); st[1].insert(0); st[1].insert(2); st[1].insert(6); st[2].insert(1); st[2].insert(7); st[2].insert(3); st[3].insert(2); st[3].insert(4); st[3].insert(8); st[4].insert(3); st[4].insert(0); st[4].insert(9); // st[0+5].insert(0); st[0+5].insert(7); st[0+5].insert(8); st[1+5].insert(1); st[1+5].insert(8); st[1+5].insert(9); st[2+5].insert(2); st[2+5].insert(5); st[2+5].insert(9); st[3+5].insert(3); st[3+5].insert(6); st[3+5].insert(5); st[4+5].insert(4); st[4+5].insert(7); st[4+5].insert(6); } void pr(string s) { for(int i=s.size()-1;i>=0;i--) cout<<s[i]; } void solve() { string s; cin>>s; int len = (int)(s.size()); int vt[s.size()]; for(int i=0;i<s.size();i++) vt[i]=s[i]-'A'; bool ok1=true, ok2=true; string ans1="", ans2=""; ans1+=((char)(vt[len-1]+'0')); for(int i=s.size()-2;i>=0;i--) { if(st[vt[i]].find(vt[i+1]) != st[vt[i]].end()) { ans1+=((char)(vt[i]+'0')); } else if(st[vt[i]+5].find(vt[i+1]) != st[vt[i]+5].end()) { ans1+=((char)(vt[i]+5+'0')); vt[i]+=5; } else { ok1=false; break; } } // for(int i=0;i<s.size();i++) vt[i]=s[i]-'A'; ans2+=((char)(vt[len-1]+'0'+5)); vt[s.size()-1]+=5; for(int i=s.size()-2;i>=0;i--) { if(st[vt[i]].find(vt[i+1]) != st[vt[i]].end()) { ans2+=((char)(vt[i]+'0')); } else if(st[vt[i]+5].find(vt[i+1]) != st[vt[i]+5].end()) { ans2+=((char)(vt[i]+5+'0')); vt[i]+=5; } else { ok2=false; break; } } if(ok1) pr(ans1); else if(ok2) pr(ans2); else cout<<"-1"; cout<<"\n"; } int main() { ios_base::sync_with_stdio(false); pre(); int t; cin>>t; while(t--) solve(); }