#include #include #include using namespace std; using ll = long long; using ull = unsigned long long; static inline ll fast_read() { int c = getchar_unlocked(); while (c == ' ' || c == '\t' || c == '\n' || c == '\r' || c == '\v' || c == '\f') { c = getchar_unlocked(); } bool negative = false; if (c == '-' || c == '+') { negative = c == '-'; c = getchar_unlocked(); } ull value = 0; while ('0' <= c && c <= '9') { value = value * 10 + (ull)(c - '0'); c = getchar_unlocked(); } if (c != EOF) { ungetc(c, stdin); } return negative ? -(ll)value : (ll)value; } int main() { ll n; n = fast_read(); const int c64 = 1 << 6; vector> dp(2, vector(c64, 0.0)); dp[0][0] = 1.0; for (ll i = 0; i < n; i++) { for (int k = 0; k < c64; k++) { dp[(i + 1) % 2][k] = 0.0; } for (int flag = 0; flag < c64; flag++) { double v = dp[i % 2][flag]; for (int dice = 0; dice < 6; dice++) { dp[(i + 1) % 2][flag | (1 << dice)] += v / 6.0; } } } char buf[64]; *to_chars(buf, buf + sizeof buf, dp[n % 2][c64 - 1]).ptr = '\0'; printf("%s\n", buf); }