// まったくわからん

ll euler(ll a){
	ll p=a;
	ll i=2;
	while(a>1){
		if(a%i==0){
			p-=p/i;
		}
		while(a%i==0){
			a/=i;
		}
		++i;
		if(i*i>a){
			i=a;
		}
	}
	return p;
}

ll d[1000];

{
	ll @t;
	rep(t){
		ll @n;
		ll e=euler(2n-1);
		ll m=Divisor(e,d);
		//wtF("n={n} e={e}\n");
		modint x;
		x.setmod(2n-1);
		x=2;
		rep[d](j,m){
			//wt(" j=",j,x**j);
			if(x**j==1){
				wt(j);
				break_continue;
			}
		}
		rep(j,1,1d8){
			if(x**j==1){
				wt(j);
				break_continue;
			}
		}
		wt(0);
	}
}