#nowarn "40" let ``No.7 プライムナンバーゲーム`` () = let rec primes = Seq.cache <| seq { yield 2; yield! Seq.unfold nextPrime 3 } and nextPrime n = if isPrime n then Some(n, n + 2) else nextPrime(n + 2) and isPrime n = if n >= 2 then primes |> Seq.tryFind (fun x -> n % x = 0 || x * x > n) |> fun x -> x.Value * x.Value > n else false let f N = let dp = [| yield 1; yield 1; for i in 2..N -> 0; |] let ps = primes |> Seq.takeWhile ((>=)N) |> Seq.toList let rec f i = function | p::ps -> if p <= i then if dp.[i-p] = 0 then dp.[i] <- 1 else f i ps | [] -> () for i in 2..N do f i ps dp.[N] printfn "%s" ["Lose";"Win"].[f (int(stdin.ReadLine()))] ``No.7 プライムナンバーゲーム`` ()