#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();
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBubCAiXG4iCiNkZWZpbmUgT08gMHgzZjNmM2YzZgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCB0YTJ0bzJhKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSksIGNvdXQudGllKG51bGxwdHIpLCBjaW4udGllKG51bGxwdHIpOwojaWZuZGVmIE9OTElORV9KVURHRQogICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwojZW5kaWYKfQpsbCBuOwp2ZWN0b3I8bGw+IGZhY3Rpb3JhbHMoMTYpOwpsbCBiaW5hcnkobGwgeCkKewogICAgcmV0dXJuIF9fYnVpbHRpbl9wb3Bjb3VudGxsKHgpOwp9CmxsIHBvd2VyZnVsTnVtYmVycyhpbnQgaSwgbGwgc3VtLCBsbCBjb3VudCkKewogICAgaWYgKGkgPT0gMTYgfHwgZmFjdGlvcmFsc1tpXSA+IG4pCiAgICB7CiAgICAgICAgcmV0dXJuIChiaW5hcnkobiAtIHN1bSkgKyBjb3VudCk7CiAgICB9CiAgICByZXR1cm4gbWluKHBvd2VyZnVsTnVtYmVycyhpICsgMSwgc3VtLCBjb3VudCksIHBvd2VyZnVsTnVtYmVycyhpICsgMSwgc3VtICsgZmFjdGlvcmFsc1tpXSwgY291bnQgKyAxKSk7Cn0Kdm9pZCBzb2x2ZSgpCnsKICAgIGNpbiA+PiBuOwogICAgY291dCA8PCBwb3dlcmZ1bE51bWJlcnMoMywgMCwgMCkgPDwgbmw7Cn0KaW50IG1haW4oKQp7CiAgICB0YTJ0bzJhKCk7CiAgICBpbnQgdCA9IDE7CiAgICBjaW4gPj4gdDsKICAgIGxsIHggPSAxTEw7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSAxNTsgaSsrKQogICAgewogICAgICAgIHggKj0gaTsKICAgICAgICBmYWN0aW9yYWxzW2ldID0geDsKICAgIH0KICAgIHdoaWxlICh0LS0pCiAgICB7CiAgICAgICAgc29sdmUoKTsKICAgIH0KfQ==