#include<bits/stdc++.h>
#define PI pair<int,int>
#define endl '\n'
using namespace std;
const int N=5e5+10;
const int M=2e6+10;
const int MOD=1000000007;
const int INF=0x3f3f3f3f;
int s;
int cnt[200000];
queue<int> que;
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
memset(cnt,0x3f,sizeof(cnt));
cin>>s;
cnt[s]=0;
que.push(s);
while(que.size()){
int x=que.front();
que.pop();
string xs=to_string(x);
for(int i=1;i<xs.size();i++){
string xss=xs;
swap(xss[i],xss[i-1]);
int xx=atoi(xss.c_str());
if(cnt[xx]!=INF) continue;
cnt[xx]=cnt[x]+1;
que.push(xx);
}
if(xs.size()>=2){
for(int i=0;i<xs.size();i++){
string xss;
xss+=xs.substr(0,i);
xss+=xs.substr(i+1,xs.size()-i-1);
int xx=atoi(xss.c_str());
if(cnt[xx]!=INF) continue;
cnt[xx]=cnt[x]+1;
que.push(xx);
}
}
for(int i=0;i<xs.size()-1;i++){
char s1=xs[i],s2=xs[i+1];
for(char c=s1+1;c<s2;c++){
string xss;
xss+=xs.substr(0,i+1);
xss+=c;
xss+=xs.substr(i+1,xs.size()-i-1);
int xx=atoi(xss.c_str());
if(xx>s) continue;
if(cnt[xx]!=INF) continue;
cnt[xx]=cnt[x]+1;
que.push(xx);
}
}
}
int nn;
cin>>nn;
while(nn--){
int a;
cin>>a;
if(cnt[a]==INF) cout<<-1<<endl;
else cout<<cnt[a]<<endl;
}
}