#include using namespace std; using i32 = int; using i64 = long long; #define int i64 vector convert(int n) { vector vals; while (n) { if (n % 10 != 0) { vals.push_back(n % 10); } n /= 10; } sort(vals.begin(), vals.end()); return vals; } bool compare(vector &first, vector &second) { if (first.size() != second.size()) { return false; } for (int i = 0; i < first.size(); i++) { if (first[i] != second[i]) { return false; } } return true; } signed main() { map, int> simps; vector nums; for (int i = 0; i * i <= 1e9; i++) { auto result = convert(i * i); if (!simps.count(convert(i * i))) { simps[result] = i * i; } } int t; cin >> t; while (t--) { int n; cin >> n; vector voip = convert(n); if (simps.count(voip)) { cout << simps[voip] << endl; } else { cout << -1 << endl; } } }