module Main; import CPLib.Bits::bit_set; import CPLib.IO; main : IO () = ( let n = *read_i; let c64 = 1.shift_left(6); let dp = fill(2, fill(c64, 0.0)); let dp = dp[0][0].iset(1.0); let dp = range(0, n).fold(dp, |n, dp| let dp = dp[(n+1)%2].imod(|arr| range(0, c64).fold(arr, |i, arr| arr[i].iset(0.0))); range(0, c64).fold(dp, |flag, dp| let v = dp.@(n%2).@(flag); range(0, 6).fold(dp, |dice, dp| let flag = flag.bit_set(dice); dp[(n+1)%2][flag].imod(add(v / 6.0)) ) ) ); dp.@(n%2).@(c64-1).to_string.println;; pure() );