#include<iostream>
#include<math.h>
using namespace std;
long long sqrts(long long o) {
return ceil(sqrt(o));
}
long long sqrtd(long long o) {
return floor(sqrt(o));
}
long long jie(long long o) {
long long e = 1;
if (o >= 15) return -1;
for (long long i = 1; i <= o; i++) {
e *= i;
}
return e;
}
int main() {
long long n, a, b;
cin >> n;
for (long long j = 0; j < n; j++) {
cin >> a >> b;
long long e[8] = {0, 0, 0, 0, 0, 0, 0, 1}, p = a, t = 0;
if (a == b) {
cout << 0<<endl;
continue;
}
while (e[0] < 1) {
a = p;
for (long long i = 1; i <= 7; i++) {
if (e[i] == 1) a = jie(a);
if (e[i] == 2) a = sqrts(a);
if (e[i] == 3) a = sqrtd(a);
}
if (a == b) {
long long sum = 0;
a = p;
for (long long i = 1; i <= 7; i++)
if (e[i] != 0) sum++;
cout<<sum<<endl;
t = 1;
break;
}
e[7]++;
for (long long i = 7; i > 0; i--) {
if (e[i] > 3) e[i] = 0, e[i - 1]++;
}
if (a == -1 || a == 0 || a == 1) continue;
}
if (t != 1) cout<<-1<<endl;
}
}