#ifdef NACHIA #define _GLIBCXX_DEBUG #else #define NDEBUG #endif #include #include #include #include #include using i64 = long long; using u64 = unsigned long long; #define rep(i,n) for(i64 i=0; i void chmin(A& l, const A& r){ if(r < l) l = r; } template void chmax(A& l, const A& r){ if(l < r) l = r; } using namespace std; void testcase(){ map H; for(i64 i=1; i*i<=1000000000; i++){ string s = to_string(i*i); sort(s.begin(), s.end()); while(s.size() <= 10){ if(H.count(s) == 0) H[s] = i*i; s.insert(s.begin(), '0'); } } i64 T; cin >> T; while(T--){ string s; cin >> s; sort(s.begin(), s.end()); auto f = H.find(s); if(f == H.end()){ cout << "-1\n"; } else { cout << f->second << "\n"; } } } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); testcase(); return 0; }