From 23cb05ad2776d0ad8d0c7aad2a8fa0c20e9efc32 Mon Sep 17 00:00:00 2001 From: Hubert Van De Walle Date: Thu, 24 Dec 2020 12:48:30 +0100 Subject: [PATCH] Day24 part1 --- days/src/main/kotlin/Day24.kt | 52 ++++ days/src/main/resources/day24.txt | 419 ++++++++++++++++++++++++++++++ 2 files changed, 471 insertions(+) create mode 100644 days/src/main/kotlin/Day24.kt create mode 100644 days/src/main/resources/day24.txt diff --git a/days/src/main/kotlin/Day24.kt b/days/src/main/kotlin/Day24.kt new file mode 100644 index 0000000..54a43a3 --- /dev/null +++ b/days/src/main/kotlin/Day24.kt @@ -0,0 +1,52 @@ +package be.vandewalleh.aoc.days + +import be.vandewalleh.aoc.utils.input.Day +import be.vandewalleh.aoc.utils.input.Input +import be.vandewalleh.aoc.utils.input.Lines +import be.vandewalleh.aoc.utils.input.createDay +import org.eclipse.collections.api.factory.Bags + +@Day(24) +class Day24(@Lines val input: Input>) { + + private enum class Direction(vararg coordinates: Int) { + E(1, -1, 0), + SE(0, -1, 1), + SW(-1, 0, 1), + W(-1, 1, 0), + NW(0, 1, -1), + NE(1, 0, -1); + + val coordinates = coordinates + } + + private data class Tile(val directions: List) + + private fun parseTile(line: String): Tile { + val re = "e|se|sw|w|nw|ne".toRegex() + val directions = re.findAll(line).flatMap { it.groupValues }.map { Direction.valueOf(it.toUpperCase()) } + return Tile(directions.toList()) + } + + fun part1() { + val tiles = input.value.map { parseTile(it) } + val bag = Bags.mutable.empty>() + for (tile in tiles) { + val encountered = tile.directions + .map { it.coordinates } + .reduce { acc, ints -> intArrayOf(acc[0] + ints[0], acc[1] + ints[1], acc[2] + ints[2]) } + .toList() + bag.add(encountered) + } + println(bag.selectByOccurrences { it % 2 == 1 }.size) + } + + fun part2() { + + } +} + +fun main() = with(createDay()) { + println(part1()) + println(part2()) +} diff --git a/days/src/main/resources/day24.txt b/days/src/main/resources/day24.txt new file mode 100644 index 0000000..90fe540 --- /dev/null +++ b/days/src/main/resources/day24.txt @@ -0,0 +1,419 @@ +eeneseeeneeseweeeneswneenwwee +swswswneswwseenwsenwsweswse +wswswswnweswnwswswwwswswswweswswswsew +seswswnweswswswseseseswswswswswswseswse +nwswswswswseseswseseswswswswseswswsenwsw +nwnwnwnwnenesenwneneswswwswnenenwnwnw +ewwwwwswswwwwwnwnewwwwwww +nwswneewwwsewnwswnwneswnenwnwsenweswnw +seseseseseseeswsesenweswwseswseseswse +wwnwwsewenwsww +nwnwsenwnwenwnwnwnwwwnwnwnwwnwswwnw +wwwnwwwesewwwwwwwwweww +swenwwswswswseneneneseswswnwnenwswee +eseeseseseeeswseeneweneeeseese +nwswswnwnwswsweeweseswswswseswswsesee +swswswwseswnenwneneswseseswsweseswswnw +nwnwnenwnenwnenwneswnw +eeeweneweeseneeneeeseeeeee +nenenenwneneneneneneeneneneswnenenenene +wwenwswwnwsenwwsenenenwnwsw +nwnewnwnwnwnwnwnenwsenwneewnwnwsenwwse +swwnewwsenwwswwwwswwswswse +senwswseseswswseseswseswswsewswseswsesee +swswweswnwswwswwswwswswswww +wwwwswwnwwwwwnenwewnwwwnwnww +wewwweswneswswseseswwnewwsenenw +senwsesesesesesenwswseseseeseseseseseswse +seseseswswswswseswseesesesenwse +swnwswswswsweswseswswswswswswswsw +wewwenewnwnwwewwweswnwswsww +wwsenesewwwwwnewswwwwswnwwwsw +nwsenenenewenwnwnenwnenwnwnwnwnwnwnene +wenwweswswewnenwswnwswwwsewnesw +swnwwswneswneeswsesenwseswnwseseneseseswsw +nesenwnwnenenenwnwnwnenwnwnwnwwnenenenw +eneswswneeseenenwweeeeweeeee +swneneneneeneneneweneneneneneneneneseene +nesenwsewewseswseseseseswseneswnesene +nwnewewneswwsewwwwsewsewwnew +eeweeeeeeeeeeeneeeeeswe +nwswwnwsweswnwnwseewnwnwwneewsew +neswswsewswswseswsenwswswneseesww +eenwnwwenwswswswneseseseneeweenwsw +seseswswseswnwseseswsesewswseseseseneswe +sewwnwnwswnwnwnwwwnwnwnwewnwwnww +sewswwswwnwnesewswwswnwesewswwnw +seswswseseswsenwswseswseswseswseswswesw +wseneseseswseswseswseswseseseswsesenwsese +eseeneswwswnwnwse +swswswswsenwseswswswseesesesw +wswswswwneswswswswsweswswwswnwwswswsww +nwnwnwneswneswswnwnwneswnwnenwnwseenwe +swsesewnwseseseeswswswseseseseseseswsese +senwsenwnwnwnwnwnwnwnwnwwnwnwnwnewwnwnwnw +nweeesweeseenweneesenweseswwse +sesesewseneewseseeeseeeesee +sweswswswnenwswswswnwseswsewswswwee +nwwwsewseeseneseesesewseneseenee +nwnenenenwswneneneneenenenene +seswwseseseseseseseseseswseesesesesenw +neneswnwneneenenenwneneswnwnw +seseseeeswewneneswnwswwsenwesewnee +swwseswseswwsweswswneswswswseseswsw +neneewewneneneneeewneeenenesee +seneeseseeseesenweseseseseseswseseese +nenwwwwwswswwwwnwwwwwnwewww +swswswswswswswswnewnwswswswseeswswswsesw +seseeeseswsesesesesesewsenewsesenwswse +swswswswswsweswswwswnwnwneswwsweseswsw +nwsweswnwnwnwnenenwnesenwnwnwnwwnwnwnwwse +seseseseseseseseesesenwwseeseneseesese +weneseseeseseswsweseneneneesesweswne +seseseswseswesesenwsesesesesesesesesewne +neswnwnwnwnewnewseenwnwswsenwnwnwnwsw +neswnwnewneswewseeneneneneneeeeenee +nwnwnwwnwenwwswneww +nwenwnwswwnwnwwnesenwswnwnwnwnwsenwnwenw +seseswswswswnwswswswswswnwsweswseseswswswse +neneenenwneseneneneneseneeneneneenwnene +ewwnwnwwwwwwwwwww +nwnenenwneseneneswsenewnenenwsenwnenwnene +wsesewwnenenwswnwwweewsenwnw +nwnwsesenwenwnwwwnwwsenwnewnwnenwsesw +swswwsesesewwneeswseneswwneswneswswne +enwnwswnweswswnwenwnwnwnwnwnwnwnwnweswnw +eseeswnwnesewseneeenwsesenwsewswwne +neswwseneswseweswseswswnwnese +wwwneswwswwwwswwwnewwwwwww +nenenwnenenenenwneneswenenwnenene +neneswnwneswwswnwnesenenenenenwnenwnenenw +wnenenwsenwnenwnenenwnwnenwnwnwsenenewne +wnwnwnwnwnwwnwsenwnwnwnwnwnwnwnw +eswseswswseswswsweswnenwswswswswswswnwsww +wswwseseseseswseseseseseseswseneseseese +seeseeeseseseseenwsesesesesenweseesw +eswnwseswsenwswwnenwswswswnesweswswwsw +neeseenewneneesw +nwenenewswseeneswenewswnwseswwwene +wswwenwwenwseeswnewswsewnwneseswwne +eseswseesewseseseenwesesese +nenenenenweneneswnewnenenenenenenenwne +seseneneeseswwseneseswnwneseseeenwesw +seeswseeeeswnweeeeenweeweee +seeeenweseseseesesweenweseneee +neneewnwneneseneswnesenenwenenwnenesw +nwnewnwenwnwnwswnenwnwnwnwnwnwnwsenwnwnw +ewsweswseswswswwewneswwwswesww +eneeseseeeeseseswwseeseseseeene +nwsesesewwnwnewnesenwnewwseseenew +sewswswswseseswswswseswseswswswneeswnwswe +neswneswnenenenenewnesenwnwnenwneswnenenene +nwnwnwnwnesenwwnwnwnwnenwnwswnwnwwnwnwnw +swseseseswswsewneswsenesenwenenwseseese +neswseseseswseswsesesewsesesesese +seseeeswnwseeeswseseseesenwseseee +swneswswswwswsenwswswswseswswswswseswswswsw +wsenwswwwwswswww +nwseswseesewseeswsewswnenesenwsew +nesweeseeweenenenweneswnenenee +wnwwwnwwwswnewwnwnwwewnwnwnww +wnwnenwswswnwnwsweesenenweswnewenw +seeseesenwseseseeeseseeseeseese +swseswswwswenwswswswswswswnenwswswswswse +eswseswwwnewwsewwwwwswswenesw +wnwnwswwnwnwswnwnwnenwwwwnwnwnweeww +seswwseswnesweswswseseswswseswseswswswse +nwnenwnwneneneneswneneswnwswnenenwneeneswne +swwwewswwnwwewwswwswswwswwwsw +seneenwswwseeseseneewenwseneswnewe +wwsenesesesenewewnesweseewsesw +nwwswwwesewwwwwwnwwwwwwwnww +newwnwwnenwwswsesewswseseewwnwwwsw +newswswseswswswwswswwswsww +eeesenweeeenweeesenwseeeenee +ewenenesewseswseweseeeeseeseese +eeeeeneeeeeeseeswenwnweeeee +wwnewnwenewewsewseseneweswswne +wnwwswneneneneseneseneweseenwneseneee +swewnwwnwnwneseneewneneneneene +enwnwseeneeneneeeneneeeneeswnene +sewswseneswwseeswneswseswnesenw +nenenwnenenwseneneneneseswnenenenewnene +eseseseseeeseeseseeseenwsesesenewsw +newenewnesweeeswneeeseenwnenee +wswswsenwswswsweswneneswswswswswsesesw +wsesenwsesesewsesesenesesesesenesese +eseswswseswswswswnwswswsenenwswseswswsesw +nwsewsewswswwwnwsenewnwwwwnwew +seeseeweewwsenwwneneneeswesewne +nwsweseswseseseswneeseseswnwseswsenesw +seswswswwneswsesenesewswnenwswswseswwse +seeseweseseneswnwseseseesweenwsenw +sweswseswwwswnwswnenwwsewswwnwswsw +eeeeeeeneswneneeneeswnweenwnese +nwwwnwnwwwsewnwwswnwnenwnwwwww +swswseseswswsenwswswswneseseswsewseswswsee +eseeeseseeseseewsenenwewsese +wwwwwwwwnwswwnwwewwwwnww +wneenesesenenwwnenwnwneswsenenweswne +wswnewwwwwwwwww +enenwnenenwnwnwnwnwnwwnenw +nenweswswswnenwnenwseneeswesewnenenew +neeneneswnenwneswsweeneneeneenwnenene +sesesesesesesesenwnwesesesenwwesesese +wswwswswswwnwnwwseswswwswswsew +nwneseewnwnwnenwnewnenenenwnenwnenwnenw +neeeneeeneeeneeeneenesweneenew +seswneswsenwesesesewseswseswsesewsesw +neswnenesenenwneneneswnenenenenenenenenene +neswwswswnwswswswswswsesweswswswswswsw +enwwswnwnwwnwnwnenwnwsenenwnwwnwnwnw +swnwswwswswswswesweswseseswswseseswsw +wsenenwsenwnewsenwnwnwsw +nwnwenwsewwswwnwweswnwsewsewnesew +nwnwenwnenwnwnwwnwnenwnenwnw +newneweneneneenenenwnw +swenesesenesesesesesewseneswsesesesese +swneneneneseeseeneeseeneewswwwww +nwnwnwenwnwnwnwwnwwwnwnwnenwnwswnwse +nwnenwneneswesenwswsewnenwnwnwnenwswese +seseswswswswsweseseseswnwsesw +nwenenwneneneneneenenenesweneneswnenene +nenwwwnwsenwnwnwnwnwsenwnwnwnwnenwnwnwnese +neneeeeweneeneneswnwnenenwneneswne +wwwneswnwnwnwwnwnwewnwnwwwwsenew +eenweeeeeesweeeeeee +eneweseseeeswewsewseswsenwesenw +nenenwnenenenwseswsewnenenwneswnw +nwwwswnwswnwnenwwenwnwnwnenwswnwnwnw +eswseneeeewenweeseswsewseenee +wswswnwneseswseseneswsww +sewwwwwnwwwwwnenwwwwwnwwnw +enwnwnwwwnwwsenwsewnwwsewswwnwwnw +swseswenwenewnesweseswnewsenwseswwwsw +nwswwnwnwnwnwenwnwwnwnwwwnwnwnwnww +wenwswnenenenenenwne +swwwnwnwwwwnwewwwwnwnwenwnwnw +nwswneswneswsenenesenenwnwwnenwnwneene +neneswneweneneeeweneneeeenenwene +neenweneswnwneneneneneneneneswnenenwnenene +wswnwwwwnwwnwweeswnwwnwwwew +eweneeswneneneeeeeeeeeeew +seeneeseseseswswsenwnwseneeesweee +eneeneseenesenenenenenenwwwneeneswse +swseneenenenenenenesenesenewwnwnenene +swnenweeeeeneeewswenwenwswewsene +eswnwnwwnwnwswseewnesenwwnweseww +nwnewseewnwwwwnwnwswnwnwnwnwnwwnw +nwnwneenenesenwnenenenenenenwnenwswnew +swwswnewewwwwwwwwewwnwwwsw +eeseseseeeeeseenweeeeswe +nwnwnwweswnwenwnwnwnwnwnwnenwnwnewnw +swwsweneswsewnwwswswwsweenwsww +neswneneswseswenenenenenenwnwnwnesw +wwwnwswwwswneewwwnwnwewwwe +enesewnwwsesenenewwwwsw +neneneswnenenenenenesenenenenenenwswnwne +seswseseswsesweseseswswnwseseswswsesesw +nwnwnwnwsewwnwwnwwnwwnenwnwnwnwnw +seeeeeenewneeswneeeenesenwnene +wwewwwwwwwwwwwwnwsewnw +seseswseseseneesesewsenese +sesweseswsesesewwseweeseseseenwsw +neswseswswwswswseswswswswswwwneswwsw +ewseneseeneswseeesesw +swswwnewnwswneswnwwnewsesewswswswwe +nwnwnwnwnwnenwnwnwnwnwnesenwnw +swnwewsenwwwwwswsewnwneenwnwwnww +swswswseseswseseswnwsewswsesesesenesw +neenenwneneneneneeeeeneeeneeswese +eneeeneneeneeswswnee +swnewswwwswswswswswswswswnwseswsenewswsw +swseswsesweswsewswswseswseseneswswswsww +swenwnenewswnewwsewnwenwnwswnwswwnew +swswwwsenwwnwswsewnesewwnwnenene +weneneeneswnweeweeswweeswnesw +nwswsenenwesenwnwsenwsewenwswnwnwnwnew +nesweenwneeeswwneneneeneeneenwenee +nesesweswswwswswseswswseseswswseseswsw +eeewswnweesweeeseenenenenewee +sewwsesesesenenwseneseseseseseesewsesw +nenewsewnwnwnwneneswnenenenesenwenw +sewwwwswwsewwwwnwnwwwwwwwsw +sesewwseseseseseseseseneeseseeeseese +neneneewwnenenenenenwneneseeesenene +eseeeneneenweeeeeneeee +enwswnwwswenwneewswnwswwseseswseenew +nwnwnwnenwnwnwwnwnwnwnwnwwnwnwnwsenwnw +seswswswenwnwswswswseenewswneneswwsw +wswswwwewwnwswswswnwwesewwsww +seseseeseseseseseeseswseswnesesenwsesese +swnenwswsewwsewswnwswswswnwneenesee +nwnwwsenenwnenwnwnwnwwnwnwswnwnwnwnwnw +senwwswnewwsenewwwsewewwwwwww +wnwwwwnwsenenewwnwwewwnwwnwsenw +ewseewsewnwnenewwwwswwneewww +wnesenweenenweeswwenwesenesenee +eweneneneneweeeeeneswneneseesw +nwwsenewwnenwenwswewwwwseswwww +eewseseeeseeseeseneeseeeeese +wswwneswnwwnweenwnewwswnwnwwwnwwsw +nwswsenwwwnwwwwswnwwnwwnwenwwnenw +wsweswwswswwwwsewweswnwwwswww +neeeweenwneneeneeeseeeneeeeesw +swswswseswwswneesewswnwswseseseswsw +swwwwwnewwwwwwwwww +ewwwewwwwswneswwwwwnwwwwww +swwswswswwsesweswswswwwswseswswnewnw +nenwnwnenwnwnwnwnwnwnwnwnwnwswnenwnesenew +swswswswweswswswseswswswswswswwswnwsw +eeseeseeeeseseseseseeseeesenwnw +seseeseseseseneseseseseseseseseswsewnew +nwwnwnwswswenwnwnwsenwwswnwnwnwewnwnee +eeneswswneeeeeeeeeeeeenene +swswswnwswwswswswneswswswswneseswswswswsw +nenwnwnenwnwneswnwnwnenwnwnenene +swnwnwnenewenenwnenwsenenwnwnw +swswswswswnwwswswswswswnewwswsweswsw +swswsweswneswswswswwwswseswswswswwsww +neswnwswsenewnesenwenenenewnwnwnw +eeeeweewneeeeeeeeeeee +sewswswseseweeseseseeseswnenwenwsene +swswsenwswswswswswswseswswswnweswnwesw +wnesenweeneneneenesenewneeneneene +nwnwnwnwnwnwwnwnenese +wweeeneeeeeseseee +nwnenenwnwwnwnenenwnwnwnwesenenwneseswnw +eeeswenweseeeeeseeenewnwswe +enwneeweneeseswsenwnenwseneneneesw +seseseseseswsesewsewseneneseneneswsesw +seseseeseesenwseseesenwsweeesewse +neeeeeneswweewneeeseeeeenee +swswswwswswswswseswswneswswswwsweswswsw +swswswseswseswswswswswnewseseseswswswse +swwwwswswswswnweswswwswne +wwwnwnwwwwwnewwnwwnwnwnwnwsew +swswswswswswwwswseswnwneswseswnesw +nwneseswsenewnweneswsenenenenwnenene +seseeseseeseenweeseseeswswesesesenwe +neeneneweenewneneenwnweneseesweee +eneeseeseeswsweneeseseseesee +swnenwnwsenwseswsenwseenwswwsesenwsese +eseseeeeswseeeeenweeeeeee +eneeneeneeeeswesweeeeneeene +nwnwewwnwnenewsesenwnwnwnwseesewnww +swswswswswswseswswnwwswnewswseneswseswsw +nwnwnwnwnwnwnwnwwnwnwenwnwnwnwnwnwnw +sewswswswseneesesenweswnwswsesenwseesw +eneeeseesenwweseeneeweeew +nenenenenenenenwneneneneneneenewswe +wwwswwneswwnwenwwnewswnewsesww +wsewwswwnwwwewwnwnwwweswwse +nwesenwnwnwnwwsewenwnenesweneswwnwe +swneswnesweswnwwnenenweeew +nwnwwnwnwenwnenenwnenwenenewneswsenwnene +nwnwnenwsenwwnwwnwnwenwwnwnwwnw +neseseneswwswwseswswsweswseswseseseswsw +nenenenewsenwseenenewneswsenenewnenenene +seseseesesesesesesenwswsewseesesesesese +eneenenenewseseeeneenenwnenenenenenene +nwswnwswneswwseeswswswseswswswswswsww +swweswsewswwseseseswswswswseswswee +nwnenwenewwwnwnwnenenwenwnwesenwne +wwwwwswswewwswwwwwswsweswww +swswwnweseenwwnwwwswswwwseseswnwe +nwnwwnwwwnwenwswwwnewseswnwnwsene +wwwswwwwwswwseswswswnwneseswwsw +wwnwnwwwnwnwswenwnwnwnww +neneeeneswnewneeenenwswee +newnwnenenenwneneswsenenenenenewsesenenene +eseseeseseswwnwswsesenwwsenenwseseene +neneswnenenenwnenwnwne +wswwseswnenwwwswwwwwwwwswneww +seewwewwneeewesenwwnenwwnesesw +neneneneneneeneswnwnenwneneneneswwnwne +nwnwnenenwnenwnewnwsenenenenenenwneneenw +nwwnwnwenwnwnwnenwsenwnwnwnwnenwwnwnwe +swsewwnenenwneneneeneneswneenenenenwswne +eeneneeenesesweewsweenenenwnwenee +nenenwneneswseneneneeneeneneneenenene +wswwwseenenwsenwnesesenwneswnwnwwe +wseswswswwwswswswnwewswswswswswswswsw +nwswseswneneneeneswnenwswneneneneenenwe +sewnenenenenwseswnesenenwsenwnwnenenene +nwwwnwswwneeeewnwnwswewnwnwsenwe +seseseeeesewneseesese +nesenenenenenenenenewneneneseswnenenenew +nwswswswswwswswswwswswswswswswseswswswne +wwwwwsewwwnewwwwwwwwww +nenwnwnwnwneenwnwwnwswnenwswsenesewse +eeseseswseseeeeeeeeseseenesesenw +nwnenenwnwnwnwnwsenenwswnenwnenenwnenenwne +nwwenwnwnwnwnwnenwnenwnwnwnwnwnweswsw +nenwsenenenenenenenwnewnwenwnenenwne +nwwnwwnwseneeseseswnwneeeseeneenee +wewnwnewwnwwwwswwwnwwwseswww +neswseeseseseseseseswsewnwseswswswswsee +sewsesesesenwsenwenwwnesesenwnwse +seeeeneneeeneeeeewwneeeene +neneewwneeneeeeeneneeeeneeee +nwsesweswesesesesewswseseswswseswseseswse +wwnwnwwnwnwnwnwnwwwnenwwnwnwsenww +wnwsewnesweewsenwwenwnwenwwwse +wswwwewswwwwwwwswnweww +swswnwswswswswswnweneswnewneseseswswswne +weseseenwweeswenwseeenesewsenw +swswswswseneswswswswswswswneswswswwswswsw +senenenenwenesenewseenewswneneeene +swnwswseseseseesesewswseseseseseswnwe +neswswewwwewnwwwnwswwnwneewwwsw +swwnewnwweswswnesenwswewseswswseswsww +eseseweeneweeeeeeeenewsew +eeseenwsenwswseeesesesenwwsesenwsew +esweswwseesenenesesenwsesesenwseseee +senwswnwswnwnwswseswswswseseesw +nenwneneenenenewnenwnenenenenenenenesene +seeseeenenwewweesenwweneneeswe +wwwnewwwwwwwswwwwwwsw +neseswsenwseseseseseseswseseseswseseesw +neneeewsewsewenesewnesewsewsew +wwswwnwnwenwnwwnwwwenwwnwnwnenwse +nwnwswnwnenwwnwnwswneswenwwwswnwwe +enenwwneeeeeeeneneeeeeeeeswe +weeeeswesenwse +nwnwnewnwsenenenwnwnwsenwnwnwnwnewnwnwenw +swenesenewwwenenwsewswwwsewnwe +nwswwnwwnenwnewwsenewwwsewwnwse +nwnwnwwnwnwwnwsenwnwwwnewnwnwwwnwnese +seswswwwwwwswswswswswwnewwwww +neswwseenwwnwswseneeewswnwseneesww +seesweswenweseenwnwseswwnesenwwnwee +seseseseneswseseseseseswseseswenenwsese +seesenesesesenwwseseseseneseseseeww +eseseeseseeeseseseseeseseewsesene +wsewwwwwwnenwnwwwwwwnewwnwsw +eseswesenwseseeseeeeseseseeesee +neneneseeneneenewneneneneneene +neeseseseseeseseswseeee +seeeesesesweeesewseneseeesesee +enwweeeeeeeeeseeeeeeesee +wwwseswsewnewwnenewswswswswswwsww +seeewnweseswenenenweeeenee +nwsenwwwwnwnwswnwwwne +wesesewswswneeenwnweneenweneseesw +eeswswwnwswnwnwnwnwesenwwnwnwwnenwnw +nweenwseseneeenwseneenwneswneenee +nwsenwsenwnwnwnwnwwwnwnwnwnwnwnewnwne +seesewseeseseneseseseswsesesesenesese +swwseswnwwwswwswwswwew +enwneenenenewnewsenenenenenenesenene +swwswswwwwwwswneswwswwseswwsene +neenenenwnesweneewswne +nwnwwnesenwnwnwnwnenenenenenwnwnwnenwne +neeenesewwnwsenwswseseeseneswsewsesw +newwnwswswnewswwswwswswwwsewww +wsewwneenwwww +wswwnewwwwwwwwww +wwwwswwwswwnwswewwwswswwww +swseswswswswseseseswseeswswsenwsesw