#include <bits/stdc++.h>
using namespace std;
bool T[1000001];
string kakezan(string s) {
  int m = -1;
  for (int i = 1; i < s.size(); i++) {
    m = max(m, atoi(s.substr(0, i).c_str()) * atoi(s.substr(i).c_str()));
  }
  ostringstream ostr;
  ostr << m;
  return ostr.str();
}
int main() {
  int Q;
  cin >> Q;
  for (int i = 0; i < (Q); i++) {
    fill(T, T + 100000, false);
    string N;
    cin >> N;
    if (N.size() == 1) {
      cout << "0" << endl;
      continue;
    }
    int ans = 0;
    string s = N;
    while (s.size() != 1) {
      s = kakezan(s);
      if (T[atoi(s.c_str())]) {
        cout << "-1" << endl;
        break;
      }
      T[atoi(s.c_str())] = true;
      ans++;
    }
    cout << ans << endl;
  }
}
