#include using namespace std; int main() { map> mp; for (int i = 1; i * i <= 1e9; i++) { string s = to_string(i * i); sort(s.begin(), s.end()); mp[stoi(s)].push_back(i * i); } int T; cin >> T; while (T--) { int N; cin >> N; string s = to_string(N); sort(s.rbegin(), s.rend()); while (s.back() == '0') { s.pop_back(); } reverse(s.begin(), s.end()); cout << (mp.contains(stoi(s)) ? *min_element(mp[stoi(s)].begin(), mp[stoi(s)].end()) : -1) << endl; } return 0; }