#include<cstdio>
#include<map>
#define int long long
using namespace std;
map<int,pair<signed,signed> >m;
signed gcd(signed a,signed b){
if(b==0) return a;
return gcd(b,a%b);
}
inline int read(){
int x=0;
char ch=getchar();
while(isdigit(ch)){x=x*10+ch-'0';ch=getchar();}
return x;
}
void init(){
for(signed i=1;i<=1000000;++i){
int tmp=1ll*i*(i+1);
for(signed j=i+2;;j++){
tmp/=gcd(tmp,j);
if(tmp*j>1e18) break;
tmp*=j;
if(!m.count(tmp)) m[tmp]=make_pair(i,j);
}
}
return ;
}
void pl(int q){
int l=1,r=1e9;
while(l<=r){
int mid=(l+r)>>1;
int h=mid*(mid+1);
if(h==q){
m[q]=make_pair(mid,mid+1);
return ;
}else if(h>q) r=mid-1;
else l=mid+1;
}
}
signed z;
int w;
signed main(){
init();
z=read();
for(int i=1;i<=z;++i){
w=read();
if(m.count(w)){
printf("%d %d\n",m[w].first,m[w].second);
continue;
}
pl(w);
if(m.count(w)){
printf("%d %d\n",m[w].first,m[w].second);
continue;
}
printf("NIE\n");
}
return 0;
}