#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define initial first
#define added second
#define EGRY \
ios_base::sync_with_stdio(false); \
cin.tie(NULL);
const int MAX = 100 + 50;
const int MOD = 998244353;
const int OO = INT_MAX;
const double EPS = (double)1e-9;
void solve()
{
string n, org;
cin >> n;
vector<string> p;
org = n;
sort(n.begin(), n.end());
do
{
p.push_back(n);
} while (next_permutation(n.begin(), n.end()));
double fact = (int)p.size();
if (org == p[fact - 1])
{
cout << fixed << setprecision(9) << 0.0 << endl;
return;
}
double res = 1.0 / fact;
if (org == p[fact - 2])
{
cout << fixed << setprecision(9) << res << endl;
return;
}
for (int i = fact - 3; i >= 0; i--)
{
res = res + (1.0 / fact) * res;
if (p[i] == org)
{
cout << fixed << setprecision(9) << res << endl;
}
}
}
int main()
{
EGRY int t = 1;
cin >> t;
while (t--)
{
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBpbml0aWFsIGZpcnN0CiNkZWZpbmUgYWRkZWQgc2Vjb25kCgojZGVmaW5lIEVHUlkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBcCiAgICBjaW4udGllKE5VTEwpOwoKY29uc3QgaW50IE1BWCA9IDEwMCArIDUwOwpjb25zdCBpbnQgTU9EID0gOTk4MjQ0MzUzOwpjb25zdCBpbnQgT08gPSBJTlRfTUFYOwoKY29uc3QgZG91YmxlIEVQUyA9IChkb3VibGUpMWUtOTsKCnZvaWQgc29sdmUoKQp7CiAgICBzdHJpbmcgbiwgb3JnOwogICAgY2luID4+IG47CiAgICB2ZWN0b3I8c3RyaW5nPiBwOwoKICAgIG9yZyA9IG47CiAgICBzb3J0KG4uYmVnaW4oKSwgbi5lbmQoKSk7CgogICAgZG8KICAgIHsKICAgICAgICBwLnB1c2hfYmFjayhuKTsKICAgIH0gd2hpbGUgKG5leHRfcGVybXV0YXRpb24obi5iZWdpbigpLCBuLmVuZCgpKSk7CgogICAgZG91YmxlIGZhY3QgPSAoaW50KXAuc2l6ZSgpOwoKICAgIGlmIChvcmcgPT0gcFtmYWN0IC0gMV0pCiAgICB7CiAgICAgICAgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oOSkgPDwgMC4wIDw8IGVuZGw7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGRvdWJsZSByZXMgPSAxLjAgLyBmYWN0OwoKICAgIGlmIChvcmcgPT0gcFtmYWN0IC0gMl0pCiAgICB7CiAgICAgICAgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oOSkgPDwgcmVzIDw8IGVuZGw7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGZvciAoaW50IGkgPSBmYWN0IC0gMzsgaSA+PSAwOyBpLS0pCiAgICB7CiAgICAgICAgcmVzID0gcmVzICsgKDEuMCAvIGZhY3QpICogcmVzOwogICAgICAgIGlmIChwW2ldID09IG9yZykKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKDkpIDw8IHJlcyA8PCBlbmRsOwogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKQp7CiAgICBFR1JZIGludCB0ID0gMTsKICAgIGNpbiA+PiB0OwoKICAgIHdoaWxlICh0LS0pCiAgICB7CiAgICAgICAgc29sdmUoKTsKICAgIH0KICAgIHJldHVybiAwOwp9Cg==