#include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; #define rep(i, n) for (int i = 0; i < (int)(n); i++) #include string cnt_kazus(int n) { string cnt(10, '0'); while (n) { cnt[n % 10]++; if (n%10 == 0){ cnt[0]--; } n /= 10; } return cnt; } int main(){ int T; cin >> T; unordered_map mins; for (int i = 0;; i++) { int crr = 1LL * i * i; if (crr > 1e9) break; string cnt = cnt_kazus(crr); if (mins.count(cnt)) { mins[cnt] = min(mins[cnt], crr); } else { mins[cnt] = crr; } } while (T--) { int N; cin >> N; string cnt = cnt_kazus(N); if (mins.count(cnt)) { cout << mins[cnt] << endl; } else { cout << -1 << endl; } } }