diff --git a/adventofcode.cabal b/adventofcode.cabal index 7e3632e..7f95069 100644 --- a/adventofcode.cabal +++ b/adventofcode.cabal @@ -2,22 +2,22 @@ -- -- see: https://github.com/sol/hpack -- --- hash: c000ca3243983619481d89396b163acf8fb77f12488850d0f27e659ab2f1bd40 +-- hash: 587471fb4a9e3e35e4a8caa85fa326f402b6840f011abfe42a46f3ea9b123026 -name: adventofcode -version: 0.1.0.0 -synopsis: Solutions for adventofcode -homepage: https://github.com/yogsototh/adventofcode#readme -bug-reports: https://github.com/yogsototh/adventofcode/issues -license: BSD3 -license-file: LICENSE -author: Yann Esposito -maintainer: yann.esposito@gmail.com -copyright: Copyright: © 2017 Yann Esposito -category: Web -build-type: Simple -cabal-version: >= 1.10 -description: Please see the README on Github at +name: adventofcode +version: 0.1.0.0 +synopsis: Solutions for adventofcode +description: Please see the README on Github at +category: Web +homepage: https://github.com/yogsototh/adventofcode#readme +bug-reports: https://github.com/yogsototh/adventofcode/issues +author: Yann Esposito +maintainer: yann.esposito@gmail.com +copyright: Copyright: © 2017 Yann Esposito +license: BSD3 +license-file: LICENSE +build-type: Simple +cabal-version: >= 1.10 extra-source-files: README.md @@ -29,6 +29,14 @@ source-repository head library hs-source-dirs: src + build-depends: + array + , base >=4.7 && <5 + , containers + , foldl + , parsec + , protolude + , text exposed-modules: Day01 Day02 @@ -45,22 +53,15 @@ library Day13 Day14 Day15 + Day16 other-modules: Paths_adventofcode - build-depends: - array - , base >=4.7 && <5 - , containers - , foldl - , parsec - , protolude - , text default-language: Haskell2010 executable adventofcode-exe + main-is: Main.hs hs-source-dirs: app - main-is: Main.hs ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N build-depends: adventofcode @@ -74,9 +75,10 @@ executable adventofcode-exe test-suite adventofcode-test type: exitcode-stdio-1.0 + main-is: Spec.hs hs-source-dirs: test - main-is: Spec.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N build-depends: HUnit , adventofcode @@ -86,5 +88,4 @@ test-suite adventofcode-test , tasty-hunit other-modules: Paths_adventofcode - ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N default-language: Haskell2010 diff --git a/app/Main.hs b/app/Main.hs index 65adfb3..cf91a16 100644 --- a/app/Main.hs +++ b/app/Main.hs @@ -23,6 +23,7 @@ import qualified Day12 import qualified Day13 import qualified Day14 import qualified Day15 +import qualified Day16 showSol :: [Char] -> Doc -> IO () showSol txt d = putText . toS . render $ @@ -51,6 +52,7 @@ solutions = Map.fromList [(["01"], day01) ,(["13"], day13) ,(["14"], day14) ,(["15"], day15) + ,(["16"], day16) ] @@ -183,3 +185,12 @@ day15 = do showSol "Solution 1" (int sol1) let sol2 = Day15.solution2 Day15.input showSol "Solution 1" (int sol2) + +day16 :: IO () +day16 = do + putText "Day 16:" + input <- Day16.parseInput + sol1 <- Day16.solution1 16 input + showSol "Solution 1" (text (toS sol1)) + sol2 <- Day16.solution2 16 input + showSol "Solution 2" (text (toS sol2)) diff --git a/inputs/day16.txt b/inputs/day16.txt new file mode 100644 index 0000000..83293a3 --- /dev/null +++ b/inputs/day16.txt @@ -0,0 +1 @@ +x13/7,s2,x2/1,pn/a,x11/4,pb/f,x14/15,s3,x10/9,s4,x0/8,s5,x13/6,pl/e,x8/4,s13,x5/7,s12,x6/15,pm/k,x9/8,pi/l,x0/13,s4,x2/11,pp/m,s11,x15/8,s6,pf/o,x14/11,pe/a,x10/8,s1,x5/13,pc/h,x6/12,pn/l,x11/9,s9,x3/1,s10,x10/12,pj/b,x15/3,s13,x11/12,s14,x0/15,s6,x11/9,s1,x13/0,pl/k,s7,x2/8,pd/i,s1,x15/13,s2,x2/9,s2,pk/n,x3/8,po/f,x13/14,s4,x5/15,s6,x14/0,s4,x6/8,s3,x2/3,s2,x6/10,pp/m,x0/1,s7,x5/14,s11,x7/0,pd/k,x8/11,pe/i,x12/1,s1,x0/5,s3,x14/7,pk/d,x11/8,ph/g,x0/12,pb/e,s14,x8/13,s5,x4/11,s6,x1/3,po/k,x9/15,pg/a,x8/5,s6,x6/10,s3,x3/9,ph/p,x14/8,s8,x12/11,pk/c,x6/10,s2,x12/8,s11,x6/5,s4,x9/4,s14,x7/10,pf/p,x2/4,pl/b,x0/8,s13,x6/2,pk/o,x1/14,s13,x4/3,s15,x7/14,pl/h,x2/3,s8,x8/0,pf/d,x12/5,pn/h,x3/14,s4,x2/10,pj/o,x9/11,pm/k,x4/7,pa/e,x14/12,pp/i,x1/7,s2,x0/6,s13,x3/12,s7,x15/2,s2,x3/4,s6,x0/15,s12,x11/4,s6,x15/6,s7,x14/3,pn/e,x8/2,s13,x12/3,s4,x8/11,pb/j,x2/9,s11,x3/0,s10,x12/2,po/e,x11/15,pg/m,x2/14,s14,x11/7,pb/k,x10/8,pn/f,x3/15,pj/i,x12/4,s3,x15/13,pg/n,x7/2,s4,x5/0,s9,x2/9,s5,x11/7,pp/d,s15,x5/10,pk/g,x14/1,pc/p,x10/2,s6,x9/7,s13,x15/8,s13,pk/l,x14/9,pi/j,x3/11,s12,x10/0,pn/l,x4/5,s8,x1/13,pc/g,x15/12,s9,x5/0,pn/j,x14/7,s1,x2/1,po/f,x3/4,s7,x9/12,pi/b,x10/2,pk/e,x12/13,pn/d,x4/7,po/i,x14/12,s12,x10/5,s1,x9/12,s1,x13/10,s6,x15/1,pg/p,x10/2,s6,x12/0,pf/l,x14/5,s7,pm/o,x9/10,pi/k,x15/12,pe/o,s12,x8/10,pk/g,x13/12,s9,x14/0,s9,x3/1,s4,x4/14,pb/h,x13/7,pd/n,x8/5,pj/k,x12/1,s3,x15/8,s2,x10/1,s3,pi/n,x14/8,s7,x2/4,s5,x8/9,s1,x12/5,s6,x1/7,pm/a,x9/6,s6,x13/8,pl/k,x11/6,pm/c,x13/4,s5,x15/12,pa/l,x0/5,pe/p,x15/1,pa/c,s6,x8/3,ph/i,x13/9,s5,x14/3,pl/a,x10/2,pk/j,x12/3,s10,x13/1,pg/h,x3/4,s5,x11/6,s15,x15/9,s8,x2/7,s15,x9/13,s2,x15/14,s8,pe/p,x13/7,s5,x15/9,s8,pc/j,x7/14,s13,x12/4,s3,pm/l,x8/0,pf/c,x4/5,pp/g,x2/3,s8,x6/0,s5,x9/4,s9,x15/11,s11,x0/13,s12,x7/1,pc/a,x13/11,pb/g,x14/10,s6,pe/h,x6/4,s14,pk/c,x12/13,s10,x4/3,pj/i,x7/9,s9,x5/1,pe/m,s10,x15/2,pj/d,x13/5,s5,x3/1,s10,x2/9,s13,pm/b,x13/11,pp/j,x7/10,s1,x3/1,pm/d,x8/2,s3,x9/1,s1,pc/k,x13/8,s2,x3/4,s1,x5/0,s7,x2/4,s10,x10/3,pp/f,s3,x15/1,pi/d,x5/8,s7,x0/12,s12,x5/1,pa/n,x9/4,s11,x5/6,s1,x10/14,pe/d,x0/1,s10,x15/11,s6,x1/12,po/b,x3/5,pe/l,x14/7,s12,x11/13,pk/c,x7/6,pn/f,x2/12,s8,x5/8,pc/m,x15/11,s14,x3/13,s5,x15/11,s3,x9/1,s3,x5/7,s3,x9/1,pd/o,x2/6,pp/m,s6,x4/3,pj/o,x0/12,s11,x2/6,s9,x1/10,s12,pn/p,x11/7,s1,x2/0,s2,x15/6,s7,x7/8,s15,x0/11,s14,x12/15,pg/m,x9/3,s15,x12/15,s1,x14/1,pk/j,x3/13,s5,x12/14,s13,x1/6,s7,x15/14,pd/g,x7/6,s14,x8/1,s7,pj/b,x2/4,s2,x7/6,s11,x2/10,s11,x5/0,s15,x10/2,pl/i,x15/5,s12,pm/k,x14/2,s14,x1/13,s10,x12/5,s1,x11/7,s4,x2/14,s5,x13/9,pe/l,x11/6,s7,x12/0,pn/g,x13/8,pj/o,x7/12,s5,x13/10,pc/h,x12/1,pf/p,x0/13,s8,x10/14,s15,x0/9,s1,x10/13,s7,x3/9,pm/b,x0/14,po/k,s9,x13/2,pg/m,x6/7,s12,x10/3,s13,x0/6,s3,x12/5,s14,x2/8,pc/e,x5/7,s11,x12/1,s15,pn/l,x14/3,s13,x2/4,s15,x6/14,pd/c,x11/3,pm/e,x7/12,s7,x9/2,pf/g,x1/4,s9,x11/9,s15,x0/2,pp/j,x13/1,s2,x7/6,pm/c,x13/14,s14,x12/1,s14,x5/8,po/e,s2,x10/1,pl/i,x8/4,s5,x0/10,pk/d,x12/6,s12,x5/10,pa/n,s15,x15/11,s13,x3/13,pm/d,s1,x14/15,s9,x4/5,s12,pe/g,x11/15,pm/j,x3/10,s4,x0/5,ph/o,x13/3,s11,x5/11,s1,x10/6,s14,x0/4,s8,x10/1,pa/d,x12/4,s8,x5/15,s14,x14/10,pm/o,s5,x0/4,s5,x15/3,s5,x11/4,pk/i,x15/9,s7,x1/11,ph/l,x4/2,s5,x10/14,s7,x15/4,s9,x8/0,pj/o,x7/11,s14,x13/5,s8,x8/14,s14,x9/10,s4,x2/13,pb/h,x0/15,s14,pj/p,x5/6,s13,x1/14,s13,pe/c,x2/0,s6,pg/b,x5/8,pd/n,x14/12,s4,x5/1,s1,x10/14,s7,x2/5,s2,x8/15,s2,x2/5,pj/b,x4/14,s9,x7/12,s12,x10/13,pg/n,x14/11,s2,x1/5,s4,x3/9,s11,x8/0,pm/l,x1/14,s7,x15/7,ph/a,x2/12,s12,pe/n,s13,x3/13,s13,x2/4,s15,x15/5,s8,x11/0,s9,x8/9,pf/h,x14/13,s11,x10/4,s13,x11/3,s5,x10/15,s14,x14/8,s10,x15/13,s9,x9/0,s10,x8/6,s14,x11/0,s2,x1/4,pg/b,x0/9,s14,x3/2,s14,x8/5,s4,x6/9,s15,x13/5,pn/l,x9/6,pb/e,x13/8,s8,pi/a,x9/4,pm/k,x0/14,s2,x12/8,s5,x0/2,s4,pd/i,x15/11,s4,x13/3,pm/c,x10/4,s7,x12/11,pg/o,s4,x13/0,s3,x4/8,pm/j,x5/13,s13,x0/2,s8,x13/11,pl/d,x10/4,s15,x7/3,pk/h,x14/15,pn/m,x7/11,s12,x4/9,pl/i,x2/8,s2,x9/7,s6,x6/3,pf/n,x14/7,s2,x15/1,s11,x6/12,s11,x9/0,pk/m,x5/3,s5,x8/10,s5,x14/9,pg/c,x3/4,s3,x7/12,s14,x13/6,pn/k,x1/7,ph/m,x15/3,s12,x11/0,pk/f,x15/1,s5,x0/3,ph/c,x15/14,pn/l,x2/13,pm/d,x14/12,pi/e,x1/10,s5,x7/15,s15,x12/4,s2,x0/5,s10,x13/2,pp/k,x0/15,po/a,x1/2,pl/g,x11/7,pm/h,s5,x9/3,s5,x7/8,pi/a,x6/2,s4,x4/3,s11,x6/2,pp/d,x13/12,s15,x1/9,s7,x13/15,s8,x11/3,s6,x12/0,s8,x10/13,s8,x8/4,s9,x13/6,pf/a,x8/1,s8,x4/15,s15,x14/5,s11,x9/10,pp/d,x8/0,s5,x9/5,pa/h,x10/13,s10,x8/12,s6,pm/i,x10/9,pj/p,x6/7,pa/m,x13/11,pd/p,x4/14,pi/e,x10/8,pp/k,x14/9,pa/b,s10,x13/15,pe/h,x12/9,s12,x5/0,pd/j,x11/8,pl/e,x10/15,s15,x12/6,s1,x5/0,s6,x9/11,ph/j,x4/6,pl/c,x15/10,s9,pg/a,x8/13,s11,x1/15,s10,x2/8,pp/j,x0/11,s2,x13/4,s13,x7/8,s6,x10/14,pd/k,x0/8,pn/p,x5/15,pm/o,x14/3,pa/i,x5/6,s8,x0/10,s6,x14/13,pb/d,x1/7,s13,x8/4,s15,x6/2,pp/n,x15/5,s7,x4/12,s4,x5/6,s4,x11/12,s9,x14/0,ph/l,x6/12,s11,x13/8,s6,x4/3,s2,x0/11,po/k,x6/5,s9,x12/9,s3,x6/0,pb/p,x11/8,s11,x0/10,s10,x2/4,pe/k,x0/6,ph/a,x15/1,pf/e,x3/12,pp/b,x7/13,s12,pd/i,s9,x2/10,pe/a,x7/5,s7,x11/2,pd/h,x10/15,s14,x11/9,s4,pp/n,x7/1,s2,x14/5,s5,x4/13,pj/l,x7/6,s3,x12/15,s12,x4/2,s7,x9/1,s15,x4/3,s5,x6/8,s5,x2/13,s11,x12/10,s14,x14/11,s11,x15/9,pc/d,x2/4,s3,x0/10,pe/j,x2/5,s12,x1/13,s8,x9/3,pl/g,x7/10,pf/d,x12/13,s3,x14/1,po/l,s15,x10/12,pn/k,s1,pe/d,x6/5,s11,pb/g,x14/9,s10,x2/1,s2,x15/6,pd/l,x10/9,s8,x14/5,pp/e,x7/12,pm/n,x8/14,pb/e,x4/3,pl/j,x15/7,s6,x13/9,s12,x15/0,pc/o,x8/4,s7,x7/3,s15,pf/p,x12/0,s10,x5/14,s13,x15/13,s10,x7/1,pm/b,x5/12,po/p,x0/8,s10,x10/7,s9,x2/14,s7,x4/5,pi/a,s1,x10/9,s11,x12/7,pc/m,x1/8,ph/k,x7/6,s15,x13/0,s14,x12/4,s15,x11/10,s13,pn/g,s10,x13/6,s10,x8/3,s2,x12/4,s13,x7/3,pi/j,s3,x9/11,s12,x1/7,pn/e,x14/0,s10,x6/5,pm/i,x12/1,pf/d,x13/14,s2,x9/4,s8,x8/15,s9,pl/k,x3/11,pd/o,x10/0,s15,x5/11,pp/e,x1/4,s14,x0/9,pf/j,x11/3,s7,x13/5,s6,x4/0,s6,x14/1,s12,x9/11,pa/g,x6/2,s3,x1/4,s1,x0/15,pd/k,x8/2,s1,x4/13,s6,x11/12,ph/o,x2/14,s8,x0/6,s15,x9/4,s7,x5/1,s5,x7/4,s5,pn/b,x0/13,pe/j,x7/9,pk/f,x4/0,po/j,x12/2,pc/f,x7/13,po/p,x6/4,pa/i,x7/0,s3,x6/10,s6,x2/12,s8,x15/1,s3,x11/4,s10,x14/0,s8,x11/4,pk/p,x10/0,s7,x5/3,pi/l,x10/14,s11,x3/1,s2,x7/8,s11,x4/9,pb/f,x15/14,s10,x3/2,ph/j,x14/8,pp/e,x1/6,pf/j,x7/3,pi/n,x12/10,pa/m,s2,x0/15,pd/h,x1/7,s11,x4/5,s13,x10/15,s3,x13/11,s2,x2/6,pc/j,x9/12,s1,x11/13,pf/g,x12/9,s7,x0/7,po/c,x9/14,pl/k,x11/2,s15,x3/1,pc/e,x15/4,pg/j,x10/14,s4,x0/7,s10,x13/9,ph/i,x6/1,s15,x7/2,pf/l,x5/1,s9,x7/15,s13,x1/5,s13,x11/3,s9,x14/8,pd/i,x0/1,pf/k,x9/2,s8,x3/0,s13,x12/1,pn/l,x13/4,s4,x6/12,pa/o,x9/4,s5,x12/8,s5,x9/7,s11,x6/4,pd/c,x1/15,s8,x12/14,ph/k,x10/2,s10,x3/4,s5,x7/12,s7,x5/14,pp/n,x10/9,pc/e,x12/11,s2,x0/1,pm/p,x9/13,s13,x6/10,s5,x7/3,s7,x5/4,s14,x10/3,s9,pn/a,x15/13,pe/g,x3/2,ph/b,x12/15,s5,x4/3,s12,x6/5,pn/k,x13/0,s10,x1/8,pd/l,x9/2,s6,x4/0,pn/e,x15/10,pd/k,x7/9,s1,x15/4,s6,x2/7,s4,x6/4,s4,x1/8,pm/b,x5/7,s5,x8/4,pg/e,x0/14,s10,x4/13,s1,x3/8,pj/f,x15/2,s4,x13/1,s9,x6/10,pa/p,x8/14,ph/f,x11/12,s11,x8/5,s1,x10/12,pa/i,x6/7,s10,x9/14,s14,x4/3,s3,x13/7,s10,x9/0,s11,x14/13,ph/n,x7/3,po/l,s3,x0/2,pm/k,x4/6,pd/b,x1/15,s6,x10/5,s12,x3/14,s3,pg/c,s7,x1/0,pi/o,x9/4,s2,x5/11,pp/f,x10/13,s11,x7/9,pg/h,x11/12,pe/a,x7/6,pg/c,x12/8,s13,x7/11,s7,x6/10,s6,x9/13,s7,x14/12,pk/d,x2/9,s8,x4/13,s5,x10/2,pp/a,x14/4,s15,x15/7,pc/f,x4/8,s13,x6/3,s12,x13/9,s14,ph/d,x11/6,s1,x5/14,s8,x4/13,s1,x9/2,s9,pm/c,x1/6,s5,x13/10,s4,x1/15,s10,x2/13,s3,x3/6,pn/f,x4/2,s7,x8/15,po/j,x12/7,ph/d,s10,x6/3,pa/i,x1/2,ph/k,x9/0,pe/l,x14/5,s2,x8/10,s9,x14/0,s14,x5/11,s15,x13/15,pf/j,x6/4,s10,x12/14,s3,x1/11,s5,x2/0,s9,x4/5,po/n,x13/14,pc/g,x12/7,s6,x15/1,s7,x8/14,s15,x6/13,s11,x10/5,s7,x0/4,s9,x7/13,pp/m,x0/9,pg/f,x13/10,s1,x3/0,s15,x6/8,ph/d,x14/1,pk/m,x2/6,s10,x4/5,s6,x8/1,s5,x3/5,pa/i,x1/13,s10,x11/2,pc/d,x4/13,pe/p,x6/15,s13,x13/4,pl/a,s8,x5/9,s9,pf/g,x11/2,s14,pa/o,x6/15,s5,x12/8,pj/l,x13/4,s15,x10/1,s12,x7/11,s6,x6/1,s2,x3/0,s9,x14/2,pf/o,x5/6,pc/h,x8/11,s14,x5/6,s11,x11/2,s6,x14/3,s13,pk/i,x12/0,pm/d,x13/8,pj/e,s4,x6/2,s14,x5/14,s1,x7/9,pp/k,x8/13,s5,x10/15,pm/j,x8/2,pe/k,x13/9,pn/g,x11/7,s10,pi/d,x2/13,s8,x6/15,s3,pc/o,x11/13,s4,x10/15,s1,pp/d,x5/7,s15,x2/14,s5,x11/8,s7,x14/3,pb/o,x2/10,pd/h,s2,x9/5,pb/a,s9,x8/4,s13,x7/1,pc/o,x6/12,s1,x11/0,s6,x8/5,s15,pi/g,x14/3,pb/o,x1/2,s12,x5/7,pc/i,x6/4,pg/p,x8/12,s1,x7/11,s4,x9/2,s13,x8/7,s12,x2/1,pm/l,x12/8,pc/p,x1/10,s12,x6/2,s9,x0/7,s6,x8/1,s14,x0/11,s9,x7/9,pj/b,x15/8,pk/o,x2/6,s6,x11/12,s3,x2/0,s8,x12/6,pm/a,x3/14,s6,x10/5,pl/c,x1/11,pe/h,s1,x6/3,pn/i,x11/2,s5,x9/13,s12,x5/0,pe/d,x7/6,ph/b,x5/12,s5,x7/4,s3,x1/6,pf/l,x13/4,s6,x12/7,pn/c,s2,pf/b,x0/11,s13,x12/6,pn/c,x1/8,s7,x2/7,pl/g,x3/8,s4,x9/2,s13,x3/10,s6,x13/4,s10,x0/2,s8,x7/11,ph/a,x12/10,s7,x3/8,s6,x15/1,s4,x4/13,s12,x0/7,s4,x5/13,s4,x7/6,pb/f,x13/2,s12,x7/0,s10,x12/15,pm/o,x6/3,s15,x10/0,pg/d,x13/11,s12,x15/9,po/j,x11/12,pl/h,x1/14,s14,x11/7,s12,x1/6,s3,x14/0,s7,x5/10,s8,x14/2,pb/g,x13/15,s15,x3/1,s4,x12/7,pn/e,x1/11,s10,x13/15,ph/d,x8/6,s5,x7/10,s8,x2/8,s1,x15/11,pl/k,s14,x8/1,s4,x11/13,pe/n,s6,x12/5,s12,x14/2,s10,x8/6,pj/h,x13/2,s10,pl/e,x5/10,pa/i,x9/1,pp/n,s14,x12/2,s10,x14/4,s4,x11/12,s4,x13/0,pb/d,s8,x7/1,pm/e,s3,x6/8,s15,x0/2,s8,x7/4,pp/c,x0/12,s2,x8/2,s7,pd/a,x3/1,pm/b,x11/5,pd/n,x4/2,pm/k,x0/9,pf/b,x13/4,pe/g,x1/12,s13,x3/15,s5,x0/10,s3,pf/b,x9/13,pd/e,s3,x15/1,pi/o,x6/3,s1,x9/13,pc/a,x7/8,s6,x11/12,s13,x2/15,s4,x4/13,s8,x0/7,s8,x11/6,s6,pm/g,x9/12,s9,x7/11,s4,x9/6,s5,x14/13,s7,x5/0,s15,pf/j,x14/2,s9,x6/7,s8,x10/2,s6,x11/0,pg/b,x8/13,s4,x6/14,s1,pp/k,x11/3,pf/c,x4/2,pn/h,x10/13,pj/b,x12/6,s6,x15/0,s14,x1/12,pg/k,x15/7,s15,x2/13,s8,x4/3,pa/c,x13/12,s3,x14/10,s6,x12/11,s4,x10/15,s8,x8/1,pn/i,x10/2,s7,x0/6,s13,x3/10,pa/e,x14/4,pn/m,x12/5,s8,x4/2,pk/i,x12/11,pd/l,x7/3,ph/b,x12/14,pm/n,x11/1,s5,x7/8,s10,x6/1,pc/f,x7/14,s6,x3/4,s5,x12/1,ph/n,x13/15,pk/i,x14/11,pf/b,s10,x8/5,s7,x9/10,s2,x8/6,pc/p,x4/14,pn/d,x12/15,s13,x7/0,s14,x6/5,s7,x1/13,pb/k,x14/10,s12,x13/0,pc/j,x2/7,s1,pf/a,x11/13,s12,x7/1,s1,x15/12,pp/i,s14,x13/9,s2,pn/d,x3/4,pl/m,x0/14,pb/e,x8/10,s13,x13/1,s2,x11/3,s8,x10/12,s6,x0/15,pg/a,x10/3,s10,x8/1,pj/i,x10/13,s1,x5/1,s4,x6/8,s15,x3/10,s5,x15/14,pc/l,x3/8,pe/o,x0/14,s15,x3/12,pp/d,s3,x1/7,s3,x12/4,pi/k,x14/10,ph/l,x15/2,pd/f,x10/4,s1,x14/5,pe/c,x11/3,s8,pn/a,x15/13,pl/g,x7/5,pm/p,x9/3,pc/j,x4/0,pl/i,x8/14,pg/b,x0/9,s15,po/d,x6/7,pl/m,x13/9,s4,x14/0,pn/k,x11/10,pc/l,x6/0,s2,x3/5,pp/b,x7/15,pd/l,s12,x13/12,pf/e,x0/2,s3,x11/3,pl/o,x10/6,s15,x11/13,s1,x8/3,s1,pg/f,x4/0,s15,x13/3,s10,x0/2,s10,x13/4,s9,x3/14,s11,pk/c,x2/15,pm/d,x13/10,s14,x0/14,s12,x8/3,s6,x14/6,ph/e,x13/7,s10,x1/14,s13,x15/13,s10,x0/2,s12,x6/5,s14,x8/14,s10,x0/7,s6,x8/1,pa/k,x0/4,pd/f,x3/6,s12,x10/7,s10,x12/0,s13,x5/14,s8,x2/15,pa/l,x0/1,pj/b,x7/3,s5,pg/l,x12/4,pn/a,x5/3,pi/e,x7/1,po/j,x4/10,s15,pi/d,x15/7,pj/k,x0/9,pm/n,x2/1,s11,x7/14,s11,x5/9,s3,x3/12,s15,x8/2,s15,x12/5,pd/l,x15/9,s10,pa/j,x8/12,s12,x7/5,pl/i,x0/14,s10,x1/7,pk/e,x5/0,s1,x2/13,pf/l,x5/8,pg/h,x3/7,s5,x15/0,s13,pk/j,x11/5,pb/h,x2/14,s14,x13/12,pf/j,x9/6,s12,x2/0,s11,x3/6,s11,x14/0,pi/o,x9/7,s5,x13/0,s2,pd/n,x5/1,s12,x12/8,pc/h,x9/7,s14,x12/0,s3,x5/6,s11,x12/10,s10,x15/3,s12,x13/12,pl/o,x0/15,s3,x1/7,pf/a,x5/2,pg/m,s9,x9/1,s15,x11/3,pd/n,x9/2,s5,x12/8,po/e,x5/2,s2,pi/g,x7/0,pl/k,x3/11,s10,x15/7,s9,x9/3,s6,x0/12,pe/d,x10/8,s2,x4/5,pk/b,x0/3,po/c,x12/7,pj/n,x2/4,pg/i,s10,x15/0,pp/n,x14/8,pg/a,s11,x4/12,s11,x5/8,pj/c,s11,x1/3,s5,x13/14,s15,x15/5,pa/e,x2/12,s5,x1/8,s1,x12/9,pd/c,s12,x7/5,pk/m,s7,x10/15,s5,x1/2,ph/p,x0/7,pj/o,x14/12,s13,x9/15,s13,x6/2,pl/a,x3/8,s1,x7/11,s6,x2/8,pe/m,x0/11,pf/b,s1,x1/14,pk/h,x5/0,s6,x12/6,pn/f,x8/5,s5,x13/10,pb/m,x6/11,s6,x4/10,pf/a,x12/15,s9,x1/4,s2,x7/15,s1,x2/0,s6,x13/14,pl/c,s9,x7/4,pm/f,x6/5,s3,x3/0,pb/l,x14/4,s5,x15/9,s1,x7/3,s11,x12/0,s6,x9/2,pk/d,x13/15,s13,x14/9,s1,x15/2,pp/j,x11/3,s6,x2/4,s9,x1/9,s2,x11/13,s11,x4/7,s8,x2/12,po/n,x6/14,pm/p,x4/10,s3,x5/2,pk/i,x0/15,pj/a,x7/12,s4,x2/11,s15,x15/13,s12,x9/5,s6,x12/2,s7,x9/15,s13,x1/14,s14,x8/6,s5,x13/11,s15,x8/10,pk/g,x12/3,s1,x7/0,s15,x9/3,pm/a,x14/7,s13,x3/2,s6,x1/10,pk/h,x8/2,s9,x4/1,s2,x3/9,s12,x2/11,s7,x13/14,pf/n,x3/6,s9,x5/2,pc/o,x11/12,pb/a,s4,x6/3,pl/f,x15/13,pd/i,x11/5,s6,x6/12,pm/g,x14/9,s4,x5/2,s3,x10/3,s13,x11/12,pj/p,x10/6,s13,x4/7,pd/b,x2/9,pl/c,x4/13,s15,x15/3,pm/h,x9/6,s13,x7/1,pa/b,x9/14,s15,x3/15,s13,x6/13,s7,x1/7,s7,x6/4,ph/o,x1/14,pg/f,x6/4,s1,x13/9,s14,x10/1,s5,x11/13,ph/o,x0/10,pb/k,x13/3,pp/a,s4,x14/1,s8,x2/15,s8,pf/g,x3/11,s10,x1/9,s7,x4/0,s3,x7/9,pe/m,x6/2,pa/c,x7/15,s8,x1/0,pp/j,x2/3,s1,x6/11,pe/i,x8/15,s12,x1/13,s9,x9/10,pk/d,s4,x12/11,pj/c,x15/5,s6,x14/7,s11,x2/1,s13,x13/4,s3,x2/7,s7,x14/4,s15,x9/6,s12,x12/8,s4,x7/11,s7,x5/12,pg/f,x0/10,pn/j,x14/12,s1,pc/a,x4/11,pf/d,s1,x8/5,pk/i,x13/7,s13,x4/3,s15,pa/b,x6/12,pc/m,s8,x1/8,s13,x13/5,s13,x14/4,pf/e,x7/15,pn/i,x9/11,s1,x8/5,s10,x2/13,s14,x0/5,s5,x11/9,s11,x0/7,s13,x12/2,s15,x8/7,pb/g,s1,x1/14,s3,x10/15,s4,pk/e,s7,x0/12,pn/l,s3,x14/3,pk/m,x10/4,pf/i,s9,x7/2,pg/n,x11/10,s7,x2/8,pb/a,s15,x1/13,pj/g,x7/6,s8,pn/o,x9/8,s15,x10/6,s11,x3/15,s8,x10/7,s7,x9/11,s6,pi/b,x13/15,s13,x6/9,s9,x15/3,s2,x13/11,po/g,x14/15,s3,x2/13,s7,x0/12,s2,x6/5,s12,x3/0,pp/m,x15/12,pn/a,x14/5,s4,x0/11,s2,x6/3,s6,x4/2,s11,pf/j,x10/1,s2,x3/12,pc/p,x11/7,pk/m,x10/6,pa/c,x7/4,po/j,x14/5,pa/g,x0/1,s5,x10/9,s2,x15/6,s6,x10/13,s2,x3/8,pm/e,x13/1,pn/h,x8/12,s15,x14/3,pb/p,x4/5,s1,x13/10,pj/n,x15/11,s11,x10/3,pl/d,x6/12,ph/o,x14/0,s7,x1/10,s2,x5/13,pj/n,x10/2,pf/b,x13/0,s1,x9/10,pe/d,x6/3,s14,x9/10,pk/b,x2/5,pa/o,x13/15,pe/n,s10,x11/3,s9,x6/12,s2,pc/l,x8/15,s7,po/i,x1/11,s12,x4/0,pp/c,s2,x10/14,pi/b,s9,x2/0,s12,pj/o,x3/13,s8,x0/8,s8,pf/p,x6/10,s8,x13/7,s15,ph/m,s13,x3/5,pk/g,x11/8,s1,x4/6,ph/c,x12/8,pk/o,x3/4,s14,x15/10,s6,x8/0,pl/m,x10/3,pf/k,s11,x6/15,s12,x7/13,pp/d,x10/4,s10,pa/b,x9/3,s12,x6/4,pe/f,x11/14,po/n,x4/6,s10,x3/15,pj/m,s7,x9/14,s2,x10/0,s10,x7/11,pn/k,x0/3,pm/a,x8/6,s1,x9/1,po/j,x12/6,pa/h,x10/15,pd/i,x2/0,pa/m,x12/14,pi/n,x4/8,pk/c,x3/14,pd/g,x5/1,pl/a,x14/2,s3,x7/3,po/j,x14/12,pp/m,s2,x9/5,pc/h,x15/2,pm/g,x13/8,s1,x4/3,s2,x11/1,s1,x12/7,s9,x10/14,pi/j,x7/13,s13,x1/8,s15,x0/6,s1,x5/14,s3,x13/10,pd/h,x8/6,pj/o,s14,x9/14,ph/b,s9,x13/15,pe/k,x8/0,s4,x2/6,pf/h,x5/13,s10,pi/a,x0/8,s2,x9/2,s8,x14/5,s10,x6/12,s13,x8/11,pf/l,x13/3,s9,x7/12,s7,x9/8,s6,x7/0,pd/a,x14/12,pj/g,x9/0,s9,x14/1,pc/i,x2/0,s2,x15/10,pg/f,x9/0,s1,x6/3,pn/d,x7/12,pi/a,x6/3,pd/m,s12,x9/10,s5,pl/c,x4/11,s14,x5/9,s10,x0/4,pi/f,x3/7,s15,x2/0,s14,x1/4,pj/g,x11/8,pi/c,x15/9,s7,x1/14,s1,x6/2,pk/p,s4,x1/3,s15,x11/10,s9,x0/13,s7,x10/3,s7,x9/15,pe/d,x2/6,pi/c,x14/12,s3,pn/o,x0/10,ph/f,x6/9,s4,x5/4,pd/m,x11/6,pc/b,x3/4,s1,x6/8,pl/o,x12/9,s7,x8/7,s5,x11/15,s4,x14/7,s3,x0/9,ph/a,x7/14,s1,x12/15,s13,x10/11,s1,x0/4,pk/n,s9,x15/13,po/f,x7/11,s15,x10/0,pi/p,x14/11,pa/h,x1/0,pb/o,x6/14,pm/j,x4/13,s13,x12/6,s13,x13/15,s1,x6/14,s13,x0/12,pn/f,x7/14,s9,x9/3,po/d,x6/4,s7,x10/14,s4,pa/k,x6/7,s12,x1/5,s9,x14/3,pi/p,x10/1,pd/c,x8/9,pi/l,s8,x2/3,s1,x8/9,s9,x5/1,s14,x11/15,pa/j,x8/1,pd/k,x12/3,s12,x2/9,s8,x7/6,s14,x11/13,pf/h,x9/0,s5,x7/13,pm/o,x5/15,pf/a,x10/11,s6,x6/14,po/g,x1/4,pa/c,x14/8,s3,x5/4,pp/g,x13/9,pa/c,x15/7,s8,x8/11,ph/g,s6,pk/m,s2,x5/4,pe/c,x8/13,pg/o,x3/11,pm/f,x6/5,pn/g,x13/12,s10,x14/1,s11,x12/6,pa/m,x10/4,s7,x0/12,s12,x9/3,ph/e,x6/5,s1,pf/d,x8/10,s7,x5/14,s9,x11/2,pi/n,x3/15,pp/c,x7/5,s11,pe/l,x2/15,po/f,x9/6,s8,x2/7,pa/m,x5/6,s11,x8/15,s14,x14/9,po/f,x1/2,s1,x4/0,s1,x1/7,s12,x8/14,pe/k,x12/6,s2,x7/13,s5,x4/11,pj/b,x9/12,s13,x0/8,pf/g,x14/5,pc/a,x3/4,s1,x1/14,s4,x2/11,s7,x14/7,s11,x13/1,s6,x4/11,s15,pe/j,x13/3,pm/p,x15/10,s7,x8/11,pc/j,x1/14,s11,x10/7,s11,x2/9,s4,x14/12,pm/p,s8,x2/10,s14,x11/9,pl/a,s4,x8/6,s9,x4/9,s8,x13/14,pk/i,x9/1,s15,x2/15,pj/l,x11/10,s1,x14/7,s8,x13/15,s1,x4/5,s10,x11/1,pf/i,x10/7,pl/d,x9/6,s9,x4/14,pp/c,s14,x13/11,pa/f,x1/15,pp/c,x7/12,pa/l,x2/14,s10,x4/10,pj/f,x2/6,s14,x14/8,pd/h,x11/0,s1,x1/2,s7,x9/6,s14,x12/8,s10,pg/o,s4,x4/2,pn/b,x11/7,pj/k,x14/6,s6,x3/2,s3,x10/11,pb/c,x2/1,s4,x15/14,pk/g,s6,x13/4,pm/n,x0/14,s14,x5/15,s11,x1/2,s7,x6/14,s13,x13/9,s7,x4/2,s11,x3/13,s7,x14/9,s4,x10/11,s2,x5/7,s4,x13/0,s12,x2/15,pa/j,s11,x12/7,s8,x13/2,pm/p,x11/14,pi/h,x6/0,pg/c,x3/1,pd/i,s3,pk/l,s10,x5/15,s6,x6/8,s12,x13/15,s4,x6/2,s5,x8/1,pa/f,x5/13,po/e,s14,x9/15,s12,x0/3,s1,x11/7,pb/g,x10/12,pi/a,x0/11,pl/j,x6/3,s10,x15/13,s15,x8/14,pf/i,x1/13,pb/p,x15/14,pm/h,x9/11,s1,x7/15,s5,x4/13,s3,x3/15,pc/n,x13/14,s14,x9/15,pk/b,x10/12,s14,x9/1,s14,po/h,s6,x8/3,pp/l,x6/1,pc/j,s15,x5/11,s8,x7/8,pa/o,x9/5,s12,x15/7,s5,x6/1,s15,x13/7,s14,x5/6,pf/g,x2/9,s9,pm/j,x6/11,s12,x2/15,pl/f,x14/7,pn/k,x9/3,s9,x10/6,s1,x15/0,s2,x2/4,s15,x8/14,s10,x5/4,s9,x0/11,pa/b,x12/3,s8,x8/5,pp/n,x14/2,s9,x6/0,pb/g,x8/14,s12,x2/9,s5,x15/10,pd/o,x8/2,pg/j,s5,x0/14,s3,x2/11,s3,x10/0,s5,x4/13,pm/f,x3/6,s8,x7/8,s6,x5/4,s14,x7/11,s1,pg/k,x15/4,s2,x1/13,po/f,x2/14,pg/k,x1/10,s2,x13/6,s1,x4/15,pl/o,x9/13,s8,x10/1,s3,x7/12,s3,x4/14,s9,x6/11,s7,x1/0,pi/k,x9/8,s2,x6/2,s3,x13/4,s8,x5/9,s4,x10/12,po/d,x8/6,s15,x15/1,pa/j,x2/5,pn/h,x1/11,pf/j,x2/6,s2,x7/0,ph/e,x13/4,s2,x10/3,pf/d,x13/5,s12,x12/10,s7,x14/3,pg/m,x11/7,ph/o,x14/15,s14,x4/5,s2,x0/8,s7,pf/c,x3/13,s1,x6/15,s10,x13/12,s6,x5/8,s2,x3/4,s6,x8/7,pm/e,x13/14,pp/j,x3/5,s7,x8/0,pe/b,x5/7,pc/g,x13/14,pb/o,x9/12,s13,x1/13,pe/h,x7/8,po/c,s10,x12/15,s1,x3/4,pb/a,s13,x1/5,s14,x14/8,pd/j,x3/6,s7,pc/a,x0/9,pj/k,x14/6,s12,x0/11,s5,x1/13,pl/c,s7,x11/14,pj/f,x3/15,s5,x8/2,pd/g,x0/1,s6,x3/15,s13,x12/4,s3,pa/e,x8/7,s9,x0/6,s5,x7/8,pi/h,s6,x13/4,s1,x0/11,pe/m,x1/4,pk/i,x8/6,s7,x13/14,s2,x9/8,s15,x2/1,s14,x7/13,pb/h,x14/0,pg/m,x13/15,s13,x7/12,s6,x11/13,s13,x7/4,s10,x15/13,s3,x7/12,s6,x0/13,s9,x6/9,s13,x8/15,s3,x6/1,s8,x14/3,s5,x11/7,pb/k,s3,x15/9,s2,pl/p,x4/14,s7,x10/5,s13,x4/8,s6,x6/13,s9,x3/9,s5,x7/10,pa/c,x6/14,pe/l,s12,x1/7,pa/j,x11/0,s13,ph/n,x14/4,pj/p,x2/11,pl/f,x7/0,s3,pk/d,x6/8,s3,x7/0,pc/l,s5,x14/1,s7,x9/8,s13,x1/7,pg/e,x12/11,s5,x15/3,pa/o,s1,x2/7,s2,pp/e,x14/8,s12,x6/12,ph/b,x1/7,s13,x15/9,s11,x14/13,pk/p,x12/2,s8,x4/14,s1,x2/10,pl/o,x1/4,s5,x12/15,pc/f,x0/3,s13,x9/12,s6,x3/5,s6,x9/1,s5,x5/2,s3,x10/3,pb/k,x8/15,s9,x4/14,pj/c,x11/8,s14,x4/13,pm/e,x10/1,pd/o,x11/12,pa/b,x9/2,s6,x3/12,s13,x11/9,s6,x15/1,s11,x4/9,po/k,x0/2,pf/h,x15/9,s5,x8/1,s4,x14/13,s6,x10/6,pb/o,s4,x12/15,pe/g,x10/3,s3,x0/13,pk/o,x12/14,s4,x6/2,s12,x14/3,pj/i,x2/12,pd/g,x1/7,s6,x14/4,s5,x5/1,pb/j,x14/9,s8,x4/11,s12,x10/8,s12,x0/5,po/k,x9/13,s8,pi/a,x1/5,s8,x10/11,pm/j,s14,x8/13,s12,x4/5,s3,x12/13,pg/l,x10/7,pp/n,x5/0,s4,x12/1,pe/j,x11/4,s1,x14/8,pf/c,x1/12,pi/g,x5/15,s4,x13/8,pc/b,x15/4,pa/k,s6,x5/7,pf/g,x15/2,s11,x6/7,s4,x8/11,s11,ph/j,x9/3,s3,x15/8,pe/k,x14/12,s9,x4/5,s14,x3/7,pa/p,x14/0,pn/j,x4/8,pf/e,x6/9,ph/j,x7/13,s5,x0/12,s6,pf/k,x10/6,s3,x13/4,pa/l,x11/12,pg/j,x1/15,s2,x0/2,s13,x13/5,pc/o,x7/4,pf/p,x2/8,s7,x10/12,s13,x13/1,pl/m,x8/4,s15,x15/1,po/p,x10/3,s8,x6/2,pm/l,x12/3,pi/e,s3,x11/1,s7,x12/3,pd/o,x13/5,s14,x3/4,s12,x12/1,s9,x2/4,s5,x12/14,ph/l,x3/2,pn/p,x7/1,s5,pm/h,x2/5,pn/j,x8/12,pe/p,s13,x7/1,s12,x8/2,s12,x14/4,s1,x12/3,s14,x11/8,pd/c,x7/13,s10,x15/10,s5,x5/14,s3,x13/2,pf/n,x14/1,s11,x12/6,s5,x4/2,pl/c,x8/3,pa/j,x5/12,pi/p,x11/10,s4,x0/1,s4,x13/14,pd/f,x6/11,s3,x9/2,po/b,x4/6,pd/p,x3/5,s7,x7/12,ph/m,x8/13,pd/j,x11/15,pi/c,s13,pd/g,x7/14,s7,x11/9,s15,x14/13,s5,x6/7,s14,x8/10,pi/m,x5/2,pa/j,x4/3,s8,x15/13,pf/h,x5/7,s14,x12/9,s9,x10/4,pj/d,x15/5,s3,x14/11,s1,x4/0,s5,x2/11,pl/n,x15/6,s10,x9/2,s12,x12/13,s5,x4/1,s9,x12/7,s4,x0/9,s9,x12/6,s11,x1/10,s5,x11/12,s7,x9/7,s1,x15/5,pb/h,x3/1,pa/i,x8/6,s6,x7/13,s10,x3/12,s8,x15/9,pj/f,x6/3,s6,pn/i,x7/2,s12,x6/14,s7,x3/7,po/c,s5,x9/14,pi/l,x11/0,s12,x8/12,s9,x1/7,pc/b,x12/4,s5,x1/14,s5,x4/9,s12,x6/0,s13,x11/7,pl/d,x4/2,pj/h,x10/6,s5,x14/5,s9,x9/12,s9,x14/15,s7,x7/5,pm/l,x9/4,pn/p,x8/6,s11,x3/12,pb/e,x8/15,s14,x2/13,s12,x0/8,pi/k,x12/7,pl/j,x10/6,po/h,x3/14,s2,x2/13,s10,x1/15,s3,x12/10,pb/k,x14/4,s7,x6/12,s12,x3/9,pl/p,x8/14,s14,x2/11,s15,pj/a,x4/1,po/b,x0/10,s11,x8/5,pc/l,x7/12,s13,x4/15,pk/p,x11/6,s12,x2/5,pa/d,x13/8,s13,x1/10,po/m,x2/12,pp/c,s15,x14/5,s10,x1/0,s6,x15/12,po/k,x8/0,s5,pd/p,x6/13,s6,x1/7,pe/m,x9/11,s3,x14/8,pp/g,x11/3,s3,pe/n,x0/5,pd/l,x6/4,pp/m,x0/9,pe/f,x7/14,s9,x9/1,s6,x0/2,s6,x3/15,s14,x6/5,s3,x14/15,s11,x8/5,s7,x10/9,s14,x12/14,pk/m,x9/1,pl/p,x11/7,s4,x13/12,po/h,s11,x5/3,pf/d,x1/13,pa/c,x4/3,s5,x8/1,s4,pj/g,x14/4,s12,x10/6,s12,x14/11,s1,x8/3,po/d,x0/9,s9,x12/1,pc/m,x6/13,pi/o,x14/2,pj/k,x15/9,s3,x11/6,s6,x1/2,s8,x4/13,s5,pe/f,s8,x3/15,s9,x2/1,s4,x8/14,pd/c,x7/1,ph/m,x5/11,s2,x4/3,pn/k,x5/1,pb/f,x15/6,s1,x7/14,s2,x0/6,pe/g,x10/1,pd/c,x6/13,s7,x1/4,pk/h,x9/12,s15,x6/11,pi/m,x1/15,pd/l,x0/14,s14,x12/10,pn/f,x7/1,s13,x4/5,po/m,x14/1,pn/l,x12/3,pb/o,x10/13,s12,x0/6,s14,x8/1,s7,x2/14,pg/j,s13,x9/12,s15,x11/7,s6,x8/2,pn/h,x0/5,pm/k,x8/13,ph/i,x7/5,pl/j,x11/10,s1,x8/14,po/e,s13,pf/k,x1/11,pg/e,x9/10,s6,x14/13,pi/b,x2/7,s12,x13/3,s4,x7/9,s2,x12/14,s8,x13/11,s9,x14/8,pn/m,x1/15,s9,x3/0,s12,x2/14,s7,x0/12,s2,x1/13,s13,x15/8,s10,x10/4,s3,x9/5,pf/a,x8/7,pe/j,x6/10,s5,pl/k,x13/14,pf/i,x11/8,pp/g,x15/10,pb/c,x3/12,pn/l,x9/11,pb/a,x6/0,pc/j,x15/13,s2,pa/f,x5/0,s9,x10/8,pd/e,s10,x13/14,s10,x9/0,s6,x2/15,s13,x12/7,s3,x0/1,pb/k,s9,x8/2,pg/p,x10/7,s6,x12/6,s2,x8/3,s9,x6/4,s14,x1/0,pe/c,x13/10,pa/p,x14/2,pl/i,x13/5,s2,x4/10,pc/p,s6,x6/5,s14,x3/10,pn/o,x7/1,pa/d,x8/15,pj/b,x3/12,pm/h,s6,x0/15,po/g,x8/13,s9,pi/h,x12/6,s12,x13/3,s14,x7/9,s13,x5/11,po/l,x1/3,s13,pi/g,x8/4,pa/b,x10/13,s14,x2/8,s11,x11/9,s14,x13/12,s15,x6/15,s1,x7/8,pf/j,x14/5,pg/n,x11/1,s1,x3/13,s14,x9/1,s15,x11/7,pd/j,x0/12,s12,x13/7,s11,pc/k,s12,x8/10,s1,x4/13,s12,x12/14,s4,x10/5,pm/g,x14/0,pn/e,x8/4,pp/d,x15/6,s3,x0/12,pa/c,x3/13,s14,x14/4,s3,pl/g,s2,x15/8,s15,x10/14,s8,pk/i,s2,x8/2,s8,x9/7,pm/b,x8/0,pi/d,s6,x6/1,pf/n,x0/14,s4,x10/1,s6,x14/11,s8,pa/g,x15/1,ph/i,x12/14,s3,x2/13,s10,x1/3,s14,x12/2,s3,x6/3,s1,x13/8,s14,pa/m,x2/9,pj/h,x4/15,pe/p,x3/13,pj/a,x1/14,pm/n,x8/13,s2,x12/11,s14,x8/2,s9,x15/1,s10,x10/12,s13,x13/1,s4,x7/0,s1,x8/11,s7,x14/15,s13,x13/3,s13,x6/2,pb/d,x3/10,pp/n,x6/5,s1,x4/3,s6,x1/0,pc/h,x15/9,s12,x7/2,s2,x10/9,s7,x7/15,pl/e,s11,x8/10,s9,x15/14,pk/n,x3/6,s8,x15/0,pf/m,x14/10,s10,x8/9,s1,x6/5,ph/i,x4/8,s8,x15/7,po/f,x8/11,pa/p,x0/12,po/h,s6,x4/6,s10,x0/15,pi/a,x7/8,s11,x11/6,s10,pm/c,s8,x8/12,pg/d,x10/1,s4,x4/15,pf/l,x9/8,s6,x14/10,s2,x12/1,pa/g,x14/7,s9,x4/6,s15,x10/0,pe/f,x11/2,s9,x12/4,s3,x3/5,s1,x9/10,s13,x6/12,pm/j,x9/3,pp/f,x15/14,s13,x7/10,pb/j,s1,x5/6,s12,x10/12,s15,x9/14,s12,x1/2,s5,x7/0,s3,x5/15,s12,x6/10,s3,x0/4,s5,x10/3,s5,x6/0,s15,po/e,x3/11,s14,x13/1,s15,x4/6,s5,x12/2,pj/i,x4/8,pg/a,x13/7,s1,x8/15,po/l,x9/13,pf/g,x7/10,pc/n,x11/5,s8,x7/0,pp/b,x8/14,s7,x13/11,s7,x10/8,s8,ph/o,s3,x9/11,s10,x12/6,pn/c,x0/9,pf/p,x14/4,pj/l,x6/3,s7,x13/5,s12,pg/k,x9/14,ph/i,x6/10,pg/a,x9/3,pl/f,x4/15,s8,x9/13,s8,x6/0,s13,x1/11,s4,x15/10,ph/a,x5/3,s1,x7/9,pd/o,x12/8,s2,x13/14,pj/f,x11/9,s7,ph/m,x15/5,pd/i,x3/13,pm/j,x2/4,s8,x3/6,s10,x12/5,s6,x8/13,s14,x4/7,s11,pk/a,x5/9,s11,pc/g,x11/14,pn/a,x12/8,s7,x4/6,s12,x1/9,pp/k,x11/13,s4,x3/7,s15,x15/11,s7,x2/7,pn/i,x14/15,pc/f,x4/2,pi/j,x5/9,po/c,x11/2,pi/l,x9/10,s1,pk/o,x14/15,s10,x7/0,pl/a,s12,x6/13,pj/m,x11/7,s12,x13/3,s9,x7/9,s3,x2/15,s9,x8/11,pl/g,x7/1,pe/a,x6/11,pf/i,x14/2,s15,x11/6,s5,x14/2,pd/e,x15/6,s6,x0/10,pm/l,x8/12,pb/f,x10/15,s11,x1/5,s14,x9/4,ph/n,x13/11,s15,x4/0,pc/k,x11/10,pa/e,s1,x15/3,s8,x11/6,pn/p,x10/2,s15,x11/13,s6,x3/5,s14,x9/1,pk/j,x0/14,pm/o,x8/2,s4,x10/3,ph/d,x4/7,pp/k,x9/10,s1,po/b,x11/13,pp/k,x12/3,po/d,x13/10,pn/b,x5/2,po/g,x13/15,s5,x4/3,pf/l,x13/11,s7,x15/14,pe/h,x11/13,pa/l,x1/9,s8,x13/7,s15,x4/1,pe/o,x8/2,s8,x6/5,s10,x2/4,s12,x12/7,pb/g,s15,x2/14,pm/j,x7/15,s10,x3/4,s8,x8/15,s9,x9/0,pp/e,s14,x8/6,s5,pk/j,x12/9,pg/l,x1/6,s3,x15/2,s2,x11/1,pa/m,x6/14,s9,x1/10,pj/i,s7,pe/b,x6/15,s14,x7/12,s11,x11/15,pd/l,x5/12,pn/m,x8/6,s6,x10/11,s9,x1/8,pc/f,s8,x15/14,pb/n,x1/6,pj/g,x15/3,pe/d,x7/4,s2,x13/6,s10,x2/10,pi/f,x14/12,s9,x11/4,pb/k,x6/10,s14,x0/9,s13,x10/13,pi/g,s4,x4/12,pd/c,x14/11,s7,x10/8,pa/f,s10,x0/5,s10,x14/7,pn/e,x13/0,s7,x4/7,s10,x1/15,s3,x6/5,pf/j,x4/9,s13,x10/8,s3,x11/3,pm/e,x12/2,pb/i,x10/6,pl/h,s4,x15/5,s15,x4/14,s3,x12/3,s15,x13/9,pg/d,x14/5,s5,x8/15,s6,x11/14,pi/b,s1,x7/10,ph/e,s1,x1/8,s5,x10/2,s10,x14/6,s8,x0/2,pb/f,x15/9,s4,x11/5,pd/a,x12/7,s5,x13/4,pp/k,s9,pa/c,s12,x9/11,pe/l,x1/8,s6,x15/10,s7,x3/4,s12,x8/12,s7,x11/13,pn/k,x7/8,s2,x10/13,s14,x5/11,s14,x3/15,pd/b,s6,x9/6,pp/i,x0/11,pl/k,x15/6,pg/n,x4/9,s12,x0/10,ph/f,s3,pl/c,x2/14,s15,x9/0,po/j,x11/8,s9,x12/5,s1,x14/4,s15,x3/10,pe/l,x14/2,pf/n,x7/13,pm/j,x1/3,s5,x5/8,pf/a,s4,x10/2,pn/g,x9/11,s11,x6/7,s10,x10/9,pb/p,x1/4,po/c,x10/15,s3,x2/12,s3,x5/0,s13,x9/3,s13,x4/5,pd/b,x12/0,s4,x14/6,s6,x12/1,s10,x3/0,pi/m,x8/7,s9,x11/3,s13,x0/10,s6,x4/2,s8,x15/3,pf/d,x13/5,s15,po/e,s1,x0/8,pi/c,x1/4,pj/f,x13/9,s12,x15/2,s11,pm/a,x8/7,s10,x2/3,s9,x0/1,s5,x11/3,s1,x6/12,s11,pe/k,s7,x4/7,s8,x11/0,pn/m,x14/10,pp/o,x4/11,s7,x8/9,s12,x0/15,pd/b,x4/9,pc/i,x6/5,pd/e,s6,x14/3,s12,x7/8,s12,x5/1,pf/k,x3/11,s7,x0/7,s15,x12/8,s9,x0/7,s6,x1/9,pp/h,x14/10,pg/l,x15/13,s10,x4/5,s13,x11/13,s2,x0/3,s2,x15/4,s7,x10/14,s6,x0/12,s10,x4/9,pk/a,s11,x3/8,pe/d,x2/0,s14,x10/4,s1,x11/5,ph/n,x1/12,s14,x9/5,pm/i,x7/3,pb/h,x6/0,pa/g,x11/7,s12,x5/1,s12,x0/9,pk/o,x6/7,s2,x4/2,s11,x14/7,s4,x2/13,s13,x10/12,s1,x3/9,pb/f,x11/14,s13,x8/3,s9,pl/e,s5,x10/0,pi/c,x5/4,pa/o,x8/0,s6,pk/h,x15/6,pa/g,x5/10,s2,x0/1,s13,x7/2,s9,x15/10,s15,x13/2,pp/o,x4/6,pk/i,x1/13,pf/h,s15,x14/8,pb/p,x11/7,pl/f,x5/13,pa/e,x12/1,s3,x4/13,s12,x14/9,pm/k,x4/3,s10,pe/b,x15/1,s14,x5/10,pc/i,s14,x1/9,s8,x2/12,s7,x11/7,s13,x0/5,pm/e,x7/2,s12,pa/j,x4/5,s3,x8/11,s11,x13/9,s6,x14/7,s13,x6/15,s15,x7/8,s3,pk/e,s3,x1/2,pa/c,x13/15,s6,x12/3,ph/p,x9/11,s3,x0/15,s6,x12/13,pj/i,x6/4,pf/a,x2/11,s11,x5/7,s9,x1/11,s15,x8/14,pl/c,x0/11,pm/d,x3/9,s6,x14/12,pk/a,x0/4,s3,x7/2,s8,x10/5,s11,x12/1,s3,x14/13,s4,x3/4,ph/o,x14/1,s8,x4/13,s3,x12/9,pk/m,x7/6,s15,x1/2,s13,x6/12,s5,x5/2,s1,x10/1,s11,x6/2,pf/e,x12/14,s12,x7/0,pi/c,x4/13,pm/d,x15/1,s1,x12/9,s12,x4/10,s3,x6/15,s7,x10/11,pb/i,x3/9,s7,x8/1,s2,x6/7,pn/p,x8/1,s3,x6/13,po/c,s13,x2/3,pe/g,s15,x10/5,ph/d,s2,x7/15,pl/o,s8,x2/1,s6,pg/c,s10,x14/10,s11,x8/0,s6,x15/14,s12,x11/10,pl/i,x1/12,s15,x9/8,s2,x0/15,s4,x4/9,pn/j,x7/0,s12,x9/8,pi/p,s15,x7/11,pf/a,x10/2,s3,x4/7,s9,x6/12,s10,x2/13,s12,x7/9,ph/o,x4/12,s2,x10/11,pm/j,x7/1,pc/i,x4/12,pb/p,x13/7,s11,x10/4,s9,x9/2,pm/n,x3/11,s12,x14/4,pa/h,x5/1,pg/d,s13,x12/9,s7,x5/2,pi/l,x8/0,s8,pn/e,x3/14,pa/l,x12/2,pk/n,x8/3,pb/i,x1/11,s11,ph/j,x13/4,po/i,x9/6,pj/b,s9,x13/14,pc/l,x9/2,s4,x15/10,s8,x9/4,s14,x7/11,s6,pd/i,x6/8,pb/j,x4/13,pc/g,s13,x12/0,po/n,x13/3,s4,x2/8,pm/c,x1/11,pg/k,x5/0,s4,x14/10,pb/n,x8/7,pf/l,x6/9,s11,x8/4,s12,x0/9,s7,x14/2,s11,pe/a,x8/6,pn/k,x4/7,s8,x2/14,pm/o,s5,x10/0,s15,x14/2,s14,pa/n,x5/7,s1,x1/13,s11,x12/5,s4,x9/8,s8,x15/6,s2,x14/9,pk/c,x8/2,s5,x4/9,pd/l,x14/3,s8,x8/13,s7,x12/11,pk/b,s9,x7/10,pa/g,x2/13,pe/n,s11,x5/4,pg/i,x13/15,pn/p,x2/5,pl/e,x1/7,pd/b,x2/13,pi/a,x3/0,s6,pk/o,x2/10,pn/h,x1/3,s8,pc/e,x4/9,s6,x0/2,pd/l,x7/9,s15,x0/10,s7,x2/7,pg/j,x3/11,pe/l,x1/0,s6,x10/3,s12,x5/4,s11,x15/3,pi/g,x7/11,pb/n,s12,x1/6,s2,x3/14,s13,x0/10,s4,x8/13,s2,pi/a,x10/3,pm/p,x11/6,s2,x3/9,s2,x7/11,s2,x12/2,pl/g,x6/3,pb/m,x4/1,s11,x15/5,s5,x7/12,pp/l,x13/9,s12,x10/7,pg/n,s3,x4/3,s15,x8/13,pj/e,x14/9,pd/m,x7/8,s5,x11/3,pc/g,s12,x4/6,s11,x2/0,s7,x3/1,s6,x6/7,s13,x10/4,s6,x0/2,pb/j,x13/10,pg/h,x0/15,pc/a,x14/9,s4,x15/6,s4,x12/13,s13,x8/11,s13,x3/6,pg/e,x9/10,s12,x2/11,pj/a,x8/12,s13,x2/6,s14,x12/3,s11,x6/8,s12,x0/13,pp/b,x3/9,s12,x13/6,s3,x5/4,s3,x12/8,s8,x2/0,pc/m,x13/6,s5,x4/0,s14,pd/b,x13/6,s13,x1/10,s13,x13/0,pg/p,x4/14,pf/l,x11/12,s3,x2/15,s1,x5/14,s7,x0/7,s2,x3/9,s11,x7/5,s11,x15/2,pn/p,s9,x9/10,pj/b,x12/14,pn/c,x9/3,ph/m,x1/5,s3,x6/15,pe/d,x5/4,pk/j,x12/1,pa/c,x11/4,pm/h,x15/9,pi/j,x2/3,s5,x1/12,s4,x3/13,s6,x14/2,pb/p,x0/8,pa/o,x2/13,pk/f,x8/10,s10,x4/3,pe/m,x8/1,s1,x4/3,s7,x0/7,s11,x15/1,s3,x5/13,po/k,x15/10,s13,x0/2,s8,x14/5,s5,x1/8,s6,x13/6,s14,x14/1,pa/f,x8/6,pc/j,x10/13,pe/m,x6/0,pp/l,x12/9,s10,x10/3,s11,x9/11,pg/o,x7/14,s14,x12/1,s12,x4/7,s14,x11/10,s8,x7/13,s11,x5/12,s11,x13/14,pd/a,x5/6,pk/h,x12/1,s9,x9/10,s6,x3/4,pi/f,x8/13,s6,x2/10,po/e,x6/12,s5,x8/2,s10,x15/9,pa/m,x1/0,s15,x7/10,pi/n,x15/3,ph/c,x0/2,pk/n,x13/14,s11,x1/5,s7,x10/9,s7,x5/14,s4,x13/15,pa/f,x9/12,s3,x10/0,pp/j,x2/3,s12,x15/5,po/k,x0/7,pf/g,x9/4,pa/p,x0/10,pi/k,x2/14,s6,x15/3,pl/b,x5/14,s3,x0/9,s13,x8/1,s6,x13/2,pp/o,x11/10,s7,x4/13,s9,pe/c,x5/7,s10,x15/6,s5,x14/8,s14,x10/9,s12,x11/14,pg/l,s10,x6/15,s14,x7/13,pf/j,x0/12,s5,x13/2,s6,x12/14,pi/m,x7/5,s13,x6/11,pd/o,x1/10,s3,x14/7,pl/p,x1/13,s5,x8/7,s9,x15/0,s10,x3/4,s12,x13/10,pj/n,s1,x6/0,s11,x11/12,s11,x15/5,s1,x8/1,ph/i,x9/13,s7,x4/15,s2,x3/9,pn/g,x14/4,pl/k,x5/9,s6,x0/13,s4,x2/6,s2,x3/4,s8,x10/0,pi/g,x15/7,s13,x12/13,s7,x8/0,s14,x10/13,s4,x14/7,pe/c,s14,pn/g,x0/9,s4,x11/7,s1,x3/1,s12,x7/8,pc/i,x3/5,s3,x2/14,pe/g,x4/12,pc/i,x5/6,pd/a,s9,x14/8,s3,x12/0,s8,x1/15,pj/k,x13/7,pc/i,x10/11,s12,x5/3,pd/p,x11/0,pf/e,x12/15,po/l,x9/13,pd/i,x5/12,s3,x14/11,pg/h,s10,x10/1,pn/c,x9/7,s10,x3/10,s11,x6/9,s14,x12/4,s14,pg/d,x5/13,s5,x15/10,pm/n,x1/8,s3,x11/15,s1,x13/2,s10,x8/15,pb/f,s1,x14/11,pn/o,x9/12,s9,x8/5,s13,x11/13,pc/i,x12/14,s4,x0/7,s9,x13/6,pd/g,x10/9,po/c,x0/14,s14,x12/11,pb/d,x13/5,pi/a,x11/7,s9,x9/0,s13,x2/8,s2,x0/3,pj/e,x15/13,s9,x6/14,pl/h,x4/1,s3,x15/10,pe/a,x5/3,pn/b,x15/9,s10,x14/4,s9,x3/2,s14,x10/7,s7,x6/0,s6,x4/9,s8,x10/2,pj/m,x8/3,s9,x1/11,pe/b,x5/10,s11,x3/6,pg/j,x8/5,s13,x0/11,s5,x12/9,pm/p,x11/2,s4,x15/4,s11,x13/9,s10,x14/8,s12,x2/10,s7,x14/12,pj/i,x8/1,pn/h,x12/9,s13,x13/5,pi/p,x9/15,s9,x1/10,s8,x2/12,pd/j,x7/14,s15,x8/10,pp/a,x13/7,s13,x10/15,pm/b,x6/4,s10,x9/10,pc/j,x2/4,s11,x8/5,ph/m,x10/4,pk/g,x1/0,s15,x10/12,s10,x15/13,s10,pf/i,x12/3,s11,x7/15,pn/e,x8/14,pp/d,x15/10,s8,x7/5,s9,x13/10,s10,x11/3,s11,x7/12,s12,x4/15,s4,x5/2,ph/e,x8/0,s7,pd/k,x14/7,pp/i,x11/15,s9,x4/7,pc/g,x9/11,s9,x13/2,pi/k,x12/11,s8,x7/1,s1,x2/5,s10,pp/f,s13,x12/8,pl/e,s7,x13/0,s6,x9/7,s3,x15/0,s14,x6/1,pb/i,x5/8,s4,x10/3,ph/c,x14/1,pa/d,s15,x5/11,s12,x12/6,pj/f,x1/5,ph/m,s2,x4/11,s6,x7/15,s15,x4/6,pe/f,s12,x10/15,s2,x2/14,s6,x12/5,s9,x2/1,po/k,x15/13,s4,pm/d,s5,x8/7,s12,x5/0,ph/f,x14/9,pa/e,s3,x10/12,s10,x3/1,s13,x7/14,po/b,s7,x6/9,s3,x3/5,s4,x0/8,pe/a,x4/12,pi/g,x2/13,pb/c,s1,x8/4,s6,x15/1,pf/o,x6/12,s9,x2/9,s9,x6/13,s12,x3/8,s9,x0/6,s5,x2/8,s5,x11/3,s6,x4/13,s8,x1/12,s2,pn/d,x8/3,s12,x14/10,s5,x0/6,s2,x7/2,pl/m,x0/8,po/b,x15/1,pk/d,x4/13,pj/o,x10/3,pp/f,x12/7,pi/j,s8,x15/5,s14,x4/1,s2,po/m,x15/14,s12,x4/11,s4,x13/6,s2,x2/12,s3,x15/6,s14,x11/8,s8,x10/14,s2,x3/5,s9,x4/9,s15,x2/15,s6,x7/14,s10,x9/5,pf/l,x12/0,pc/g,x2/6,pd/p,s3,x0/12,s3,x8/7,s4,pa/f,x2/15,pg/b,s2,x4/11,s7,x10/1,s3,po/e,x0/8,pi/l,x2/14,pe/d,x5/0,s9,x12/8,s1,x2/0,s1,x8/10,s1,x4/3,s14,x8/10,s11,pb/c,x0/3,s10,x5/4,pn/k,x11/2,s3,x14/4,s9,x15/11,pc/e,x8/6,s4,x4/15,s1,x13/9,s2,pp/j,x3/10,s7,x9/13,pk/g,x4/2,po/d,x11/7,s1,x14/0,s8,x4/12,s2,x11/9,s1,x1/12,pm/i,s1,x13/2,po/g,x7/9,pl/k,x10/11,s10,pc/e,x1/13,pf/a,s14,x12/7,s7,pc/m,x15/8,s8,x12/11,s11,x3/0,pn/h,s11,pg/k,s2,x6/12,s3,x2/14,s15,x9/10,pm/p,x13/12,s9,x0/3,pg/o,x12/4,s6,x13/0,pa/n,x15/1,s9,x5/11,s12,x8/3,s13,x6/10,pg/k,x14/0,s13,x7/12,pf/b,x3/0,pj/d,x8/4,pn/m,x12/3,pa/k,x8/11,pd/p,s3,x6/2,s15,x14/13,s2,x8/0,s6,x6/9,pi/e,s14,x8/2,s11,x0/13,pb/j,s7,x10/14,s1,x13/1,pp/o,x6/7,s11,pm/c,s6,x9/0,s3,x8/4,s6,x9/12,s3,po/j,x11/7,s12,x4/12,pi/b,x0/15,pg/c,x11/2,s13,x8/4,pl/e,x10/13,pd/p,s8,x3/7,pg/m,x2/8,pb/a,x1/3,pi/k,x11/15,pf/a,x6/5,s8,x2/1,s7,x7/11,pg/d,x12/8,s1,x13/0,s12,x15/6,pi/o,x1/8,pj/p,x11/15,s8,pe/o,x7/10,s11,x15/5,s13,x14/0,pn/a,x6/13,s11,x7/0,pb/d,x6/9,pk/f,x12/3,pn/h,x2/15,pb/l,x12/7,pe/g,x9/4,pa/m,x8/13,pb/k,x14/4,pn/h,x12/8,pb/m,x14/0,pk/p,x8/10,pn/j,x6/12,s11,x5/2,pk/c,x6/0,s14,x1/9,pp/b,x11/13,s7,x7/1,s3,x2/11,s4,x9/5,s3,x3/2,s11,pc/d,x4/8,ph/j,x7/6,s10,x13/0,s10,pp/a,x2/1,pl/j,x7/4,pf/c,x13/5,s7,x2/0,po/b,x6/11,pl/j,x8/13,pa/o,s10,x10/6,s5,x13/0,s13,x15/7,pj/m,x2/13,pk/e,x10/11,s1,x12/8,s15,x7/3,pj/m,x10/2,pd/n,x9/1,s4,x8/13,s15,x4/1,s7,x10/7,pm/k,x5/14,s14,x13/12,pn/o,x1/8,s12,x7/11,pg/b,x14/1,s10,x7/11,s5,x14/12,po/h,x5/0,s3,x6/13,s9,pd/g,x0/5,ph/a,x3/2,s10,x11/8,s2,x4/13,pp/m,x9/1,pb/k,x3/15,s9,x10/4,pa/l,x6/5,s12,x15/10,s6,x1/3,s12,x6/12,s12,x14/4,s14,x9/0,pc/b,x2/1,pk/p,x5/6,s12,pd/l,s4,pa/m,s13,x3/14,s5,x2/13,pn/c,s1,x7/15,pd/e,x12/8,s12,pa/o,x0/10,ph/m,s7,x11/2,s11,pi/a,x6/1,pd/p,x5/13,pk/f,x1/10,s2,pm/p,x15/8,s3,x10/11,ph/n,x0/14,pd/f,x4/3,s8,x8/12,s11,x5/15,pc/p,x8/10,s15,x5/2,pk/a,x11/7,s15,x5/12,pd/i,x2/9,po/b,s15,x12/10,ph/j,x5/14,pm/c,x9/1,s5,x4/15,s9,x0/5,s11,x12/2,po/k,x14/4,s12,x12/10,s9,x11/14,s9,x0/2,s15,x8/1,pa/b,x6/11,pl/d,x8/15,pa/c,x12/0,pd/g,x8/14,s10,x11/13,s14,x4/8,pk/a,x11/3,s10,x15/13,s4,x12/10,pi/b,x0/7,pj/f,x6/14,s11,x13/11,s15,x10/15,s4,x7/5,s9,x4/12,s1,x13/8,s8,x15/9,s4,x8/10,pl/n,x14/11,s10,x10/7,s15,pd/g,x11/4,pe/i,x1/5,pk/m,x3/2,s13,x7/1,pc/a,s3,x9/10,s13,x12/14,s5,x7/8,po/k,s13,x5/10,s5,x0/11,s6,x7/13,s8,x8/3,pl/a,s6,pf/i,x10/1,s13,x0/9,pa/m,x11/13,s13,x9/8,s15,x14/13,pc/b,x9/15,pp/n,x1/6,s12,x8/7,s9,x5/10,s8,x6/15,pm/c,x12/2,s13,x15/1,s2,pf/g,s9,x11/14,s9,pp/h,x13/7,s13,x11/6,pa/c,x5/7,po/n,x1/3,s11,x6/14,s1,x8/11,ph/k,x6/7,s1,x5/0,pn/j,x1/14,pi/a,x10/3,pn/d,x4/8,s12,x11/3,s8,x2/1,s1,po/p,x3/9,s2,x8/11,s2,x2/6,s10,x7/5,s4,x15/8,s8,x2/14,pm/n,x6/12,s6,x13/1,s14,x8/3,pf/p,x0/4,pm/j,x12/10,s8,x15/8,s15,x14/6,s11,x15/12,s13,x14/10,s11,x1/9,s3,x11/12,s14,x8/15,s2,x1/9,s8,pc/a,x11/2,pd/h,x4/6,s14,x13/15,s15,x10/9,s9,x8/6,s1,x13/15,s12,x14/7,s12,x13/15,pa/o,x6/1,s5,x8/14,s2,x9/2,pm/l,s4,x3/7,s3,x13/10,s4,x11/7,pc/d,x6/14,s4,x13/5,s8,pl/a,s7,x6/9,pb/n,x5/0,s14,x6/13,s8,x0/9,s3,x5/8,s1,ph/d,x3/12,s11,x1/14,s6,x7/15,s12,x10/5,pj/c,x15/11,pa/b,x10/8,pm/c,x11/6,ph/d,x1/14,pp/k,x3/11,ph/o,x8/4,pp/j,x5/7,pd/h,x2/0,pm/n,x1/10,s14,x5/7,pa/h,x9/13,s14,x2/4,pi/f,x12/11,pn/m,x2/10,pl/o,x12/9,s14,x13/5,s13,x6/3,s1,x15/4,s4,pm/k,x0/9,pe/g,x5/14,pl/c,x10/1,s6,pi/k,x7/9,pl/d,x6/14,s15,x10/1,pa/h,x2/11,pb/c,x12/14,s10,x1/0,ph/p,x4/11,s6,x0/8,po/l,x13/14,s13,x2/6,s3,x8/13,s13,x2/0,pp/i,x1/15,s2,x13/10,pc/e,x8/4,pd/n,x5/3,po/g,x8/6,pl/h,s14,x13/15,s1,x12/1,pn/d,x2/6,s15,pc/g,x12/9,s4,x0/11,pd/a,x9/14,s11,x1/7,s4,x6/8,s3,x2/15,s9,x7/8,s3,x15/9,ph/g,x11/8,pk/i,x12/9,s4,x13/7,s14,x5/11,s3,x8/2,pp/o,x14/7,pf/h,s9,x2/1,pd/n,x11/3,s3,x8/15,s15,x5/13,pj/b,s5,x4/6,s1,x14/2,pk/a,s4,x9/10,pj/o,x2/1,pp/g,x12/4,s2,x6/7,pi/b,x1/11,s12,x8/3,ph/m,s5,x1/15,pk/c,x13/10,s7,x3/7,pl/d,x13/1,s15,x14/5,s1,x6/8,ph/e,x0/12,pc/o,x1/4,pe/f,x15/13,po/i,x4/9,pc/e,x15/2,s8,x7/3,pp/b,s2,x8/4,pn/d,x13/14,po/j,x2/8,s6,x13/3,s11,x9/12,s6,x3/6,s12,x13/14,s7,x10/15,pa/p,s12,x11/5,s6,x1/14,pk/d,s8,x11/5,pg/m,s7,x3/2,pk/o,x11/12,s1,x5/4,pm/l,s6,x9/13,pe/n,s15,x14/12,pc/i,x4/10,s15,x0/13,pf/k,x5/3,pe/d,x10/2,s4,x14/3,s5,po/l,x5/4,s12,x15/3,pg/f,x14/9,s9,x6/1,pb/p,x4/3,pe/g,x2/15,s13,x1/10,s11,x15/5,pk/h,x0/7,pa/n,x1/12,s14,x14/7,pl/c,x6/0,s9,x12/8,s13,x3/14,s4,x10/1,s15,x15/6,po/h,x10/9,s14,x5/3,pe/m,x9/7,s8,x11/0,s1,x14/3,s6,x5/8,s5,x1/15,s5,x11/3,s3,x0/9,s1,x3/14,s9,x2/1,s5,x13/15,s13,x9/3,s13,x13/15,s9,x5/4,pf/d,x11/3,s12,x2/14,pi/g,x6/0,pl/c,x5/11,s6,x6/12,s1,x3/5,pa/h,x1/12,pj/k,s5,x7/11,s12,x10/6,pl/c,x2/9,s4,x10/11,pb/d,x12/14,s15,x15/9,pi/j,x3/12,pb/k,x6/5,s13,x8/12,s9,pd/l,x10/2,s8,x11/15,s5,x5/2,pc/g,x3/12,s4,x7/1,pl/f,x15/4,s6,x2/0,pd/n,x12/11,pb/l,x13/3,po/i,x2/1,pl/a,x5/9,s5,x8/10,s10,x14/3,s12,x12/11,s6,x15/3,s3,x13/14,pi/f,s13,x12/4,s2,x15/2,s11,x1/3,s6,x12/11,s3,x0/10,s7,pp/m,x1/2,s10,x12/4,s1,x0/13,pl/e,x4/8,ph/g,x14/15,s15,pa/n,x3/8,s11,x15/2,s5,x7/0,s6,x4/11,s1,x12/13,s14,x1/7,s8,x15/9,s5,x0/12,s9,x7/8,pj/e,x9/12,pn/o,x1/14,ph/f,x8/5,s7,pa/d,x4/2,pb/h,s15,x15/10,pd/e,x6/2,pk/n,s14,x11/7,s2,x4/15,s4,pp/h,x1/2,pi/c,s5,x13/9,pl/p,x14/7,pi/g,x11/12,s15,x6/9,s11,x3/1,s12,x10/13,s15,x14/15,pj/p,x4/7,s14,x14/12,s4,x4/1,pf/c,s8,x9/6,s15,x15/4,pm/g,x5/10,s6,x6/9,s3,x1/12,pi/e,x0/2,pp/k,x11/5,pc/e,s10,x1/7,pf/g,s3,x8/14,s1,x13/3,pl/d,s12,x5/8,ph/j,x0/3,pn/g,x14/2,pm/l,x13/11,s15,x4/15,s8,x5/9,s1,x1/8,s8,x11/14,s7,x0/5,s10,x6/8,pd/o,x4/10,ph/l,x3/1,pe/m,x2/6,pi/h,x5/11,s9,pj/b,x9/10,s6,pn/h,x4/2,pa/i,x6/14,s14,x2/12,pl/n,x5/8,s11,x6/7,s3,pi/o,x2/8,pf/b,x3/10,s15,x9/13,s9,pl/p,s13,x14/15,s6,x12/0,ph/e,x13/8,pm/a,x12/11,s8,x9/5,pi/l,x0/8,pe/j,x9/4,s11,x14/8,pk/b,x12/5,s2,x10/14,s6,x12/4,s6,x14/0,po/p,x3/13,s12,x6/12,s7,x8/13,pc/n,x11/6,s10,x12/4,s13,x5/6,s7,x3/7,pb/e,s8,x8/4,pk/o,s7,x0/12,s2,x10/11,s15,x9/6,s8,x11/8,s5,x14/7,s10,x0/6,s1,x9/8,s8,x1/2,pb/g,x3/5,pn/d,s11,x0/4,s15,x10/8,s10,x2/12,s4,x3/10,s6,pe/b,s14,x5/9,pd/l,x3/6,s1,x5/15,pk/m,s15,x11/7,s5,x8/15,s8,x7/9,ph/n,x3/1,s7,x5/15,pp/d,x8/4,s13,x15/2,pn/l,s3,x5/13,s13,x11/8,s14,x9/14,s2,x11/1,s9,x2/3,s3,x8/6,s12,x0/1,pf/h,s15,x4/5,pa/l,x14/1,pe/h,x2/0,s1,x7/1,pc/j,x12/9,s13,x15/2,s1,x9/13,s8,x14/1,s7,x12/15,pi/e,x7/0,s14,x8/13,s2,x10/9,s4,x2/7,s15,x11/4,pl/g,x14/9,ph/d,x5/11,pg/b,x3/2,s10,x1/12,pc/a,s12,x7/4,s10,x2/10,s13,x1/8,s5,x14/6,s2,x13/0,s5,x5/10,pf/h,x12/13,pn/g,s1,pl/c,x3/1,pg/a,x2/9,pf/i,x13/0,s15,x3/9,s13,x7/1,pc/m,x14/13,pi/g,x0/10,pb/f,x12/3,s8,x9/0,pm/e,s15,x14/6,pp/c,x7/4,pd/o,x1/11,pn/f,x8/15,pi/g,x4/7,s14,x0/13,pj/m,x9/11,pb/l,s8,x2/8,pi/c,x15/11,pf/o,x8/9,pl/p,x1/12,s3,x3/9,pj/g,x8/2,s2,x1/5,s2,x12/10,pf/a,x5/4,s12,x2/11,pp/e,x14/4,pd/h,x6/2,s8,x11/12,pg/e,x15/7,ph/f,x13/5,s12,x10/1,s4,x8/3,s1,x5/15,s10,x4/0,pj/b,x14/9,s8,x0/6,s14,x8/12,pl/e,x7/6,s9,x11/9,s13,x4/2,s4,x1/10,pj/g,x4/3,pl/o,x1/15,s2,x9/0,pg/k,s10,x15/4,s8,x12/5,pj/n,x14/15,s15,x2/10,s6,x7/9,pi/p,x6/11,s3,x10/14,po/f,s9,pd/m,x11/1,pc/i,s3,x6/3,s14,x15/14,pa/l,x8/13,s4,x5/0,s8,x2/12,s3,x5/8,s7,x2/3,s14,x12/14,s10,x2/10,s3,x8/13,s7,x9/1,s2,x5/15,s8,x7/9,pj/f,x4/6,s1,x7/14,pn/i,s13,po/b,s15,x13/2,s7,x6/10,pl/a,x3/7,s15,x11/6,pk/g,s1,x4/13,pi/f,x6/0,pp/h,x4/13,pj/n,x5/15,pf/o,x1/4,pm/k,x0/6,pb/j,x12/4,s9,x3/8,s3,x2/11,s3,x13/7,s7,x10/14,pg/d,s5,x11/5,s4,x1/0,s9,x7/6,pc/j,x3/14,pk/d,s1,x4/7,s3,x9/15,s5,x12/7,s11,x14/8,pe/n,x1/7,s13,x11/13,po/b,x2/15,pf/g,x3/1,s3,x4/13,s7,x1/12,s1,x7/9,pn/b,x2/15,s15,x12/11,s5,x2/15,s11,x12/13,s1,x4/10,s8,x14/3,s9,x15/13,ph/a,x11/7,s11,x3/13,pd/p,x7/8,s10,x1/0,s12,x13/11,s13,x8/0,s4,x11/12,s6,x10/4,s5,x7/0,s12,x9/12,pa/c,x0/1,pl/k,x8/15,pn/a,x0/2,s14,x6/10,s4,x4/8,pm/f,x10/15,s13,x5/8,s4,x14/4,pn/d,x10/2,s14,pi/k,x6/15,s1,x9/4,s5,x6/8,s11,x15/0,s7,x5/10,pa/d,x8/6,po/e,s9,x4/10,s9,x14/13,s5,x11/3,pa/p,x4/1,s6,x7/12,pc/o,x6/9,s9,x11/3,s5,x4/8,s2,x9/1,s13,x2/12,s5,x5/8,s4,x1/4,s7,x5/2,pg/k,x13/9,pl/c,x10/8,s7,x7/9,s14,x10/2,s10,x1/9,po/e,x13/15,pb/i,x4/1,po/n,x13/12,pj/e,x15/3,s3,x14/11,s9,x1/5,s2,x7/14,s7,pi/m,x10/9,s10,x5/2,s3,x14/12,s11,x15/5,s12,x6/1,pb/a,x13/5,pd/j,x4/15,pg/a,x11/7,pp/l,x2/5,pg/h,x1/0,s4,x5/10,pa/m,x1/15,s13,x9/14,s13,pl/n,x12/2,s1,x15/6,s10,x9/13,s1,pa/f,x1/8,s8,x13/7,pg/p,x4/0,s3,x15/8,s8,x7/10,s9,x4/1,s12,x0/2,s14,x9/5,s11,x1/13,s3,x15/10,s13,x2/8,s2,x14/3,s11,x13/6,pb/i,x12/9,s14,pe/g,x6/2,pl/b,x14/4,pa/j,x1/5,pf/h,x8/7,pn/b,x11/4,s6,x0/8,s13,x5/6,s9,x7/1,s15,x8/6,s11,x11/10,s11,x4/14,pg/d,x9/7,s9,x2/8,s5,x13/14,s15,x1/2,s1,x13/9,pn/k,x8/4,po/c,s4,x6/10,s10,x15/2,s3,x4/10,s9,x9/0,s4,x3/8,pj/e,x12/9,s7,x5/10,pd/b,x3/11,s11,x15/9,pe/j,x4/3,s12,x5/14,pf/a,x8/15,pk/c,x12/5,pi/b,x0/10,pd/p,x6/3,s9,x8/7,s4,x5/10,s12,x13/14,pg/m,x0/5,s1,x15/2,s9,x7/8,s12,x15/4,pn/f,x9/10,pb/o,x11/13,s12,x12/5,pl/a,x3/13,s8,x8/14,s8,x7/5,s8,x15/13,pe/b,x12/4,pn/f,x14/10,s10,x7/4,s7,x14/13,s14,x11/12,pb/k,x6/15,pd/e,x4/14,pg/l,s13,x0/7,pc/h,x5/10,pf/p,x11/0,pg/n,x5/3,s14,x12/4,s2,x8/10,pc/i,x3/4,pd/m,x1/11,s7,x12/5,pi/o,x15/9,s5,x10/1,pj/k,x6/7,s9,x12/1,s9,x10/6,s12,x5/3,s11,x1/10,s3,x0/7,s14,x4/10,s15,x9/14,s12,x4/15,s15,x5/0,s7,x3/14,s9,x6/4,s3,x8/14,pd/m,x2/11,s2,x14/12,pk/j,x8/11,s3,x0/3,s13,x10/2,s5,x8/6,s1,x9/15,pn/h,s10,x12/1,pe/p,s9,pc/m,x3/10,pa/g,x0/15,s12,x8/1,s14,x10/6,s4,x9/4,s9,x7/11,ph/d,x8/2,s4,x15/9,s12,x8/1,s5,x6/12,s13,x4/14,s6,x8/10,s14,x13/7,s15,x3/15,s15,x2/10,s9,x0/15,pe/b,x13/4,s7,x3/6,pm/c,x15/2,s4,x13/10,pn/g,x9/3,s7,x1/14,s12,ph/l,s2,x9/0,pg/n,x12/8,s5,x10/7,pl/m,x6/9,pg/a,x3/4,s12,x12/14,s9,x11/7,s8,x8/2,pi/j,x11/1,s13,x10/5,s14,x9/3,pd/l,x11/13,s1,x14/12,s15,x4/6,s4,x11/14,pg/c,s3,pn/l,x10/2,pb/c,x15/14,pj/f,x8/11,s15,x2/10,pe/b,x4/6,pi/k,s13,x8/10,pd/b,x14/7,s14,pf/l,s14,x4/0,s8,x13/7,s1,x5/11,s7,pc/d,x0/9,pg/p,x13/2,s6,x8/10,pb/i,x5/2,s6,x15/14,pk/a,x13/1,pg/l,x2/4,pn/m,x8/7,pd/o,x6/1,s7,pb/e,x9/5,s11,pa/o,x0/7,s14,x10/2,s5,ph/m,x15/11,s8,x4/2,pi/k,x0/12,s4,x5/15,s13,x14/0,pd/l,x4/10,s2,x2/9,s3,x13/12,pc/m,x3/9,s12,x10/13,s1,x2/3,s3,x15/6,pl/i,x4/13,s2,x6/1,ph/c,x8/14,pa/o,s5,x15/2,pl/b,s11,x7/9,s8,pm/g,x15/1,s3,x0/6,ph/b,x5/8,s3,x0/4,pl/d,x8/7,s11,x9/10,pi/j,s4,x2/11,pp/a,x5/9,po/b,x10/15,s14,x6/3,ph/i,x13/8,s4,x14/0,s14,x12/7,s9,pn/e,x2/6,s6,x14/4,s12,x15/0,s13,x1/2,pf/h,x8/13,pk/c,x4/14,s15,x7/0,s11,x14/4,pp/j,x2/0,s3,x14/11,pg/i,x4/2,s10,pc/f,x0/8,pp/d,x1/2,pi/g,s14,x4/12,pj/b,x8/11,pp/o,x13/10,s12,pd/i,x2/15,s9,x7/13,pm/p,x4/10,s9,pk/j,x12/8,s7,x0/11,s12,x3/4,pl/o,s1,x8/7,s8,x14/5,pp/e,x9/13,s15,x5/11,s11,pd/i,x14/2,pc/g,x4/11,s8,x1/9,s6,x12/13,ph/e,x4/3,s13,x11/8,pf/o,x7/5,pm/d,x1/12,s5,x14/5,pe/p,x3/7,s14,x10/15,s10,x1/5,pj/k,x9/15,s4,x8/10,s13,x13/6,pc/e,x14/15,pk/a,x7/4,s4,x12/9,s13,x13/10,pc/f,x7/5,ph/n,s15,x4/12,s10,x8/14,s1,x11/12,pa/d,x4/13,pg/n,s15,x0/5,s9,x3/9,pc/a,x0/13,pi/h,x10/2,s11,pj/p,x3/5,s5,x7/11,s11,x15/3,s8,x14/8,s7,x3/4,s1,x5/13,s8,pc/l,x7/3,pi/p,x12/10,pk/m,x15/9,s15,x4/2,s2,x15/5,s4,x13/14,s13,x1/8,s5,x4/11,s8,x2/9,s10,x6/3,s9,x1/14,s2,x10/0,pi/f,x4/6,pc/h,x13/9,pn/k,x10/4,pj/e,x1/0,s14,x3/4,s9,x10/14,s7,x12/5,pi/l,x7/13,s2,x11/8,s5,x3/4,pm/n,x2/11,s3,x7/10,s11,x4/9,s1,x3/7,pp/j,x12/6,s4,x0/13,pb/d,x11/1,s15,pg/n,x2/4,pi/l,x7/13,pm/d,x3/11,pe/f,x6/2,pg/d,x12/11,s13,x13/0,pb/n,x1/11,s1,x3/0,s3,pd/c,x6/15,s12,x5/2,pj/i,x4/15,s11,x3/13,pm/h,x7/5,s11,x0/9,pj/k,x13/7,pm/g,x12/1,ph/o,x5/3,pp/i,s10,x11/6,s15,x1/13,pj/a,x10/15,s5,x14/5,s6,pb/o,x0/1,s4,x11/9,s15,x3/7,s6,x11/0,s4,pi/c,x12/6,s6,x10/1,s8,x15/2,pg/l,s14,x7/4,s7,x15/13,s13,x10/0,pk/j,x7/6,s7,x11/2,s12,pb/h,s11,x4/1,pn/l,x6/15,s4,x5/3,pd/p,x9/14,s10,x12/3,s7,x1/13,s10,pl/o,x0/3,pi/k,x15/2,pf/h,x10/11,pm/k,x7/12,s8,x15/5,s13,x6/13,s14,x3/7,s6,x13/1,s13,x7/11,s13,x9/3,s1,x5/12,s3,x11/4,s6,x2/14,s2,x0/1,s14,x12/10,s10,x1/14,pl/f,x15/9,pm/i,x12/1,s4,x7/8,pn/a,x2/4,pp/b,s6,x13/1,s1,x6/7,pf/o,x12/13,s6,pl/j,x0/5,s7,x4/3,s15,x6/11,s3,x1/8,s14,pp/b,x14/10,s14,x5/15,s10,x1/9,pe/j,x10/2,pd/a,x12/6,pe/c,x8/15,pj/f,x14/6,s1,x1/7,pk/i,s13,x13/8,s13,x5/10,s11,x6/11,s6,x9/13,pg/h,x5/14,pd/f,x9/1,pa/k,x7/13,s4,x0/9,s3,x7/13,pj/h,x15/14,pg/p,x13/3,pb/f,x1/10,s9,x12/5,ph/d,x0/1,s5,x5/14,s4,x9/6,s2,x2/12,s11,pa/k,x13/1,pf/l,x10/0,s8,x4/13,s1,pp/o,x1/2,pi/n,x13/12,s9,x8/5,s9,x4/7,pe/p,x0/14,s9,x11/13,s3,x14/2,pc/j,x9/7,s11,x11/8,pn/m,x7/3,po/c,x14/4,pi/a,x5/10,pn/j,x13/0,ph/l,x7/14,pj/p,x8/3,pd/i,x14/2,s3,x12/13,s10,x3/4,pc/l,x7/2,po/n,x14/11,s3,x9/10,s10,pd/a,x14/12,po/p,x8/10,pi/m,x3/1,s14,po/n,x13/14,s3,x15/8,s7,x0/7,pf/d,x3/15,s12,x1/8,s10,x3/2,s2,x14/15,pi/n,x7/11,pl/d,s12,x6/10,s2,x8/13,s7,x10/3,pk/i,x12/0,s5,x3/2,pd/f,x7/6,s2,x11/12,s7,pl/c,x8/0,s2,pg/f,x5/2,s14,x8/1,s5,x14/13,pi/o,x11/10,pl/p,x7/8,s10,x5/14,s12,x0/12,pk/i,x3/5,s8,x14/0,s10,x3/6,pe/o,x11/15,pd/b,x0/13,pf/j,x12/2,s1,x14/10,s12,x1/8,pn/l,x2/3,s4,x0/10,pm/d,x4/6,s13,x15/1,pp/l,x4/9,pc/o,x0/10,pd/l,x8/6,s13,x7/1,s15,x11/12,pa/n,x9/5,s3,x0/7,s12,x9/1,pf/p,x7/13,pl/k,x11/3,pm/b,s11,x15/1,pa/k,x6/3,s3,x12/9,pd/l,x1/14,pp/m,x6/5,s4,x12/15,pb/h,x8/7,pd/g,x13/6,s7,x3/12,s14,x5/0,pc/h,x7/1,s6,x6/5,s6,x2/7,s5,x5/9,s9,x4/8,pk/b,x9/13,s4,x14/2,s9,pf/m,x15/5,pj/n,x2/6,s9,x7/4,s7,x13/14,pk/f,x8/7,s1,x10/2,s14,x6/3,s9,x5/7,s8,x1/13,pa/d,x11/0,s4,x6/4,pn/g,x15/9,s10,x12/0,pb/a,s12,x3/6,s4,x1/9,pk/p,x7/2,pi/f,x14/15,s4,x0/10,pj/d,x15/3,s14,x12/0,pa/k,s5,x10/6,s5,x2/14,s6,x7/15,s8,pg/m,x10/3,pa/d,x2/12,s6,x7/0,pj/n,x3/8,s7,x1/6,pp/f,x15/9,s1,x2/14,pn/l,x8/7,pd/m,x10/2,s8,x4/5,pb/n,x14/0,s6,x2/7,pg/c,x14/11,s6,x13/6,pj/m,x12/10,s13,x9/11,pg/n,s4,x0/4,s12,x11/1,s4,pa/l,x10/9,pp/c,x12/5,pg/n,x4/3,s4,x8/12,pe/a,s4,ph/d,x15/7,pe/j,x4/3,pn/f,x11/9,s6,x12/7,pj/e,x5/1,s5,x15/10,s3,x11/8,s15,x14/10,pn/o,s5,x4/15,ph/g,x5/10,s2,x14/9,pf/d,x0/2,pg/p,s10,x14/12,s10,x13/0,pc/h,s15,x9/2,pk/i,x8/4,pd/p,x9/14,s2,x8/4,s7,x9/15,s1,x13/5,s7,x15/8,pg/h,x5/11,s8,x7/1,s8,x10/2,s6,x8/11,s15,x12/6,s10,x4/7,s5,x10/5,pj/a,s14,x14/13,pn/h,x11/5,pc/o,x4/9,s9,x0/3,s14,x9/14,s9,x1/7,s9,x10/12,pf/e,x2/11,pg/o,x9/8,s15,x6/14,s15,x12/1,s15,x0/5,s5,x15/10,s14,x0/6,s4,x13/9,s8,x8/14,s2,x1/15,s7,x6/2,pj/m,x15/8,s15,x7/2,s5,x3/8,pf/n,x10/15,s13,x2/0,s15,x6/4,s11,x9/15,pg/c,x2/3,pp/m,x0/12,s14,x7/15,s11,x0/6,s5,x4/2,s2,x6/9,s14,x12/4,s4,x8/13,s8,x3/14,s4,x10/5,s8,x6/0,s10,x9/11,s12,x14/6,s14,pd/a,x8/5,po/k,x2/9,s9,x13/3,s12,x9/11,s15,pj/e,x1/3,pf/a,x2/5,s15,x7/3,s12,x14/15,s13,x8/11,pb/i,x10/6,s6,ph/g,x11/7,s10,x6/10,s10,x5/11,pd/b,x8/15,s9,x14/2,pk/e,s10,x5/6,s7,x12/8,s14,x0/11,pc/o,x10/8,s8,x7/1,pp/k,x15/12,pn/b,s15,pc/h,x10/11,s3,x4/7,pi/f,x1/5,s5,x0/8,s11,x10/5,ph/a,x8/14,s4,x6/12,s12,x8/15,pj/d,x12/7,s10,x11/4,s1,x3/12,pf/o,s6,x10/9,pm/b,x2/3,pg/a,s5,x1/7,s9,x5/13,pk/p,x0/8,s14,x13/15,s3,x0/8,s5,x14/7,pa/j,x9/10,pc/n,x1/11,pi/b,x9/3,s5,x11/4,s11,x6/14,pc/p,s9,x8/4,s3,x3/2,pd/f,x10/6,pc/j,x1/8,s4,x4/11,s3,x8/9,s4,x11/3,s12,x10/12,pi/b,x8/1,s13,x9/15,s3,pd/k,x10/5,s3,x11/2,s15,x14/7,s4,x0/9,pl/c,x11/7,s12,x4/3,s8,x1/6,s9,x13/10,s1,x3/2,s10,x6/7,pi/a,x14/2,s8,x3/11,s3,pc/f,s10,x15/5,s6,x2/8,s4,x15/9,s2,x14/4,s10,x7/11,s15,x3/15,s8,x11/10,pd/l,x0/4,s14,x12/2,s13,x7/3,s8,x1/10,s10,x3/7,s8,x8/6,s5,x5/0,s14,x10/4,pa/c,x7/14,pd/n,s8,x1/11,s3,x6/14,s11,x4/15,s12,x13/10,s15,x3/15,pi/j,s8,x9/10,pe/a,x5/13,s14,x3/8,pb/m,x11/6,po/a,x15/0,pl/g,x8/3,po/k,x2/1,pb/a,x9/0,pl/i,x2/8,s15,x10/3,s12,x8/2,s1,x14/5,s2,x9/4,s9,x0/15,s9,x10/4,s6,x15/0,po/p,x13/2,pe/i,x10/15,pa/n,x14/4,s10,x3/0,pk/j,x1/4,s9,x5/14,s11,x3/0,s1,x7/15,s4,pm/n,x10/11,s5,x14/3,s10,x7/8,s8,x9/11,s4,x6/15,s7,x11/12,s3,x1/13,s5,x6/4,s7,pl/i,s8,x10/5,pf/g,x13/0,s5,x5/15,s3,x0/13,s1,x2/15,s11,x6/14,pb/k,x13/1,s7,x15/7,s9,x6/4,pn/c,x9/7,pp/f,x11/2,pb/d,x12/14,pf/c,x2/3,s13,x6/4,pm/b,x3/12,s11,x11/7,pp/e,x14/10,pd/n,x3/7,s3,x4/12,pa/f,s14,x0/2,s15,x12/3,s15,x0/9,s8,x1/8,s3,x3/6,s1,x14/0,pg/m,x2/13,s13,x3/4,pf/d,x8/6,s1,x11/12,pg/j,x1/9,s4,x2/7,pc/m,x8/5,s12,x4/11,pi/d,x7/5,pf/a,x13/2,s4,x10/14,ph/l,x2/9,s4,x14/3,pd/o,x7/9,s13,x8/10,s3,x4/2,s5,x0/12,s12,pk/m,x15/11,s15,x3/9,s12,x4/8,s1,x12/9,s2,x6/4,s15,x10/2,ph/n,x12/13,s10,x14/11,pb/j,x8/4,pp/d,x9/0,s1,pk/m,x8/4,s14,x2/13,s9,x8/12,s13,x13/6,pg/e,s10,pa/k,x11/7,pj/l,x2/4,po/c,s9,x13/9,s10,x15/7,s3,x1/5,pk/m,x11/8,s8,pe/j,x3/13,s10,x7/10,pc/l,s15,pd/k,x0/4,pi/h,x3/2,s4,x7/12,s4,x15/11,s12,x0/7,s10,x3/14,pc/g,x4/7,s12,x11/5,pk/i,x12/14,s10,pj/p,s11,x10/7,pg/n,x6/3,pa/e,x15/11,pi/b,x14/5,pf/c,x15/13,s11,x2/1,s11,pa/n,x4/8,pi/p,x5/14,pj/n,x7/13,s5,x10/8,ph/p,x7/5,s9,x4/14,s7,x12/5,s3,x6/4,pn/i,x3/9,pl/g,x14/12,pa/i,x6/1,s6,x3/9,s15,x2/10,s2,x12/1,pe/p,x8/14,pc/l,x1/4,s8,x2/15,s5,x13/8,pm/i,x9/11,s9,x12/15,s4,x9/0,pg/e,x1/15,s15,x6/9,po/i,s5,x11/10,s8,x12/3,pd/e,x5/4,pp/o,x12/1,s9,x7/14,s6,x4/0,s14,x7/11,pi/l,x0/13,pb/g,x8/3,pn/j,x7/0,po/a,s7,x15/10,s6,x12/0,pi/k,x14/15,s6,x7/1,s9,x5/2,s12,x0/10,pl/e,x2/11,s4,x4/14,s3,x12/5,pp/c,x1/15,s7,x3/13,pa/d,x0/10,pi/p,x1/7,s1,x11/13,pc/e,x5/4,s11,x12/1,pm/i,x2/9,s1,x14/0,s8,x1/4,s14,x11/12,pg/b,x14/7,pk/l,x8/0,pj/f,x13/10,pm/p,x12/1,pn/d,s15,x13/3,pa/g,x5/11,s10,x4/1,s8,pb/e,x8/11,s14,x14/9,s3,x1/5,s14,x13/0,pd/o,x14/7,s12,x13/10,pp/l,x5/3,s8,x14/0,s14,pn/c,x6/12,s14,x13/7,po/p,x8/11,s12,x1/4,s12,x6/10,pe/g,x12/9,s11,ph/m,x2/7,s13,x12/13,pi/j,x15/5,s14,x3/4,s13,x10/6,po/h,s4,x7/9,s12,x0/4,pg/l,x8/3,s15,x7/15,s10,x2/5,pc/b,x11/6,s7,x9/0,s12,x5/12,s7,x4/11,s14,x3/0,s5,x14/5,pd/f,x7/4,pm/j,x11/14,s1,x0/7,s3,x4/6,s4,pi/h,x12/10,s12,x15/14,s7,x0/1,s12,x14/15,s6,x13/9,pl/e,s11,x4/2,s3,x10/15,s6,x12/4,s13,x10/8,s12,x2/14,s2,x15/3,s1,x12/11,s9,pc/i,x14/2,s13,x1/12,s14,x4/10,pg/m,x1/11,pb/e,x7/6,s11,x12/5,ph/d,x14/0,s5,x7/12,s2,x13/11,pf/b,x5/0,s3,x1/14,pn/m,x0/13,s1,pp/g,s1,x11/2,s14,x3/9,s15,x8/1,pb/e,x7/5,s4,x3/8,pp/l,x4/12,s9,x14/7,pd/a,x8/12,s4,x11/14,s5,x2/5,s14,x11/6,s11,x13/5,s2,x8/6,s12,x11/12,s7,x9/2,s14,pj/p,x4/14,pe/m,x11/2,s1,x1/4,s7,x5/6,pa/f,x9/11,po/l,x6/0,s13,x4/3,s7,x12/15,pg/k,x4/2,s6,x6/10,po/n,x9/14,pi/g,x4/2,s5,x3/10,s7,x7/6,s4,x14/8,s10,x12/11,s14,x1/4,s10,x3/8,pf/m,x14/7,pb/a,x3/0,s11,x6/7,s6,x10/11,pf/e,x4/2,s10,x15/6,s2,x7/3,s15,pa/d,x8/12,pi/j,s11,x4/10,pp/a,x13/14,pl/e,x0/10,s6,x13/12,s15,x7/2,s2,x10/8,po/d,x11/12,s11,pi/j,x15/4,s13,x6/7,pg/m,x12/9,s6,x5/1,s5,pd/i,x6/11,pj/a,x2/5,s6,x14/7,s10,x2/6,ph/c,x0/7,pg/a,x15/9,s2,pn/o,x5/10,s10,x0/7,s10,x6/9,s7,x15/7,s6,x4/5,pi/e,x6/7,s14,x13/8,pb/f,x6/2,s9,x8/3,s9,x5/14,pg/e,x13/11,pn/k,x8/4,pi/p,x12/2,pc/o,x15/7,s4,x9/11,s14,pg/e,x8/7,pd/i,s7,x3/12,s1,x9/10,pe/f,x4/2,pk/g,x14/12,pp/m,x5/15,s10,x6/8,s6,x1/2,pl/f,s8,x6/14,s10,x4/15,s12,x8/5,s12,x1/15,s5,pk/j,x12/6,s9,x2/3,s8,x15/0,s13,pg/l,x5/4,s2,x14/3,s11,x4/15,s3,x2/7,pj/k,s14,x0/12,s9,ph/i,x8/1,pj/f,x5/2,ph/e,x11/15,s11,x5/8,s9,x6/12,s14,x1/4,s7,x5/13,s3,x10/9,pc/p,x14/7,s11,x8/1,s13,pb/g,x6/14,s1,x12/5,po/d,x7/3,s15,x14/12,s15,pe/h,x9/10,s11,x12/2,pj/m,x11/14,s10,x7/6,s6,x0/4,s7,x9/15,s5,x6/7,pd/f,x8/10,pm/c,x9/4,pk/j,s7,x15/2,s7,x14/1,pa/d,x6/5,s5,x9/14,pc/g,x13/1,po/j,x4/7,pn/h,s11,x15/1,pi/b,x12/7,po/g,x13/15,pc/d,x11/1,s14,x7/3,pl/g,x12/2,pb/i,x4/9,s8,x14/2,s2,x7/3,s8,x1/10,pd/l,x7/9,s4,x12/0,pb/f,x5/8,s7,x1/11,s14,x7/0,po/m,x15/1,pp/j,x12/2,s6,x3/8,pc/l,x5/0,s4,x9/14,pe/g,s14,x12/2,po/n,x0/15,pd/a,x2/14,ph/b,x10/9,pm/j,x12/11,s7,x15/4,s1,x14/5,s6,pb/p,x13/11,pi/o,x6/10,pc/g,x2/7,s12,x12/3,s4,x13/7,s9,x12/8,s1,x13/2,s5 diff --git a/package.yaml b/package.yaml index 80a495c..23b03d4 100644 --- a/package.yaml +++ b/package.yaml @@ -28,6 +28,7 @@ library: - Day13 - Day14 - Day15 + - Day16 dependencies: - base >=4.7 && <5 - protolude diff --git a/src/Day16.hs b/src/Day16.hs new file mode 100644 index 0000000..e82ad99 --- /dev/null +++ b/src/Day16.hs @@ -0,0 +1,187 @@ +{-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE NoImplicitPrelude #-} +{-# LANGUAGE OverloadedStrings #-} + +{-| description: +--- Day 16: Permutation Promenade --- + +You come upon a very unusual sight; a group of programs here appear to be +dancing. + +There are sixteen programs in total, named a through p. They start by standing +in a line: a stands in position 0, b stands in position 1, and so on until p, +which stands in position 15. + +The programs' dance consists of a sequence of dance moves: + +- Spin, written sX, makes X programs move from the end to the front, but + maintain their order otherwise. (For example, s3 on abcde produces cdeab). +- Exchange, written xA/B, makes the programs at positions A and B swap places. +- Partner, written pA/B, makes the programs named A and B swap places. + +For example, with only five programs standing in a line (abcde), they could do +the following dance: + +- s1, a spin of size 1: eabcd. +- x3/4, swapping the last two programs: eabdc. +- pe/b, swapping programs e and b: baedc. +- After finishing their dance, the programs end up in order baedc. + +You watch the dance for a while and record their dance moves (your puzzle +input). In what order are the programs standing after their dance? + +--- Part Two --- + +Now that you're starting to get a feel for the dance moves, you turn your +attention to the dance as a whole. + +Keeping the positions they ended up in from their previous dance, the programs +perform it again and again: including the first dance, a total of one billion +(1000000000) times. + +In the example above, their second dance would begin with the order baedc, and +use the same dance moves: + +s1, a spin of size 1: cbaed. +x3/4, swapping the last two programs: cbade. +pe/b, swapping programs e and b: ceadb. + +In what order are the programs standing after their billion dances? + + + +|-} + +module Day16 where + +import Protolude hiding ((<|>),swap) + +import Data.IORef +import Data.Array.MArray +import Data.Array.IO (IOUArray) +import Text.Parsec + +testInput :: [Command] +testInput = readInput "s1,x3/4,pe/b" + +data Command = Spin Int + | Exchange Int Int + | Partner Char Char + deriving (Show) + +--- + +parseInput :: IO [Command] +parseInput = do + txt <- readFile "inputs/day16.txt" + return $ readInput txt + +readInput :: Text -> [Command] +readInput txt = either (const []) identity (parseTxt txt) + + +parseTxt :: Text -> Either ParseError [Command] +parseTxt = runParser parseCommands () "Groups 1" + +parseCommands :: Parsec Text () [Command] +parseCommands = sepBy parseCommand (char ',') + +parseCommand :: Parsec Text () Command +parseCommand = parseSpin <|> parseExchange <|> parsePartner + +parseSpin :: Parsec Text () Command +parseSpin = Spin <$> (char 's' *> int) + +parseExchange :: Parsec Text () Command +parseExchange = Exchange <$> (char 'x' *> int) <*> (char '/' *> int) + +parsePartner :: Parsec Text () Command +parsePartner = Partner <$> (char 'p' *> anyChar) <*> (char '/' *> anyChar) + +int :: Parsec Text () Int +int = do + str <- many1 digit + return $ fromMaybe 0 (reads str & head & fmap fst) + +--- + +data FastArr = FastArr { arr :: IOUArray Int Char + , revarr :: IOUArray Char Int + , cursor :: IORef Int + , size :: Int + } + +showFastarr :: FastArr -> IO () +showFastarr fastarr = do + putText "-------" + elems <- getElems (arr fastarr) + print elems + getElems (revarr fastarr) >>= print + curs <- readIORef (cursor fastarr) + print curs + let shift = size fastarr - curs + print $ "=> " ++ drop shift elems ++ take shift elems + + +last :: [a] -> Maybe a +last [] = Nothing +last [x] = Just x +last (_:xs) = last xs + +solution1 :: Int -> [Command] -> IO [Char] +solution1 len commands = do + let letters = take len ['a'..'p'] + array <- FastArr <$> newListArray (0,len-1) letters + <*> newListArray ('a',fromMaybe 'a' (last letters)) [0..len-1] + <*> newIORef 0 + <*> return len + -- showFastarr array + traverse_ (applyCommand array) commands + elems <- getElems (arr array) + curs <- readIORef (cursor array) + let shift = size array - curs + return $ drop shift elems ++ take shift elems + +applyCommand :: FastArr -> Command -> IO () +applyCommand fastarr (Spin n) = modifyIORef (cursor fastarr) ((`mod` size fastarr) . (+n)) +applyCommand fastarr (Exchange rawi rawj) = do + cur <- readIORef (cursor fastarr) + let s = size fastarr + i = (rawi - cur) `mod` s + j = (rawj - cur) `mod` s + li <- readArray (arr fastarr) i + lj <- readArray (arr fastarr) j + swap i j (arr fastarr) + swap li lj (revarr fastarr) +applyCommand fastarr (Partner l k) = do + li <- readArray (revarr fastarr) l + lj <- readArray (revarr fastarr) k + swap l k (revarr fastarr) + swap li lj (arr fastarr) + +swap :: (MArray a e m, Ix i) => i -> i -> a i e -> m () +swap i j arr = do + tmpi <- readArray arr i + tmpj <- readArray arr j + writeArray arr i tmpj + writeArray arr j tmpi + +-- | brute force, not the real way to do it +solution2 :: Int -> [Command] -> IO [Char] +solution2 len commands = do + let letters = take len ['a'..'p'] + array <- FastArr <$> newListArray (0,len-1) letters + <*> newListArray ('a',fromMaybe 'a' (last letters)) [0..len-1] + <*> newIORef 0 + <*> return len + -- showFastarr array + counter <- newIORef 1 + replicateM_ 1000000000 $ do + modifyIORef counter (+1) + i <- readIORef counter + when (i `rem` 1000 == 0) $ print i + traverse_ (applyCommand array) commands + elems <- getElems (arr array) + curs <- readIORef (cursor array) + let shift = size array - curs + return $ drop shift elems ++ take shift elems