{-# LANGUAGE BangPatterns #-}
import Data.Bits (xor)
import Data.List (sort)
mex = mexSorted 0 . sort
mexSorted !i xs@(x : xs') | x < i = mexSorted i xs'
mexSorted i xs@(x : xs') | x == i = mexSorted (i + 1) xs'
mexSorted i _ = i
-- |@nimValues !! n@ is the nim-value (aka Sprague-Grundy number) of the game described in
-- http://c...content-available-to-author-only...e.com/questions/16228 on the path with n vertices.
nimValues
= 0 :
1 :
map f
[0 ..] where
-- |Report the values of n (≤ 100) such that the first player loses in the game
-- on the path with n vertices (including 0, meaning the empty graph).
ey0jIExBTkdVQUdFIEJhbmdQYXR0ZXJucyAjLX0KCmltcG9ydCBEYXRhLkJpdHMgKHhvcikKaW1wb3J0IERhdGEuTGlzdCAoc29ydCkKCm1leCA6OiBbSW50XSAtPiBJbnQKbWV4ID0gbWV4U29ydGVkIDAgLiBzb3J0CgptZXhTb3J0ZWQgOjogSW50IC0+IFtJbnRdIC0+IEludAptZXhTb3J0ZWQgIWkgeHNAKHggOiB4cycpIHwgeCA8IGkgPSBtZXhTb3J0ZWQgaSB4cycKbWV4U29ydGVkIGkgeHNAKHggOiB4cycpIHwgeCA9PSBpID0gbWV4U29ydGVkIChpICsgMSkgeHMnCm1leFNvcnRlZCBpIF8gPSBpCgotLSB8QG5pbVZhbHVlcyAhISBuQCBpcyB0aGUgbmltLXZhbHVlIChha2EgU3ByYWd1ZS1HcnVuZHkgbnVtYmVyKSBvZiB0aGUgZ2FtZSBkZXNjcmliZWQgaW4KLS0gaHR0cDovL2MuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmUuY29tL3F1ZXN0aW9ucy8xNjIyOCBvbiB0aGUgcGF0aCB3aXRoIG4gdmVydGljZXMuCgpuaW1WYWx1ZXMgOjogW0ludF0KbmltVmFsdWVzID0gMCA6IDEgOiBtYXAgZiBbMCAuLl0KICB3aGVyZQogICAgZiBzID0gbWV4ICQgemlwV2l0aCB4b3IgKHRha2UgKHMgYGRpdmAgMiArIDEpIG5pbVZhbHVlcykgKHJldmVyc2UgKHRha2UgKHMgKyAxKSBuaW1WYWx1ZXMpKQoKLS0gfFJlcG9ydCB0aGUgdmFsdWVzIG9mIG4gKOKJpCAxMDApIHN1Y2ggdGhhdCB0aGUgZmlyc3QgcGxheWVyIGxvc2VzIGluIHRoZSBnYW1lCi0tIG9uIHRoZSBwYXRoIHdpdGggbiB2ZXJ0aWNlcyAoaW5jbHVkaW5nIDAsIG1lYW5pbmcgdGhlIGVtcHR5IGdyYXBoKS4KCm1haW4gOjogSU8gKCkKbWFpbiA9IHByaW50ICQgbWFwIGZzdCAkIGZpbHRlciAoXChfLCBuaW0pIC0+IG5pbSA9PSAwKSAkIHppcCBbMCA6OiBJbnQgLi4gMTAwXSBuaW1WYWx1ZXM=
[0,3,7,23,27,37,41,57,61,71,75,91,95]