#include <bits/stdc++.h>
using namespace std;
using ll = long long;
string solve(ll p)
{
ll a = 1, b = 1, m = p/2; bool found = false;
if (p == 2)
found = true;
const auto square = [](ll l2, ll& l)
{
l = sqrt(l2); return l*l == l2;
};
if (not found and m%2 == 0)
for (ll k = 0, l, l2, q = m/2; (l2 = q-k*(k+1)) > 0; ++k)
if (square(l2,l))
{
if ((a = 2*k+1) > (b = 2*l))
swap(a,b);
found = true; break;
}
return found ? to_string(a) + ' ' + to_string(b) : "Impossible";
}
int main()
{
int T; vector<ll> P; set<ll> query; map<ll,string> answer;
ios_base::sync_with_stdio(false),
cin.tie(nullptr), cout.tie(nullptr),
cin >> T, P.resize(T);
for (int i = 0; i < T; ++i)
cin >> P[i], query.insert(P[i]);
for (auto p: query)
answer[p] = solve(p);
for (int i = 0, j = 1; i < T; i = j++)
cout << "Case " << j << ": " << answer[P[i]] << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdXNpbmcgbGwgPSBsb25nIGxvbmc7CgpzdHJpbmcgc29sdmUobGwgcCkKeyAgICAKCWxsIGEgPSAxLCBiID0gMSwgbSA9IHAvMjsgYm9vbCBmb3VuZCA9IGZhbHNlOyAKCQogICAgaWYgKHAgPT0gMikKICAgIAlmb3VuZCA9IHRydWU7CgoJY29uc3QgYXV0byBzcXVhcmUgPSBbXShsbCBsMiwgbGwmIGwpCiAgICB7ICAgIAogICAgICAgIGwgPSBzcXJ0KGwyKTsgcmV0dXJuIGwqbCA9PSBsMjsKICAgIH07CiAgICAKICAgIGlmIChub3QgZm91bmQgYW5kIG0lMiA9PSAwKQogICAgICAgIGZvciAobGwgayA9IDAsIGwsIGwyLCBxID0gbS8yOyAobDIgPSBxLWsqKGsrMSkpID4gMDsgKytrKQogICAgICAgICAgICBpZiAoc3F1YXJlKGwyLGwpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAoKGEgPSAyKmsrMSkgPiAoYiA9IDIqbCkpCiAgICAgICAgICAgICAgICAgICAgc3dhcChhLGIpOwogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOyBicmVhazsgCiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICByZXR1cm4gZm91bmQgPyB0b19zdHJpbmcoYSkgKyAnICcgKyB0b19zdHJpbmcoYikgOiAiSW1wb3NzaWJsZSI7Cn0KCmludCBtYWluKCkgCnsKICAgIGludCBUOyB2ZWN0b3I8bGw+IFA7IHNldDxsbD4gcXVlcnk7IG1hcDxsbCxzdHJpbmc+IGFuc3dlcjsgIAogCiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKSwgCiAgICBjaW4udGllKG51bGxwdHIpLCBjb3V0LnRpZShudWxscHRyKSwgCiAgICBjaW4gPj4gVCwgUC5yZXNpemUoVCk7CiAgICAKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVDsgKytpKQogICAgICAgIGNpbiA+PiBQW2ldLCBxdWVyeS5pbnNlcnQoUFtpXSk7CiAgICAKICAgIGZvciAoYXV0byBwOiBxdWVyeSkKICAgICAgICBhbnN3ZXJbcF0gPSBzb2x2ZShwKTsgCiAgICAKICAgIGZvciAoaW50IGkgPSAwLCBqID0gMTsgaSA8IFQ7IGkgPSBqKyspCiAgICAgICAgY291dCA8PCAiQ2FzZSAiIDw8IGogPDwgIjogIiA8PCBhbnN3ZXJbUFtpXV0gPDwgJ1xuJzsKfQ==