diff --git a/src/inputs.clj b/src/inputs.clj index 26e6704..f255dc8 100644 --- a/src/inputs.clj +++ b/src/inputs.clj @@ -4,4 +4,6 @@ (def question-2 "18 21 22 24 26 29 28\n9 11 14 17 18 21 21\n48 51 54 56 60\n6 8 10 11 16\n75 76 79 82 80 83\n28 31 33 32 33 30\n94 96 94 96 96\n42 44 45 44 46 50\n25 28 29 26 33\n37 39 39 42 43\n49 51 53 56 56 57 55\n88 91 91 93 96 99 99\n56 59 59 61 62 65 68 72\n30 33 35 37 39 42 42 49\n14 17 19 23 24\n2 4 5 9 12 15 16 14\n88 89 93 96 99 99\n68 70 71 74 78 81 85\n46 47 49 53 58\n36 39 41 47 49 50 51 54\n81 82 85 91 93 95 96 94\n11 14 16 18 23 23\n72 75 81 84 85 89\n40 41 44 46 51 53 58\n70 68 71 73 76 77 78 80\n83 80 83 86 83\n44 42 45 47 49 51 51\n78 77 80 81 83 85 88 92\n34 33 34 36 38 45\n54 51 52 54 56 57 56 59\n57 54 53 55 52\n48 46 47 49 47 47\n70 67 64 65 67 70 72 76\n42 41 42 45 44 46 53\n44 41 44 47 47 50 51 53\n12 11 13 13 12\n27 25 25 26 26\n57 55 55 58 61 65\n65 63 65 68 69 69 71 78\n88 87 91 93 94\n84 82 84 86 90 92 93 92\n22 21 25 27 28 28\n35 33 35 36 40 43 44 48\n32 30 31 33 37 44\n30 28 30 36 38\n70 67 69 70 77 75\n42 39 44 47 47\n47 45 48 53 57\n32 29 34 35 36 39 40 46\n71 71 74 75 77\n14 14 16 18 20 19\n43 43 44 47 49 51 51\n71 71 72 73 75 76 80\n10 10 12 14 15 16 22\n42 42 45 42 45 48\n72 72 75 73 74 75 73\n82 82 85 87 84 86 89 89\n68 68 65 67 71\n19 19 20 21 19 26\n87 87 89 89 92\n78 78 80 81 82 82 80\n11 11 11 13 13\n54 54 57 58 58 62\n23 23 23 26 29 34\n8 8 12 13 16 19\n38 38 42 43 46 47 49 47\n30 30 31 35 36 37 37\n23 23 27 29 31 35\n4 4 6 10 13 16 18 25\n44 44 47 52 54 56 57\n32 32 39 40 37\n10 10 13 18 20 23 23\n46 46 52 55 59\n66 66 73 76 81\n54 58 61 64 66 69 71 74\n7 11 14 17 19 22 20\n16 20 21 23 24 27 29 29\n83 87 90 91 95\n1 5 6 8 13\n60 64 65 64 67 68 69 71\n54 58 61 64 66 69 66 64\n74 78 81 80 83 83\n61 65 68 70 69 70 72 76\n84 88 90 91 88 90 96\n78 82 85 87 87 89 91 94\n75 79 81 81 82 84 86 83\n2 6 7 7 8 9 9\n9 13 14 14 15 19\n1 5 5 8 14\n76 80 82 86 88 90\n78 82 84 88 89 86\n60 64 68 71 74 74\n40 44 46 50 54\n30 34 35 38 42 45 47 52\n51 55 62 64 67 70 71 72\n37 41 42 43 48 51 48\n11 15 16 17 24 24\n20 24 29 32 33 37\n61 65 67 72 74 81\n45 52 55 56 59 60 63\n23 29 32 34 32\n63 70 71 72 75 78 80 80\n66 73 75 78 81 84 88\n19 24 25 28 29 36\n67 72 70 71 74 75 77 80\n30 35 36 38 37 38 39 37\n82 89 90 92 94 91 91\n67 74 77 78 81 84 82 86\n27 34 35 32 33 35 38 45\n20 27 30 30 33\n71 78 81 82 82 79\n54 60 60 63 64 64\n31 37 38 40 40 44\n66 71 73 73 78\n32 37 39 41 43 47 50\n50 55 56 60 62 60\n69 76 80 81 84 84\n52 59 63 64 68\n53 59 60 64 71\n72 78 80 86 87 89 92\n28 33 36 38 44 46 45\n34 40 43 44 47 52 52\n2 9 11 17 20 24\n32 39 46 47 50 55\n41 38 35 34 32 31 28 29\n84 81 80 78 77 77\n56 54 51 49 48 47 43\n65 62 60 59 56 53 46\n35 34 31 34 32 29 27 25\n41 40 39 42 45\n63 60 57 56 59 58 58\n68 67 66 63 66 64 62 58\n94 91 90 93 91 90 83\n60 58 56 56 54 52 51 49\n85 82 82 79 77 76 75 76\n70 68 66 66 65 62 62\n56 53 50 50 46\n48 47 46 43 42 42 41 35\n68 67 66 65 61 59\n65 62 59 58 56 55 51 53\n76 74 73 70 69 65 65\n29 28 27 23 20 19 15\n88 86 82 81 79 78 76 71\n78 75 70 67 65 63\n22 20 14 13 15\n80 79 77 72 72\n39 38 36 33 26 23 19\n69 68 66 59 56 53 51 45\n55 56 55 53 51 50\n38 41 38 35 34 37\n70 73 71 68 66 66\n57 60 58 56 52\n39 40 37 34 28\n6 9 7 6 4 7 5 3\n82 85 84 87 90\n13 14 15 14 12 12\n97 98 96 98 94\n21 24 26 23 21 16\n39 41 41 39 38 36\n85 87 87 84 82 79 82\n80 81 81 79 77 77\n67 69 68 65 65 61\n80 82 82 80 77 74 67\n89 92 89 85 82\n49 50 49 45 47\n59 62 58 57 55 53 52 52\n32 35 31 30 26\n39 41 39 38 37 35 31 24\n29 30 29 24 23 21 19 17\n13 14 12 7 8\n31 33 31 30 23 22 19 19\n24 26 21 18 16 12\n37 39 38 33 32 31 25\n91 91 90 89 86 83 80\n56 56 55 53 55\n84 84 83 81 79 79\n38 38 35 33 31 28 25 21\n35 35 32 31 29 28 25 19\n23 23 22 23 21 20 17 16\n22 22 19 21 24\n9 9 10 9 7 7\n82 82 79 81 79 75\n29 29 30 29 23\n16 16 15 15 12 10\n32 32 29 27 25 25 26\n23 23 20 20 20\n98 98 97 96 93 93 89\n60 60 57 57 55 53 48\n72 72 69 65 62 61 58 57\n57 57 54 53 49 51\n59 59 57 53 51 51\n77 77 73 71 67\n20 20 18 14 13 7\n20 20 13 11 10 8\n74 74 71 70 69 68 62 63\n38 38 33 31 28 26 23 23\n91 91 90 84 80\n86 86 83 82 80 78 71 64\n94 90 88 85 84 81\n61 57 56 55 52 50 48 51\n31 27 25 22 19 19\n79 75 73 70 68 65 61\n87 83 81 78 75 70\n23 19 16 14 13 16 14 11\n9 5 7 4 7\n88 84 82 84 84\n21 17 15 14 17 14 11 7\n60 56 55 54 55 53 51 45\n57 53 53 50 48 47 46\n66 62 60 57 54 51 51 54\n74 70 69 67 66 66 64 64\n31 27 24 21 21 20 17 13\n38 34 31 28 28 21\n86 82 81 78 76 72 69\n21 17 14 12 11 7 10\n17 13 11 7 7\n36 32 31 28 24 22 20 16\n41 37 33 31 28 27 20\n36 32 31 25 22 21\n69 65 62 56 59\n47 43 42 37 35 32 32\n52 48 46 44 39 36 32\n98 94 93 86 84 78\n75 69 68 66 65 62 60 58\n74 68 66 63 62 65\n36 29 26 25 24 23 23\n74 69 68 65 63 60 58 54\n75 70 67 65 63 61 54\n43 38 39 36 33 30\n31 25 22 19 20 19 21\n13 8 5 6 4 4\n19 14 12 15 14 10\n37 31 33 30 27 21\n93 88 88 86 83\n19 13 13 11 10 11\n79 74 74 71 71\n45 39 39 38 35 34 31 27\n52 47 45 42 42 40 33\n54 47 44 41 40 36 35 33\n18 13 11 8 4 2 5\n83 78 74 73 70 70\n16 10 9 5 1\n35 30 26 25 24 19\n63 57 55 50 47 44 42\n20 15 8 7 5 7\n68 61 56 54 54\n80 75 69 67 65 61\n35 30 29 27 24 18 13\n60 61 63 64 67 64\n20 23 25 27 28 28\n62 63 65 67 70 72 76\n83 86 89 92 93 99\n14 16 17 16 18 21 23\n7 8 11 8 10 7\n40 43 40 43 45 45\n76 79 78 79 82 85 88 92\n40 43 45 44 47 50 52 58\n69 72 73 74 77 79 79 80\n11 13 15 15 16 15\n2 3 3 5 8 11 11\n64 67 68 68 72\n48 51 54 54 60\n1 2 6 9 10 13\n79 80 82 86 88 89 86\n22 23 27 30 33 36 36\n73 76 78 82 86\n9 11 13 17 18 23\n55 58 59 61 68 71\n5 8 11 18 17\n22 25 27 28 29 35 35\n60 63 64 67 74 77 81\n66 67 73 75 78 84\n62 60 62 63 66\n23 20 21 23 24 21\n38 37 38 40 42 42\n9 7 8 9 12 16\n79 78 80 82 84 85 88 95\n13 12 14 11 14\n60 57 60 59 61 58\n11 10 11 8 8\n7 6 9 11 8 12\n25 23 24 25 23 30\n3 2 3 3 4 5\n65 63 66 68 71 74 74 72\n51 50 50 51 53 53\n67 66 69 72 72 76\n67 64 66 66 69 74\n74 71 74 76 79 83 84\n76 75 77 81 82 79\n43 42 46 49 50 50\n19 17 19 21 24 26 30 34\n33 31 33 37 40 41 43 49\n22 19 20 25 27 30\n62 60 66 69 66\n55 53 58 59 61 63 66 66\n19 16 21 22 25 29\n31 29 31 36 38 43\n24 24 25 26 29 32 35\n16 16 19 20 18\n42 42 43 46 46\n86 86 89 92 96\n56 56 57 60 65\n62 62 59 61 64\n75 75 77 80 77 80 83 82\n31 31 33 32 32\n60 60 62 63 65 62 66\n5 5 7 6 8 9 14\n41 41 44 46 46 49 52 55\n12 12 14 16 16 19 20 18\n23 23 24 24 25 26 27 27\n3 3 3 5 7 11\n83 83 84 84 86 91\n62 62 66 67 68\n39 39 41 43 46 48 52 50\n28 28 31 32 34 38 38\n11 11 15 17 21\n77 77 81 82 83 85 90\n49 49 52 59 62 64 67 70\n32 32 37 39 38\n80 80 85 86 88 88\n7 7 10 16 20\n33 33 36 38 40 46 51\n68 72 75 77 80 83 84 87\n58 62 63 66 67 66\n7 11 13 16 17 17\n17 21 23 24 25 26 30\n53 57 60 63 70\n27 31 30 32 33 35\n26 30 31 33 30 27\n16 20 21 22 21 24 25 25\n21 25 26 29 32 31 35\n66 70 67 69 70 72 74 80\n17 21 21 23 25 27 29\n57 61 64 67 67 68 67\n87 91 93 94 94 97 97\n76 80 82 82 83 84 87 91\n19 23 24 27 27 32\n34 38 40 44 47\n6 10 13 14 17 20 24 21\n48 52 53 57 59 59\n79 83 87 89 93\n73 77 79 82 84 88 93\n41 45 48 50 52 57 58 59\n49 53 58 60 61 58\n8 12 17 18 20 20\n2 6 7 10 12 14 20 24\n75 79 85 87 88 90 93 99\n60 67 70 73 76 78 80\n61 67 68 69 68\n63 69 70 73 73\n42 48 51 52 54 56 60\n71 78 79 81 88\n79 86 89 91 94 93 95 96\n48 55 52 54 56 59 58\n32 38 41 43 46 43 43\n54 61 62 60 63 67\n83 89 90 92 93 92 98\n34 41 43 43 45 47\n44 49 49 51 48\n36 43 44 44 44\n54 61 64 67 67 71\n21 28 31 31 34 40\n3 8 12 15 18 19\n54 59 60 61 65 63\n20 25 29 30 30\n61 67 70 72 76 79 80 84\n56 63 66 67 71 72 75 80\n12 19 26 28 29 31\n42 49 51 53 58 56\n22 29 30 36 36\n64 71 74 76 81 85\n65 72 79 82 87\n60 58 56 53 51 52\n26 23 22 20 18 17 17\n50 48 46 43 41 40 36\n99 96 95 92 86\n23 21 19 20 19 17 14 13\n82 79 78 75 73 71 74 76\n85 83 84 81 81\n79 77 75 73 71 72 68\n63 62 64 63 60 58 51\n16 13 11 8 5 5 4 1\n22 20 17 16 16 15 13 16\n54 51 48 48 48\n92 91 91 88 84\n22 19 17 16 13 13 11 4\n47 45 42 40 39 36 32 29\n55 53 49 48 46 43 45\n32 30 28 27 23 20 20\n87 85 81 80 79 76 75 71\n78 75 71 68 67 66 59\n18 17 14 12 9 4 1\n44 43 40 38 33 36\n76 74 72 66 64 64\n17 15 12 7 5 1\n31 30 27 21 18 16 11\n12 15 12 11 8 7 5 4\n40 42 40 39 37 34 31 32\n64 67 65 63 60 59 58 58\n12 14 12 11 8 7 3\n38 39 37 34 32 31 30 23\n91 94 93 96 94 91\n96 97 99 98 96 95 96\n69 71 68 67 69 68 68\n89 90 93 90 86\n30 31 28 30 25\n85 87 84 84 81\n40 42 42 41 43\n95 98 96 96 93 93\n68 71 71 68 66 64 61 57\n53 55 55 52 50 44\n58 59 56 55 51 49 46\n85 88 84 83 84\n73 75 73 69 68 65 65\n11 13 10 6 2\n65 66 64 60 55\n46 48 43 41 38\n11 12 7 6 3 5\n39 40 39 34 34\n94 96 91 90 87 86 82\n78 81 78 76 69 67 65 59\n99 99 96 93 91\n86 86 85 82 85\n60 60 58 56 55 53 53\n97 97 94 91 88 84\n57 57 54 52 50 48 46 41\n48 48 50 49 46\n96 96 95 97 95 92 94\n82 82 81 80 81 81\n61 61 58 61 57\n47 47 44 45 42 39 34\n17 17 15 12 12 9 8\n73 73 71 69 69 66 65 68\n51 51 48 46 46 43 41 41\n34 34 31 28 28 25 21\n53 53 52 50 50 47 46 41\n73 73 69 68 65 63\n81 81 77 75 72 74\n41 41 39 37 36 35 31 31\n89 89 88 87 84 80 76\n56 56 54 51 48 46 42 37\n22 22 20 19 12 9 6 3\n11 11 5 4 7\n92 92 89 88 87 86 81 81\n48 48 42 41 40 37 36 32\n34 34 31 24 17\n34 30 28 26 24 23 22\n92 88 87 86 85 82 85\n93 89 87 84 83 81 81\n62 58 57 56 52\n47 43 42 39 36 31\n90 86 83 84 83\n34 30 29 26 23 24 25\n73 69 72 69 67 66 66\n44 40 39 42 38\n93 89 87 86 88 82\n57 53 51 51 49 46 44\n83 79 78 78 77 74 75\n48 44 43 42 40 40 37 37\n24 20 20 19 16 12\n63 59 56 56 53 48\n39 35 34 31 28 24 23\n48 44 40 37 34 33 32 33\n72 68 64 63 62 62\n84 80 76 74 72 70 66\n76 72 71 68 67 63 60 53\n47 43 42 41 36 35 33 32\n63 59 58 57 51 48 47 50\n34 30 23 22 22\n81 77 75 73 72 71 64 60\n92 88 81 78 75 69\n51 45 44 43 42 39 36\n49 44 43 40 38 40\n83 77 75 72 72\n37 30 27 24 21 17\n94 87 86 83 82 81 80 75\n95 90 93 91 88 87 85 82\n39 33 30 27 29 30\n62 56 59 57 54 51 48 48\n59 53 55 53 49\n29 22 20 19 18 17 19 14\n69 63 62 62 61 59 57\n29 24 21 21 18 21\n88 82 81 80 79 79 77 77\n58 51 50 50 46\n85 80 78 78 75 69\n66 61 60 56 53 52 49 47\n20 13 10 6 4 3 5\n16 10 8 7 3 2 2\n72 65 61 58 57 55 51\n58 52 48 46 44 42 39 32\n62 55 49 48 46 43\n93 86 83 81 80 74 76\n77 70 68 61 61\n50 45 43 37 36 35 33 29\n41 36 33 26 21\n52 55 60 62 63 63\n68 66 66 65 64 62 62\n19 20 18 14 12\n71 75 78 80 80 82 89\n1 8 13 14 18\n78 83 84 85 86 88 86\n85 83 80 76 73 72 72\n32 31 35 37 39 37\n71 72 71 70 68 61\n14 18 21 21 23 26 29 32\n54 60 62 65 63 69\n74 72 69 71 75\n12 9 12 15 17 18 15\n54 61 66 69 72 74 74\n41 46 47 49 51 55\n77 71 74 71 68 65 59\n43 43 42 42 41 39 40\n68 61 60 57 56 49 48 45\n13 13 15 16 14\n85 87 88 88 90 92 98\n14 11 8 8 6\n50 50 47 44 40 37 36 31\n79 80 82 83 85 86 87 91\n39 46 49 49 53\n3 10 13 15 16 16 15\n45 41 40 37 37\n22 20 22 19 21 19\n17 17 15 16 18 19 26\n68 65 72 75 74\n51 55 58 61 61 62 65 62\n36 36 33 30 29 28 26 19\n15 20 19 21 23 25 26 29\n43 41 39 37 40 43\n69 66 66 68 69 69\n63 63 62 59 56 55\n15 19 21 23 25 28 32\n52 55 53 46 44 40\n25 19 17 13 12 11 6\n8 10 11 14 19 21 19\n52 48 46 43 39\n30 30 29 27 23\n43 45 42 41 37 36 36\n20 20 27 30 33 35\n88 89 94 95 98\n72 73 69 66 59\n57 64 67 69 74 76\n82 79 76 77 76 73 71 64\n96 98 96 95 94 92 92 92\n92 94 91 88 86 82 85\n97 93 93 92 89 88 85 83\n18 22 25 29 32 33 36 38\n38 34 34 32 35\n37 38 37 36 35 32 30 30\n67 68 71 71 73 76\n44 43 43 42 45\n47 49 48 46 42 38\n27 23 20 16 9\n7 9 8 10 3\n92 85 82 81 78 74 72 73\n24 20 23 20 19 15\n87 87 84 83 80 77 70 70\n55 58 58 56 52\n69 76 77 80 86\n56 59 65 68 72\n87 83 82 78 77 73\n68 73 75 79 80 83 82\n55 51 51 48 42\n12 17 20 19 20 21 22 19\n92 95 98 99 97 97\n34 30 27 24 25 23 22 20\n23 27 27 28 28\n52 50 50 48 44\n75 73 71 64 61\n69 69 63 61 57\n20 20 21 22 26 29\n25 27 29 29 32 35 38 36\n28 32 34 35 36 43 45\n41 41 42 47 47\n44 41 43 48 50\n71 71 74 75 78 82 86\n16 16 16 14 12 12\n7 8 11 14 14 18\n26 30 32 34 36 36\n62 63 61 54 52 53\n65 71 72 75 72 75 75\n54 58 62 64 70\n35 35 38 39 43 45 50\n78 82 83 87 88 92\n32 32 35 32 30\n52 49 51 54 56\n28 28 31 29 27 27\n2 2 5 6 7 14 18\n75 75 78 82 79\n64 61 59 56 54 52 49 48\n55 53 50 49 47 46 45 44\n55 53 51 48 46 45 42\n65 67 70 72 74 75\n88 91 92 93 95 97 98\n99 96 95 93 92 91\n1 3 6 9 11\n73 72 70 68 66 64\n40 42 45 46 49\n56 57 59 60 62 65 67\n64 62 60 59 57 54 51 49\n23 22 21 18 15 14 12\n8 10 12 14 17 20\n21 20 18 15 13 10 9\n26 28 29 32 33 36 39\n21 20 17 15 14 11 10\n32 30 29 27 25 24\n27 30 32 34 37 39\n29 31 33 35 37 39 42 45\n41 44 46 47 50 51 52 55\n19 18 16 15 13\n56 55 52 49 47\n62 64 65 68 70 71 72 73\n63 64 66 69 72\n41 39 38 36 35\n9 12 15 17 19 21\n18 21 24 26 27 28\n81 82 84 87 88 91 92 93\n31 34 36 37 40 41 42 45\n31 29 27 25 23 20 19\n67 70 72 74 75 76\n65 63 60 57 54 52 51\n38 35 34 33 30 29 27\n60 61 62 64 66 68 69\n75 74 71 69 67\n37 35 34 33 32\n37 38 40 42 45 48 50\n76 77 80 82 84\n58 61 63 64 65 67 69\n83 80 78 76 75\n11 8 7 6 3 2\n55 58 59 61 63 65 66 69\n77 79 80 81 83\n28 30 33 34 35 36 39\n78 76 74 72 71\n85 88 90 91 94\n46 44 41 40 38 36 33\n32 35 37 40 41 43 46 49\n37 38 41 42 43\n30 33 34 36 37 39 40 41\n35 32 29 26 23 22\n85 86 87 89 90 93 95\n82 83 84 86 88 90\n25 24 22 21 19 17\n74 71 68 67 66 63\n27 29 30 31 32 34 35 37\n16 19 21 23 26 28 31\n76 77 79 80 83\n86 84 82 80 78\n31 32 35 37 39 41 43 45\n95 92 90 87 84 81 79 77\n34 31 28 27 26 23 20 18\n9 8 5 3 1\n55 52 51 50 47 44 41 39\n10 12 15 18 19\n21 20 17 16 13 10\n50 53 56 58 61 63 66 69\n96 95 94 91 88 87\n71 69 67 65 64\n28 29 31 33 35\n13 15 18 19 22\n71 68 66 63 62 61 58\n57 54 51 50 47 45 44 42\n84 81 79 77 76 73 71 69\n40 43 44 46 48\n17 20 22 24 25 26\n31 33 36 38 41 44 47 49\n13 16 19 20 22 25 28 30\n71 69 68 67 65 63\n49 52 54 57 60 63 66\n63 61 59 57 56 55\n87 90 93 96 97 98\n75 77 78 80 82 85\n19 20 22 24 27\n42 43 46 47 49 52\n9 6 5 3 2 1\n77 74 71 68 65 64 63 62\n15 13 12 10 7\n20 18 15 14 12 11 9\n68 66 64 61 60 58\n3 5 8 11 12 14 16\n26 24 23 20 17 15 13\n49 51 53 54 57 58\n15 16 19 21 23 25 26 29\n44 47 48 51 52 54 55 56\n72 74 76 77 79 80 83\n13 12 10 8 7 4 3\n5 7 9 11 12\n65 62 60 57 54 52 50 47\n43 45 46 49 50 51 53 56\n88 90 92 94 96\n70 71 74 77 78 81 82\n11 10 9 6 3 2\n51 53 56 59 61 62 64 66\n24 25 27 30 33\n18 15 14 12 11 10 8 6\n31 34 35 36 39 42 43 46\n82 85 88 89 91 94 95\n67 69 72 73 74\n5 8 10 11 12 13\n45 43 40 37 36 34 33\n50 52 53 54 55\n13 12 11 8 7 5\n24 26 29 32 35 37\n40 37 34 31 28\n41 44 47 50 51\n49 52 55 58 60 62 63\n57 56 54 53 52 50 49\n10 7 4 3 2\n14 11 9 8 6 4 3\n44 42 39 37 36 34\n51 53 54 57 58 60 62\n53 52 50 48 46 44 43 41\n46 44 43 42 40\n68 65 63 62 59 57 55\n49 51 52 54 56 57\n52 50 48 47 45 44 41\n73 72 69 66 65\n79 82 84 87 89 91 94\n39 41 42 44 45 46 49 50\n85 82 79 77 76\n47 45 42 41 40 39 36 34\n35 33 32 30 29 28 27\n66 69 70 72 73 74 76 77\n29 26 25 23 21\n87 86 83 82 80 77 74 71\n51 54 57 60 61 63 66\n95 94 91 89 87 84 82 80\n66 64 61 59 56 54 51 48\n49 51 54 56 58\n34 36 37 38 39 41\n20 23 25 28 29 30 32 34\n36 34 32 29 27 26 25 22\n27 24 22 21 18 15 12\n54 55 56 58 60 62 63 65\n88 87 84 82 79 76 73\n49 51 54 57 59 60 62\n65 64 61 58 57 55 52\n18 19 20 22 24 27 30\n44 42 39 36 33\n80 81 83 85 88 89 90\n72 70 67 64 62 60\n45 47 50 52 54 57 59 62\n19 22 23 26 29 30 33 34\n69 71 72 75 76 77 80\n36 33 31 30 29 28 26 25\n19 16 13 11 9 7\n34 32 30 27 24 23\n23 20 18 17 14 11\n90 91 94 95 98\n24 23 21 20 17 14\n4 7 9 11 14 17\n9 10 12 13 15 18\n52 50 49 47 44 42 39\n20 23 24 26 27 28 29 31\n68 65 62 59 56 54 53 52\n76 73 70 67 64 61 59\n99 98 97 94 93 92 90 89\n32 29 26 25 24\n79 81 83 86 89 90 93 95\n50 48 46 45 43 41 38\n38 39 41 43 46 48\n4 6 8 10 13 14\n20 17 16 15 12 10 8\n35 32 31 30 27 24\n71 68 66 63 61 60 57\n69 72 74 77 79\n46 49 52 55 57 59 62\n24 22 21 19 18\n31 29 28 26 24\n58 60 61 64 66\n76 75 74 73 72 69 67 64\n36 39 41 42 43 46 47 50\n14 11 9 7 6 3\n2 3 4 5 8 10\n73 72 69 67 65 63 61 59\n31 29 27 25 22 21 19\n67 65 62 60 59 57 55\n32 35 37 38 39\n24 23 20 17 16 15 13 12\n60 61 62 65 66\n51 52 54 55 58\n75 72 70 68 66 64 62\n22 25 26 27 28 30 32 35\n95 94 91 88 86 84\n55 57 59 60 63 64\n70 69 68 66 63 62\n21 22 25 26 28 31 33\n11 14 17 19 22 23 26\n72 75 77 79 80 82 85\n32 29 26 24 23\n38 39 40 41 42 43 46 49\n26 24 21 20 17 16 14 13\n65 64 63 62 60\n72 69 68 67 64 63 62\n32 34 37 38 41\n15 12 11 8 7 6 4 3\n26 28 31 33 34 36 38 41\n75 76 79 81 84 85 86\n69 72 75 76 79 81 84\n51 53 54 56 59 61\n88 91 93 95 97 98\n57 56 53 51 49\n62 59 57 56 53 51 50 47\n84 87 89 90 91 94\n69 72 74 77 78 80 81\n15 17 19 22 23 25 26\n6 8 11 12 13 16\n44 42 40 39 37 35 34\n3 6 9 10 11 12\n20 19 18 17 14 11 10 9\n26 23 21 19 16\n90 91 93 94 97\n74 72 70 68 67 65 63\n61 60 57 54 52\n69 66 65 63 62\n30 29 27 26 23 20 18\n27 28 31 32 35\n51 52 53 56 59 62 65 68\n85 82 81 80 78 77 74 73\n37 34 33 32 30 29 28\n86 87 88 91 92 95 96\n72 71 69 68 66 64\n43 46 47 49 52 53 56 59\n87 84 83 81 78 76 75 73\n2 5 8 10 13 16 19 22\n75 74 71 69 67 64 61 58\n62 63 66 69 71\n23 21 18 16 13\n75 72 71 68 66 63 61 58\n61 58 55 52 50 48 45\n13 10 7 5 2 1\n81 82 83 84 86 89 92 94\n46 43 42 41 38 37\n18 16 15 14 11 9\n35 33 31 30 29\n7 9 10 11 13 15\n33 35 38 41 42 45 46 49\n85 87 88 90 92\n71 68 66 65 64\n21 23 25 28 29 32 33 35\n28 25 23 22 20 17\n16 15 12 11 8 6 5 4\n97 96 93 92 89 86 85 82\n28 26 23 22 21 20 18 15\n44 45 46 47 48\n45 43 42 40 39 38 37\n39 40 41 44 47 49\n58 57 56 54 52\n75 76 77 78 79 82 85\n57 60 62 65 68\n22 23 24 26 28 30 32 35\n51 52 53 55 57 58 60 63\n57 54 51 48 45 42 41 39\n84 83 82 81 78 75 74 73\n99 98 95 93 92 90\n42 39 36 33 31 29 27\n94 92 89 87 84 81 80 79\n23 26 28 30 31 32 33 34\n24 23 22 19 18 16 14 11\n64 62 61 58 56 53 51\n35 38 40 42 43\n43 46 47 48 50 53 55 58\n59 57 56 54 53 51\n40 42 43 45 48 50 53\n97 96 94 92 89 87\n74 72 69 66 63\n64 66 68 69 72 75 78 81\n41 44 45 46 48 50 53 55\n54 53 51 49 47 44 43 40\n20 18 17 14 12 11\n10 9 8 5 4 1\n74 73 71 70 67 66\n26 24 23 21 19 16 15\n86 87 90 92 94\n87 84 82 79 78\n8 6 4 2 1\n57 60 61 64 67\n19 22 24 26 28\n2 5 8 11 14 15 18\n77 74 71 68 66\n2 3 4 5 6 9 12 14\n92 90 88 86 84 81 79\n12 9 7 6 5\n9 12 13 14 16\n58 60 61 64 66 68 69 72\n84 86 87 89 90\n83 85 88 89 90 93 95\n89 86 84 81 80 77\n80 83 84 85 87\n65 62 60 57 56\n70 68 67 64 62 59 56\n54 51 49 47 44 42 40 37\n16 15 13 11 8\n66 65 62 60 58 56\n71 70 69 66 64 61\n55 57 59 60 62\n7 9 12 15 18\n52 50 47 44 41 38 36 34\n11 14 17 19 21\n27 25 22 21 19 17 15 14\n68 65 63 60 57 55 54\n58 57 56 53 51 50\n62 60 58 57 55\n52 53 56 57 58 59 60\n67 70 71 72 74 76 77 79\n79 76 73 72 69 67 65\n12 15 16 19 21 24 26\n69 66 64 63 61\n50 48 47 45 44 42 40 38\n21 19 17 15 12 11\n32 30 27 26 25 23 21 19\n37 35 32 30 29 27\n41 43 46 49 51 52 53 55\n20 23 25 27 30 32\n87 85 84 82 80 78 75 74\n26 28 30 31 34 37 39 42\n82 81 80 77 75\n35 33 30 27 25 24 21 20\n45 46 49 50 53\n59 57 55 52 49 48 47\n92 89 87 86 83 80 77 75\n94 91 88 86 85 83\n50 49 47 45 42 39 38 36\n65 62 60 57 55 54 52\n63 64 65 68 70 72 73 76\n27 24 22 20 17 14 13\n28 25 23 21 20\n28 31 34 35 38 41 44 46\n44 46 48 51 53 54 57 60\n24 21 19 18 15 13\n67 65 62 60 57\n10 8 7 4 2\n50 49 47 45 44\n62 64 67 70 71 72\n64 67 69 72 73 75 77\n23 26 27 28 29 32\n30 27 24 23 21 18 16\n87 90 91 92 93 94 96\n5 7 10 13 15\n38 35 32 30 28 27 26\n74 77 79 80 82\n66 64 63 60 57 56 55\n87 84 83 82 81 78 77\n85 87 90 93 95 96 98\n20 22 25 27 29 31\n40 38 35 32 31 30 29 27\n14 11 9 6 3\n87 85 83 80 77 74 73 70\n95 92 91 88 85 83 82 79\n41 42 44 45 46 48 51 53\n40 39 36 33 32 31 29\n27 26 23 22 21\n89 87 86 83 82 80 77\n66 63 62 61 60\n29 27 26 23 21 18\n24 26 29 31 32 34 37 39\n29 31 33 36 38 39 42 43\n15 18 19 22 25 28 31 32\n16 17 20 22 23 25 27 30\n33 30 29 26 23 21\n57 59 62 63 65\n17 14 13 12 10 7 4\n40 37 36 33 31 28 25 24\n70 69 67 66 63 61\n47 48 51 52 55\n10 9 6 4 2\n63 65 66 69 72 74 77 80\n30 29 26 23 20 17 16 14\n91 88 85 84 81 78 75 72\n80 78 76 74 72\n94 96 97 98 99\n35 33 32 29 27 26 24\n11 14 17 19 20 22 25 28\n58 60 63 64 66 67\n83 80 78 76 75 73\n54 52 49 48 47 45\n57 56 54 52 51 49 47\n58 60 62 65 68\n46 44 41 39 37\n16 17 18 19 20\n77 78 79 82 85\n49 47 44 43 41\n93 94 95 97 98\n87 86 83 81 80 78 77 76\n50 51 53 55 58\n97 94 91 88 87 86\n2 5 8 11 13 14 15\n20 21 23 26 28\n95 94 91 89 87 86 84\n25 22 20 18 17 14 12\n70 67 65 62 59 57 56\n71 72 75 76 79 81 82\n15 18 21 22 25 27\n39 41 42 43 46 48 51\n46 48 51 52 53 55\n35 38 40 43 45\n56 58 60 61 63 66 69\n37 35 33 32 31 29 26\n40 43 44 47 49 51\n64 62 61 58 56") -(def question-3 "what()-%*;[mul(826,659)what()&mul(622,241)}^from();why()mul(499,923))mul(589,186)~how()why()]/~who()}mul(57,224)* ##[[*>mul(206,45)select(){~from(63,961)+!/'@mul(365,743)^ from()mul(94,410)$how()(^ )/,mul(592,884) mul(265,485))^#[[mul(763,659),mul(275,537)$;who()*mul(511,392)))what()(+from()from()>&-mul(416,947)mul(868,183)?:where()*when()#-where(890,406)#-mul(873,379)mul(195,835)/,%?],!-{(mul(225,902)where()'(where()-@#mul(544,955)how();~when(222,774)mul(538,277),from()from(717,816)$)(!%select()mul(247,162)**why()!}/where()mul(411,570)]mul(158,805)<[)}!@$select()don't()&?mul(475,153)when()mul(44,394)mul(505,328)select(),;[+mul(228,58)}/)why()?who()mul(706,785)$!#mul(635,796)#[where(){^select(275,150)-/)mul(85,214)do()where()@'mul(651,67)]-mul(530,38)why()+^don't(),where();what()~mul(532,711),;)$why()+what();%mul(265,354)-mul(338,874)?]mul(284,884)}'?where(),mul(614,138)&who()~}[why()from()mul(779,747)^mul(7,27)select()}>+^-*who()*mul(545,113)who()('!&how(),don't()+{$&mul(842,42)<#mul(788,22),why(),mul(581,843)why()?mul(415,102)[mul(782,483)::(&',^mul(411,597)mul(800,946)[]($}:+)]mul(6,738)who()+where()@}(where()>$when()mul(737,227)select()~ why(984,422)mul(690,299)$how()!why()when() why()>:who()mul(62,391)mul(559,901)mul(152,669)([why()-select();*(mul(674,497)mul(195,917)from()#what(),mul(332,868)select()')@#mul(957,359)(when()]>(%,mul(252,836)[why()?where()!,mul(877,551)&select()[}->(*[mul(847,681),why()select()select()*@,mul(211,86)when()select()-:)#']mul(416,630):(}?$[:)mul(255,942):-*:!~%@how()what()mul(117,324)\n/}mul(804,424)mul?where())%}mul(933,657)%from()what()'~!}*:mul(916,775)who() {,what(485,199)when()#mul(760/-select();mul(859,259) )?mul(21,933)what()^from()#-mul(951,427)don't()mulwhere(295,787)%'~*who()@mul(500,697)where()*^!@^what():mul(737,496)^{)^how()when()#mul(387,233)']%select();}mul(89,882)}(&mul(394,392)#from()what()}who()when()when()>;^mul(639,188) [*mul(302,818)[mul(874,794)~{(<>[%mul(217,113)~why() mul(651,680)^!/'select()mul(161,158)'}/*{mul(41,452)?;;@,[~}why()mul(71,555)who()}]where()*%where()?mul(909,630)%^where()how()'mul(678,912)*)+what():don't()*^[$mul(208,358)mul(99,216,??/-%]when(40,18)>'(mul(967,259)^!%!mul(574,337)mul(855,993)from()who()<@ -&mul(679,566)[;$how()mul(773,340)+-':-mul(46,577);>+%^#mul(668,549)@;#,[])don't()mul(471,350)why()?what()where()what(),]:!where()mul(474,215):#what():%}how():mul(47,116)-,^from()?[select()>mul(566,323);!$why()what()<>{%-mul(756,641)(]{what()$>@#$%mul(478,68)!](;@+when()mul(383,83)>>@ do())(/!when(){{)~when()mul(18,568)mul(933,58))mul(53,523)what()where()>+where()^mul(847,728)>where() who()how()]mul(499,856)mul(837,413)&:who();from()@mul(711,785)@from()select()$]#-}mul(603,647)!how()'}/mul(142,83)mul(236,987)(&[)+$<&when()mul(464,484)[mul(97,923{[{;~*how(603,347)why(397,750)[mul(397,378):from()who()@$[mul(33,741)@&<['from():do()]select()/!who()from()what()(+mul(425,204)<[^select()#:?do()/mul(977,606)how()select()?select() ^mul(481,671)^&,)&what()select()from()from()mul(219,42):what()?}mul(441where()({select(),mul(333,910)from()from()where()]*'mul(925,221):%?from()mul(981,324)%}mul(595,648)&select()/mul(742,838)when()~@from()don't()#+)(<^?}mul(554,328)} -?(mul(513,192)~~$*why()/~% mul(444,631)## mul(794,537)-#what()~how()why(310,427)(mul(781,606)< from()@&mul(787,800)@how(266,66)-{when()what()who()mul(538,246)[^*+why()where()mul(629,836)from()* [$+&]mul(77,354)%]:from()mul(260,304)@why()!/when()where()+(mul(354,804) mul(76,15)>mul@!!$]from()mul(357,50)(mul+%~]$-%%don't()(from();when()#;~when()mul(564,123)~&]@mul(489,580from()what(95,431)+:*- ,*'mul(745,620)how()'why()>-from()[?>!!mul(988,840))^)(]]#^}mul(298,967)when():who()#who()what()mul(84,148)< ;&@^do()when()~^where()#^$mul(341,853)<+~*what(252,434)*{{mul(986,313)]&>&>mul(620,476)why()who()mul(69,875<$-&(''mul(106,787)mul(171,707)who();~when()+>;how();+mul(163,282)(];?>}* mul(571,602)/from()+/]!{+mul(372,949)$?*$(mul(921,212)@'>mul(705,437)($when()where()mul(371,384)>mul(445,760)'do()?/when()%[^mul(382,44)}&/)&$select()mul(284,899) when():%mul(554,813)$;~>mul(274,983)'')?-from()mul(668,571)when()why()mul(981,529)>where()%) #& [^mul(864,321)how()'[mul(752,285)$ mul(448,366)&why()])${;^from()who()mul(251,944)select()-&*mul(724>>)}^,select()~~}do()}))%who()#mul(652,853)\nmul(914,760)%]how())mul(325,361)>[@#{mul(49,627)> []!%?@:mul(866,756)!?^how()#select()(}&mul(217,708)>mul(534,113)<()(~(how()&mul(522,207)where() who()why())]mul(549,286)what(824,300)-]when()]}:select()mul(536,959$(~#&*[~})mul(47,72){:mul(907,280)&!mul(175,322)mul(460,379)select()'?&mul(697,154){^%[^from()when(552,273)mul(454,997)*&/mul(514,858)$why(29,970): ,+!<&mul(411,897)[%why(),mul(749from()where())+ ]how()'what()mul(739,713)mul(116,113)mul(203,704)/!select(379,766)]&when()^from()#mul(903,203)!,!< {%]?mul(330,707)where()(+how()>mul(526,973)~]^&'how()mulfrom() +];mul(964,967)@why()from()when()^~ mul(217,465)]from()/from()@&]where(263,584)+why()mul(267,301)}when():#don't()>who(860,416)/,mul(126,52);<}+[who(),where()mul(868,540)when(332,336)mul(134,939)#mul(119,818)mul(777,396)+mul[mul(184,9)select()mul(375,842)]mul(527,499)~#what()'mul(260,652)mul(15,171)what()mul(273,578)-?mul(798,178)&?<;#%:mul(886,756)where()who()~^,from()$mul(775,238)[why()'mul(229,247)/mul(105,511)from()?]>+/why()$!:mul(578,64)?where()*)~:&( where()mul(917,699)&:~^'~who()mul(685,592); ,where()%[{mul(535,245)' why()*mul(166,874)!'who()why()/~:}-what()mul(430,972)[(mul(11,883)>?-%/#;who(382,885)why()}where()*&?mul(142,204),!why()from(805,222),mul(165,77>>from()mul(539,602)@- !!from()where()>mul(725,894)#mul(664,363)mul(436,916)(;*]!/mul(276,69)?^~how()?:-what()do()mul(174,136)where() ,#:*)mul(465,302)*!-why()^/mul(363,643)})(why()!mul(149,621))^*?who(),mul(172,73)mul(631,398)]from()mul(998,161)@[[@who()?mul(310,639)#-}{what()?;!(mul(584,757)~ !(do()$->#[)$(mul(124,565){mul(698,142)}})-mul(742,227)%#why()/,$:select()mul(152,975)why()*&?~#'~*?mul(908,265)mul(620,516)from()select(209,291)why()$mul(539,160);select()~}*{when()mul(784,853)who(15,285);where(),^;where()-[mul(342,770select()*;>-((*&mul(982,965)how()&mul(523,830)when(961,246)[ why()+why()]mul(785,203)who(99,69),*mul(936,742)?^','%;-why()!mul~)when()when()select()!(;&@how(900,734)mul(589,321)mul(964,282)-))how()why()what()(*})mul(47,984)@mul(253,826)mul(429,558)where()how();<#what()#+mul(983,307)~>}-)/who()mul(327,880)+}when(){when()}mul(593,869)mul(643,89)-:,,,<;mul(33^who()[)+-^mul(189,550)<:mul(519,574)*how()?where()[^;when()mul(563,151select()-what()]mul(574,867))}mul(800,881)who()'#~#mul(46$mul(693,762)-!@,#mul(454,19)$!select()from()*who()),mul(269,371)from()mul(330,479)%&!}how(477,247) [do())why()^}+''-how()mul(819,485)how()-)~*%what(447,325)why()mul(462,456)#?]mul(912,654)]mul(2,822)$)>':select()when()select()/]mul(557,454)'%<>+%what())*do()when()why(716,84)@/mul(89,140)select()('mul(310,84),*select(),$?mul(86,400)[/what()<@~$mul-!when()who()%#where()'[who()(mul(755,653)mul(594,757from()from()<[,;mul(916,545)mul(206,9)@$)mul(588,12) '][)select()$from()from(220,871)@mul(849,103)-/mul(887,921)$#who()who()mul(873,831):why()}who()[+mul+&>#how()how() : mul(323,651)why()!mul(620,114)<+what(844,679)/{/*mul(327,69)mul(472,982)how()^(mul(321,807)when()why()]why()$mul(694,629)/%/ who()*[mul(648,109)]>[''@mul(543,595)${{{:>;#!/usr/bin/perl ]-(#:how()]<+mul(770,832)\n$select()when()@*)&select()how()/mul(195,671)';;^(select()!mul(342,663)@$@%~)>)don't()what()mul(681,868)-@who(237,633)}when())*#>;mul(532'select(828,390);what(),<%?-:{mul(835,208)%/$select(21,874)mul(214,27)from()who()who()/mul(767,769)!~,+>who(),mul(204(}who()!when(940,779)<$from()^mul(944,886)mul(714,285)<)~~why()mul(352,872)what():/mul(419,248)#from()&select()>>mul(557,809)-why()from():mul^?);mul(231,230)(what()%/:{mul(635,952)mul(896,753)-&*%mul(475,955))[when()(&~}mul(865,939)mul(557,651) !)~:mul(172,689)/from()]{$,;what()mul(956,624):[,@+}what()mul(601,236))where()*from()from()mul(820,982)who()$select()when()/mul(249,654)#,from():;!don't()}+select();/why(240,203)where()^!mul(373,721)from()?,mul(234,262)how()'>([mul(477,58)mul(161,422)~mul(985}/select()-~mul(344,788);mul(660,334)do()when()]where()&who()when(){mul(955,809)+who()>how()where()?-^/mul(800,971) mul(331,999)[{where(){}]@!mul(243,886)mul(807,365)why(708,402)@when()?who()mul(242,464)&^,[{how(){when()*(mul(593,164)&*/&where()select(237,204)mul(474#/mul(533,804)&, how()why(653,768)mul(489,173)]where()from()[&{?:mul(62,23)& )where()from() mul(234,284)@who()why()* }*mul(938,464)from(),+?(@why() don't()what(338,233)?~'+who()$@mul(63,606):mul(713,654)$from()(+&:mul(138,999);&#select()~mul(432,589)?>^(?*&mul(117,404)@)where()why(6,662)mul(942,298)mul(16,588)how()*~<~ from()-mul(610,545):why()#]-;how())what()}mul(977,824)??when()mul(241,702)!^]@mul(98,19)!{what()mul(896,817)?who())^#&;:?mul(475,309){]~!who()mul(819,280)+~why(22,676)mul(714,597)from()when())^~+, mul(962,748)%mul(178,691)$what()mul(777,740)&who())where(),;mul(632select()/ *who()who()@mul(460,751)+',mul(862,580)# :-what()!+{don't():$!<^:from(){&who()mul(93,231)how()select()#+)-^don't()/&>*#'/&[(;&>,from()do(),what())what()$*mul(742,889)mul(62,478)?[why()why(),mul(837,195)why(){>,$@!'mul(722,317)%%select()when()what()(('/+mul(251),)>mul(148,406);don't()when()'mul(784,101)<[!^(where(365,573)<${mul(535,827):{*#mul(335,673)]]^:^]when(222,2)[mul(704,190)!from()who(){%(&} mul(407,649)+~:why()mul(575,579)@}:why()mul(945,425)[what():mul(42,200)\n/select()who()how()select()~when(364,150)mul(790,347)+,):+?mul(498,67)!!<'when()}',{mul(440,393)from(283,600):@[ :&mul(584,602)[*%+mul(913,926)(+from()why()(><,$ mul(4,866)where(){;+,why(),when()why()when(199,14)mul(370,854)why()^mul(665,756),>}*{:&when()-how(582,503)don't(){@^,@/mul(306,251)mul(2,820)~&[[^ mul(135,961){~!)mul(526,875)how()+what()?]mul(379,321)%why()%,who()^?don't(),select()%when()mul(476,779)select()mul(811,466)}~~%mul(389,923)>what(){&> :{>mul(806,620)mul(976,304)when(); :)/[mul(463,959)'when()[select()(^]mul(911,997)-%[*,mul(448,155)({from(10,578)mulwhat()when()<}select()(mul(492,179)+from(771,314))&*:!]mul(624,243)who()how()(^&{%+$do()'?mul(171,189)who()where()mul(531,756)@what()who()}mul(83,163)> @)*mul(575,765)why()'$$who();{who():?+mul(644,730)~from()&/where()select(574,686)what()^?~mul(998,26)~<: [){}?do()how(851,386)#mul(29,770)]what()select(),^why()from(577,917)?/do() mul(309,161),#mul(684,763){#;why()$+[@]mul(99,693)who();(>select() don't()~^,mul(144,109)!@mul(757,540) +mul(649,668),[^/~> &what()mul(948,181)(what()select()~mul(147,215)mul(790,557)+@when()who()>-{%mul(809,499)+from() mul(594,964)?select()) } ,%mul(105,293)mul(800,358)who())/{$select(343,382)>+from()>mul(556,232)mul(719,487)'&^?why()?^+mul(986]:why()&mul(487,944)#/>[when()when())mul:select()what()&]>^~mul(356,737)$why()^~why()[>mul(357,835)from()~~$+&don't()mul(243,897)mul(606,944);--how() mul(200,517):?:?#),>who()}mul(588,55)&where() how()-:'when()^>mul(144,286)<%{} select()mul(957,918)!mul(901,352)!],;who()>mul(840,776)(,how(544,497)!#:/mul(319,341):what(836,872)<;!!,(!mul(182,549)~mul(550,899)what()>{}^%[do()when()- mul?-('[~@who()~&~mul(376,145)]#]mul(206,452)%?'{+ &how()#]mul(210,898)^+[from()why()'@]/mul(914,474)mul(814,374)how()?mul(679,233select()!$;)*why()who(),{mul(109,898)^^,$^who()what()mul(526,786)what()mul(966,480)mul(971,34)!who()mul(268,920)when(),!^+:!~~don't()'mul(324,732)why(98,537)where()^];}&*mul(341,746)/-+who()(mul(557,763)how()mul(30,249)mul(646,653)'where()(? ,,what() !mul*}&+when()when(579,74)what()]mul(100,419)%*,~-;*~mul(980[who()$where()({do()$)]*mul(154,681):)~select()>'select(110,162)/mul(499,447);~ ]!/%from()mul(140,215)'how()]>^&'/mul(54,832):*/from()/mul(176,59)@$$[#^]mul(802,12)~mul(85,515)\n@)::-from()who()mul(979,36)mul(966,513@+'}?don't()mul(428,358)+where()select(943,219)-?>mul(258,3)what()mul(415,26)/'mul(7,129)@who()how(){mul(104,970)]mul(626,872)where())&mul(349,194) *when()how()%&}(why() mul(827,914) how()[+what()^--[!mul(421,153)?mul(161,508):+where()mul(786;#(@/mul(857,712)why(841,104)[})&from()mul(411 ]how(223,310)mul(528,703) ]mul(17,407):*~+)mul(129,256]%$where()~mul(934,438)~where()&+#what(15,14)$select()mul(170,110)mul(367,246)@ mul(759,593));$' where()why(326,790)?why(101,864)~mul(941,890)what(863,919)}>mul(291,785)where()~when()/what()when()mul(599,49)why()'what()}}/what()%{do()$?why()&what()'mul(235,289)mul(326,542)-[why()>[;mul(539,793)mul(608,380)from()>- &:where()mul}who()'*;:'how()from()mul(732,637)&>mul(66,802)*mul(549,82)>&from()+!who(809,63)mul(247,247):why();-select()}mul(70,653)] where()>$mul(436++mul(489,212)><}what()[what()when(279,911)mul(135,755)where():;#%$mul(961,126)#:why(),&select()where()mul(952,400)#~{~]/];from()mul(323,62)<#(]mul(216,941))mul(463,878):!+, -;how()mul(955,874) %: $',don't()<#,@$@-#>mulwhere()when()mul(414,753)/%$mul(121,719)?mul(461,998);,(;(@]mul(197,230)(#@who()]who()mul(843,541)%~}mul(444,889)what()~mul(351,825)#?how() *)}@!mul(903,612)from()-+>do()}#*+'{why()^who(469,233)mul(350,416) }where()#,mul(555,729)who()]&mul(688,456)select(818,922);*don't()]who(441,198)?mul(712,946)!)+- mul(224,129)who(){'!,what()mul(716,626)select()#(mul(26,417) )when()+{@@^don't()+*/mul(141,786)(from()[select()]$#>%mul(889,476):why()>where()~]}#mul(183,580)mul(970,128)[select()}@;where()[why()mul(174,357)~](+[~#mul(471,870)^'from(874,759)%don't()when()[where()who()(mul(880,149)+@?mul(319,427)&&~from()$(mul(186,123)%what() }*(do()when()-where()!/)(mul(810,752)mul(421,178);{# !when()%mul(926,537)when()'mul(697,480){:~#]{>-mul(536,791)*]$~*where()$mul(367,981)?(+~#mul(982,905)><},,*where() where()@mul(321,839)!{->]?what(){mul(467,883):/+)mul(849,445)why()when()[&$+!#") \ No newline at end of file +(def question-3 "what()-%*;[mul(826,659)what()&mul(622,241)}^from();why()mul(499,923))mul(589,186)~how()why()]/~who()}mul(57,224)* ##[[*>mul(206,45)select(){~from(63,961)+!/'@mul(365,743)^ from()mul(94,410)$how()(^ )/,mul(592,884) mul(265,485))^#[[mul(763,659),mul(275,537)$;who()*mul(511,392)))what()(+from()from()>&-mul(416,947)mul(868,183)?:where()*when()#-where(890,406)#-mul(873,379)mul(195,835)/,%?],!-{(mul(225,902)where()'(where()-@#mul(544,955)how();~when(222,774)mul(538,277),from()from(717,816)$)(!%select()mul(247,162)**why()!}/where()mul(411,570)]mul(158,805)<[)}!@$select()don't()&?mul(475,153)when()mul(44,394)mul(505,328)select(),;[+mul(228,58)}/)why()?who()mul(706,785)$!#mul(635,796)#[where(){^select(275,150)-/)mul(85,214)do()where()@'mul(651,67)]-mul(530,38)why()+^don't(),where();what()~mul(532,711),;)$why()+what();%mul(265,354)-mul(338,874)?]mul(284,884)}'?where(),mul(614,138)&who()~}[why()from()mul(779,747)^mul(7,27)select()}>+^-*who()*mul(545,113)who()('!&how(),don't()+{$&mul(842,42)<#mul(788,22),why(),mul(581,843)why()?mul(415,102)[mul(782,483)::(&',^mul(411,597)mul(800,946)[]($}:+)]mul(6,738)who()+where()@}(where()>$when()mul(737,227)select()~ why(984,422)mul(690,299)$how()!why()when() why()>:who()mul(62,391)mul(559,901)mul(152,669)([why()-select();*(mul(674,497)mul(195,917)from()#what(),mul(332,868)select()')@#mul(957,359)(when()]>(%,mul(252,836)[why()?where()!,mul(877,551)&select()[}->(*[mul(847,681),why()select()select()*@,mul(211,86)when()select()-:)#']mul(416,630):(}?$[:)mul(255,942):-*:!~%@how()what()mul(117,324)\n/}mul(804,424)mul?where())%}mul(933,657)%from()what()'~!}*:mul(916,775)who() {,what(485,199)when()#mul(760/-select();mul(859,259) )?mul(21,933)what()^from()#-mul(951,427)don't()mulwhere(295,787)%'~*who()@mul(500,697)where()*^!@^what():mul(737,496)^{)^how()when()#mul(387,233)']%select();}mul(89,882)}(&mul(394,392)#from()what()}who()when()when()>;^mul(639,188) [*mul(302,818)[mul(874,794)~{(<>[%mul(217,113)~why() mul(651,680)^!/'select()mul(161,158)'}/*{mul(41,452)?;;@,[~}why()mul(71,555)who()}]where()*%where()?mul(909,630)%^where()how()'mul(678,912)*)+what():don't()*^[$mul(208,358)mul(99,216,??/-%]when(40,18)>'(mul(967,259)^!%!mul(574,337)mul(855,993)from()who()<@ -&mul(679,566)[;$how()mul(773,340)+-':-mul(46,577);>+%^#mul(668,549)@;#,[])don't()mul(471,350)why()?what()where()what(),]:!where()mul(474,215):#what():%}how():mul(47,116)-,^from()?[select()>mul(566,323);!$why()what()<>{%-mul(756,641)(]{what()$>@#$%mul(478,68)!](;@+when()mul(383,83)>>@ do())(/!when(){{)~when()mul(18,568)mul(933,58))mul(53,523)what()where()>+where()^mul(847,728)>where() who()how()]mul(499,856)mul(837,413)&:who();from()@mul(711,785)@from()select()$]#-}mul(603,647)!how()'}/mul(142,83)mul(236,987)(&[)+$<&when()mul(464,484)[mul(97,923{[{;~*how(603,347)why(397,750)[mul(397,378):from()who()@$[mul(33,741)@&<['from():do()]select()/!who()from()what()(+mul(425,204)<[^select()#:?do()/mul(977,606)how()select()?select() ^mul(481,671)^&,)&what()select()from()from()mul(219,42):what()?}mul(441where()({select(),mul(333,910)from()from()where()]*'mul(925,221):%?from()mul(981,324)%}mul(595,648)&select()/mul(742,838)when()~@from()don't()#+)(<^?}mul(554,328)} -?(mul(513,192)~~$*why()/~% mul(444,631)## mul(794,537)-#what()~how()why(310,427)(mul(781,606)< from()@&mul(787,800)@how(266,66)-{when()what()who()mul(538,246)[^*+why()where()mul(629,836)from()* [$+&]mul(77,354)%]:from()mul(260,304)@why()!/when()where()+(mul(354,804) mul(76,15)>mul@!!$]from()mul(357,50)(mul+%~]$-%%don't()(from();when()#;~when()mul(564,123)~&]@mul(489,580from()what(95,431)+:*- ,*'mul(745,620)how()'why()>-from()[?>!!mul(988,840))^)(]]#^}mul(298,967)when():who()#who()what()mul(84,148)< ;&@^do()when()~^where()#^$mul(341,853)<+~*what(252,434)*{{mul(986,313)]&>&>mul(620,476)why()who()mul(69,875<$-&(''mul(106,787)mul(171,707)who();~when()+>;how();+mul(163,282)(];?>}* mul(571,602)/from()+/]!{+mul(372,949)$?*$(mul(921,212)@'>mul(705,437)($when()where()mul(371,384)>mul(445,760)'do()?/when()%[^mul(382,44)}&/)&$select()mul(284,899) when():%mul(554,813)$;~>mul(274,983)'')?-from()mul(668,571)when()why()mul(981,529)>where()%) #& [^mul(864,321)how()'[mul(752,285)$ mul(448,366)&why()])${;^from()who()mul(251,944)select()-&*mul(724>>)}^,select()~~}do()}))%who()#mul(652,853)\nmul(914,760)%]how())mul(325,361)>[@#{mul(49,627)> []!%?@:mul(866,756)!?^how()#select()(}&mul(217,708)>mul(534,113)<()(~(how()&mul(522,207)where() who()why())]mul(549,286)what(824,300)-]when()]}:select()mul(536,959$(~#&*[~})mul(47,72){:mul(907,280)&!mul(175,322)mul(460,379)select()'?&mul(697,154){^%[^from()when(552,273)mul(454,997)*&/mul(514,858)$why(29,970): ,+!<&mul(411,897)[%why(),mul(749from()where())+ ]how()'what()mul(739,713)mul(116,113)mul(203,704)/!select(379,766)]&when()^from()#mul(903,203)!,!< {%]?mul(330,707)where()(+how()>mul(526,973)~]^&'how()mulfrom() +];mul(964,967)@why()from()when()^~ mul(217,465)]from()/from()@&]where(263,584)+why()mul(267,301)}when():#don't()>who(860,416)/,mul(126,52);<}+[who(),where()mul(868,540)when(332,336)mul(134,939)#mul(119,818)mul(777,396)+mul[mul(184,9)select()mul(375,842)]mul(527,499)~#what()'mul(260,652)mul(15,171)what()mul(273,578)-?mul(798,178)&?<;#%:mul(886,756)where()who()~^,from()$mul(775,238)[why()'mul(229,247)/mul(105,511)from()?]>+/why()$!:mul(578,64)?where()*)~:&( where()mul(917,699)&:~^'~who()mul(685,592); ,where()%[{mul(535,245)' why()*mul(166,874)!'who()why()/~:}-what()mul(430,972)[(mul(11,883)>?-%/#;who(382,885)why()}where()*&?mul(142,204),!why()from(805,222),mul(165,77>>from()mul(539,602)@- !!from()where()>mul(725,894)#mul(664,363)mul(436,916)(;*]!/mul(276,69)?^~how()?:-what()do()mul(174,136)where() ,#:*)mul(465,302)*!-why()^/mul(363,643)})(why()!mul(149,621))^*?who(),mul(172,73)mul(631,398)]from()mul(998,161)@[[@who()?mul(310,639)#-}{what()?;!(mul(584,757)~ !(do()$->#[)$(mul(124,565){mul(698,142)}})-mul(742,227)%#why()/,$:select()mul(152,975)why()*&?~#'~*?mul(908,265)mul(620,516)from()select(209,291)why()$mul(539,160);select()~}*{when()mul(784,853)who(15,285);where(),^;where()-[mul(342,770select()*;>-((*&mul(982,965)how()&mul(523,830)when(961,246)[ why()+why()]mul(785,203)who(99,69),*mul(936,742)?^','%;-why()!mul~)when()when()select()!(;&@how(900,734)mul(589,321)mul(964,282)-))how()why()what()(*})mul(47,984)@mul(253,826)mul(429,558)where()how();<#what()#+mul(983,307)~>}-)/who()mul(327,880)+}when(){when()}mul(593,869)mul(643,89)-:,,,<;mul(33^who()[)+-^mul(189,550)<:mul(519,574)*how()?where()[^;when()mul(563,151select()-what()]mul(574,867))}mul(800,881)who()'#~#mul(46$mul(693,762)-!@,#mul(454,19)$!select()from()*who()),mul(269,371)from()mul(330,479)%&!}how(477,247) [do())why()^}+''-how()mul(819,485)how()-)~*%what(447,325)why()mul(462,456)#?]mul(912,654)]mul(2,822)$)>':select()when()select()/]mul(557,454)'%<>+%what())*do()when()why(716,84)@/mul(89,140)select()('mul(310,84),*select(),$?mul(86,400)[/what()<@~$mul-!when()who()%#where()'[who()(mul(755,653)mul(594,757from()from()<[,;mul(916,545)mul(206,9)@$)mul(588,12) '][)select()$from()from(220,871)@mul(849,103)-/mul(887,921)$#who()who()mul(873,831):why()}who()[+mul+&>#how()how() : mul(323,651)why()!mul(620,114)<+what(844,679)/{/*mul(327,69)mul(472,982)how()^(mul(321,807)when()why()]why()$mul(694,629)/%/ who()*[mul(648,109)]>[''@mul(543,595)${{{:>;#!/usr/bin/perl ]-(#:how()]<+mul(770,832)\n$select()when()@*)&select()how()/mul(195,671)';;^(select()!mul(342,663)@$@%~)>)don't()what()mul(681,868)-@who(237,633)}when())*#>;mul(532'select(828,390);what(),<%?-:{mul(835,208)%/$select(21,874)mul(214,27)from()who()who()/mul(767,769)!~,+>who(),mul(204(}who()!when(940,779)<$from()^mul(944,886)mul(714,285)<)~~why()mul(352,872)what():/mul(419,248)#from()&select()>>mul(557,809)-why()from():mul^?);mul(231,230)(what()%/:{mul(635,952)mul(896,753)-&*%mul(475,955))[when()(&~}mul(865,939)mul(557,651) !)~:mul(172,689)/from()]{$,;what()mul(956,624):[,@+}what()mul(601,236))where()*from()from()mul(820,982)who()$select()when()/mul(249,654)#,from():;!don't()}+select();/why(240,203)where()^!mul(373,721)from()?,mul(234,262)how()'>([mul(477,58)mul(161,422)~mul(985}/select()-~mul(344,788);mul(660,334)do()when()]where()&who()when(){mul(955,809)+who()>how()where()?-^/mul(800,971) mul(331,999)[{where(){}]@!mul(243,886)mul(807,365)why(708,402)@when()?who()mul(242,464)&^,[{how(){when()*(mul(593,164)&*/&where()select(237,204)mul(474#/mul(533,804)&, how()why(653,768)mul(489,173)]where()from()[&{?:mul(62,23)& )where()from() mul(234,284)@who()why()* }*mul(938,464)from(),+?(@why() don't()what(338,233)?~'+who()$@mul(63,606):mul(713,654)$from()(+&:mul(138,999);&#select()~mul(432,589)?>^(?*&mul(117,404)@)where()why(6,662)mul(942,298)mul(16,588)how()*~<~ from()-mul(610,545):why()#]-;how())what()}mul(977,824)??when()mul(241,702)!^]@mul(98,19)!{what()mul(896,817)?who())^#&;:?mul(475,309){]~!who()mul(819,280)+~why(22,676)mul(714,597)from()when())^~+, mul(962,748)%mul(178,691)$what()mul(777,740)&who())where(),;mul(632select()/ *who()who()@mul(460,751)+',mul(862,580)# :-what()!+{don't():$!<^:from(){&who()mul(93,231)how()select()#+)-^don't()/&>*#'/&[(;&>,from()do(),what())what()$*mul(742,889)mul(62,478)?[why()why(),mul(837,195)why(){>,$@!'mul(722,317)%%select()when()what()(('/+mul(251),)>mul(148,406);don't()when()'mul(784,101)<[!^(where(365,573)<${mul(535,827):{*#mul(335,673)]]^:^]when(222,2)[mul(704,190)!from()who(){%(&} mul(407,649)+~:why()mul(575,579)@}:why()mul(945,425)[what():mul(42,200)\n/select()who()how()select()~when(364,150)mul(790,347)+,):+?mul(498,67)!!<'when()}',{mul(440,393)from(283,600):@[ :&mul(584,602)[*%+mul(913,926)(+from()why()(><,$ mul(4,866)where(){;+,why(),when()why()when(199,14)mul(370,854)why()^mul(665,756),>}*{:&when()-how(582,503)don't(){@^,@/mul(306,251)mul(2,820)~&[[^ mul(135,961){~!)mul(526,875)how()+what()?]mul(379,321)%why()%,who()^?don't(),select()%when()mul(476,779)select()mul(811,466)}~~%mul(389,923)>what(){&> :{>mul(806,620)mul(976,304)when(); :)/[mul(463,959)'when()[select()(^]mul(911,997)-%[*,mul(448,155)({from(10,578)mulwhat()when()<}select()(mul(492,179)+from(771,314))&*:!]mul(624,243)who()how()(^&{%+$do()'?mul(171,189)who()where()mul(531,756)@what()who()}mul(83,163)> @)*mul(575,765)why()'$$who();{who():?+mul(644,730)~from()&/where()select(574,686)what()^?~mul(998,26)~<: [){}?do()how(851,386)#mul(29,770)]what()select(),^why()from(577,917)?/do() mul(309,161),#mul(684,763){#;why()$+[@]mul(99,693)who();(>select() don't()~^,mul(144,109)!@mul(757,540) +mul(649,668),[^/~> &what()mul(948,181)(what()select()~mul(147,215)mul(790,557)+@when()who()>-{%mul(809,499)+from() mul(594,964)?select()) } ,%mul(105,293)mul(800,358)who())/{$select(343,382)>+from()>mul(556,232)mul(719,487)'&^?why()?^+mul(986]:why()&mul(487,944)#/>[when()when())mul:select()what()&]>^~mul(356,737)$why()^~why()[>mul(357,835)from()~~$+&don't()mul(243,897)mul(606,944);--how() mul(200,517):?:?#),>who()}mul(588,55)&where() how()-:'when()^>mul(144,286)<%{} select()mul(957,918)!mul(901,352)!],;who()>mul(840,776)(,how(544,497)!#:/mul(319,341):what(836,872)<;!!,(!mul(182,549)~mul(550,899)what()>{}^%[do()when()- mul?-('[~@who()~&~mul(376,145)]#]mul(206,452)%?'{+ &how()#]mul(210,898)^+[from()why()'@]/mul(914,474)mul(814,374)how()?mul(679,233select()!$;)*why()who(),{mul(109,898)^^,$^who()what()mul(526,786)what()mul(966,480)mul(971,34)!who()mul(268,920)when(),!^+:!~~don't()'mul(324,732)why(98,537)where()^];}&*mul(341,746)/-+who()(mul(557,763)how()mul(30,249)mul(646,653)'where()(? ,,what() !mul*}&+when()when(579,74)what()]mul(100,419)%*,~-;*~mul(980[who()$where()({do()$)]*mul(154,681):)~select()>'select(110,162)/mul(499,447);~ ]!/%from()mul(140,215)'how()]>^&'/mul(54,832):*/from()/mul(176,59)@$$[#^]mul(802,12)~mul(85,515)\n@)::-from()who()mul(979,36)mul(966,513@+'}?don't()mul(428,358)+where()select(943,219)-?>mul(258,3)what()mul(415,26)/'mul(7,129)@who()how(){mul(104,970)]mul(626,872)where())&mul(349,194) *when()how()%&}(why() mul(827,914) how()[+what()^--[!mul(421,153)?mul(161,508):+where()mul(786;#(@/mul(857,712)why(841,104)[})&from()mul(411 ]how(223,310)mul(528,703) ]mul(17,407):*~+)mul(129,256]%$where()~mul(934,438)~where()&+#what(15,14)$select()mul(170,110)mul(367,246)@ mul(759,593));$' where()why(326,790)?why(101,864)~mul(941,890)what(863,919)}>mul(291,785)where()~when()/what()when()mul(599,49)why()'what()}}/what()%{do()$?why()&what()'mul(235,289)mul(326,542)-[why()>[;mul(539,793)mul(608,380)from()>- &:where()mul}who()'*;:'how()from()mul(732,637)&>mul(66,802)*mul(549,82)>&from()+!who(809,63)mul(247,247):why();-select()}mul(70,653)] where()>$mul(436++mul(489,212)><}what()[what()when(279,911)mul(135,755)where():;#%$mul(961,126)#:why(),&select()where()mul(952,400)#~{~]/];from()mul(323,62)<#(]mul(216,941))mul(463,878):!+, -;how()mul(955,874) %: $',don't()<#,@$@-#>mulwhere()when()mul(414,753)/%$mul(121,719)?mul(461,998);,(;(@]mul(197,230)(#@who()]who()mul(843,541)%~}mul(444,889)what()~mul(351,825)#?how() *)}@!mul(903,612)from()-+>do()}#*+'{why()^who(469,233)mul(350,416) }where()#,mul(555,729)who()]&mul(688,456)select(818,922);*don't()]who(441,198)?mul(712,946)!)+- mul(224,129)who(){'!,what()mul(716,626)select()#(mul(26,417) )when()+{@@^don't()+*/mul(141,786)(from()[select()]$#>%mul(889,476):why()>where()~]}#mul(183,580)mul(970,128)[select()}@;where()[why()mul(174,357)~](+[~#mul(471,870)^'from(874,759)%don't()when()[where()who()(mul(880,149)+@?mul(319,427)&&~from()$(mul(186,123)%what() }*(do()when()-where()!/)(mul(810,752)mul(421,178);{# !when()%mul(926,537)when()'mul(697,480){:~#]{>-mul(536,791)*]$~*where()$mul(367,981)?(+~#mul(982,905)><},,*where() where()@mul(321,839)!{->]?what(){mul(467,883):/+)mul(849,445)why()when()[&$+!#") + +(def question-4 "XMXXXMMXXSXMSMMMSXMSSSMASXMAXSMMMAASAMXASASXSXSASMSMSSSXSMASXMMSAMMMSAMXSMMMAMMSMMSXSAMXMSMSASMSMSMSSSMMSMMMMMASMSSMSSXMAMXMASAMAMXSXSXMMASA\nMXMMMMMSXMASMMAASAMXMASAMXMXXSAASMMSAMXXAAXAAAAAXAAXAXMASXASAXAAASAXAASMXMAMXMAXMAMAMAMXXSAMXAXAAAAXAAAMAMAMMSAMSAXAMMSMAMSMMAMXSXMSAMXXSASX\nXAAMAAAMXXMMASMMMXMASMMXSAXSAMSMSAASAMMSMSMMMMMAMSMSXXMXMMMSAMSSMMASXMMMXSSSSMSSMASASAMMMMAMMMSMSMSMSMMMSSXMAMAMXMMXMAAXXXAASAMAMASMXMAXMASA\nSSMXSMSMXSSSMMMXMXAMXAAASASMXMASXMMSXMAAXAAAXMXAXAXSMMMAMAMMMMXAXXXMAXMXAXXAAAMAMAXXSASXASAMAAXXXAXAXSMMAAAMSSSMMXAMMSSSMMSMMAMASXMAAMMXMXMX\nAAAXMAXMAXAAAXAAMXSSSMMMSXXMASMSMMASAMSSMMSXSXSASMAMAAXMSAXAAMXMMMMSXMSMSSMSMMMAMMSMSMMMXMAMSASAMAMXSASMMMMAAAAMSMSAMAMAAXMASMMXSASMXAXMXMAM\nSXMXSASMMMSMMMMMSAXAAXSXMAMMAXMSXMAXAMAXAXMAMXMASMAMSSSMSXSSXSAAAAAXAXXAXAMXMXMAMXAAXAAXMSSMMMAXSXSXSAMSXXSMMSMMAAXSMAMSMMSAMAXASAMASMMXAAAM\nMASMAXSAMAAAMXAXMXMXXMASAAMMSXMMAMMSSMAXSASXXMXAXXXMXAAAXAXXASXSSSSSMMMSSXMAMAXAMXMSMMMSAAMAMSMMMASAMMMXMXMAXMMSMSMMSXMAXAMMMSMASAMMMASMSSSS\nSAMAMXSXMSSSMMSMMMSAXMAXMXSAXASMSMAAXMXXMAAAASMSSMXAMXMMSMMMXMAXAAAMMAXXSAXSSSMSSXAAAAAMMXSAMSXAMAMAMXMAXSMMMAAMXAAMAMXAMMSXAXMMMASXSXMAMAMM\nMXMXXXMAAAXXXXMASAXSAXAXSAMMSAMAMMMSSMSMMSMSMMAMAMAXAMAMXAAXAMXMMMSMSXSASXMMAMAAAMAMXMXSAAXMSXMMMSSMMSSMASAMMMMMSSXMAMXXSSMMXSAMXMAXXAMSMSMM\nSASXSASAMASMMXSXMAMMMMMMMAMXMAMMMAAMXAXSAAAAMMXMAAMSSXMXSSMSXSXMAXAAAAMXMAXMAMMMMSSSMSXMMSSMSASXXXMASXAMAXAMMMMMXAMXASXMMAASMSXSMMSASMMXAMAM\nSASASMSASAXAMMMMSMMAAAMASMMXSXMXSMSXMXMMSMSMSMSSSSMAXASAMAMAMSXSASMMMXMXSXMMXMXMXAAAXAMXAMAASAMASXSXMSXMAMSMSASXSAXMAXMASMMMAMXMAAXMASAMAMAA\nMAMXMXSAMXSSMSAAAASXMMSASASXAXAXAMMXSMXMMMMAXAAXAAMASMMASMSAASXXXXAASAMXMXAXAXMXMMMMMMMMSMMMMXMSAMXAMAMMMMMASASMAAMMSMSMMMXMXMASMMXXMAMMASMS\nMXMXSAMAMMXMASAMSMMAMMMMXAAASXXSAMMASAAXMAMMMMMXXAMXSMMXMAXAMSAMSMSMSASASMSMSXSASXSMMAMXAAMAXSMXMXSMSAMXXASAMAMXMXMAMAMAAMASMSMSASASAMXSXSAM\nSMMAMASXMXMMXMAMXXSAMSASMSMXAAAMXMMASMMSSMSXAXSXSXSAMXMSMXMSMMAMXAAASAMXMSAAAASASXAMSAMMSSMASMMAMXAXMAMXMAXAMXMSXXMASMSXMSMSAXXSAMMMXSMMAMMM\nXAMXSAMAMXSAMXXSXAMXMSAXXXXXMMMMSMMASASAAXSMMXSAAMMXSMMAAAAMASXMMSMMMSMXXAMMMAMAMMAMSAMXAXMXMMAXSAMXMAMSXMXAMAMXMXMASXAMMSAMMMAMAMXAASAMXMXS\nSSMMMMSAMAMAMSMSMMMSMMSMAXMXXXMASAMSSXMMSMMAMAMMMMMXMMSSMXMSAMAMAMSXMASXXMASXSMXMAMMMXMMASXSAMXMXMMXMSMSASMMSXSAMAMAMMSAMXAMMAMMMMMMXSAMXSSX\nAAMXAAXASXSAMAAXAAAAXAASAMXAMXMASXMASAXMAMXAMASASASAAMAMXSAMAMXMASXXSAXMXXMXMASMAMXAMASMAMASMMMMXMSXXXAMAMSAAASXSASAXAAAXSAMXXSAMAMXASMMAMAS\nSSMSMMSAMASMXMXMMMXMSXMAMAXMSAMXMXAMXSXSMMXSSMXAMASXXMMSXSAMXXAXMMXAMXSAMAMASMXMAXSASMSMSMAMAAAXXXAMAMMMMMMXMMMXSASAMSSXMAMXMAXASMSAMXXMASMA\nXMASAAMAMMXAXSMSXSSXSAMXASXAMASAMAXXAMXMAXAXAMSXMMMMSMMMAMXXASXSSMMXSXMMSXXAXXMMAMSAMAXAXMASMMSXXAAXAXMAXXXSXXMASXMAXXMMASXMSMSAMAXXMAMMMXXM\nMMAMMMSXMXMMSMAXAAXAXMMSAMXMSMMMSSMMMSXSAMXSAMAASXSXAMAMMMMMMSAAAASAMAXAXXMSSSSMSXMAMMMXMXAMXSAASXMMSXMASMASXASAMMSXSASMAMAAAMMMMMMXXXSASMMX\nASAMSAMXMAAXAMXMMMMSMMMAMSMXAMAXXMAXXAMAMMAMAMSSMAXSMSAMAAAAAMMMSMMAXXMMSMMAAAXAMMSSMXSSMSMSMMMMMAAAXAXAAMAMSXMASMMASAMMXSMMMSAXMAMXAASMXAXX\nXXASXMXAXMSSMXAXAMSMAAAAXAXSMMSSSSSMMASMMMASMMMMMXMMMAASXSSMXXXXMMSSMAXAAAMMSMMMMXMASAMXAAAAMAMASMMMSMMSAMAMSMMAMAMMMAMXMXAAXMXMMAXSMMSXSMMS\nXSXMAMSSXSAMXSMXAXAMMMXSSMMAXSXAMAXAXASXMMXSMAMMMXMAAMXMXAXXMSMMXAAAXMMSXMMMAMAXXXSAMXSMSMSMXMSXSSMAAXAMASXSXAMMSAMXMAMXMSAMXSASMSMXAXMMAXAX\nMAMXSXAMXMAXMAMXSSMSSSMAAXAMXAMSMMSSMXSAMMSXMAMAAAMAXSAMMXMASAAXMMSSMXXMASMSASXXSAMXSAMMMMXXXMAXXXMXSSXSAMXSMSMAAAMMXXMAXAXSXMASAMMSMMSSMMAS\nAMXAXMMMMXAMMSAAXAMAAAASMMMXMXAMAMAMMMSAMSASMXSMXMSAXSAMXAXMSSSMXMAXMAMXXAAMMMMAAXMAMAXMXXAMMMSAMASXAAXMXMAMAAMXXMMSASMXMMXSAMAMAMXASAAAXXXX\nMMMMMXAASXSAAMMMSMMXSMMMXSXASXMXAMXSXAMAMMASXMAXAAMMMSXXSXSXXXMXAMXXMSSXMMAMAXMXMSMSSSMSSMMSAAMXSAMMMMMMAMASXMSMMSXMASAMXXXXAMAXSMSAMMXMMSXM\nXMAXASMSMAMMMMAXAXMMMMXMXXSAXMMSASMMMMMMMMAMAMAMMSMMAXMXSAMXMXSSMSSMAAMASXMSSSMMXXXMAXAAMSAMMSMAMASMMMASXSASAMMAASAMXMMAXMMSXMAXMXMAMAMMAMAS\nXXSMAMXAMXMAXSMXMMSASAMXAXMMSMXAAMAMAAASMSXSAMXSAAAXXXXAMXMASAAAMAAMMMSAMAXAAAMAAMXMAMMMSMXXXAMXSAMXASAXMAMSAXMMMXMSSSXSXAAAAMSSMASMMAMMASAM\nXAMAMXXSSXSAMAAMSASXSASMMXSAAXAMMMMXSSMSAAAMASXMXSMMSMMMSXXASMSMMSSMXAMASXMMSMMSMSASMSMSAMXXSXSMMMMSAMASXMASAMXSMSMAMMAMXMMSSMAAMAMXMAMXAMAS\nXMXAXSXMAASXXMSMMAMAXMMAAAMMMSXXXXSAMXXMMMSMASXSXMAAXAAXMMMXSXMXAAAMMMSMMAXAAAAAAXASAAXSASXMSAMXAAMMXXXMASAMXAXSAAMMXSAMAMMXAMSAMXXXMASMASAM\nMAAXXSSMMMMASXMMMSMSMMSAMXSSMMMSAASAMXSMXAXAMXASAMMMMSMMAAXXMASMSMMAAMAASXMMSSMMSMSMXMMSAMXMMAMSMSXAMSXSXMXSXSAMSMSXASASXSSSMMXXSSMSMAMMAMAS\nAXXXXXAMXAMAMAAXXAAMAAAAXAAAASASMXMAMAMMMSSMXMMMAMMAXXXXASXAMMMMMXXMXXMMMAAMAMXXMXXAMXMMASXXMAMXMAMAMMAMXMXXMXMMMXMMMMXMAAAAXXXAAAAXMASMXSMM\nSMMSXSAMSMMMMSMMMMMMMMMMMMSMMMASXMSAMXSAAAAXAXASXMAXMASAMXXXAAAAAAXSMMSSSSMMASAXMAMMMMXSXMASXSSXMSSSMSAMAMMMSAMASAXASXMMMMSMMSMMMMMMMSAMXSAM\nMAXAAXAMAXMXAXASXSSXXAAMXMXXSMMMAXSXMMSMMSMMMXMSMMMSMAMMSMMMMSMSMSAAXXAAXAASAMAAMMSMAAMAMMMXMAAXXAAAASASXSAAMAXASMSMMAAXXXAMAXXAAAAMXMASASAM\nMSMMSSMSSSMMMMAXAAASMSMSAASASXSMXMMAXAXXAXXMSAMXAAXAMMSASAASAMAXAXMMMMMSSSMMAXSXSMAXSSSXSAMXSMSMMMSMMMAMMSMSMSMAXMAMXSMMSXMAXMXSSSMSMSXMXXXM\nAAXXAAMAASXAXSAMMMMXXAASXMMAMAXAAMSSMSSMMMAASMXSSMXXMXMAMSASASAMAMSXAASAMXMSMMXAMXMMMAMASMSASXMASAMXAMXMXXMXAXMMMSSSMAASXMXSAMXAAXAAASXMXMXX\nSXSMSSMSXMSMMAMASAMXMMMMAMMAMMMASAAAAAXAASXMMSAAAMXSXMMSMMXSXMAMXMAXSXMXMAXAMMMAMAMAMAMMMAMAXASMMMMAXXMAMXSMXMAMAXAAMSMMMXAMAMAMAMSMMMASAMSA\nXAXAXXAXMXXSXAMMSASXSXASXMSMSXXAMMMMMMMMASAAAMMSMMAMASAMXAAXMXASAMXAXASXSMSASAMAMASASMSSMMMSMMMSSXMSMSMSXMAMSSXMMXMAMXAAAMMSMSAXAXAMSSXMXMAS\nMXMMMMXMAMMMXMMXXASAXXXMMXMXSAMSSSXSSXASASXMMMXXXMASAMASXMASMSMXAMXXSAMAAAXAXXXASXSXSAAAAMAMAMAAMMMAAMAMMSAMXMASASXMSSSMMMAAASMSMMXSAXAMXXSX\nSMMAAMASMSAMXMXMMAMXMASMSMSASXAMAMAXMAXMAXXMSSSMSMMMXSAMAXAAMAMMMSMMMMMMMMMSMSAMMAXMMMSSMMAXAMMMMASMSMAMASASAMAMAMAAAXMSMSSMMMMAXXSMMSSSMSAS\nAAXMMSMSASXSAAAXAAMASAMAAAMASXSMAMMMMSSMSMSXMAMAAXXAMMXSMMMXSASAAAXAAXAXAAAAAXAXMASXMMAAMSSSMSMXSASAMXASXSASASXMAMMMMMXAMAXXXSSMSXMAASAAMMSA\nSSMSAAXMAMASMSMXSASXSAMMMSMMMXAMXMXAXAXAXAXMMSMSMSMAMAMSXSXASAXMSMSSMSMSSMSSSSMMSXMASMSSMAMAMAAAMAMAMSXSXMASXMASASASMXSSSMASMMAXMASXMMSMMXAM\nMAAMSSMMAMXMXXAXXXMASAMXXMAMXMSAMXSMSMMMMSMSXXAMAMMSMSSMASMXMSMXAMXAXXMAMXAAAAMAMASXMAMAMXSAMMMMSMSSMMSXXMAMASAMXSASXAMAAXAMASMMMAMAAXXXSMMX\nSMMMAMASXSASXMASXMMMSSMXMXXMSAMXSXMXAXAMSXAMAMAMAMAMXXAMXMAAMXSMAMSAMMMMSMMSMMMAXXMAMMMMMXMASXXMMXMAASAMXMXSXMMSMMAMMMMSMMMSAMXAXASMMMSMMAAX\nXAMMASXMASASAXAMASMXSASMSXSMSMSASASMSMMXMMAMSMXSXMASASXMASMMMASMAXXAXSAMXAAXAMSXSASXSXMAMXMMMMMXMASMMXXAXMAXAXAAAMAMAAMAAXXMAMSASAMXASMASMMS\nSMMSASAMXMAMMMAXXMAXMAMXXAXAXAMXSAMXXASAMMAAXMASXAASAMXSAMAAMASXMMSAMSAMMMMXAMAXSXMASASASASAAXXMXAMXSMMMAMMMSMSSSMASMXSASXMASAMMXMAXXASAMAAM\nAMAMXSAMXMSMMSAMSSSSMSMMMMMMMMSAMXMMSXMASMMSSMAMXMMSASXMASXMMMMAXMASMMXMASXXSMMMMAMAMMSASAXMXMMSSSMXAASXMMSAXAAAMXMSAAXMMAAAMASAMMSMXMMMMMMM\nXMAXMSAMAXMAXSAMXAAXMAXAAAAAAXMXMASXMAMAMAMAXMAMMMMXAMAMMMMASASAMSAMXXMSXSAMXAXMSAMAMXMAMAMSMSAAAAXSMMMAAAAASMMSMSSMMMSAXXMXSAMMMAAAMAAXXAAX\nMAMSASXSXSXMMMAMMMMMSAMXMSSXSAAASASAMSMAMXMXXSASMMSMMSSMSXSAMXAMXMAMXMMSAXXASXSASXSMSXMAMXMAAAMMMMMXMXSMMMMXMASXAXAASMMMSMMMMMSXXSMSASMSASXS\nMXAAXMMXMSASXSSMXMXAMMMSAXMAMMSASMSAMMSMSXMAMXMAAAXAAAMXXMMASXMMMSXMASAMAMMMAAAMXMAXAXXXMAMASMASXMSAAASXMXXMSSMMMSSMMSAAAAAAAAXAMXAXXAASMMSS\nMSAMXMXSXSAMAMAAXMASAAAMMMMMMAXMSAXXAXAMXXAAXAXSMMMMMSMAMMSAMXXMASAMXMMSSMMMMSMXASMMMSMASAMMAXXXAASXSMMAXSAMXMAAAAAXASMSSSMSXSSSSMMMSMXMXXAX\nAMMXSAAMAMXMAMMMMMSMSMASMASAMXMAMXMMXXAMAMMMXMMMASMXMAMXAMAMXXAMMSAMSAAAAAXAXAXXXMAAAAXXMAMAXMAMMMMAMXSAMSAMXXMMXSAMXSXAAAAMAMAMXAMASAMXXMXM\nMMXAXMSMSASXSMMAAXAAXXMAXAXXMAMXMMXMASXMMSASXSASAASXSSSMXMAMAMXMXMAMXMMMSMMMMMSMSSSMSSSMMAMMMSMMSAMAMAMMXSAAMSXXAXAMMSMMXMMMAMAMXXMASASMSMSA\nXSMMSAAAAXXAAXSSMSMSMMXMMMSMMMSMMMSMMMAAMSASASASXMAMXAAMXXMXMAAMMSMMAMSMXASXASAXAAMAMAMXSAXXAMAAMAXSSMSMASAMAAXMXSAMAMASAMXSXSXXXAMXSAMAAAMS\nXMASMMMSMXMMMMMAAAXAXXAMAMAMAMAMAAXMASMMMXAMAMAMAXAXXSMMMMSAMMMMMAAMXMAASAMMMXASMSMAMSMASAXMSSMMSSMAAAXMASASMMXMASXMXMAMSMXXXMAMSMMXMXMMMMMX\nMSSMMAAMXMSASMXMSSSMMSSMSSSSXSASMMSAAAAXMMMMXMAMMSSSMXXXAASXSASASXSMSAMMMASAMSMMXAMAXXMASMASASAAAMMMMMMMXSAMAMASAMXXSMMSAXMMMMAMAAXSAXMASAMX\nAXAAXSSMAASASXAXAAAXMAMAXMAAXSAMAASXMSSMAXSAMSASXAXXAMMMMXSASASXSAXASMMXXAXMXAASXMSXSAMASXMMAXMMSXXSXXAMMMXMASAMAMSAXASMMXXAAXAMMSMMMMSASASA\nSMXSMAXXMXMMMMMMSSMMSAMXMMMMMXASXMMXMAMAMXAAMXAXMSSMMMAXXAMAMXMAMAMAMAXXMSSMMSXMAMAXSAMMSAXMAMSAXMAMMAMXXAXSXMMSSMMMSMMMXMSSSSSSXXAXXAMMSXMX\nXAAMMMMSMAAAAAAAMAMMXMXXAAXAMSAMAXSAMXXSXSSMMMMMMAMMSSMSMXSAMAMMMAMASAMXMAAAAXASXMSXSXMXSAMXSMMASXMAASMSMSMXAAAXMAAMAXSSMMAAXAAXAMXMMXSASAMA\nMSMMAXAASMSSSSMMSAMXMMMMSMSMMMAXXMMXSMMXXMAXXXXASAMAMAASAMSXSASMMASAMXSAXMXMAMAMXAXAMASAMXSAXAMXMAMSXXAXAXASXMMSSSMSAMMASMMSMMMMMMAXMAMMSAMS\nXXXSAMMXMXAMAAAASMMXAAAAAMAXXSAMSSMMAMAMXSAMSMSXSASXSMMMSXMASAXAAAMMMMSXSMMSMMAMMXMAMMMASAMMMXMMSSMMAMSMSMXMAAMAAMXMAMSAMMMXMXAAASASMXSMSAMA\nMXAMASXASMSMSMMMSMXSSMXMASAXXAAXAAXSAMSSMMMXXAAASAMAXAXXXXMMMAMSMMMSAAMAMAAAASXMSMMMXXSXMXSXXSMMAXAMAMXSAMXSSMMMMMXXXMMXMASAMXSMMXMAXXAASAMM\nAMXMAXMMSAMXXAXAXMAXAASXMMMSSSSSMMMMAMAMMAMMMMMXSAMSMMXMAXMXMSMMAXAMMSMASXMMMMAAAMASMMMASMAMMMAMMSSMXAXXSXMAMXSXSSMMAXXXSXMASAMSASAAAMMMMASX\nSSMMAMSAMAMMSSMMAMMSMMMAAXSAMMAAXXASAMMMSASXSSXASMAXMASAMMSMMXASMMSSMMMXXMSMAMMSMSASAASAMXAAMMMMMAAXMAMAAXMMMMMMMAASAMMMMSMAMAMAMSMMSSSMSAMM\nXAMXMAMASMMXAXASXAAXMASMMMMASMSMMMXXASAAXMSAMXMXSAMXMMMXSAAXAMAMXAMAXMMMSAASXMXXMMMSMMXMMXMXSAMAMSXMMAMAXMASAMSAMAMMASXASAMXSAMMAXAXAAAAMSSX\nSXMAMMSXMMMMMXXMAMXSMMAMXMMAMXMMMMSSMMMSSMMAMAXXXXMASXAAMXSMSXMMMSSSMSAXMSMSXMASMMAMMSMSAMSASAXXMAMAXXSSMAMSAMSASXSSXMMXMMSMSASXSXSMMMMMMMMM\nMXSASMMMXXASMSSSXSSSXSXSAMXSMMMAAAXAAMAXXAXMMSSMMMSXSMMXSAMXXAAMAMXXAMXSMMXSAMAXAMSXMAAMAMSASMMMMMASAMAMAMMMMMMAMAMASMSXMXSASMMAMAAAXAAMXXAM\nXAMXXAXSASXSAAXMASXMAMASMMAAAXSSMXXMMMXMSSMAAXAMAAAXXAAAMASASMMMMXXMSMAMAAAMMMXMXMXASMSMSMMAMXSAAXXMMMASXSXSXXMAMXMAMXAXSASMSAMAMSMMMXSXSMAM\nMMSMMSAMASAMMMMMMMAMAMMMXMMSMMXMAMSXMAXXAMSMMSMSMMMSXSMSSXMAMAXMMSAAAMAXMMSXSASXMASAMAMXAAMXMASMSSSSXSXMAAAMAXSXMXMXSXMSMAXXXAMXMASAMXXAXMAM\nMSAXAMXMAMAXSAXXASXSASXSXSMAXMAAAASXSASMXMAXXAXAAXSMMAAXXXXXSAMAASMSSSMSAAXAMAAMMXMMMAMAMAMXMASXAAAAAMMMSMMMMMMASAMSSMXAMXMMSMMSMAMXMAMAMSMX\nMSAXXSXSXSAMSAMSAMASXSAMAMMAMMMMMSMAMMAAAXMMSSSMSMAASMMMMMXMAMSMMSXAXAASMMMXMXMASAAXMSMSAMXMMXSXMMMMXMAAAAXXMAMAMASAXAXMSMSMAAAMMAMAXAMXMAMS\nXMSMAXASAMMMMAMMSMAMAMXMAMMSSXSASAMXMSMSSMSAXAAAXMSMMAAAAAXMMMSAMMMMMMMMXMXMAMXASMSXMMAMMMASMMMMXSAXAMMSSXMSSXMMMMMMSSXMAAASMMMXSASMSMXAXAXA\nXAAMXMXMMMAAMXMAXMAMAMAMASXAAASXSAMXMXXXMAMMSSMMMAMMASMSSSMSAAXXMAXXAAAXMMAMAMSMMMMASMAMXSAMXAASASMSMSAXMAMXAASMMSAXAAASMSMSXXAXSAMXAASXSMSM\nMSMSXMXXXSSSSMMSMSSSMSASASAMMMMMSAMSSSMMMMMMAMAXMAMAAXAMAMASMMMASXSSSSSMXSASAAAAAXSAMSXXXMSSXSSMASAAAAMASMMMMMMAASXMMSXMAXXSXSAAMAMSXMAMXMAX\nMAXAXXMAXMAAAXAXXXAAASXMASAXMASASAMAAAXAASAMMSMMMAMMMMAMAMMMASMMMMAAAAXMAXMSMSXSMMMMMMMSAAMMMMAMAMMMSMSAMXAAASMMMMAXXXAMAMXMASXMSSMXMASXSSMS\nMMMAXMSSSXMSMMAXMMXMMMXXXMXMSMMMSXMMXMMSSSMMXAXMMSSMMSSMSSMMXMASXMMMMMMMMSAMMMMMMAAXXAASMMMAMSAMXXSAMXMAXSMMMMAXXXSMMMAMXXAMXMAMAMXMXAXMMAAA\nMXSAMXAAAMXAXMSASAXSASMSSMMXXAMXMMMSAMXMAMXASMMSAMAAXAXXAAASASMMAMAMAMAAXMAMAXAASMSSMMMSXXSAMMSMMMMMSASAMMASMSMMSAAASXSMSSSXASXMASAMXMXASAMX\nAAAAMMMSMAAMXMMAMAXSASAAAAMMSSMAXAAMASMXAASAMAAMASXMMMXMMSMMXMMAMSAXAMMSSSXMMSMMMAAXMAMXMXMXMSAXAXAXMMMMSMAMAASASXMMXAASMAMSXMXSSXXXAMSMMMSM\nMMMMMXMAXSAXAMMXMSMMAMMMSMSAAASXMMSXXMAXXAMAMMMSMMXAAAASXMXSAMXSXMMXXXAMXXAAAMASMMMMMAXAMSSMSAMMMSMSMAAAAMAMSMMMSAXAMSMMMAMXSMMMAMSSXMAMAAAX\nSXXSXMXXXMXMMSMMMMAMXMSMMAMMSMMSMAXMMMSMSASAMXAMXMSSMSXSAMASMSMMMXSASMSMASMMMSAMAMAAXMSXSAAMXMXMMAMAXSSSMMMXXASASAMXMAAMSMSAMMASAMXAXMXSMSSS\nMMMSAASXMSSMMAAAXSAMSXSAMSMXXXMAMASMAMAAAMXASMMSAMMMAMXMAMAMXSXMAXMAMAMAAAASAMASMMMSSMAXMXSMAXAMMAXAXXAAXSSXSAMASXMAMXXMAXMASAAMASMMMSAMXAAX\nMAAMAMAAAAAMSSSMXMMMSASXMXMXMXMMMAXMAXMMMASMMXAMXXASMSMSSMSSMSAMSSMMMSMMMSMMSMXMASAAAMXMMAMMMXMSSSMXSASXMAMMMMMMMMXXSSMMSXSAMMSSMXMAXMAMMMXM\nSMSXSXSSMMSXMAXXAAMAMMMXMAMASMMXMSSSSSSSMAMMAMMMSAASAAAAXAXMAMMMAAMSAAAXAAASASXSSMMSXMAMMASAXAAXAMAMXMMAMASAAAAAAXAAAAAAAMMXXXXAAASMSSMSSSMA\nMAMXMAMMAAXAMXSSSSMASASAXXSAXASMXMAMAAAXMASMAMMAMMMMXMMMMSMMMMXMSSMMSMSMSXSMMAXXXMAAAXAMSXSASMSMXMXAAXXXMXSXXSSSSSXMSSMMSSSSXSSXMASXAAAAAXMS\nMAMAMAMSMMSSSXAAAXXASXSASMMXMSMXAMAMMMMMMAXMXXMASXMXXXMXAMAMXSMMMXMAXXMXMXAAXMMMMMMSSMSMMAMXAXAMSSMSMSAXXMMXMAMMMAAXMXXAMXAXAXMMMAMMSMMMSMXM\nSASMSMMXSXAAAMMMMMMXSAMXAASMMMASXSSSMXMMMASXMASASASMSSSMMSSMASXAASMSSSMAXSXMMXAAAMMAMXMAMXMAMMAMXAAAAMMMXXAAMXSAMMXMAMMMSMMMAMMXMXSAMAAMXMAM\nAAXMAMAMAMMSMSXSAXSAMXMMMMMMMMAMAAAMXAXAAXSAAMMASAMAAAAXAAAMAXSSMSAAAAMSMMAAMSSSSXMASMSAMXSMXXASMMMMSAXSXMSXSASXSXSMSMAXSAMXAAMMMMMMSSMMAMAS\nMMSSMMMSAXMAAMAMAMMASXSSXMASAMAMMSMSSSMSXMSMSSMAMAMMMXMMMMSMMMAMAMMMXSMMASMMMAXAXMSMSXSXMASXMSASXAAXMXXSAMAAMMSXMXMAMXSXSAXSASMAAAAXMASXXMAS\nSAAAXXXSMSMMSMAMAAXMMMAMMSASAXXMAXAAAAXXAMXAMMMMSMMASASXSAXAXMAMXMSMXMAMMMSAMXSMMMAASASAXMSAAMXMMMMMMMASXMMSMMXMXAMAMMMAXAMXXMXSMSSXSAMMSMAS\nMMSSMSMSMAXMXMASASMSAMAMAMASXMSSMMMMMMASXMMSMXAMAMMXSAMASAMMMSMMAMAXAMAMMXMSAXXXASMSMAMMMAMXMASXSXSAXMXSAMXAMAAMSAMAXAMXMSMSMMAMXAAXMASAAMAM\nXAAAXAAMSAMMAMXSAAASMSSSSMAMXXXAAXAXSXMAAAAMMSMSMMXXMMMAMXMAAAASASMSXSSMSAMXXMSSXSXXMMMXMSASXAMXMASAXMAMMMMMMMMMMASXSMSAAXAAAMAXMMMMSSMXXMAS\nMMSMSMSMMMXMASXMMMMMMSAMASASMMSAMMMMXAXSMMXSAAAAMMMXAAMAXASMXSMSXXXAMXAASMSAMAMMMMXMASAXXMASMMMAMMMMSMMMAAAAAAMAMAMAAMSMMMSMSMSMXSAAXAASMSAS\nXMAXAMMAMASXSMXSXXAAXMAMASMSAAXAMXXSSSMMXMMMMMMMXASXMMSMSXSAAXAMASAMAXMMMXAXMSMSASASAMXASMAMAMMMXMAMXAASMSSSXSSSXMSMMXXAAXXAXAAXXAMXXMMMAMAS\nMSMSSSSMMAMXAAXSXSXSMSXMAXAMMMSXMXSAXXAXMXXAAMSSMMSAAAAXSXMMMSAMAMAMSSXMXSMMMMASASAMASXAXMAMXSASMSMMSSMSAAMMAXAXAASXXXMSMSMSMMMXSASASMSMXMAM\nMAMAXMASMXSSMMMSAMXXXSAMXMSMMMSAMXMMMSSMAMMXXMAAXASXMMSASXXAASAMXSXMAXAAAXXXAMMMXMXMAXMXXSXXASASAAAAXAXSMMSMSMAXMXMASMXMASAAAAAMXAMASMAMSMXS\nSAMMXXAMXAAAMAAMMMMXAXAASXAAXAXAMMAXAXXMSASAMMSSMAXAXAMMXAMMMXXXXAMMXSXMAXMSXSXXXMSXMXSXMASMXMXMMMSMSMMSAAXMXMXMXAXXAMXMMMSSXMSMMXMAMXAMMAMA\nSXSXMSSMMSMSMSAXXSXMMMMMMMSMMMSMMMAMSSSXXXMAMAAAAXSSMSXXXMASAXMAXMXMAMMAXAAXAAMAAAMAMAMAXAXXXXMSSMMAXMAMMSMSAMSAMXXASXSXAMAXASAMXMMASXMSMAMM\nXAXXAAAXAAAAAXXMXAAXAAXAXAAMAAAMXMAXXAXMMMSSMMSSMXMMAXAAXXXXMSMSMAMSAMAAXMMMMSASMMSSMSSSMSSSSMMAAAMMMSSXAXMSAMXXMSAMMAAXXMASXMAXMASMSMAAMASX\nSMMMMSSMXMXMSMMMSSSMMSSXSSSSSSMSASXSMMMMSAAAXAAMMMAMAMMMMMMAXSAMXAAMAXMSXSAAAAMAAAAAXMAAAAAAXAMSSMMSASAMXMAMMMSMMMAAMXMASMMMAXAMSAMASMSMSXSX\nAAXMAXAMASAMAAAXAAAMAAXXMAMMMAASASMXAAXAAMSSXMMSASAMXMXMAAXSMMAMSSMSMMXAAMXMMMAMMMMXMMMMMMMMMSAMXMAMMMMXSMXMAASAAMXMXSXXMAMXSMAXSAMXMAMXSXMM\nMXMMMSAMASASXMMAMMMMSXSMMAMASMMMAMXSXMXMMMMMXMMSASXMAXSSSMSAASAMXXAAAMMMSMMSSSSXSMMSMMAXAMMSXXXSAMXSSMSAMMAMMASXMSMSAMMMSMMAMXSMSMMAMAMXMASA\nSMSMAMMMXSXMASXSSSSXXAMXAASXSSMMMMMSXSASXAAMSXAMMMAMXXMAAXAMXMAXAMMMMMXXXMAAXAMAMSAAASMSAMSAMXMMMSMAMAMMSSSSMMSMMAXMASAAAXMXXAMAXXMMSMXXSAMA\nAAAMASXSASAMSMAMMASAMXMXSMSASAXXXAAXASASXSAMMMSSSSMMSSMXMMSXMSSMXSSXSMXMAMMSMMMAMMMXXMAAXSXMAXMAAAMAMXMAAAXXMXSASMSAMXMMMSMAMSMMMXXAAMAMMMSM\nMSMSMSAMASMMAMAMMAMXMMMAMAMXMMMXSAMMXMXMXMAXXAXXMAXAASMXSXMAAAXMASXAAAXMAAAAAXMASXSSMSMMXAMXSMMMSMSMSMSMMSMXSASMMASMMAAAMXMSSMAAAAMSMMMMAXAM\nAXMXMMXMAMASXSMSMXSSMAMAXAMXAXXXXASXSMXMASAMMSSMSSMMMSXAMASMMSSSXMMSMMXXMSSMMAMXXAAXAAAXSXSAXAXAMMSAAAMAMAMXMASXMXXASMXSAAXMAMSMMSXMAMXSMSSS\nMSXMSSMMXXXMAMMMMAMMSASXSSXXMMMMSAMAAXXMASMMMAAAAXAXAXMMSAXSAMXAAXAMAMXSMMAAMSMSMMMMSSSMAAMASMMXSAMMMMSAMMSSMAMAXXMMMMAAMXMSMMMAAXMSMSXMAMAM\nXAAMASAMSSSMASAAMASXSMXAAMMXMAAAXAMSMMAMASASXSXMSSMMSMAXAXXMXSSSSMSSSSXAXSSMMMAAXAXXAAMXMMMMMXAMMMMXSXSMSAAAMSSSMSXSAMMSXAMXSASMMSAAASXMAMAS\nMASMASXMAAXSAMXXSASXMASMMMAAXXMSXMMXAXXMXSAMAXXMAAXAAXSASMXSXAAAMMMAXAMMMAMAAMSMSMSMMSMXSXXXMAMSAXSXMASAMMSSMAAAAAXSASAMMXSAMXSAMXMMSMASXSSS\nXAMMAMXMMSMMXMAXMASAXAAXXMSMSAMXASMSXMMMAMAMAMAMSMMSSSMAXMASAMMMMAMXMMMXMASXMXAMXAXXMMMAMMSSXMASMSMAMAMSMMXMMMMMMMXSMMASAXMASAXAMAMXAXAMXXMM\nMSSMMSXSAMXAAXMXMASAMSSXSXAAXMASXMASMAAMXSXMASAMAXAXMAMAMMAMMXMASXSXMXSXSXMAMXMMMMMMAAMMMAAMAXMMMAMAMAMMSMXXMXMSMMMXAMSMXXSAMXSSMSSMMSMMMMMM\nMXAAAXXMSSXMMXMAMASXMXXAAMMMMXMMSMXMASXMAMASASASMSSXXAMAXMMXSASXSASAMAAMAMMSMMAASAAASXSMMMSSMMSMSSSSSMSAAMAXAAXXAAXAMMMAXXSAMXMXAMXMAAAASAMA\nMXSMMSXMMMAAAAMMMASAMXMXMXAMSAMSAMXXXXAMMXAMASAMAAMMSXXMXXXMMAMAMAMXMAXMXSAMXMSMXMXXMXSAASAAXAAMAAAAAAAMAXAXSSSSSMSSXXMAMMXAMXXMXMAMSSMMXASX\nXAXAXAXSASXMSXMAMXSASXSASMMXSASAMXSXSMSMSAXMXMAMMMXAAMSXXMAMMSMMMAMSXAMMAMAXXMMMSXSASASXMXXXMSXMMSMSMMMSSMMXMAMAAAAAMMSASXXSMSXMASXXAMMMSMMM\nMASXMAXSAXXXAMMSMMSXMASASXMASMMASAMMSXMAAMXMXMXXXAMXSMAASMSMAMAXSSSSMSAMXXSMSXXAAAMAMXSAMSMSMMMMAAXMAXMAMAMSMAMXMMMXAASASAAMAMMSASXMAMSAAAAX\nXMAMASXMMMSMMSAXAASXMXMAMMMAMAXAMASAMXMMMXSMASMMMSMSAMMSMAAMMXSMAXXXAXXAMXMASAMMMSMMMXSMMAAAAMAMSSMSAMMMSSMMSXMASMSMSMMAMMMMAMAMXMAMAMMSSSMS\nMMXXXXAMSASAAMAMMMSASXMMMMMMSSMMSMMMSXMASMMMAMAAXAMXAMXXMSMMXAXMXMMMSMSSMXMAMXSAAXAASMXXSMSMXMAMXAAMXMXAAXAMXSSXSAAAXMMMMSASXMASAXSMSMXAMXXM\nMSMSMSMMMAXMXMXMSMSAMXXAAXXMAAXMAMSMSMSAMAXMSSSMMMSSMMXXAXAXMMSAAAXAXXAASMMMMAMMSSSMSAXAXXMAXSASMMMMXXMMSSXMAXXAMAMSMSMSASXSXXSXMXXAAMMASXMS\nSAXAAAXSMSMSMSMAXAMAMASXMMSMMSMMAMAAXASASMSXAAXMSXAAXSMMMSSMXMAMAXMASMSSMXAXMXXAMXAXMMMSMMMSMSASXMAXAMMMAMMMMXSAMXMXAXAMAMMMXXXAMAMMMXSAMAAA\nSMSMSMSXAXAAAAMXMAMAMXMAAAXXAAASMMMSAMMAMXAMMMMMXMSSMMAAMAMSXMXSXMSAXAXXASMSAMXSMMSMXXMAAMMAMMXMAXAXXMAMMXMAXXAAMAXMSMSMXMAAXXMAMAXAXXMASMMM\nSXMMAXXMAMXMSSSMASXXXAMSMMSMSXXAAXAXMMMMMSMXSAASAMMXMMSMMAMMXSAMAXAMMMMMXMXXAXAXAMAMXMSSSMSASXASXMSSSSSXXXSASXASMXSAMAXAXSMMSMSAMXSMSMSAMXAX\nXAMSSSMSASXXAAAMSMASXSAXXMMMMSMMMMXSASAAAMXASXSMASXAMAXAMSMSASMSAMMXAMMMAMXSMMMSAMXXAAAAXAMAMMMMSAXAAAAXSXMASMXMASAMSAMMMMAMMMAMMXAAAXAMMSMS\nSXMAAMASASMMMSMMAMXMAXMMMXAAMXXSXMMSAMSMSSMMSMMMAMXXMASXMAAMASASXMXSMSMSASMMMAXAXXMSSSMSMMMSMAMMMMMMMMMMMAMAMAMMMMAXMAMXMSAAASASMXMMMMMMAAMM\nAAMMSMAMAMAAAMXSMSSMSMMAAXMSSMMSAAAMXMASAXMXSASMXMMXXASASMXMXMAMAXXMXAAMAMAAXSSMMSAAXMAXAMAAASAMASAXSAXASAMMMSAAMMSMMAMXXSASXSASASXMSSSMSSSM\nSXMAXMASAAXMSMAMXAAAMAMMMAMXAXASMMMSAMXMXXSAMMMXXSAXMXSAMXAXAXAMSMAAMMSMXSSMMXAAASXMXSXSMMXMXMASAMXXXAMMXXMSAXSMSAAMSMSSMXAMXMAMASAXAAAAAAAX\nMMXSXSMSXSXSAMSSMSSMMSMAASMMMMXSAMXSMXSAMXMAMSAASMSSMAMAMSSSMSMXXAMXAMXMAMAASMMMMSAXXMXAMSMSSSMMMSXSXSXMSSMMSMXMMMSXAAAXMMMMXMXMXMMMMXMMMSMM\nXAAXXSXMAMXMASAMMMMMAMMXMMAAXMASAMXMAMXMAXSAMMMMAAXXMAXXMAAAAXXAXAXMSMAMASMMMAAXAXMMAMMSMAASAAXAXMAMAXAMAAAAMXMASXMXSSMMXAAAXSASAAMMXMAXXMAS\nMMMSASXSSMXSSMASXSASASXAXMSMXAMXMASMAMMMSXMXSXSXMMMSSMSXMMSMMMMMSMMXAMAXMMMMSXMMMSXMAXAXMXSMMMMMSMSMXXAMSSMMSAAMXSAAXAXXSSSSXXAMSXMAASXMMSAS\nMAAMMMAXAAASXSXMASAMASXSSMASXSMMMXXMMMMAMXMASAAXXAXMAXAMSXMMAAAMAMASMSSMSAMASAMAAAASASXSMSAMXSAXSAAMMXSMMAXASMSXAMXMMMMMAXAMXMSMXSMMMSXAXMAS\nMMSSXMXMMMMSAMSAMXXMMMMAAMAMMXAXSAMXSMMASAMAMSMMSAMSMMMXMAASXSMSAMAMXXAASAMASASXMXMMAMMAMXAMAMXMMAMXSAMASMMASAMMXMAXMAAXMSSXSAAAXXSSSMMSMMSM\nAXAXAAAMXMXMXMAMXMMMXAMSSMMMASMMXMMASAMSSXMAMMXMMMAAMASASXMMXMASAMSSSMMMSAMXSXMAMSAMXMSMMSAMSSMSMMMAMASAMXXASXMAASXSSSSSXMAAMSMSMAASAAAMMMAM\nSMXSASASAMMMMSXSXMAMXXMAMASMMMXAMXMAXAMXXMXMSSMSAXSASXSASMXXAMMMAXAAMXXAMAMXMXSAMXMAMXXXASMMAMXAAAMXSAMASAMXSAMXASAXXMXMAMMMMAXXMSMSXMASASAS\nAAASAMXMMSAAXAASXSAMXXMASAMAMSMSASMMSSMMMSSMAAMSAMMMMAMMMMMSXSXMXMMXMMMSSMMSAAMAMXMSMSMMMSAMASMSSMMXAMXMSASAXAMMSMXMXMMSAMXSXXSXAXXMAMXSASAS\nMMMSXMMXASMSMMXMMMXSAASXMMSAMAAMXMAXAXAXAAMMMSMMMMAAMAMAAXXMAMAMSSXMMXAAAAMMMMXAMXXAAAAAXSAMXXMAAASAMXMASAMAMSXMAAMSSMAMAXAMXXXMXMXSAMXMAMMM\nXAAMAXMMMSAMMMAAXAAMXMMASXSAMMMMASMMMSSMMSSXMMMMMSMMSASMMSAMASAMAAXAXMMXXMMXMASASXSMSMXSXSXMXXMMSMMAXMMMMMMAMMASMSMAAMASMMSMSAMXAMMMMSAAXMAX\nSMXSAMXXXMAMAXXSMMSSSXSXMAMXMSXSASAAAAXXAMMXSAMXAAAMSXSMASXSASXMMSASMSMSMXMXXMAMMAMAAAMMASXASXMAXMSMMSAAAMMXMSAMAAMSSMXSXAXAMMASXAAXMXAMMSXS\nMAMAMMMMSSMMSXSAMMMMMASMMMMAXXAMASMMMMMMXXSAXASMSMSMMAMMAMXAASXMXMAXAXAAMAMSMXMASAMXMSMMAMMAXAMAMAXSASXSSSMSAMXMASMMAMAMMXMAMMMAMXXSMMSAMXMA\nMAMAMAAAMXAAAXAMXAAAMXMASXXSXMMMAMXXAAAMAXMMSXAAAXXXMSMMMSMMXMAXAMXMMMMMSAXAMAMXXAXMXXXMMMAMMSMXXAMMXSXMAAASMXSAMXMMXMAMMMSAMXSSMSXAAAXAMASX\nSASASMSSMSMMSSMXSSSMSASXMMMMMAAMMSMSSSSSMSSXAMMXMASMXMASAAASXSMMSSMMXSAASMSMSASXSMMSAMMSSMSAAXAXMSMSMSAMSMMMSASASXSSMSXSAAMAMAAAASMMMMSASASA\nSASASMAMMAAAAAXAXAAASASXAAAAASXMSAAXAAAMAAXXMAXAXMAAASMMSSSMAAXAAAAMASMMMAAASASAAXXMASAAAAAMSMXMAAAAASMMAAAAMMSAMXXAAAXMMMSAMXSMMMMSAMXXMASM\nMXMXMMSMSSSMSSMXSMMMMSXMASMSXXAMSMMMMMMMMMSMXSSXSXXSASXXMXMMSMMMSSSMXSXXMSMMMSMMMMXSAMMSSMXXXXMASMSMMMMASMMSSXMXMASMMMSXMASASXMXMASXXSAAMMMX") \ No newline at end of file diff --git a/src/question_4.clj b/src/question_4.clj new file mode 100644 index 0000000..327d07b --- /dev/null +++ b/src/question_4.clj @@ -0,0 +1,90 @@ +(ns question-4 + (:require [clojure.string :as strings] + [inputs])) + +(def mock-input "MMMSXXMASM\nMSAMXMSMSA\nAMXSXMAAMM\nMSAMASMSMX\nXMASAMXAMM\nXXAMMXXAMA\nSMSMSASXSS\nSAXAMASAAA\nMAMMMXMMMM\nMXMXAXMASX") + +(def mock-input-2 ".M.S......\n..A..MSMS.\n.M.S.MAA..\n..A.ASMSM.\n.M.S.M....\n..........\nS.S.S.S.S.\n.A.A.A.A..\nM.M.M.M.M.\n..........") + + +(def split-lines-cache + "As split-lines is called often, we will cache the + result to speed up the process" + (atom {})) + +(defn split-lines [input] + (if (contains? @split-lines-cache input) + (get @split-lines-cache input) + (let [res (strings/split-lines input)] + (do + (swap! split-lines-cache #(assoc % input res)) + res)))) + + +(defn split-columns [input] + (let [lines (split-lines input) + n (count lines)] + (for [i (range n)] (apply str (map #(get % i) lines))))) + +(defn number-of-diagonals [n] + (+ n (dec n))) + +(defn split-diagonal-1 [input] + (let [lines (split-lines input) + n (-> lines count number-of-diagonals)] + (for [i (range n)] + (strings/join (map-indexed #(get %2 (- i %1) "") lines))))) + +(defn split-diagonal-2 [input] + (->> input + split-lines + (map reverse) + (map strings/join) + (strings/join "\n") + split-diagonal-1)) + +(defn get-in-input [input [line-idx col-idx]] + (get-in (split-lines input) [line-idx col-idx] "")) + +(defn count-matches [re s] + (count (re-seq re s))) + +(defn question-4-a [input] + (let [splitters [split-lines split-columns split-diagonal-1 split-diagonal-2] + data (flatten (map #(% input) splitters)) + counts (map #(+ (count-matches #"XMAS" %) (count-matches #"SAMX" %)) data)] + (reduce + 0 counts))) + +(defn diag-1-idx [[line-idx col-idx]] + [[(dec line-idx) (dec col-idx)] + [line-idx col-idx] + [(inc line-idx) (inc col-idx)]]) + +(defn diag-2-idx [[line-idx col-idx]] + [[(dec line-idx) (inc col-idx)] + [line-idx col-idx] + [(inc line-idx) (dec col-idx)]]) + +(defn get-string-from-indexes [idxes input] + (strings/join (map #(get-in-input input %) idxes))) + + +(defn is-xmas-word? [word] + (contains? #{"MAS" "SAM"} word)) + + +(defn x-mas-centered-at [idxes input] + (let [diag-1 (get-string-from-indexes (diag-1-idx idxes) input) + diag-2 (get-string-from-indexes (diag-2-idx idxes) input)] + (and (is-xmas-word? diag-1) (is-xmas-word? diag-2)))) + + +(defn question-4-b [input] + (let [n (-> input split-lines count) + idxes (for [x (range n) y (range n)] [x y])] + (count (filter #(x-mas-centered-at % input) idxes)))) + + +(defn -main [] + (println "Solution to question 4-a is: " (question-4-a inputs/question-4)) + (println "Solution to question 4-b is: " (question-4-b inputs/question-4)))