#include <bits/stdc++.h>
#define ll long long
#define ld long double
#define nl "\n"
#define OO 0x3f3f3f3f
using namespace std;

void ta2to2a()
{
    ios_base::sync_with_stdio(false), cout.tie(nullptr), cin.tie(nullptr);
#ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
}
ll n;
vector<ll> factiorals(16);
ll binary(ll x)
{
    return __builtin_popcountll(x);
}
ll powerfulNumbers(int i, ll sum, ll count)
{
    if (i == 16 || factiorals[i] > n)
    {
        return (binary(n - sum) + count);
    }
    return min(powerfulNumbers(i + 1, sum, count), powerfulNumbers(i + 1, sum + factiorals[i], count + 1));
}
void solve()
{
    cin >> n;
    cout << powerfulNumbers(3, 0, 0) << nl;
}
int main()
{
    ta2to2a();
    int t = 1;
    cin >> t;
    ll x = 1LL;
    for (int i = 1; i <= 15; i++)
    {
        x *= i;
        factiorals[i] = x;
    }
    while (t--)
    {
        solve();
    }
}