#include <bits/stdc++.h>
using namespace std;
using ll = long long;
queue <string> q;
map <string, int> mp;
string s, tt;
void bfs(){
q.push(s);
mp[s] = 1;
while (!q.empty()){
string ss = q.front(); q.pop();
for (int i = 0; i < ss.size() - 1; i ++){
for (int j = i + 1; j < ss.size(); j ++){
string sa = ss; swap(sa[i], sa[j]);
if (mp[sa]) continue;
mp[sa] = mp[ss] + 1;
q.push(sa);
}
}
for (int i = 0; i < ss.size(); i ++){
string sa = ss;
sa.erase(i);
if (mp[sa]) continue;
mp[sa] = mp[ss] + 1;
q.push(sa);
}
if (ss.size() >= s.size()) continue;
for (int i = 1; i < ss.size(); i ++){
for (int j = ss[i - 1] - '0' + 1; j < ss[i] - '0'; j ++){
string ii = to_string(j);
string sa = ss.insert(i, ii);
if (mp[sa]) continue;
mp[sa] = mp[ss] + 1;
q.push(sa);
}
}
}
}
int main(){
cin >> s;
int T;
bfs();
for (cin >> T; T --; ){
cin >> tt;
if (mp[tt]) cout << mp[tt] - 1 << endl;
else puts("-1");
}
}