#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e6 + 10;
const int mod=32768;
int n,m,ans=0x3fffffff,vis[N];
struct node{
int num,t;
};
void bfs(int x){
ans=0x3fffffff;
memset(vis,0,sizeof(vis));
queue<node> q;
q.push({x,0});
vis[x]=1;
while(!q.empty()){
node tmp=q.front();
q.pop();
if(tmp.num>mod) continue;
if(tmp.num==mod){
ans=min(tmp.t,ans);
}
if(!vis[tmp.num*2]&&tmp.num*2<=mod){
vis[tmp.num*2]=1;
q.push({tmp.num*2,tmp.t+1});
}
if(!vis[tmp.num+1]&&tmp.num+1<=mod){
vis[tmp.num+1]=1;
q.push({tmp.num+1,tmp.t+1});
}
}
}
signed main() {
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
cin>>n;
while(n--){
cin>>m;
if(m==0) cout<<"0 ";
else {
bfs(m);
cout<<ans<<" ";
}
}
return 0;
}