#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() { vector> simps; vector nums; for (int i = 0; i * i <= 1e9; i++) { simps.emplace_back(convert(i * i)); nums.push_back(i * i); } int t; cin >> t; while (t--) { int n; cin >> n; vector voip = convert(n); int result = INT64_MAX; for (int i = 0; i < nums.size(); i++) { if (compare(voip, simps[i])) { result = min(nums[i], result); } } if (result == INT64_MAX) { result = -1; } cout << result << endl; } }