#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;
 }
}