#include <bits/stdc++.h>
using namespace std;
void solve (int tc) {
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int n = 1000, iterations = 1000;
int favorable = 0, total = 0;
while (iterations--) {
set<int> s;
for (int i = 1; i <= n; i++)
s.insert(i);
while (s.size() > 1) {
vector<int> curr(s.begin(), s.end());
int n = curr.size();
set<int> killed;
for (int i = 0; i < n; i++) {
int j = rng() % (n - 1);
if (j >= i)
j++;
killed.insert(curr[j]);
}
for (int i : killed)
s.erase(i);
}
total++;
if (s.size() == 1)
favorable++;
}
cout << (double)favorable / (double)total << '\n';
}
signed main () {
int t = 1;
// cin >> t;
for (int i = 1; i <= t; i++) {
solve(i);
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIHNvbHZlIChpbnQgdGMpIHsKCW10MTk5Mzcgcm5nKGNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKS50aW1lX3NpbmNlX2Vwb2NoKCkuY291bnQoKSk7CglpbnQgbiA9IDEwMDAsIGl0ZXJhdGlvbnMgPSAxMDAwOwoKCWludCBmYXZvcmFibGUgPSAwLCB0b3RhbCA9IDA7Cgl3aGlsZSAoaXRlcmF0aW9ucy0tKSB7CgkJc2V0PGludD4gczsKCQlmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspCgkJCXMuaW5zZXJ0KGkpOwoJCQoJCXdoaWxlIChzLnNpemUoKSA+IDEpIHsKCQkJdmVjdG9yPGludD4gY3VycihzLmJlZ2luKCksIHMuZW5kKCkpOwoJCQlpbnQgbiA9IGN1cnIuc2l6ZSgpOwoKCQkJc2V0PGludD4ga2lsbGVkOwoKCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKCQkJCWludCBqID0gcm5nKCkgJSAobiAtIDEpOwoJCQkJaWYgKGogPj0gaSkKCQkJCQlqKys7CgkJCQkKCQkJCWtpbGxlZC5pbnNlcnQoY3VycltqXSk7CgkJCX0KCgkJCWZvciAoaW50IGkgOiBraWxsZWQpCgkJCQlzLmVyYXNlKGkpOwoJCX0KCgkJdG90YWwrKzsKCQlpZiAocy5zaXplKCkgPT0gMSkKCQkJZmF2b3JhYmxlKys7Cgl9CgoJY291dCA8PCAoZG91YmxlKWZhdm9yYWJsZSAvIChkb3VibGUpdG90YWwgPDwgJ1xuJzsKfQoKc2lnbmVkIG1haW4gKCkgewoJaW50IHQgPSAxOwoJLy8gY2luID4+IHQ7Cglmb3IgKGludCBpID0gMTsgaSA8PSB0OyBpKyspIHsKCQlzb2x2ZShpKTsKCX0KCQoJcmV0dXJuIDA7Cn0=