master
Matthew Butterick 4 years ago
parent 7fea07bd11
commit 49f2419361

@ -0,0 +1,61 @@
#lang br
(require racket/file rackunit)
(define (lex-1 port)
(match (regexp-match #rx"^se|nw|sw|ne|w|e" port)
[#false eof]
[(list str) str]))
(define tokss (for/list ([ln (in-list (file->lines "24.rktd"))])
(for/list ([tok (in-port lex-1 (open-input-string ln))])
tok)))
(define (tok->delta tok)
(match tok
[#"w" -1]
[#"e" 1]
[#"nw" -i]
[#"ne" 1-i]
[#"sw" -1+i]
[#"se" +i]))
(define white -1)
(define black 1)
(define black? positive?)
(define (make-initial-floor tokss)
(define floor (make-hasheqv))
(for ([toks (in-list tokss)])
(hash-update! floor (apply + (map tok->delta toks)) - white))
floor)
(define deltas '(1 -1 -i 1-i -1+i +i))
(define (grow! floor)
(for* ([k (in-list (hash-keys floor))]
[delta (in-list deltas)])
(hash-ref! floor (+ k delta) white)))
(define (adjacent-black-tiles floor k)
(for/sum ([delta (in-list deltas)]
#:when (black? (hash-ref floor (+ k delta) white)))
1))
(define (iterate floor num)
(for ([i (in-range num)])
(grow! floor)
(define fliplist
(for/list ([(k v) (in-hash floor)]
#:when (let ([abt (adjacent-black-tiles floor k)])
(cond
[(and (black? v) (or (zero? abt) (< 2 abt)))]
[(and (not (black? v)) (= 2 abt))]
[else #false])))
k))
(for ([k (in-list fliplist)])
(hash-update! floor k -)))
floor)
(define floor (make-initial-floor tokss))
(check-equal? (count black? (hash-values floor)) 436)
(check-equal? (count black? (hash-values (iterate floor 100))) 4133)

@ -0,0 +1,492 @@
seesweseseeeeeeeeeenweeee
wswneseseseswseswseseseseswsesesesesese
senwnesenenesenwseseswnwnwwnewnenwnew
neseeseseseseseseseseseenwseseeseswe
neswnweweeeeeeweese
nenenwnenwnenenenenenenenenenenesenwne
sesesesesenesesesesenwseseseseseewee
eeeeesesweeweseeeeneeeeenw
neswwnesenenenenenwenenenenesenesenenwne
wseseeseenwsesesesesesesesesesesesese
newneeneeseenweenenee
eeeneeeeneneneneneswneeneenewenw
nwewwnwwwwnwwwwwswnwwnwwewnww
wnwswswwsewnenwnwnweneswnwseenenwnwwnw
enwnwseswnenenwnwnwnwnwnenwnwnenwnwnwnwnw
swsesenewnwsenewseneswswswseseswswsesw
seseswseseneeenwwseeseseswse
sweeeeneneweeeeeeeneeseee
newwwswwnwsewwsewsww
wwswsweneswewseswswswswnwnesweswnesw
neneneneeenewnwnewsweeneeseeneese
swwwswswsewseseswseswenesewseseene
nweeesewwwsweseee
wwnwwnwnesenwsenwnwsenwwnwwnwnwswsenene
esesenwseswnwwseneeseenwswswswswsesese
wswswswswswnwswnweswnwswnwswswseswswese
swswnwneswswswswswswsweswswswswnewswswsw
seneseeswswnwswseswseseseseswswsenesew
swseseseseseseseeswsesesesenwsesese
seswswseseswswenenwswseswseseswnwsewnwse
seswsesesesesesesewseneseneswseseseswsese
sesenewnenenewneneneneenenenenenenwnene
wnenwenwneswsewsesenwwewwswwswe
swwseswswswswneseswseseswneswswsesesewse
nesenenenwneneeswnewneneswnenenenenenene
esesewseeneseneseweenwnwneseeswewe
nwsewwnwnwnwnwnesesenww
nwnwnwnenewnenwnwnwnwnwsenwwnwnwnwenwnw
seenenewneeneneneneneneeewneneew
wseswwswswswswswswswnwswswwwneswewww
wsenwwnwseenwwwwwwwwwnwwwww
eenweeeeeeweswsweeene
newnwseseeeseeewenesewweseeee
neeseseeeswseeneswweeeseeseeee
seseeeseeseeeseeseeesesenwseesw
nweswseseeenenesesweesewsesesenw
seswnwnwneseneneswwnenenwewnesesesenwnw
nwneeeneneneneenenewsweneeeeswne
neswsenwwnwneswnwneswswneswenwnenwnw
swnwnenwwnewswwnwnwswwnwewwwnwnw
nenenwnenenenewneneneneseneneweenww
seneneneneneeneswnenenweewnenene
eeesenweweneeeseese
eneneeesewnenewenewnewseseneee
nenenewsenenenwwnenwneseneenenenwnesee
wswsewwwwwwnwwneswwswwwewwwsw
wswswswwswwwswwwewswswwseswnew
seenwwseseseseesesenwsesesesesesesewne
wswsenwwesewnwnwwnenesenwwseewnenww
senwwsenwswseseswswnwswneswswswswswsenwe
swneseseeseeeeesewnweeeeesee
seeseeweeseseseeeseeseseeenee
eseswneseseseseswwsesesenesesewse
eeneeewneeeeeenweeeeseenese
eeseswenwnwesewnwnwese
seswswwswswswswswswswswswswenwseseswsw
enwwnwewwnwswneswnwwnwnww
nwwnwenwnwwnwwnwnweenwnwwsenwnwnwnw
senwnesewwwnwwswsesesenwsenwwenwnwne
eswswswswwneseswseswswswseeswnesesewsww
wwwwwwwnwnwwwwwnesenwnwsenwwww
nwnwwenewnwnenenwnwnenwsenw
wwwwwnwwwwsewwsewnewwnwewww
wwnwwwnwwwwwwweswwwwwww
nwwwwwwnwwwswnwwwesewnwnwwew
wseweswswswswneswswsw
nwneswneenenenwwnweneneneneneeesesene
nwwwnwnwnwsenenwwnwnwswnwwwnenwnwse
ewwsenwwnwenwenwewwneswwsenwwsw
esesenwswswseseswsenesesewswseseseswse
nenwnwnenwnwneswnenwsweneseenenenenenwnw
sewwewwwwwwwwswwwwnewwsw
swswswswswswswswswswswswswswswneswww
swseseswnwewwswseeswnesweswseswwswswsw
wnwneseswenweneswswweneeseneenenw
wswseseenwsesenwseseewnesesesesesese
eseseewwnwsweneswnwswswwswsesewswesw
neeneneeswneswswwenwwwseneneneene
neneswnwsenwswnenwnenwnwnwswnw
neeenweeeneeneeesweeneeeene
nweeeeeeeeneeeneweenweeswsesw
swwwnwswweswnwwwewnewwwseswwwsw
seseseseseswsesesesesenese
eswneswneewswnwswswswewnweeswwse
seswseswswsenwneswnwseswswswseswnwnesesesw
eeweeswneenweeeneneeeneswseene
nenwnwswnwnwenwnwenenwwnwswnenwnenwnwnw
enwseeneneeeeweswneneenewnee
enewsewwwwneewwwswswwnwwew
eesweenwnwnwseeesenwseswneseseseswe
weseneseeseewnwwswnwneswswsenesewnw
nwnwsenwnewwwnwsenwnwnwwnww
nwnewnesweneneneneneswnenenwnenwenwenwnw
eswswwwswswnwswswswswwswenewswsww
neeneenenenwswnewwsweswswneneenene
nwseswenwnwsenwenwwswesewsesweesw
nwnweeswswnwnwswewnwnenwnwswenenew
swseenweswnesenwswwnwnwwnwnenwswsenenw
eeeeeneseesewesenwnweneeneenee
seseseseenweseeseseeswseseeseseenese
senwwwswswswswswwswswwswswenwswwswsw
eeneeneneeeneneneeeesenewneeneew
wnwnwwnwswsweeseswswswswswwwwswe
sesesesenewseeseseseseseseesesesewse
nenwnwenwnwneswnwnenwenww
nwswswswsewwneswswwwswneenewswwwwsw
eswenwsweeswswnwnwenwewewswnene
neesweneseeeeeneeeseeeeswnwesw
seseeneeweeweeeeseeeewee
nwnwnwnwnwnwnwnwnwnwnenwsenwnwnwnwnw
nenwnwwnwnwnenenwnenwnenenenwseswnenwnwnwse
wwnesenwneneeneeseneewswnwneneeese
senwnwnenenwneswnwnenweswweweneseswse
nwnwnwwnwnwswnwswnwwnenwnwnwwenenwwnw
eswnenenewnenenenesenenenwseewnenwnwsw
wsenenwwwwnwnwwwnwwnwnwwnwnwww
seswseswsenwswswseseswseneswsese
swswswswswswswneswwswnwseseswswswswswsesw
enwneswswswswnenenenenenenenwneenenene
wsesewswwwwwwwnwnwwwswwweww
enwwwsewwwsewwnwnwnwwwnenwww
eeeeeneswsweeeeeeeeenwee
nwwnewnwwswewnwnwnwnwsenwwnwsenwse
nwnwsewwwnwwnwseenwswswenwenenwnwwnw
seswswswswseswswseswswswneneswswswswswswsww
wswnwseswewwwswwwswswswwwswwww
wwnwwnwwwwsenwswenwe
seseseseswseseswnesesw
swswswswswseswneewnwswswswswsw
seswneesewseneewswseswwnewsenesesewnw
nwswwenwnwswneneesenewnwswnenw
seeswswswswswswwswswswswwneenwswswe
wswwseswnenwwseswneneeswsesweseene
eseseeneewseseseewseseeseeseesese
senwnwnwnwswswwneneenwnwnenwsenenwswnese
wnewswnwesewwneswsewswwsewwswnw
sewnwnwseseeewnwesenwwswnwwwsenwww
swenenwswnwnenwseswnwnwnenwnwnenwnwnesew
wswenewwwwnwnwenesweswweswseswsw
eseseeeswwnesesesesesewnweenweseswne
nwnwnwnwnwnwenwnwnwnwwnwnwnwnwwswew
eenwweneeeeeneneeeesweeesee
newsewwwwwwwwwwswwwnewwwew
wsewnewwwwewswswnwwnwwwneww
nenenwneseneenwsewneneswneewwnwnwnw
nenenenenenenenenwswnwseneneewnwne
newnenwnwneneenenenwnenw
swseseseneseswswswswswnwswswswwseswswseese
sewwwnewnwwwwenewwnwwwswwwnwse
weswseseseseeseseseseswseseseesewwsw
swesenenesweseeswneseeswnwseesesee
wswwneneseeeneeeseseseneswsenwswwne
wenewseswsenwnenenwnewnewsesenwnew
swswsweswswswswswswswswswnwswswwswswe
seenwseswswenwwsesenwseneswenw
nwswswswswswseswswnwseneswsesweswwsesw
nwseswseswsenwnesesesweenewnwswwswse
swswswseswsewnweswsesesesee
eeneenesenenwseeneneneneneneneswnenw
swweswsewswnwswwswwswswswswswswswsw
swswseswseswswswswswsene
enewswwsesesewnweeneeswwswesene
seeeeeseweseenweseseseseesenese
swwswnwneswnesenwnenesenesene
seeseneswwswewnwseeeeesenenwwnene
nesesenwswswnwswnwnewnwwsenenewe
neewneeseeeweseeswenwseseeeee
nenesewneseneneneewwnenenenwwe
swnenwnenwnwnwnwnenwnwnenwnwnenwswnwnwe
wswneswseewseneswswenwseswnwswneswwsw
neneeeeneeneneenweseneeeneneneew
seneswwwwwsesenwwnewnenwenwnwew
enwwnwnwnwwwnwwwwsenw
wnewwwwnewwsewwwwsewwsweww
nwwwnwsenwnwnwwwwnwwwnwewwnwww
swswwswswseseswwswwswneswnwswswwwswe
nwenenesweswneenesenwenw
eenwenesweeneweneeweneseeswsee
enwneneneeswnwnewneseeeeswnwewee
neneewnenewwnenenesenenesenene
nwnenwnwenwnwsenwnwnwnenwnewnenwseewnw
ewwsewwswewwnwneeseneswwsweewne
wwnwwnenwswnwwnwnwnwnwwnw
nwnwswnwnwnweswenwnwswnwnwenwwnwnenw
swwnewnwwnwswseswwsweewewwwswwsw
seswswswsewswseseswswneswswswwseneswwne
seseesesesenesesesweseseswesewnwenwe
swenenwnwnenwneneneneswnenenenwnenwnw
nesewnewsewnewenwswsenwneeneswnwswsee
nenwsenwnenwseseswnenenwwnwnwnwswnenene
seswwwwswwswnwwsw
eeeesweeseseneseeeenenwsesesew
nwseseseswseswseseseseseeseweseneseswne
neneseswenewswenwswswneseswnwwswnwene
nwnwnwwwewwnwnwnwnewnwwswnwwwsww
swwwwswwswswsewneswwswswswswwww
wwswnwwswswswnwswswswswswwwswwwese
nwnwnwwnwswnwnwnwnwwnwnweenwnwnwnwnwnwnw
nenwnenenenwnwnwnenenwswnwnwenwnwnwne
seneneneneneneneneenenenweesweneenenwne
senwenwenwsenwnwnwwnewnenwnwsenenenw
esenweesesesenwsenesweneeesewswnw
neneenewneeeneeneneneneneneneeswnee
senwwwneseseseneesesewseseseseeesew
nwwnenwnwnwwnwsewesewwwnwnwwsww
seseseseseswsesenese
neseenenwweswnwnewwsenenwnwwnenenw
nwwwwwwwwwnwnwwwsesewnwwwnw
nweeeeeeeneeswesewsesewneese
nwnwenwwseeneeswswwnwnenenesenenwnwswne
swsesenwesesenweeeeeseseseesweesese
swswswwsenwswwsweswswswswwwswswswswsw
swswnwseseseseswseeseseesenwneseseese
nwnwwsewnwnwwnwnwnwnwwwwnw
nwswswwswswsweswswswwswwswsewswwnw
swnwwseewswnwwswswwsw
nwwnweweseswsewneneswnwswsesenenenwsw
nwneeswneneeeswwswnenweneneneneene
nwnwnenwnenenewnwenesenwnwnenenwnwnew
seseseseseswwseseseseneswsesesw
nenenwneneewnenenwnenwswnwwsenwnwenew
eneneneseneeneneswseenwnenewswswenenwnw
newwswwswwseswenwwwnwnewsenwneew
nwwwnwswnwnwwsenwnwnenwswnwenwnwnwenw
neeneeneseseeneeeneewewewewe
swsweseswseneswsenesenenwswene
wswneeswseseneeesenweseeesesesesesee
nenwnenwnwnwnwnwneeswnenwnwnwnwsw
swswneswnwnweswnwswwswnweswsweswee
nenenenwnenwnwnenenenwswnwnwnwnenenwsee
wswseseneswwwswwswnwswswswswswswwswsw
newnwsesesesewseeneseesesenesewswnw
senwnwwwswnwnwnenwnwnwwnwnwnwnwnwwnenwnw
nenwnenenenwnwnwnewenwnwsenwnwnenwnww
nwnwwwwwwnwwsewnenwwwsewsewww
nwnwwnwwwnwwswwnwwwenwnw
swwnwswnwnwnwnenwewseswnwswwneneww
sewseseseeeseewnwneeweesenesese
swswwneswnwswswswswwswneswswsewswwwse
neswswwseswswswseeswswneswwswneseswsw
swseswseseeswsesesesesenewsewseswseswswse
seeenweeeseeeeenwsesenwnwseee
esesewseswswswswseswseswswnwnwseswsene
wwwnwwwnwwwnwnwnwnwnenwnwsesenwnwwnw
swswsewswseswneswswswseeseswswseswswsw
newseeseeeseseeneeeeseeeewe
neswneswwenwesweneenenesenenweeesw
neeeneneneneeeeweneneneeeswnene
eseseswseseseseseneseeneseswenwwsese
neneneneneeneneenwneneneneeneneswswenw
senwnewnweneeneswseneswwenenewnene
neseeewneenesesewsenwswsenwswsenese
nwswnenwnwnwwenwsesenwwsewnwenese
swswwswneswwswswwswswswwenwswwwsw
nwneneneneneeneneswneeswnenenenenenenenene
neseswswswseseneswseseswswseswswswswsenwse
neswnenenesweswswnenenwneneenwsenwnene
swseseseswswwswswwweneswneesewwne
enwnwnwnwnwnwnwwenwswnwwnwwnwenwnwnw
wwwswwswwwwwswweswwswwwee
seneeeneeneneneswneswnwenwnenwnwswswse
nwnwnwnwnwnwwnwnwnwnenwnenwenwnwnwswnwnw
wwseneneseneswnwneeneneswne
nwwenewswnwsewswswewnwnwnenwwnwwwe
sesesesenwseswsesenesesesesesesesesesese
swenweseeeeesesenweseeseneseswsee
swenwswseneswwseswenwneswswwswnwswe
wswnwwwwwwwwwnwwewswwwwwwe
eseseweneeseeeswseeeseeeseenese
swneswnesweeewnweswnwswnenwswswswsww
nwnwnwseswnwewnwnw
neneswnweeeeneeeneneewneneneenene
eseseweseswsenwswesesenwsesewesenewsw
sesesesesewnenwwswsesesweswsesewee
swsewswseeswnwswseswswswswswswswswswesw
sewnwnwswnwwnwnwnwneswnwnenwnwnwewnwnw
wnwswnenenenenwneneenene
nwwneswswneenwnwenwnwnenwnwnenenenwnenw
newswswwsweenwnesenwnwsenesweeswsw
nwnwnwnwnwnwnwnwnwnwsenwnwnwnwsenwnwnwnw
nwnwwnwseenwnwwnwnwnwnwwnwnwnwwww
wwnwseeeneenweswswwenenesewsesenw
swswsesesenwseeswswswsesenwswseseseseswsw
wwswwwnesenewwwwswwwwnwneww
seseseswnwswswswswseswswswseneswnwsesw
weswwswwwewwenwswwwwwnwwnwww
eeeeeneweeeneeeeewseewee
seseseswneseseseneneneseseseswwsewsesw
neneneneneneneneneeeneneneswneewseenw
wnenwnwwswwnwnwewwwwnwnwswwwww
swenwnwnwnenwnwnenwnenwnwnenwnwnwnwnwne
eeenesweeeenweneeneweseeeswne
ewnweeeswwseneneene
neneswneneneneneneswnwenenenwnw
sewwwwenwnenwwwwwsewwwwnwse
wwwsesesewwnesenenwnewnwwsewwsewne
swswwwnewwswwswwswnewwwwwswsww
seseneweweswneneswseeeeswwenwnwne
eseseseesesweswseseseseeseneeeenw
neneneeeenewnenenenenwneswneneneneenene
nwewewwwsenewswsewswsenenewswwsene
neneneswnenwnwneneeeneneneeneswnenene
enenenwnwnwnwnwswnenwnwnwnwnenenenenwnw
wnewswwwswswswwswswswswswwww
swswswswneswswsweswnwswswswswswneseswsw
eeeeeeeeenweeeesw
seseswseseswsesesesesewsesene
wwwwnewswnwsenwwwwsewnewwwww
newsenenenenesenwenwneneneneenewnenesw
swswswswswswswswnweswswnesenwswswswswsesw
newnenenenenenenwesenenewswswnesene
wswnwnwnwnwseswenwseeenwnw
eewseseseeseseseneseeeneewsewe
nenenenenenenesenwenwenewnenenenwnenesw
wsenwsewnwwwenweseswnwnenewnwswwnw
seswenwswswswswswnwswswswswswswswswsesw
nwwnwwnwwnwnwwwswnwnwwenw
neenenenenenwenwwnenwnwnenewnenenene
eeeeneeneenwnewseeeneeeseene
esenwwnwsenwnwnwnwnwnwnenwnenwnwnwnwswnw
eeeseeseeeseeseeseeesesewsesenew
wweeswnewwnwsewnwwwwwwseewsw
seswwwwewwnwewswwswenwwwnene
eseeeseseseewseseeseeeesenesese
eenwesenwweeneswwnewneeeesenee
eeeneeneneswseneenenenenw
seseseswswseswseswesenwweswneswseswse
nwsewneenenwnenenenenenwnenenenewnenene
nwnenwnwnwnwnenwnwnwswswswnwnwnwnwnwnwe
neswnwnwnwenewwwnewwnwswswesenwwne
nwsewnwwnwnwwsenenenenwnwswwnwswnwnww
eeeeeeweeeseeseneeeenweene
seswswwswwwwwwswneswswswwnwswwwsw
nwnwnwnwwnwnwnwnwnenwnweswnwnwnwnwnwne
swweswswswswswwswswswswswwswwnweswwsw
nesweewnwswnenwnwnenenwnenwseeswnene
neseseseeeeeeswsesewseeneeeesese
swnwswseswneswswswswswswswswswwswseswsese
swwwenwnwnwwnwsenwwnwnewnwwwwnwnww
senwseseseesesesesesesesesese
senwnwnwnesewnweenwwnenenwswswnwswnenwnw
enenweenwnwweseesweeseseeesw
swseswwswenwwswsweswswswsweswweswsw
nenwnenenenewseswnesenwnwwneweeneese
esesesesesewseneseseseseseseswsesesese
wewnwnewsewwwwwswswwwwseenwew
nweeenwswsenwnewwewwnwswnwwnwnww
sewnwwnwwnwnesenewnenesenwnwseeenwne
enenewseeeeeneeeenene
eeeeeneeneeesenweeeeneeeesw
neeswwseewwneewswswnenwwswwwww
wswwswwwseswswwswswneww
nwnwnwwnenenesesesenwnwwwnwsewnwnwwnw
swneneenwswenwnwweswwwwnweesewse
nwnwnwnenwnwnwnenwnwnwnwnenwnwwnwesenenw
wswneswswwswswwneewwnwnwweseewne
swnenwsenwnwnenwnesenwnwnwnwnwnwnwnwnwnw
esweswsweeseeseswenwseenwenwnwnwwne
neswseeeeswsesenw
swnwswnwsesweswseswsweseswswswswswswsww
neswneweneneenwenweeswswnwweee
enwswnwenwnewswwnwnwnwnwesewnwnwesw
swswseswswswseseseseseseseswswswseweswne
eneesenweeeeeneeeenwneeswnenee
neneneneneenenwnenwnenenewsenenenenewne
neneseeswneneeneenenewneneenenenenw
seeswseseswseseeeenwenwseseeesenwee
nwnwswwnwneenwnwswsesenwnwseseeeswnw
nwesewnenwewseeneneeeewneeswenee
swseswseswswewenwswswneswswswnwnwseswse
eenweesesweeeseeweeseeeseeee
nenenenwnwnenenenewneneeswnenenenenenenw
sweesesenweseeeseeseeee
nwsenewenwnwnenenenenw
eneeweseneeeeeeeeeesweseese
nwnwnwwnwnenwnwwnwnwnwnwnwwsesewwnwnw
neswswswswseswswswswweswwswswsw
nwnenwewsenwnenwnwnwnwnwwnwnenwnwnwnwnwnw
seneesewsenesesesesesesesesesewsewsese
nenenweeneneenewwseeeenewseswnenene
nesesenwseeseseewneseseseewswseee
swwswswswswswwwwsweswswnwsww
sesewseseseseseesesesesewseesesesesese
swnwswwswwwsewseswwwneswwswwsww
seswswnewswswswswswswseswseeseseseseswsw
eeenwesesenwseseesesewweeseesee
swswswswswswswwswneswswseseswewswswsw
senwwnwnwnwnwnenwnwnwnwnwnwnwsenwnwwswenw
nweesweeeneeneeeneneeeewnenene
enwwwnwnwwnwnwwnwwnwnesenwsww
swseseneeeweesenwseeenewesewnenew
neesesesewseseesesese
esesenwseseswseesesesesesesesese
swswswswswneseseswswseseswswsenwswswsesww
ewwsesesewesenwnenw
wswwnwwnwwnenwnwnwsenwwwewnwnwnwnwnw
neseseeseweseseseseseesewseseesee
eeeneesenwesewnwsweweeeeenesw
neneeneeneeneeeeeeneewesenesw
eeneneeneneeneewneneseneneneenenwe
wnwnenenwnwnwsenenwnwnwnwnwneseewnwnw
sweswswswswswswwswnwswswswswsw
swneswwswwwswwswwwswswwswsw
wneewswneswswswseswwwnwwwwswswsenw
wneseneeeeneeeeeeeewneesww
swneseenesesweswseseneseseeenwsesese
nenwnwnesenenwnenwnwsenenwnenenwnwnenenwnw
eneneswneneneeeneene
neenewnenwnwnenenenwneswnenwnenenwnwnenw
wwwewwwwwwwsewwwnwwwwww
eeeeeewsesweeeeeeeenenwesw
wnwswwsewwswnesenesenewwwswwwesww
nesenwwwswwwsew
wnwnwneswneswnwnwnwnwnwnenwsenwnwnwesenw
nwneseenwwnenwnenenewnw
eseseeeesweeneeseeweeeseeese
swswseswseseseseseseswsesenewswswsenesesw
nwenenenenwneenenesweeeseseneneswnenww
wwsenesenwnenenweneneswnenwsenwwswe
nenenenesenenenenenenwwnenesweeneenenw
neswsenewnenenenewneeneseneenewnwneesw
swsweswswseswseswswswswseswsweswww
wnewwewwseswwwwwwwsenenwwsew
seswswnewswwwnewwweswwswwswswwsw
wnesweenenenwnwesewsweweeeswnw
wnwnwwswnwnenwwwnwnwwnwenwnwwnwnwnw
neswswseswwswswnwwsewseswnewwswswswsw
neesenwwseneswnwwese
wnwnwnwswnwwswnewwnwnewnwnwswnwenww
nwnenwswnwnenesweneneswnwneeswswnwnee
sesesenwseseseseseseswseseesesesesesewse
wwwwswewwwwnewwseswswswwswww
nenenwneswnwnenwnwnenenenw
eswwwnwnenwwwwwewswwwswnwwnew
wnwswwsweswswnwnwswseweswswswsweswww
swswswswswneswswswneswswswswswswswseswsww
wnwnwnwwwnwnwsenwewnwsenewnwnewsw
seesesesenwseswseswswsesenwseseswseswse
eneswsewesenwwneswwswseswswswwswswsw
seswnwenwsesewnwesesesesesweenenwe
eswseeweeswwsenwesenweeewnwe
seswnwnwewnwnwnwswnwenwnw
swwnwwswwwswwswsewswwwwwweswne
enwnwnwnewnwnwwnewwswwnwswsenewswsw
nenwnenenwnwnwnenewenenwewenwwswse
swewswwwswnewnwswnwseswwwswwwswsw
eeeeeseeewswswswnenwnweeneneene
nwswswswswswewseswswenwseswsweseswswne
neeeswneneneneneeneneneswnenwneeene
neenenenwnenenesweneseneeesewneseew
nwenenenenenwnesenesewnenenenenenewne
weseswwneesenewwsenwnwwsweswwsw
nwnwswwnewnwnwnwwwsenwwwswwneww
nwnwsenwnenenwnenwneenwnwswnewnwnenw
nenwneseswnwswwswwwnweseesesewnwsene
swswswswswswwsweswwswswwnwswswneswse
seswsenwsesweseseseseswseseseswseswswse
seswseseseseseseseseeseseswsenwswsesese
wwnenwwnwnwwwnwwwwnwnwwwwwse
seesesewsesesenwesese
swnenwwnwswsesweswnwnenesewswewwse
seseseswsewwwesesenwsesesweneswenw
senwnwnwwnwnwwnwnwswesenwnwwnwwnwe
wnwwwwwwwwnwwewwwwwwew
neeeneeenesenweeeeneneneeee
swwwseeeneenweeneeeenwseswnwswse
wwnwwswswswewseswswwswwswwnwwe
wswneeeeneewnwneneseseseeewwew
seseeseeswswseesewsenwesesenwse
swseneseseseseswswwesesenwswswseseswnese
wwnewwnwwswwnwwwnw
nwneswnwswswswswswseewswswswswswswesw
seeneseneseseweswwwsesenwwneseesee
wnwsenesesesesesesesenwseseseswsesese
sewwwwewswwwwwsewwwnwnw
wswswsewneeswswswswswswwswwswwwswsww
eeenenwwneneneneneweweneewneswnee
nwwnwsenwwwswwwwnwnwwnwnwnwnwnewnw
swswswswseswswswneswswswseswswswswswswnwsw
sewnenenenwnenenenenenenenenenenesenwnene
swnweswnwnwsenwnenenwswnwswweeeswenw
wnenenwneenwseswnwwswnwswwwswwnwne