module Main; import CPLib.Bits::bit_set; import CPLib.IO; main : IO () = ( let n = *read_i; let c64 = 1.shift_left(6); let cur = fill(c64, 0.0).set(0, 1.0); let nxt = fill(c64, 0.0); let (cur, _) = range(0, n).fold((cur, nxt), |_, (cur, nxt)| let nxt = range(0, c64).fold(nxt, |i, nxt| nxt.set(i, 0.0)); let nxt = range(0, c64).fold(nxt, |flag, nxt| let v = cur.@(flag); range(0, 6).fold(nxt, |dice, nxt| nxt.mod(flag.bit_set(dice), add(v / 6.0))) ); (nxt, cur) ); cur.@(c64 - 1).to_string.println;; pure() );