diff --git a/2017/republic/conditions.pdf b/2017/republic/conditions.pdf new file mode 100644 index 0000000..4080e10 Binary files /dev/null and b/2017/republic/conditions.pdf differ diff --git a/2018/republic/10-12_d1/arta/tests/01_input.txt b/2018/republic/10-12_d1/arta/tests/01_input.txt new file mode 100644 index 0000000..3b3e5f0 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/01_input.txt @@ -0,0 +1,69 @@ +24 91 +67 +21 8 22 35 +2 60 15 61 +1 50 19 67 +8 44 17 86 +15 64 16 84 +3 76 16 90 +17 49 19 78 +22 66 22 84 +21 84 23 88 +8 69 15 84 +18 12 20 22 +21 52 21 85 +15 61 19 87 +3 25 15 58 +21 7 22 78 +14 16 23 18 +9 72 11 86 +20 72 22 73 +19 58 20 72 +17 40 17 70 +1 23 13 29 +5 13 23 41 +12 9 12 56 +17 30 23 41 +10 54 14 61 +6 58 15 73 +10 10 17 68 +22 62 22 64 +11 29 14 59 +8 0 22 75 +22 20 23 85 +0 35 22 40 +7 90 10 90 +21 32 23 77 +16 54 21 71 +2 23 2 90 +14 65 17 74 +21 39 22 42 +2 22 15 75 +3 83 15 85 +18 51 18 67 +18 29 20 89 +21 66 22 77 +21 15 21 15 +10 75 19 90 +12 43 15 85 +10 34 18 58 +10 54 19 69 +9 12 11 31 +5 81 21 86 +1 11 3 63 +1 80 20 85 +23 16 23 85 +5 21 9 34 +20 76 23 82 +12 47 20 83 +13 86 14 86 +6 15 12 76 +20 77 22 87 +21 0 22 53 +13 52 22 72 +8 15 9 83 +1 24 8 26 +3 71 18 88 +22 39 22 84 +13 0 13 90 +13 85 14 89 diff --git a/2018/republic/10-12_d1/arta/tests/01_pattern.txt b/2018/republic/10-12_d1/arta/tests/01_pattern.txt new file mode 100644 index 0000000..a32b072 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/01_pattern.txt @@ -0,0 +1 @@ +354 diff --git a/2018/republic/10-12_d1/arta/tests/02_input.txt b/2018/republic/10-12_d1/arta/tests/02_input.txt new file mode 100644 index 0000000..4cd865d --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/02_input.txt @@ -0,0 +1,2254 @@ +18 34 +2252 +5 31 11 33 +5 24 10 24 +10 23 12 28 +5 18 7 29 +14 17 16 27 +4 25 15 27 +0 24 2 33 +11 3 12 12 +10 20 15 31 +9 32 12 32 +6 27 12 32 +3 31 14 32 +13 29 17 31 +16 31 17 32 +3 19 10 31 +5 18 6 31 +10 31 16 33 +17 31 17 32 +2 25 4 28 +11 1 16 2 +7 18 12 19 +17 21 17 32 +14 22 15 27 +6 17 15 32 +15 25 16 31 +17 9 17 23 +13 23 17 26 +9 28 12 29 +4 27 10 27 +5 9 8 28 +1 7 11 19 +12 7 12 12 +5 29 14 32 +15 2 17 18 +17 21 17 21 +1 24 9 29 +12 16 12 30 +8 28 16 30 +3 17 5 20 +7 10 11 11 +16 20 17 26 +7 19 14 26 +15 22 17 33 +13 10 17 30 +3 22 15 23 +14 24 15 31 +12 23 14 33 +15 30 17 31 +10 25 12 32 +12 12 14 15 +14 15 16 17 +15 8 17 31 +3 13 13 22 +0 9 11 16 +5 18 15 22 +2 27 7 29 +17 13 17 15 +15 3 16 15 +10 11 15 19 +6 0 9 25 +14 15 16 22 +16 11 17 27 +13 26 14 33 +13 27 16 31 +16 11 17 14 +8 7 10 18 +7 27 16 29 +0 31 13 32 +17 17 17 32 +11 21 15 22 +2 19 2 25 +4 29 5 32 +9 13 9 19 +6 4 6 9 +17 30 17 32 +17 30 17 32 +4 27 5 32 +4 24 13 29 +14 23 17 25 +11 24 12 26 +14 7 17 25 +9 13 17 30 +8 11 12 28 +7 31 17 31 +11 31 17 31 +13 26 15 30 +8 22 10 27 +0 26 6 28 +5 27 5 29 +5 12 16 31 +5 33 7 33 +8 12 16 25 +12 16 16 16 +14 33 14 33 +14 6 14 23 +17 5 17 16 +10 24 15 30 +4 1 16 33 +7 1 17 22 +8 2 12 16 +1 9 4 10 +7 14 11 20 +1 15 13 33 +0 14 16 15 +13 21 17 30 +4 13 11 29 +8 1 11 13 +9 13 15 30 +14 31 16 32 +12 17 17 18 +3 9 8 14 +15 31 15 31 +16 10 17 10 +0 30 13 32 +7 29 17 31 +9 19 13 25 +9 0 9 16 +16 16 17 29 +7 4 16 21 +3 12 10 12 +3 19 4 19 +4 13 4 33 +6 14 10 28 +11 4 14 15 +14 2 14 27 +17 20 17 29 +17 33 17 33 +8 8 15 33 +12 4 15 10 +3 20 6 23 +15 2 16 25 +11 15 11 31 +16 33 17 33 +5 29 16 33 +3 21 12 31 +0 25 11 30 +10 6 12 33 +14 25 16 27 +8 21 15 32 +14 17 17 19 +15 21 16 27 +14 15 17 24 +9 9 11 27 +7 24 8 27 +17 5 17 14 +3 5 6 30 +5 2 12 15 +1 22 8 28 +6 28 10 29 +6 7 14 15 +6 23 16 33 +17 19 17 27 +10 5 14 9 +14 28 16 33 +1 7 12 9 +10 24 13 30 +2 4 12 20 +1 19 17 21 +16 31 17 32 +12 2 15 22 +12 25 17 27 +15 16 16 27 +4 5 5 19 +15 17 16 31 +16 15 17 17 +13 17 15 30 +2 22 11 23 +8 8 11 12 +6 8 14 10 +16 8 16 21 +11 14 15 27 +11 16 17 29 +5 13 8 13 +0 12 3 21 +9 31 16 31 +17 29 17 32 +15 30 16 33 +2 2 13 20 +5 0 16 32 +5 5 12 27 +1 8 9 25 +12 19 16 27 +15 3 17 3 +9 11 15 15 +9 5 12 10 +8 16 17 22 +8 28 15 28 +3 14 6 16 +1 8 2 24 +9 30 10 30 +4 2 14 23 +15 27 15 27 +17 7 17 8 +14 27 16 28 +6 4 17 29 +16 6 16 32 +16 5 17 8 +6 31 11 32 +0 2 13 9 +3 14 10 27 +1 24 2 26 +11 26 16 33 +1 24 9 30 +2 8 16 14 +8 28 11 28 +15 19 17 25 +3 27 17 33 +6 1 14 24 +0 14 1 24 +5 23 9 28 +9 23 14 23 +9 8 11 12 +10 32 17 33 +0 30 5 32 +3 13 3 19 +5 4 12 7 +12 9 12 11 +14 22 15 27 +15 28 16 31 +5 30 7 33 +16 13 16 33 +17 32 17 33 +12 22 12 25 +13 15 16 33 +16 31 17 33 +0 21 7 30 +5 8 14 32 +10 31 16 31 +16 31 16 33 +4 25 10 29 +9 14 12 28 +17 0 17 2 +1 32 8 32 +1 14 2 26 +10 8 14 19 +4 27 17 28 +16 19 16 20 +0 32 11 33 +14 21 14 27 +17 23 17 27 +15 32 16 32 +6 4 17 23 +2 5 6 21 +8 14 15 27 +13 29 16 30 +14 27 16 32 +1 21 13 22 +10 13 14 26 +3 30 5 33 +15 8 17 18 +4 26 17 31 +10 30 11 30 +13 31 13 31 +6 4 12 7 +6 25 13 26 +1 32 16 32 +9 19 12 33 +1 2 3 14 +2 8 9 12 +11 0 15 29 +15 33 17 33 +5 9 6 22 +5 14 8 25 +2 14 2 30 +4 13 12 26 +13 8 16 10 +4 20 15 24 +14 12 15 33 +7 2 15 11 +15 28 15 30 +8 33 17 33 +16 11 17 15 +12 10 12 20 +3 15 11 25 +7 22 10 33 +17 22 17 33 +8 11 8 31 +10 28 11 32 +17 10 17 13 +9 4 14 12 +6 21 9 30 +11 11 17 32 +7 12 8 13 +6 2 13 21 +6 26 16 27 +6 6 17 8 +9 3 9 22 +15 27 17 33 +3 0 11 29 +9 32 12 32 +13 24 15 30 +7 12 12 15 +1 31 1 33 +3 21 7 21 +10 13 14 17 +17 6 17 24 +2 23 11 25 +11 11 16 32 +4 9 16 18 +6 3 6 32 +10 32 15 32 +9 19 15 24 +7 11 16 18 +11 14 17 26 +10 31 16 32 +8 17 9 32 +6 1 17 33 +6 12 16 15 +4 10 16 13 +17 20 17 27 +13 32 14 33 +10 10 13 28 +11 32 14 32 +3 33 9 33 +8 32 8 33 +7 16 8 25 +13 28 13 29 +15 17 15 31 +12 8 16 13 +12 14 17 16 +14 6 14 15 +16 29 17 30 +11 4 17 22 +12 15 14 15 +0 15 8 27 +16 22 16 29 +8 11 16 22 +2 32 3 32 +8 16 16 26 +6 1 9 28 +4 27 12 30 +7 17 7 27 +1 20 3 24 +9 7 11 11 +5 1 15 25 +14 21 16 23 +15 8 17 11 +11 31 14 33 +12 8 13 31 +5 27 11 33 +8 22 14 29 +6 31 15 33 +17 28 17 29 +16 29 16 31 +6 23 15 28 +1 9 15 28 +11 8 17 12 +8 0 13 26 +13 26 14 31 +17 32 17 33 +11 24 14 29 +16 18 17 32 +3 7 3 10 +12 5 17 9 +0 2 11 3 +5 25 15 30 +10 31 14 33 +9 13 10 32 +3 11 7 29 +10 16 16 19 +6 14 6 26 +16 25 17 29 +15 24 15 25 +4 10 4 14 +7 32 12 32 +7 4 17 12 +5 9 6 28 +5 24 5 27 +8 11 9 16 +6 33 17 33 +12 2 13 26 +4 31 12 31 +8 27 17 30 +17 31 17 32 +5 26 7 31 +6 9 13 23 +1 2 1 28 +14 3 17 9 +9 19 11 30 +17 14 17 32 +5 24 10 27 +4 27 14 29 +9 9 15 19 +15 21 15 33 +16 16 16 29 +17 22 17 23 +10 9 11 23 +16 23 17 27 +3 8 11 25 +8 16 13 28 +5 3 5 24 +17 32 17 32 +1 31 6 33 +6 15 15 31 +13 18 14 24 +9 6 9 6 +10 5 13 13 +3 22 14 30 +17 31 17 32 +6 30 13 32 +13 5 15 18 +17 11 17 13 +14 19 14 22 +15 33 16 33 +13 13 16 30 +13 14 13 32 +7 9 10 31 +4 0 14 15 +10 31 13 31 +8 0 11 1 +5 32 9 32 +11 31 16 31 +7 19 15 28 +12 23 12 25 +7 7 12 30 +13 5 13 27 +6 15 9 18 +5 32 11 33 +6 0 10 1 +6 1 9 32 +12 21 13 32 +6 33 13 33 +10 14 17 29 +3 3 9 25 +1 21 12 32 +12 2 15 33 +12 1 17 14 +1 21 11 31 +16 3 16 23 +7 20 13 20 +10 31 10 33 +5 2 9 16 +13 21 13 29 +4 25 8 25 +15 17 15 26 +8 29 13 31 +12 2 12 33 +3 26 13 27 +16 3 17 29 +5 26 6 26 +7 24 12 27 +9 12 12 32 +3 21 9 21 +4 6 6 22 +5 33 5 33 +15 15 16 25 +11 2 13 19 +16 2 17 24 +15 25 17 30 +12 4 17 20 +12 3 16 7 +17 16 17 18 +11 30 11 30 +13 0 15 28 +9 20 14 29 +1 22 15 25 +6 32 11 32 +17 30 17 33 +4 25 10 31 +5 29 12 33 +5 5 15 9 +2 20 13 31 +4 21 5 22 +6 18 14 29 +4 3 10 30 +9 21 10 23 +17 14 17 15 +16 28 17 31 +3 8 17 15 +7 27 8 29 +11 17 11 28 +15 1 15 4 +14 1 14 4 +0 32 13 33 +3 5 6 5 +2 33 12 33 +1 4 15 22 +4 5 9 25 +4 20 4 31 +2 13 15 17 +6 26 15 28 +12 10 13 23 +11 27 17 32 +17 8 17 18 +15 17 16 31 +3 22 7 22 +0 6 3 31 +13 27 15 33 +12 18 13 31 +14 27 17 28 +11 6 16 13 +15 2 17 5 +13 27 15 29 +7 25 9 27 +11 33 17 33 +6 33 6 33 +5 8 14 24 +0 25 6 31 +15 2 15 32 +6 21 8 29 +3 19 10 23 +8 29 16 33 +0 11 1 27 +1 17 17 30 +15 20 17 20 +1 6 13 26 +3 3 12 10 +17 16 17 29 +2 31 17 32 +17 22 17 26 +15 11 17 24 +3 0 8 14 +5 14 14 30 +15 27 15 28 +17 3 17 29 +4 9 17 16 +4 28 7 29 +2 24 4 30 +2 30 4 31 +10 18 12 31 +1 1 4 22 +11 30 16 32 +17 21 17 21 +10 8 14 10 +2 30 7 33 +4 11 17 33 +7 3 12 32 +12 2 15 6 +2 24 9 25 +11 9 16 19 +1 25 8 28 +4 30 14 33 +11 23 16 32 +13 26 16 33 +17 28 17 31 +17 22 17 28 +14 18 16 28 +3 21 10 23 +3 5 11 25 +2 15 16 28 +3 24 9 27 +9 19 12 24 +4 27 11 27 +15 14 15 21 +11 3 15 18 +3 33 17 33 +12 3 17 17 +8 18 10 18 +14 27 15 27 +4 2 5 18 +17 9 17 24 +6 1 16 24 +7 29 9 33 +17 15 17 33 +16 4 17 27 +5 11 13 33 +6 27 6 27 +3 8 16 32 +15 23 15 24 +16 3 17 12 +14 32 17 33 +8 33 8 33 +6 0 6 14 +12 30 13 31 +15 0 16 13 +8 30 14 32 +8 26 12 27 +12 32 15 33 +13 24 17 33 +16 2 17 24 +17 31 17 33 +7 18 13 19 +16 32 17 32 +8 14 14 17 +10 26 14 33 +8 3 17 16 +11 14 11 14 +14 30 16 33 +9 25 17 33 +9 9 13 17 +15 26 16 28 +7 18 7 19 +5 21 14 33 +7 9 12 14 +2 30 17 32 +8 3 14 4 +4 32 5 32 +12 19 17 22 +6 0 10 22 +4 18 13 19 +17 19 17 22 +10 25 12 32 +3 18 3 32 +9 17 10 33 +7 27 16 30 +12 11 16 21 +6 32 9 32 +9 20 12 32 +12 30 17 31 +9 28 13 31 +16 20 17 21 +3 23 16 25 +9 21 14 22 +1 9 14 13 +17 25 17 29 +6 20 9 30 +6 10 14 19 +4 33 11 33 +15 29 15 32 +2 22 14 28 +4 13 12 16 +3 23 6 25 +14 7 16 32 +6 8 9 16 +12 33 12 33 +0 9 15 24 +10 10 12 11 +3 14 3 32 +17 21 17 25 +2 22 10 32 +0 12 15 17 +8 10 12 23 +16 33 16 33 +4 15 12 23 +13 5 15 8 +16 5 16 26 +14 15 16 26 +7 24 16 32 +9 13 14 27 +2 30 11 33 +16 10 16 33 +14 10 15 18 +7 0 17 30 +12 9 12 19 +13 10 17 10 +16 2 17 10 +0 1 17 7 +3 32 8 32 +16 13 17 32 +1 2 8 31 +12 27 16 28 +13 3 13 17 +16 26 16 27 +12 16 12 18 +3 32 10 33 +17 25 17 32 +6 19 7 22 +7 5 16 25 +13 25 14 28 +0 1 17 23 +15 31 17 33 +8 10 10 29 +13 8 15 25 +0 14 17 19 +8 17 11 29 +6 7 13 24 +15 8 16 10 +9 27 15 28 +12 8 13 11 +10 31 15 33 +12 25 13 32 +12 5 12 14 +12 33 16 33 +4 19 12 31 +8 32 15 32 +16 14 17 14 +1 1 16 25 +4 23 6 32 +6 25 15 28 +17 26 17 32 +7 11 9 29 +3 11 15 28 +0 4 16 23 +13 19 13 25 +3 5 9 20 +16 3 16 3 +15 14 17 29 +5 12 10 28 +17 32 17 33 +7 7 7 17 +9 29 11 29 +10 16 16 25 +0 4 12 33 +6 33 6 33 +17 4 17 21 +4 23 10 24 +13 29 16 32 +2 7 11 26 +15 5 16 9 +2 33 14 33 +15 6 15 12 +1 7 16 24 +6 21 6 30 +12 25 15 31 +4 33 5 33 +12 11 17 31 +3 16 13 25 +15 23 16 30 +15 26 15 30 +14 18 15 21 +14 7 15 18 +6 23 16 32 +6 30 16 31 +6 6 15 15 +12 16 12 33 +10 22 14 26 +12 12 17 22 +9 2 15 9 +2 2 6 10 +8 25 9 30 +11 30 13 33 +14 29 14 32 +14 11 14 16 +7 4 8 5 +2 8 17 32 +3 5 10 27 +10 29 16 29 +5 33 13 33 +15 13 16 31 +16 33 16 33 +4 27 4 28 +9 29 12 31 +16 19 17 19 +12 3 12 22 +16 17 16 25 +6 16 14 17 +4 17 14 21 +0 2 12 26 +14 2 17 17 +10 16 12 26 +11 28 13 29 +16 5 16 31 +8 12 17 32 +4 10 11 29 +11 20 14 23 +6 4 15 7 +14 0 16 14 +6 6 8 21 +13 30 14 32 +17 2 17 3 +10 16 12 26 +16 14 16 21 +10 24 11 33 +16 28 16 31 +0 17 0 24 +10 19 15 30 +7 11 8 24 +12 18 15 20 +10 20 17 28 +4 20 16 31 +11 1 15 16 +16 14 16 14 +16 21 16 26 +8 15 14 21 +7 31 14 33 +3 7 12 18 +14 0 15 25 +1 24 2 24 +6 23 9 27 +15 16 16 31 +15 11 15 23 +11 12 17 18 +11 0 16 28 +15 14 16 27 +2 12 16 32 +4 5 17 10 +13 33 13 33 +1 29 10 30 +1 14 3 21 +11 17 15 29 +15 8 15 18 +6 19 10 28 +9 12 16 25 +5 1 6 18 +8 12 10 19 +0 29 15 32 +1 2 11 23 +1 21 17 25 +7 4 9 17 +3 20 16 22 +13 9 16 13 +17 14 17 32 +9 5 16 26 +7 25 13 26 +6 7 17 15 +5 5 16 24 +3 8 7 10 +6 10 6 13 +16 18 17 18 +16 9 16 25 +2 8 9 17 +11 1 17 23 +2 22 10 25 +1 4 14 24 +0 18 10 21 +17 13 17 31 +4 29 17 33 +16 29 16 33 +15 19 17 21 +3 3 8 11 +1 19 14 26 +15 7 17 32 +14 0 14 3 +3 9 9 20 +15 10 17 11 +9 5 10 15 +7 31 11 33 +14 4 14 5 +7 14 10 16 +7 31 17 32 +16 15 16 18 +7 1 7 20 +11 9 17 24 +4 17 16 18 +14 33 14 33 +6 16 17 31 +6 8 17 17 +12 25 15 33 +15 21 15 25 +9 28 14 32 +2 33 17 33 +17 17 17 29 +15 24 16 33 +17 15 17 26 +13 17 16 19 +8 14 14 16 +7 8 12 15 +8 6 9 30 +13 26 14 26 +5 1 7 14 +13 30 16 30 +0 28 4 31 +9 21 9 23 +2 30 4 31 +12 30 12 30 +0 21 11 28 +9 26 16 32 +5 3 7 12 +10 5 11 24 +3 13 7 31 +16 7 17 7 +12 17 16 21 +0 19 16 27 +13 3 13 18 +10 7 17 7 +15 14 16 32 +2 27 17 29 +15 18 17 30 +15 31 15 31 +11 12 12 24 +17 18 17 31 +7 10 12 23 +15 25 16 29 +4 8 7 29 +12 20 15 22 +5 32 7 33 +6 24 12 30 +3 11 6 17 +0 20 5 21 +12 29 13 29 +8 7 13 30 +7 33 16 33 +8 24 8 28 +15 8 16 16 +1 16 10 30 +0 4 12 16 +2 8 15 15 +14 13 15 20 +17 4 17 20 +9 33 12 33 +3 21 17 32 +7 10 17 28 +0 3 5 3 +9 16 13 26 +7 0 17 5 +7 16 12 23 +8 19 8 26 +9 11 14 31 +3 13 10 25 +14 12 16 22 +5 2 15 10 +12 21 13 26 +14 0 17 20 +15 4 15 12 +2 16 6 22 +5 20 7 24 +13 24 17 29 +16 8 17 24 +10 25 16 31 +8 23 14 29 +17 5 17 33 +14 11 17 29 +17 29 17 31 +4 18 5 33 +3 11 6 13 +10 20 16 21 +8 9 15 20 +17 17 17 31 +16 19 17 33 +13 26 13 32 +2 9 5 13 +4 29 5 29 +15 27 15 30 +4 12 12 17 +1 24 2 33 +4 32 8 33 +3 18 17 30 +2 4 3 17 +6 32 12 33 +13 9 17 30 +1 27 5 27 +17 8 17 33 +2 12 11 21 +5 18 11 33 +0 11 15 17 +11 9 14 15 +13 12 17 18 +11 22 13 30 +14 3 14 11 +17 1 17 20 +14 6 14 19 +4 1 10 16 +8 16 12 29 +14 27 15 32 +8 12 11 23 +16 11 16 18 +12 9 17 9 +6 10 9 12 +3 6 16 23 +11 13 14 24 +11 28 12 29 +11 16 12 30 +14 22 14 29 +0 13 8 29 +14 16 17 21 +1 2 9 4 +1 8 14 32 +0 26 12 32 +2 23 13 29 +6 1 6 6 +8 0 11 8 +9 12 15 24 +1 17 10 28 +10 3 15 18 +13 0 15 31 +12 9 15 9 +14 9 15 31 +9 25 10 29 +1 17 9 24 +13 16 14 29 +5 33 9 33 +6 26 17 29 +14 17 16 29 +1 1 8 7 +11 9 15 33 +15 9 15 25 +9 12 13 15 +17 22 17 25 +10 18 16 28 +9 11 10 26 +2 4 3 26 +9 20 9 28 +7 5 9 30 +6 7 9 22 +9 29 17 33 +7 4 13 26 +2 6 10 20 +10 2 12 20 +8 27 12 30 +7 16 10 26 +6 33 12 33 +6 31 14 33 +15 4 17 24 +7 14 7 24 +3 3 15 31 +9 12 13 12 +0 28 8 32 +13 12 16 21 +12 4 12 4 +15 25 15 33 +13 3 14 9 +5 31 5 31 +1 13 6 26 +16 33 16 33 +12 10 17 30 +8 8 17 22 +2 29 8 33 +13 5 17 32 +1 1 15 29 +15 5 16 15 +6 14 16 14 +7 31 11 32 +4 7 16 24 +1 16 4 27 +0 9 5 14 +10 14 12 19 +11 4 16 11 +17 29 17 31 +1 8 3 19 +0 22 16 32 +0 11 16 30 +8 23 12 29 +17 24 17 31 +4 24 6 32 +5 0 6 10 +17 27 17 29 +12 1 12 10 +0 19 4 21 +16 9 17 30 +10 23 11 32 +17 14 17 15 +15 15 17 17 +17 26 17 28 +14 11 17 15 +5 31 10 31 +14 19 16 25 +12 9 15 12 +1 33 4 33 +3 1 9 21 +14 25 16 31 +7 18 17 25 +11 12 14 12 +8 7 15 24 +12 26 14 27 +7 21 12 27 +16 21 16 21 +17 31 17 32 +3 21 8 28 +10 17 14 33 +12 0 12 0 +13 12 15 19 +5 32 5 32 +13 32 13 32 +11 25 11 32 +3 29 11 31 +17 14 17 14 +6 9 6 18 +12 18 16 29 +12 31 17 32 +15 13 16 19 +13 0 16 16 +3 18 16 32 +4 31 16 33 +15 12 17 14 +12 6 13 18 +11 26 11 31 +9 18 12 27 +16 18 16 19 +16 27 17 28 +15 30 15 30 +16 1 17 1 +13 31 16 32 +9 33 9 33 +17 30 17 31 +15 31 15 31 +14 20 17 26 +8 0 8 25 +10 29 12 29 +10 7 11 13 +7 17 14 24 +13 16 17 32 +2 29 15 29 +14 11 16 23 +11 33 12 33 +1 28 17 30 +17 16 17 28 +13 0 15 4 +14 7 15 9 +16 10 17 13 +3 19 7 23 +7 7 10 16 +6 1 17 8 +2 21 6 33 +2 19 3 28 +3 6 9 8 +12 7 16 31 +7 25 7 26 +10 4 12 14 +1 18 12 31 +17 28 17 28 +10 17 15 30 +6 26 8 32 +17 31 17 33 +8 7 8 21 +13 1 13 9 +4 12 4 31 +14 28 14 32 +7 22 16 26 +17 33 17 33 +1 18 3 28 +8 11 17 13 +10 18 10 27 +10 5 16 22 +16 18 17 33 +6 7 17 10 +7 16 7 16 +6 29 10 29 +0 1 15 27 +3 14 11 17 +17 3 17 26 +5 27 15 30 +16 31 16 33 +17 25 17 33 +5 17 14 26 +13 11 16 28 +7 10 10 30 +9 23 13 29 +9 22 15 28 +8 11 14 28 +0 15 9 28 +7 14 10 32 +4 31 7 33 +4 29 16 31 +9 33 9 33 +0 23 6 31 +4 1 16 18 +3 12 12 20 +10 10 17 16 +7 24 14 30 +15 20 16 26 +5 0 15 18 +17 0 17 14 +13 5 16 25 +8 13 17 15 +8 24 17 29 +16 4 16 14 +13 1 16 17 +5 3 7 25 +10 7 17 18 +17 14 17 27 +12 21 15 27 +5 26 8 33 +17 5 17 5 +8 6 10 13 +11 25 14 31 +7 8 7 25 +3 8 3 27 +12 13 15 19 +15 7 16 28 +4 32 7 32 +14 4 15 20 +8 3 12 18 +6 26 12 29 +11 9 11 16 +12 23 15 23 +10 10 17 10 +13 12 15 20 +13 31 17 32 +10 12 16 22 +9 3 13 24 +7 3 7 18 +8 31 12 32 +14 32 15 33 +4 11 10 30 +11 30 17 30 +5 12 16 32 +15 9 17 23 +5 14 5 31 +17 1 17 25 +10 12 14 25 +1 26 2 32 +2 0 7 27 +8 13 13 24 +11 6 15 26 +6 7 8 11 +16 16 16 19 +15 9 17 25 +11 15 17 24 +4 19 14 31 +5 12 7 19 +5 28 11 31 +1 1 8 9 +6 26 12 26 +2 22 5 25 +1 11 15 32 +15 20 15 29 +8 15 8 31 +16 31 17 31 +6 9 14 32 +7 17 16 28 +15 24 17 31 +9 20 12 25 +15 9 17 23 +16 11 17 32 +7 33 12 33 +0 21 0 30 +13 19 13 24 +17 12 17 25 +11 17 14 18 +9 2 10 3 +3 0 16 0 +2 31 14 32 +15 33 15 33 +2 13 13 23 +11 16 16 19 +3 11 8 17 +16 7 17 8 +12 29 15 29 +8 3 10 9 +1 4 7 26 +7 30 13 31 +0 21 10 33 +2 18 8 27 +16 32 17 32 +8 5 9 30 +6 24 17 27 +10 21 13 22 +4 12 7 24 +16 17 16 23 +3 21 15 23 +8 4 14 22 +16 19 16 28 +8 26 15 28 +4 11 12 11 +9 0 15 4 +11 18 15 30 +10 33 11 33 +15 24 17 27 +5 8 13 22 +4 29 8 30 +4 3 13 18 +12 12 12 31 +3 8 11 20 +3 2 15 5 +4 14 5 26 +9 6 12 24 +7 32 9 32 +12 6 17 29 +0 0 7 30 +16 14 16 21 +10 17 17 33 +3 32 7 33 +10 30 17 30 +3 32 4 33 +16 29 17 33 +15 27 17 31 +2 14 15 31 +14 3 17 17 +13 31 13 32 +17 1 17 12 +8 19 14 22 +5 0 14 2 +12 8 17 27 +1 17 14 17 +5 15 10 19 +2 15 7 18 +10 28 16 28 +5 26 6 29 +4 11 13 32 +3 32 15 33 +16 32 16 33 +7 11 12 23 +10 21 15 27 +14 32 15 33 +10 18 15 33 +1 23 1 26 +12 18 15 25 +8 31 13 31 +16 19 16 25 +11 5 16 11 +10 33 15 33 +10 1 15 12 +7 33 7 33 +11 30 14 33 +2 0 11 4 +8 33 16 33 +16 3 16 29 +16 29 16 32 +12 9 14 16 +9 24 11 26 +0 1 7 3 +8 19 14 20 +0 8 14 26 +15 21 15 30 +14 14 15 16 +12 21 14 31 +6 5 11 7 +5 1 11 3 +9 17 14 30 +4 26 10 26 +12 25 17 27 +2 5 12 17 +14 22 16 26 +12 7 17 25 +8 11 15 30 +7 21 12 30 +8 20 12 27 +11 1 11 32 +1 33 3 33 +13 33 17 33 +6 2 6 15 +10 33 16 33 +17 28 17 30 +5 9 16 28 +9 21 10 33 +5 32 17 32 +9 28 17 33 +5 0 15 18 +4 8 13 30 +14 29 16 31 +1 11 1 22 +16 27 16 30 +13 24 13 31 +16 31 16 33 +0 31 17 31 +17 30 17 30 +6 4 16 21 +2 27 6 27 +0 18 16 26 +2 21 15 21 +4 11 15 31 +14 6 17 7 +8 20 17 31 +12 23 15 32 +10 32 16 33 +6 9 13 14 +8 1 8 2 +2 16 13 23 +11 17 17 26 +17 29 17 30 +15 13 15 27 +1 6 2 6 +15 27 16 33 +8 30 16 30 +11 32 16 33 +10 16 17 23 +3 13 6 19 +15 19 16 26 +11 1 12 25 +14 23 16 31 +9 13 16 16 +12 7 17 28 +14 8 15 10 +3 17 6 19 +8 0 10 1 +2 11 6 25 +6 18 10 33 +10 20 11 20 +10 32 14 32 +1 19 11 24 +10 27 13 27 +15 12 17 32 +4 28 14 30 +11 9 15 28 +17 10 17 10 +15 4 16 8 +16 3 16 25 +15 32 15 32 +17 15 17 16 +5 21 7 27 +11 9 17 27 +0 19 4 30 +8 14 16 30 +9 30 12 30 +1 17 10 28 +10 20 14 32 +8 33 10 33 +15 16 15 26 +17 21 17 23 +13 14 14 33 +17 2 17 16 +0 18 4 20 +0 8 7 9 +0 14 1 28 +11 14 12 19 +5 14 6 17 +16 30 17 30 +8 26 11 31 +8 7 13 13 +4 2 15 2 +10 12 17 33 +15 20 17 27 +10 0 14 14 +17 3 17 30 +4 26 8 32 +3 25 3 25 +9 33 14 33 +5 2 9 6 +9 20 14 25 +5 32 9 32 +5 31 6 31 +11 12 15 27 +12 7 16 21 +0 5 9 21 +14 8 16 23 +17 32 17 33 +4 24 16 26 +10 19 11 22 +16 18 17 20 +6 21 11 24 +2 1 6 20 +11 27 11 32 +5 17 10 31 +16 14 16 26 +13 20 16 28 +8 6 10 33 +1 17 15 24 +13 12 13 30 +4 32 12 32 +11 6 14 27 +12 30 13 30 +0 32 12 32 +12 5 15 31 +4 3 17 26 +7 12 12 32 +16 12 16 27 +16 23 17 25 +2 10 8 14 +1 18 3 25 +8 3 17 23 +9 17 15 26 +10 24 17 25 +8 31 10 31 +2 3 8 22 +8 1 15 16 +5 19 9 33 +13 25 14 29 +10 14 14 25 +16 32 16 33 +15 25 16 31 +7 3 10 31 +17 17 17 19 +4 7 7 33 +14 21 14 30 +2 27 4 32 +2 16 12 21 +17 25 17 28 +16 8 17 26 +1 31 8 32 +11 23 15 25 +10 15 14 20 +8 1 15 16 +10 23 14 27 +8 1 10 25 +14 14 17 15 +17 28 17 28 +16 17 17 32 +6 18 17 30 +7 3 16 17 +14 14 14 31 +11 5 15 6 +16 27 17 33 +10 28 14 33 +0 26 16 33 +14 1 16 13 +14 20 15 32 +1 2 13 6 +12 26 14 31 +3 19 13 26 +14 13 16 16 +15 17 15 25 +4 12 16 33 +15 9 15 20 +13 31 13 31 +9 21 9 23 +3 11 17 32 +6 29 8 29 +10 16 16 21 +6 15 17 26 +10 26 12 33 +7 10 13 16 +0 33 12 33 +2 5 15 7 +13 27 13 29 +16 18 17 31 +1 15 16 33 +6 11 7 13 +8 7 11 23 +11 3 11 9 +3 24 6 32 +16 10 16 28 +8 19 8 22 +10 33 12 33 +11 26 15 27 +15 21 16 32 +5 1 17 18 +5 6 15 13 +13 9 14 30 +13 10 14 16 +15 9 17 22 +2 30 5 31 +6 7 7 25 +3 13 13 29 +7 30 8 32 +2 23 10 23 +15 1 17 25 +1 29 10 30 +16 7 17 7 +16 27 17 28 +16 2 16 27 +11 0 16 6 +6 17 6 33 +10 10 12 11 +15 28 17 30 +10 19 16 32 +13 32 17 32 +12 2 14 15 +7 7 14 28 +14 0 14 19 +16 8 17 13 +6 19 9 33 +1 24 2 27 +9 10 9 18 +8 16 16 19 +4 22 7 30 +5 20 14 31 +0 5 17 19 +13 17 13 31 +4 19 13 30 +7 31 11 31 +10 28 13 29 +11 16 12 19 +8 20 13 27 +0 9 14 22 +2 30 9 33 +3 9 8 22 +13 19 16 21 +3 30 6 30 +13 21 14 30 +7 6 8 28 +2 26 15 33 +10 18 13 25 +14 14 15 29 +7 32 17 33 +9 11 10 15 +14 28 17 31 +17 1 17 27 +14 14 17 17 +4 14 16 32 +9 17 13 33 +16 5 16 25 +3 3 11 3 +1 17 5 30 +0 21 4 24 +9 21 11 30 +1 19 10 26 +0 28 14 29 +14 20 17 26 +14 31 17 31 +12 4 14 19 +13 26 14 30 +17 29 17 33 +14 12 16 33 +14 5 17 32 +9 3 17 17 +9 19 9 30 +4 17 13 20 +17 25 17 31 +8 0 17 27 +14 20 16 22 +17 9 17 13 +14 23 16 31 +9 25 12 27 +12 26 12 28 +2 25 10 25 +0 33 11 33 +2 9 4 19 +13 19 13 33 +2 18 15 31 +1 15 3 31 +10 18 14 31 +7 4 10 6 +15 19 15 26 +17 10 17 17 +3 20 8 23 +10 2 11 13 +7 11 12 24 +9 19 14 33 +8 5 13 17 +4 14 11 29 +13 25 13 29 +16 11 17 11 +1 17 5 20 +5 33 8 33 +8 23 16 30 +12 24 15 25 +5 1 16 9 +5 8 12 32 +13 10 15 20 +7 0 12 0 +14 5 16 27 +15 33 16 33 +0 9 10 32 +9 0 16 7 +17 18 17 23 +4 2 5 4 +14 26 17 30 +11 21 17 21 +4 10 13 11 +6 14 7 24 +11 20 12 23 +0 25 14 33 +0 18 12 30 +12 21 12 33 +4 11 5 27 +1 17 12 23 +1 16 3 21 +2 3 5 24 +9 22 16 30 +12 24 16 27 +7 0 17 14 +3 29 8 32 +11 4 16 22 +11 22 17 28 +12 4 17 33 +0 11 1 18 +16 3 17 23 +2 22 6 31 +4 2 10 7 +9 30 17 30 +5 10 5 19 +14 18 14 27 +11 32 16 33 +4 21 5 31 +10 15 17 20 +4 10 17 24 +7 20 9 30 +14 2 14 17 +6 7 10 30 +6 28 8 33 +16 2 17 27 +2 5 4 15 +2 16 17 30 +6 26 13 29 +9 20 15 22 +14 14 14 30 +5 13 11 18 +7 16 14 24 +3 11 6 29 +8 19 14 26 +7 22 14 28 +4 32 4 33 +5 29 8 30 +11 9 13 18 +17 11 17 24 +13 0 16 10 +8 19 12 25 +12 1 14 4 +3 13 14 14 +14 32 16 32 +2 20 6 24 +11 11 11 11 +10 1 16 12 +1 27 8 31 +15 18 16 18 +11 29 17 33 +13 9 14 17 +7 18 7 22 +3 27 6 33 +6 18 13 20 +1 13 14 22 +11 3 15 33 +8 7 16 15 +0 13 10 29 +5 26 11 26 +14 33 16 33 +2 28 12 33 +14 2 14 18 +10 2 16 23 +2 21 14 31 +7 1 16 8 +9 11 13 12 +5 3 6 6 +1 25 6 26 +17 19 17 33 +2 8 16 9 +1 14 10 32 +8 13 15 29 +7 32 17 33 +5 6 10 21 +17 27 17 32 +9 26 16 29 +9 1 15 21 +2 6 4 25 +4 17 15 29 +6 25 16 26 +8 18 9 26 +16 11 17 31 +3 11 3 32 +2 24 14 29 +14 12 17 27 +10 22 12 23 +1 2 14 14 +2 28 4 29 +5 13 6 26 +4 8 6 14 +16 7 16 16 +14 12 15 28 +9 6 9 9 +6 13 12 27 +15 31 17 33 +10 16 17 26 +3 1 8 6 +5 15 9 16 +14 17 17 27 +17 12 17 18 +7 10 13 31 +4 12 8 16 +10 21 11 32 +11 25 11 25 +5 6 14 31 +7 27 15 29 +8 4 9 20 +11 22 15 28 +13 10 15 18 +10 17 11 33 +7 0 10 2 +0 20 9 22 +14 30 14 31 +4 28 15 29 +3 3 11 10 +14 9 16 14 +10 29 17 33 +6 14 17 27 +11 18 15 21 +13 26 16 33 +16 0 16 33 +3 26 8 33 +7 19 11 25 +9 4 13 7 +4 26 15 28 +15 24 16 30 +4 30 16 30 +9 15 10 27 +8 31 14 31 +6 26 11 27 +1 22 11 32 +12 23 12 33 +10 6 12 32 +17 7 17 9 +2 10 11 30 +8 17 11 19 +11 24 14 30 +10 2 13 6 +4 30 4 30 +6 8 7 18 +4 25 12 31 +12 13 16 23 +15 2 17 16 +6 2 7 6 +13 25 13 28 +12 24 17 25 +5 5 16 15 +4 22 5 26 +17 7 17 8 +14 0 15 26 +13 19 17 32 +3 22 15 33 +11 24 12 33 +8 11 11 32 +11 29 12 32 +12 33 13 33 +3 10 5 20 +7 15 16 33 +17 3 17 18 +5 18 10 27 +1 4 16 14 +12 23 14 26 +16 20 16 22 +0 7 14 14 +13 4 17 29 +15 13 16 17 +15 22 17 29 +14 7 16 13 +15 30 15 30 +14 17 15 18 +1 30 8 33 +1 9 16 11 +16 1 16 27 +4 32 6 33 +2 15 8 32 +10 21 12 33 +15 32 15 33 +2 11 7 29 +12 7 17 31 +2 13 3 14 +8 21 8 30 +16 6 17 7 +2 23 12 28 +3 22 8 33 +8 4 9 33 +1 25 15 32 +13 31 14 31 +5 5 7 14 +6 21 11 33 +17 21 17 24 +10 16 17 22 +1 31 17 32 +8 18 14 30 +17 32 17 32 +6 11 17 12 +13 14 15 25 +16 10 16 27 +8 16 16 32 +16 24 16 33 +7 18 15 19 +14 22 14 25 +4 0 7 18 +1 4 3 20 +0 8 17 14 +10 20 16 20 +15 9 15 21 +16 14 16 25 +1 33 13 33 +16 25 16 31 +14 25 15 25 +0 21 9 26 +16 5 16 20 +15 23 17 24 +4 20 11 30 +9 22 12 32 +13 9 16 11 +3 16 4 17 +11 4 13 26 +5 16 7 30 +9 28 12 31 +17 30 17 31 +13 20 16 30 +7 4 8 22 +5 4 10 12 +9 11 15 13 +1 7 1 12 +0 13 1 17 +11 0 17 18 +0 29 14 31 +14 28 14 31 +1 2 7 25 +11 32 16 32 +8 12 15 25 +14 30 16 33 +16 21 16 21 +16 19 17 23 +6 2 14 30 +3 14 15 26 +0 27 16 33 +10 20 17 33 +7 33 13 33 +10 10 17 17 +17 3 17 8 +12 21 12 32 +1 2 1 26 +6 18 9 26 +8 19 16 22 +7 15 15 22 +5 29 15 32 +9 2 13 7 +1 28 8 33 +2 0 2 24 +2 27 10 27 +2 23 8 25 +16 2 16 6 +12 2 14 31 +14 14 16 21 +11 18 11 30 +12 10 12 22 +0 15 0 20 +17 15 17 23 +17 1 17 23 +7 23 12 26 +12 4 13 5 +13 16 17 26 +9 32 12 32 +4 31 15 33 +11 26 11 32 +1 29 4 32 +3 8 4 8 +6 3 8 29 +7 32 11 33 +4 10 9 28 +9 11 15 25 +13 33 16 33 +16 3 17 15 +2 15 8 23 +14 30 15 31 +12 12 17 30 +11 23 12 33 +5 15 14 24 +17 21 17 24 +1 24 12 24 +7 21 12 26 +1 6 11 26 +12 26 12 26 +17 18 17 31 +0 6 4 32 +0 5 1 28 +3 0 4 29 +9 12 9 32 +12 8 12 22 +10 32 10 32 +17 31 17 33 +2 20 3 33 +6 12 16 17 +17 28 17 32 +17 20 17 28 +3 11 7 24 +17 25 17 27 +11 29 15 32 +15 11 17 15 +5 28 9 30 +5 25 10 32 +4 29 6 32 +14 24 15 31 +9 7 12 33 +4 15 7 33 +7 6 16 9 +10 32 10 32 +16 20 17 21 +11 13 11 15 +7 22 9 27 +15 31 15 32 +2 16 10 32 +12 31 16 33 +16 9 16 31 +8 14 17 17 +0 11 2 33 +11 26 16 30 +12 7 16 32 +4 0 16 25 +0 19 1 25 +17 1 17 4 +15 10 16 22 +14 28 16 31 +6 21 13 29 +9 19 12 26 +1 30 6 31 +4 4 4 20 +9 19 16 25 +3 26 11 31 +16 16 16 32 +14 27 15 27 +15 18 17 27 +10 15 16 32 +7 20 7 32 +5 0 12 12 +15 5 17 14 +10 25 10 31 +4 24 17 26 +4 11 7 21 +12 19 15 26 +13 2 15 15 +12 20 14 32 +15 27 15 33 +7 3 10 3 +14 28 17 29 +7 22 16 22 +10 32 11 32 +17 0 17 7 +13 16 16 17 +4 0 16 0 +16 2 17 8 +1 33 15 33 +9 11 11 14 +13 20 17 26 +0 12 0 22 +4 16 12 32 +15 33 17 33 +1 0 2 3 +14 22 15 32 +5 6 9 6 +1 17 4 18 +6 4 15 24 +0 33 11 33 +6 25 17 31 +1 18 11 18 +11 30 15 33 +11 11 17 12 +8 10 15 11 +10 4 16 24 +10 6 13 15 +6 22 6 29 +13 1 16 19 +4 15 6 19 +1 15 8 25 +16 19 16 29 +16 21 16 31 +16 20 16 21 +10 1 14 19 +17 0 17 27 +5 27 11 27 +1 10 15 25 +8 6 12 9 +11 19 16 29 +13 20 15 22 +4 28 10 32 +10 10 13 26 +13 3 13 17 +0 17 0 19 +4 18 12 23 +6 29 13 29 +3 9 6 12 +13 24 15 30 +16 15 17 20 +7 23 15 26 +10 23 17 23 +14 7 16 7 +0 24 10 24 +6 12 9 33 +7 25 14 32 +0 5 9 19 +11 27 14 31 +15 16 16 16 +16 15 17 33 +13 18 13 22 +15 6 15 29 +14 29 15 29 +1 28 6 30 +9 1 9 6 +16 22 17 25 +3 1 17 21 +13 5 15 29 +3 18 10 23 +11 6 12 29 +0 14 4 18 +17 12 17 27 +11 24 16 24 +6 0 8 10 +5 27 9 32 +7 21 11 24 +15 15 15 32 +8 15 17 25 +4 4 12 30 +10 0 16 20 +0 24 14 33 +8 3 13 14 +7 11 12 25 +0 0 1 19 +17 8 17 21 +12 23 15 23 +8 24 14 24 +9 28 15 30 +3 18 16 23 +10 18 15 19 +17 17 17 28 +8 12 10 29 +7 20 13 23 +8 18 15 22 +16 16 16 33 +8 6 14 13 +12 23 17 26 +9 0 14 0 +6 27 9 27 +5 33 5 33 +7 31 7 31 +10 4 13 27 +1 2 11 16 +0 33 4 33 +9 3 14 12 +13 11 13 29 +14 25 17 32 +10 10 11 28 +5 19 17 21 +13 16 13 28 +13 13 14 13 +15 27 16 32 +14 30 16 32 +1 11 11 24 +6 32 15 32 +15 2 17 19 +17 27 17 30 +8 23 13 23 +15 3 16 15 +11 23 17 24 +11 31 13 32 +9 26 13 26 +7 24 7 25 +10 23 14 25 +13 25 14 33 +13 7 17 16 +16 16 17 32 +0 7 7 11 +3 2 5 4 +10 3 16 14 +5 17 5 28 +7 9 13 20 +17 9 17 21 +12 18 14 30 +2 27 4 33 +14 1 15 1 +0 9 3 33 +0 17 10 22 +10 26 16 29 +6 6 15 13 +1 23 11 28 +7 2 9 28 +13 30 16 33 +1 22 15 23 +13 19 14 28 +10 15 13 30 +2 32 13 33 +12 32 17 32 +0 26 1 26 +0 22 2 33 +17 20 17 22 +3 6 4 26 +1 22 9 31 +8 32 14 32 +17 31 17 33 +4 10 6 32 +0 26 5 33 +2 32 5 32 +8 33 10 33 +4 25 11 33 +12 32 15 32 +15 13 17 19 +10 9 17 14 +16 7 17 22 +13 5 13 9 +5 32 15 32 +3 9 8 28 +5 31 14 31 +3 26 4 26 +3 1 13 16 +16 9 17 29 +13 13 14 16 +7 10 15 32 +4 31 13 32 +2 15 14 19 +14 7 14 14 +17 17 17 22 +11 29 12 32 +11 25 16 31 +7 24 13 24 +12 12 15 23 +3 28 17 29 +4 7 15 14 +4 30 13 32 +1 15 1 28 +9 28 13 31 +2 11 5 31 +10 25 16 33 +17 31 17 31 +13 31 13 31 +3 5 13 14 +6 30 15 33 +14 28 17 30 +3 12 11 24 +9 27 17 29 +8 20 9 24 +3 9 3 22 +2 0 3 11 +0 22 8 27 +0 5 1 11 +16 30 16 32 +7 11 12 12 +6 32 10 33 +13 17 17 23 +8 31 16 31 +11 16 12 29 +13 26 15 28 +10 27 15 31 +12 1 17 22 +11 18 12 18 +13 7 13 22 +3 7 10 25 +13 29 16 30 +14 31 17 31 +1 1 10 7 +7 13 13 17 +6 4 13 15 +2 3 17 27 +14 21 15 33 +8 14 8 31 +2 33 14 33 +10 3 10 11 +8 30 15 31 +5 8 10 10 +4 10 4 22 +13 24 17 29 +2 23 8 33 +1 25 17 29 +1 32 8 33 +9 8 12 30 +11 2 11 9 +3 12 8 24 +12 21 17 24 +0 12 5 14 +5 14 11 25 +16 12 17 32 +14 12 14 22 +12 9 17 21 +12 7 12 11 +17 33 17 33 +0 3 1 7 +4 25 9 32 +8 27 12 29 +0 1 12 26 +5 1 16 21 +1 13 5 20 +6 15 13 22 +2 9 7 24 +10 23 11 32 +17 32 17 32 +16 13 16 27 +12 3 14 11 +12 16 12 30 +4 25 14 27 +3 12 16 24 +0 29 10 30 +2 21 12 28 +17 5 17 26 +3 13 16 25 +12 18 12 30 +1 7 6 18 +5 10 11 19 +17 24 17 31 +3 5 7 10 +12 9 17 9 +14 12 14 17 +1 3 12 14 +14 10 17 18 +11 29 11 32 +14 33 14 33 +14 7 17 26 +17 13 17 17 +3 0 17 24 +16 4 16 27 +12 3 14 13 +9 18 15 20 +0 32 0 32 +15 33 16 33 +8 23 10 30 +9 22 10 26 +15 6 15 11 +16 5 16 26 +6 10 6 30 +10 32 10 33 +5 32 13 33 +10 25 11 32 +3 15 12 18 +3 29 13 31 +4 27 14 30 +0 31 12 33 +4 17 14 29 +17 18 17 31 +5 2 10 33 +12 16 17 33 +5 6 12 15 +10 2 14 5 +12 20 14 22 +9 27 14 29 +1 21 11 26 +17 31 17 32 +2 0 5 27 +13 2 16 19 +7 23 16 30 +2 19 9 27 +5 2 15 26 +6 15 7 25 +13 18 14 33 +2 11 7 21 +0 28 16 31 +17 29 17 32 diff --git a/2018/republic/10-12_d1/arta/tests/02_pattern.txt b/2018/republic/10-12_d1/arta/tests/02_pattern.txt new file mode 100644 index 0000000..45284c1 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/02_pattern.txt @@ -0,0 +1 @@ +51 diff --git a/2018/republic/10-12_d1/arta/tests/03_input.txt b/2018/republic/10-12_d1/arta/tests/03_input.txt new file mode 100644 index 0000000..bb13ccd --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/03_input.txt @@ -0,0 +1,4805 @@ +52 37 +4803 +51 16 51 35 +7 36 9 36 +45 15 49 16 +19 34 49 35 +35 12 51 33 +30 26 37 31 +37 16 45 32 +32 0 39 18 +12 34 37 34 +49 23 49 27 +7 17 14 36 +16 18 31 32 +27 14 32 17 +32 33 45 34 +32 9 48 30 +30 31 41 31 +50 23 50 30 +48 5 50 19 +24 20 41 20 +17 34 36 36 +40 1 41 31 +11 9 20 29 +25 5 30 29 +11 28 25 31 +24 17 51 21 +49 17 50 33 +28 6 44 32 +13 35 23 35 +37 6 37 34 +23 6 39 14 +33 12 38 28 +36 1 50 8 +46 18 50 29 +31 23 50 26 +29 15 38 18 +37 5 45 16 +27 7 43 14 +24 15 33 31 +26 2 40 31 +4 28 11 34 +36 18 45 24 +22 17 51 20 +5 32 45 33 +11 29 17 31 +16 30 38 30 +27 16 38 36 +30 18 48 34 +28 28 47 36 +39 16 50 35 +10 22 37 32 +27 23 43 26 +21 21 44 36 +14 34 38 36 +23 34 51 36 +17 22 36 32 +6 26 43 26 +11 8 51 13 +16 25 22 29 +4 2 6 13 +43 12 48 26 +29 19 45 34 +17 23 49 25 +46 3 48 5 +28 33 44 34 +10 28 26 32 +3 14 49 30 +7 13 23 15 +40 13 48 35 +43 36 48 36 +0 9 31 28 +13 34 19 35 +2 16 7 26 +30 27 48 32 +0 25 36 28 +40 8 44 30 +32 21 45 36 +6 28 29 30 +20 18 24 33 +46 19 51 36 +6 34 12 35 +2 22 30 29 +21 3 47 12 +3 9 10 29 +43 31 51 36 +22 30 36 36 +9 34 34 36 +41 15 49 25 +30 14 35 19 +39 35 46 36 +20 3 21 7 +5 2 19 18 +18 9 51 26 +29 29 49 30 +8 10 47 18 +51 21 51 26 +22 16 34 20 +3 10 46 23 +21 28 50 29 +49 6 49 12 +31 30 47 34 +49 17 49 30 +0 32 5 35 +24 9 44 17 +48 24 48 32 +8 17 40 23 +18 12 50 22 +28 9 30 10 +29 20 29 33 +22 13 35 25 +9 5 27 29 +46 1 48 13 +50 36 51 36 +14 35 25 35 +13 16 18 29 +32 2 50 21 +9 0 16 6 +34 29 51 35 +12 36 31 36 +15 17 16 19 +35 25 38 34 +3 36 31 36 +18 8 47 31 +51 16 51 18 +37 23 45 35 +3 14 21 34 +40 13 47 17 +26 18 51 24 +48 35 49 35 +6 19 45 28 +15 32 51 34 +29 14 48 29 +44 31 44 36 +8 15 51 33 +9 21 11 32 +4 8 13 27 +44 13 48 18 +40 16 43 32 +10 35 38 36 +40 35 45 35 +27 1 29 18 +26 24 41 34 +32 11 48 12 +44 19 49 24 +51 30 51 34 +22 7 28 14 +39 4 49 9 +22 7 50 7 +29 15 43 28 +7 6 27 17 +32 20 40 26 +10 10 21 12 +17 26 37 28 +33 28 37 31 +36 34 51 34 +51 4 51 10 +38 19 44 27 +34 1 41 6 +9 22 49 26 +34 33 38 35 +7 32 11 34 +17 31 35 31 +47 7 47 16 +45 22 47 22 +22 4 25 12 +48 17 50 30 +27 23 44 36 +41 17 44 34 +36 9 49 26 +44 12 47 17 +35 36 36 36 +38 19 41 33 +38 24 42 35 +27 13 50 26 +43 1 44 7 +6 9 8 31 +49 6 51 25 +16 0 31 17 +37 10 49 21 +45 11 45 16 +37 26 47 36 +18 29 28 33 +0 34 39 35 +29 18 44 30 +0 13 25 33 +40 0 42 28 +31 11 40 26 +15 11 47 24 +8 8 43 28 +17 30 47 36 +3 18 43 24 +43 12 51 13 +43 28 50 35 +9 24 32 28 +40 22 43 23 +31 28 33 35 +21 34 34 34 +29 28 50 34 +47 5 47 28 +43 8 50 13 +6 35 27 36 +30 7 44 27 +17 35 33 35 +49 21 50 33 +34 14 51 27 +5 33 38 35 +20 32 28 35 +49 4 51 35 +48 10 51 22 +47 33 51 35 +0 14 11 28 +9 10 48 29 +23 6 49 10 +21 36 39 36 +14 30 18 33 +6 23 47 34 +48 25 49 33 +40 29 42 29 +40 31 44 34 +32 6 37 18 +46 24 51 28 +38 17 46 26 +14 10 19 23 +21 0 36 32 +41 23 44 35 +6 26 8 28 +37 22 40 25 +49 12 50 14 +13 36 22 36 +19 26 50 26 +51 23 51 30 +30 25 37 28 +8 15 22 29 +28 6 38 29 +16 25 19 25 +25 22 33 36 +27 22 30 27 +20 24 42 24 +13 9 36 26 +46 36 50 36 +35 9 47 14 +35 6 35 13 +16 10 16 20 +46 23 51 34 +33 33 33 33 +49 30 49 32 +13 3 25 3 +48 35 50 35 +38 22 40 23 +13 8 33 9 +45 1 49 33 +46 13 50 20 +46 9 48 18 +51 14 51 16 +34 25 47 32 +24 17 41 20 +47 15 48 23 +24 24 26 26 +48 32 49 32 +17 23 27 27 +2 5 45 34 +41 25 49 36 +48 19 50 36 +22 2 24 14 +24 3 46 15 +48 10 49 28 +16 34 17 35 +45 34 50 35 +42 19 50 31 +36 2 46 15 +8 26 32 28 +7 15 30 17 +0 13 1 26 +3 10 4 18 +33 4 45 32 +12 23 39 33 +12 15 46 28 +15 14 48 28 +41 31 51 32 +26 36 38 36 +16 6 17 19 +11 35 15 35 +4 13 26 23 +34 28 49 29 +47 20 48 36 +30 34 46 34 +3 21 21 24 +36 0 48 1 +6 6 35 20 +28 13 31 25 +47 25 50 36 +49 18 49 32 +28 18 28 20 +1 26 13 36 +6 12 42 35 +24 11 35 31 +4 17 23 20 +8 33 25 35 +1 35 39 36 +27 15 51 36 +37 33 45 33 +33 30 47 33 +3 25 18 33 +6 15 42 35 +34 18 39 21 +21 11 33 24 +43 13 45 28 +23 6 32 18 +45 28 50 31 +29 28 36 30 +45 34 47 34 +50 13 51 26 +31 11 40 11 +6 3 8 29 +47 11 50 17 +22 11 44 31 +36 36 37 36 +41 20 43 27 +25 2 48 24 +17 17 42 27 +3 30 35 35 +24 29 25 29 +36 5 51 6 +19 32 32 34 +27 26 41 27 +18 34 45 36 +46 35 48 35 +18 23 38 27 +42 9 45 13 +22 31 39 33 +30 16 40 30 +26 35 38 36 +37 12 46 22 +11 22 11 23 +44 3 47 30 +9 4 9 25 +29 28 45 33 +44 35 47 35 +38 31 43 34 +3 19 27 35 +30 22 35 36 +12 24 32 24 +3 18 36 24 +51 9 51 30 +19 24 38 36 +22 26 36 36 +27 13 29 31 +7 16 30 35 +19 3 35 12 +50 36 51 36 +24 23 46 34 +31 28 51 36 +32 15 41 33 +1 13 17 19 +6 27 34 28 +33 22 44 31 +3 13 43 19 +20 13 21 35 +38 2 38 13 +9 36 33 36 +13 5 35 18 +8 15 49 25 +29 25 50 30 +26 15 44 18 +2 16 40 22 +2 11 11 12 +9 22 51 35 +29 29 33 36 +32 15 40 21 +43 34 51 36 +2 13 26 33 +25 7 47 20 +9 33 13 33 +33 19 41 28 +26 14 30 27 +32 9 35 32 +20 35 50 36 +15 19 19 36 +25 23 46 34 +26 8 31 29 +19 34 29 34 +28 9 41 16 +8 6 26 18 +1 7 36 11 +46 32 48 34 +11 7 26 19 +44 12 45 19 +17 13 27 17 +40 16 42 26 +15 28 47 31 +27 20 44 26 +25 8 29 15 +24 14 48 25 +43 4 51 21 +49 13 49 36 +31 27 31 31 +8 12 32 32 +14 8 35 8 +4 5 39 34 +35 35 50 35 +33 29 39 30 +36 25 47 34 +39 4 45 31 +47 17 48 20 +20 11 27 20 +2 25 48 26 +46 26 51 35 +15 10 30 30 +30 17 37 26 +9 36 25 36 +39 13 43 18 +37 15 50 31 +47 15 50 23 +34 17 38 21 +13 4 46 11 +37 8 41 24 +26 9 26 33 +18 12 51 12 +48 25 50 28 +33 11 45 15 +38 24 50 31 +19 20 23 35 +13 33 23 35 +26 8 46 8 +21 25 26 31 +32 9 40 20 +30 13 32 35 +8 6 20 13 +7 18 46 25 +27 16 50 31 +11 5 49 30 +45 8 51 20 +27 20 27 32 +46 33 50 34 +30 30 33 30 +30 7 34 22 +1 18 9 24 +48 8 51 30 +46 12 48 28 +19 31 30 34 +45 18 48 26 +20 15 43 34 +10 10 29 12 +9 1 24 6 +33 36 48 36 +42 12 45 29 +31 22 43 32 +10 5 48 12 +10 17 34 27 +3 4 17 18 +0 22 19 25 +7 24 39 26 +29 11 48 20 +11 3 24 30 +41 23 44 31 +32 11 45 32 +34 13 51 23 +49 9 49 22 +16 7 47 7 +39 21 42 31 +48 1 50 14 +41 0 49 3 +32 5 43 35 +29 20 44 30 +2 35 37 36 +37 26 42 30 +25 28 47 29 +2 12 11 27 +6 27 30 36 +32 22 41 30 +36 12 43 13 +19 8 37 23 +45 26 48 36 +20 10 26 30 +35 22 50 22 +6 9 37 18 +24 6 32 15 +22 12 48 20 +46 4 48 33 +44 32 51 34 +3 30 26 34 +32 1 41 27 +6 36 20 36 +45 13 49 16 +9 12 34 35 +45 29 49 31 +41 29 44 33 +3 34 13 36 +9 1 23 32 +0 9 39 10 +51 34 51 35 +23 33 38 35 +5 7 14 20 +37 25 38 33 +49 8 49 15 +49 15 51 16 +50 27 51 27 +24 6 32 10 +17 1 33 31 +27 27 39 30 +24 14 26 19 +20 19 28 21 +51 9 51 22 +13 25 48 33 +34 29 38 36 +17 25 28 31 +0 27 38 31 +49 24 50 27 +15 24 28 28 +28 27 44 32 +14 5 26 27 +47 23 51 33 +45 28 46 29 +10 4 41 29 +5 20 37 28 +21 23 21 31 +17 4 32 34 +40 15 43 32 +14 24 41 34 +20 1 51 31 +44 1 46 31 +19 34 43 34 +23 17 43 29 +40 0 42 16 +31 26 50 31 +21 19 30 35 +12 22 27 22 +22 3 27 14 +10 5 46 10 +25 36 42 36 +42 26 48 29 +21 25 37 36 +44 17 49 27 +29 25 36 29 +30 20 46 36 +35 27 48 35 +0 24 44 27 +35 33 48 36 +46 10 50 25 +0 29 3 32 +40 4 47 16 +47 1 50 12 +23 20 36 33 +31 35 40 36 +21 29 50 31 +5 3 45 15 +32 6 46 20 +49 15 50 25 +51 8 51 27 +20 36 41 36 +48 36 51 36 +41 8 41 27 +25 25 37 30 +12 12 30 15 +19 9 25 28 +49 5 49 7 +18 30 37 30 +10 36 44 36 +15 2 47 10 +21 17 40 30 +36 33 42 35 +3 8 13 28 +48 26 49 34 +4 2 35 23 +8 18 24 34 +32 6 45 6 +19 3 31 3 +47 10 50 12 +35 35 38 35 +30 15 43 33 +26 35 42 35 +36 20 37 33 +50 31 50 31 +26 34 36 34 +13 2 45 28 +32 28 36 32 +21 36 32 36 +49 2 49 8 +37 12 41 26 +3 6 29 23 +2 3 11 32 +45 23 47 31 +39 7 50 36 +35 2 35 30 +50 36 50 36 +1 8 10 8 +49 16 49 23 +20 9 23 34 +6 32 10 32 +36 36 41 36 +44 1 46 21 +4 16 45 22 +3 10 43 19 +33 36 47 36 +19 18 22 24 +40 14 51 26 +10 35 47 35 +43 16 48 19 +9 21 43 24 +16 35 31 36 +23 15 49 25 +34 11 47 12 +18 9 25 17 +13 21 29 23 +24 19 42 19 +43 5 43 12 +28 34 33 35 +2 10 45 13 +50 9 51 20 +47 25 51 31 +3 20 25 23 +42 8 48 19 +14 9 38 28 +43 0 51 16 +24 21 51 25 +14 29 40 31 +5 33 7 35 +4 23 45 25 +36 31 46 32 +24 30 45 36 +36 18 45 30 +3 29 10 30 +37 16 47 19 +1 9 24 16 +19 20 50 36 +29 35 49 35 +7 19 13 23 +45 11 46 14 +36 13 51 29 +19 30 32 33 +44 11 49 20 +5 33 33 33 +28 11 50 23 +11 33 50 34 +24 1 45 22 +4 1 33 28 +20 30 47 33 +16 17 27 31 +8 9 49 15 +13 29 30 29 +37 24 47 25 +21 3 25 15 +33 32 39 36 +37 29 40 29 +23 29 45 29 +13 9 22 17 +1 18 12 25 +6 33 30 33 +33 25 46 25 +27 2 46 12 +32 22 48 23 +21 4 21 9 +6 1 26 3 +31 12 31 24 +48 26 50 30 +22 17 43 20 +20 16 21 34 +6 22 49 22 +48 12 48 18 +39 12 42 32 +40 5 46 23 +45 28 46 28 +3 36 48 36 +36 28 41 33 +22 11 40 30 +21 24 26 35 +34 29 37 32 +27 5 51 26 +17 10 37 20 +7 9 39 31 +41 19 51 32 +32 16 38 27 +36 4 45 8 +32 25 51 28 +9 21 11 24 +2 15 21 35 +33 21 33 27 +41 14 45 36 +7 19 11 27 +23 26 27 36 +25 15 46 35 +0 30 25 30 +21 22 49 35 +30 14 40 33 +1 4 25 24 +40 25 47 35 +15 0 15 34 +28 26 47 27 +1 21 42 31 +39 9 41 18 +38 0 47 0 +42 27 44 34 +8 30 26 36 +23 22 23 27 +0 31 17 36 +24 2 42 22 +1 26 48 31 +36 24 51 25 +33 23 47 34 +43 7 44 26 +18 12 48 31 +38 22 50 25 +31 31 43 33 +21 10 48 17 +28 11 28 23 +8 30 13 30 +33 0 46 29 +7 14 41 35 +16 25 44 30 +30 6 49 20 +42 1 47 14 +25 2 36 36 +31 15 47 15 +41 35 42 36 +11 33 22 33 +29 7 48 25 +17 17 23 24 +46 11 49 11 +19 5 38 14 +48 4 49 5 +48 11 50 21 +34 35 35 35 +14 14 47 17 +14 1 28 22 +25 18 45 32 +30 6 35 32 +18 0 44 22 +40 25 48 32 +13 7 44 10 +28 23 51 29 +30 1 46 36 +28 26 28 27 +13 33 38 36 +23 6 34 33 +14 17 35 32 +7 0 17 36 +18 33 40 34 +9 36 47 36 +47 29 47 36 +14 20 17 32 +36 15 36 34 +4 24 49 29 +39 24 39 25 +41 33 51 34 +37 34 37 36 +11 36 23 36 +30 15 45 27 +21 15 24 33 +50 35 51 36 +21 9 51 28 +17 10 44 21 +40 35 41 35 +8 33 28 33 +14 8 16 29 +26 0 38 16 +35 32 47 34 +0 30 4 36 +31 29 31 35 +41 20 50 35 +46 11 51 28 +46 24 49 26 +5 22 27 27 +43 32 49 34 +47 12 48 36 +41 1 47 19 +29 16 42 26 +26 18 31 36 +2 25 7 34 +36 21 40 34 +0 16 16 19 +26 24 27 25 +5 31 30 33 +21 17 46 35 +39 10 39 28 +40 28 40 32 +29 2 30 6 +41 10 47 27 +23 7 46 24 +18 30 29 30 +26 24 43 27 +28 25 41 30 +17 33 38 35 +51 31 51 35 +25 31 32 36 +17 23 35 25 +47 27 47 33 +15 35 21 35 +5 28 29 29 +7 12 27 34 +48 20 48 34 +24 14 39 31 +17 0 39 36 +0 7 44 27 +35 25 41 30 +37 9 39 27 +14 8 26 12 +45 10 50 29 +27 4 40 4 +23 1 35 14 +18 31 32 35 +27 32 37 36 +3 3 7 16 +37 4 42 26 +30 4 51 28 +19 26 34 28 +31 1 40 36 +46 20 48 31 +18 32 31 36 +21 20 36 28 +3 1 9 10 +34 14 43 27 +20 18 25 28 +8 19 9 28 +14 11 46 28 +3 28 43 28 +24 22 39 23 +27 22 33 35 +0 21 16 35 +9 25 50 28 +4 22 48 25 +0 16 11 33 +30 19 45 28 +49 36 49 36 +8 17 51 20 +3 26 6 36 +38 7 50 30 +41 24 47 34 +46 22 50 25 +15 2 24 10 +35 11 40 16 +33 35 40 36 +31 12 49 12 +39 9 46 13 +27 7 31 15 +50 36 51 36 +11 11 22 36 +18 31 20 36 +11 3 49 11 +41 5 44 19 +12 7 26 29 +35 22 40 30 +13 9 43 9 +4 23 46 28 +6 29 30 36 +28 6 47 27 +28 34 34 34 +19 3 43 30 +47 8 48 14 +25 3 44 31 +39 2 41 16 +16 4 29 36 +44 10 45 17 +17 18 41 19 +10 29 29 36 +11 30 18 33 +49 7 51 29 +7 9 26 13 +37 36 39 36 +1 20 50 31 +16 28 24 34 +42 11 42 11 +7 1 11 6 +4 27 4 31 +9 2 16 30 +9 21 31 24 +0 32 1 36 +27 28 50 31 +22 0 50 1 +14 20 45 31 +49 16 49 24 +18 2 18 20 +31 33 44 33 +17 19 19 31 +23 33 37 36 +31 8 39 28 +22 15 32 18 +33 35 45 36 +23 2 25 5 +49 13 51 21 +12 8 41 21 +1 13 15 28 +23 1 24 34 +28 12 46 22 +41 16 48 34 +3 14 22 23 +10 2 34 27 +6 14 44 26 +47 3 48 14 +1 4 31 32 +42 27 50 28 +14 17 31 32 +30 8 44 29 +25 11 31 30 +29 1 31 34 +32 32 36 36 +8 12 23 33 +35 20 35 29 +42 8 49 32 +42 7 51 20 +29 15 40 25 +47 4 47 9 +4 4 34 25 +27 4 28 23 +51 34 51 35 +9 9 21 27 +51 24 51 31 +47 3 49 34 +11 25 17 26 +11 32 49 32 +16 8 51 32 +23 1 26 16 +41 18 44 26 +2 28 42 32 +35 7 36 29 +29 6 41 10 +15 8 42 17 +51 28 51 28 +31 15 48 34 +25 28 33 28 +21 29 24 29 +31 22 36 24 +16 6 26 18 +13 9 32 26 +13 9 17 12 +6 4 34 14 +3 0 32 29 +5 17 46 29 +12 13 23 29 +46 17 49 32 +6 10 18 29 +50 19 50 22 +38 27 50 31 +8 32 17 35 +48 0 49 2 +1 2 14 11 +32 18 50 27 +5 1 22 6 +7 1 51 27 +8 1 34 27 +9 31 51 32 +46 33 51 33 +29 17 43 30 +39 35 47 36 +51 34 51 34 +24 11 43 36 +33 9 39 21 +11 29 35 34 +30 10 47 15 +43 13 47 34 +46 34 49 36 +10 32 16 32 +45 30 47 31 +34 0 35 18 +35 14 46 14 +48 23 51 36 +37 28 40 33 +16 24 49 31 +7 30 32 34 +11 14 30 33 +17 11 42 19 +47 0 51 3 +18 28 30 29 +34 8 47 28 +31 10 39 32 +51 30 51 31 +49 0 49 22 +44 5 44 7 +39 6 39 7 +3 12 38 31 +21 11 43 22 +38 31 41 33 +19 0 19 1 +46 24 49 29 +27 4 34 12 +43 33 50 33 +3 28 49 33 +47 35 48 35 +40 10 40 20 +26 24 39 26 +10 4 41 10 +37 30 42 35 +33 11 37 21 +4 29 13 36 +25 25 49 29 +6 13 26 26 +19 15 37 16 +8 31 42 34 +11 36 20 36 +14 36 33 36 +48 13 49 14 +6 27 48 29 +6 17 32 30 +32 31 45 35 +43 15 43 26 +48 2 50 22 +14 21 48 24 +51 33 51 34 +15 23 32 36 +37 18 47 25 +38 20 50 26 +42 26 49 27 +47 36 49 36 +49 26 50 34 +19 18 32 28 +0 18 10 33 +26 36 35 36 +21 2 50 28 +19 35 26 36 +14 13 46 20 +12 12 33 12 +7 8 22 11 +19 0 22 3 +3 2 8 36 +45 0 48 25 +43 14 45 24 +43 15 46 23 +39 23 39 25 +20 13 40 19 +34 23 34 29 +5 2 8 25 +26 0 46 28 +1 18 18 35 +17 14 45 26 +45 2 48 35 +26 33 48 33 +45 0 47 31 +22 8 51 11 +5 31 47 31 +4 29 19 32 +29 19 31 30 +22 6 43 25 +6 30 35 36 +5 29 47 30 +7 4 30 32 +8 14 39 17 +20 20 25 29 +42 1 45 4 +42 2 42 2 +15 8 37 19 +17 13 42 23 +27 29 49 33 +32 20 51 24 +48 15 50 19 +17 16 36 32 +7 4 39 24 +3 13 4 26 +22 28 42 32 +6 28 21 30 +25 31 44 32 +18 20 40 21 +20 8 20 17 +32 1 33 13 +11 14 24 15 +32 34 35 36 +46 16 51 22 +41 0 51 15 +42 31 42 32 +48 34 51 34 +2 31 6 36 +34 24 36 27 +18 30 46 36 +41 7 41 16 +44 16 49 22 +7 8 16 21 +38 10 38 13 +27 14 38 29 +37 28 48 36 +42 2 47 15 +13 0 33 23 +39 6 50 28 +27 7 32 10 +15 9 29 16 +29 13 38 30 +50 22 51 23 +46 34 49 34 +32 4 50 10 +35 35 37 36 +25 30 33 30 +39 28 49 36 +29 28 35 28 +48 20 51 32 +29 30 34 32 +4 13 18 32 +16 1 31 36 +44 31 51 34 +7 14 37 22 +24 28 49 36 +22 31 23 36 +6 13 26 32 +17 7 25 10 +39 15 44 16 +51 22 51 35 +13 36 35 36 +30 11 36 16 +51 2 51 21 +1 0 21 0 +47 18 48 34 +4 20 29 28 +7 10 12 24 +0 33 42 34 +21 10 37 23 +41 23 50 23 +31 33 38 35 +26 5 46 35 +0 20 46 24 +45 21 51 32 +37 36 41 36 +24 5 50 22 +16 8 50 8 +32 3 47 9 +25 20 31 31 +38 34 45 36 +16 6 39 29 +17 18 38 28 +36 33 45 33 +22 13 41 19 +27 24 42 27 +48 33 48 33 +11 17 39 34 +8 6 18 8 +19 28 51 29 +18 34 22 34 +12 15 46 20 +34 9 35 34 +45 31 47 33 +12 22 37 22 +19 8 21 20 +16 4 37 34 +6 2 40 5 +31 1 37 18 +22 17 42 20 +20 23 27 23 +38 21 40 36 +12 32 48 36 +37 0 49 17 +11 34 14 35 +40 31 45 34 +32 6 44 22 +13 27 41 31 +13 6 14 34 +7 22 10 24 +41 9 49 30 +31 21 39 22 +0 5 26 8 +5 23 22 28 +50 1 51 13 +49 35 50 36 +8 31 27 34 +43 4 49 14 +6 21 27 28 +35 2 38 33 +3 19 9 35 +25 11 28 21 +16 8 28 33 +19 35 35 36 +45 30 48 31 +6 31 48 32 +47 4 49 11 +9 25 18 28 +4 0 6 6 +13 26 51 31 +2 33 10 35 +14 28 20 30 +1 32 49 35 +24 19 49 21 +28 1 41 16 +27 2 46 33 +4 8 34 12 +40 28 40 31 +21 31 25 31 +26 10 28 11 +19 3 51 16 +46 36 51 36 +6 14 36 16 +51 26 51 26 +22 25 46 30 +19 22 19 35 +48 5 50 7 +44 28 51 28 +11 29 26 30 +51 19 51 20 +16 18 42 33 +44 13 44 28 +27 30 36 33 +5 25 47 28 +35 27 41 30 +51 11 51 12 +2 32 11 36 +32 20 47 23 +11 13 38 17 +3 11 29 13 +2 0 15 9 +14 34 27 34 +47 19 47 33 +27 11 43 11 +31 18 38 32 +12 17 18 20 +37 15 47 34 +3 9 23 27 +11 22 17 27 +42 12 44 20 +43 11 48 23 +8 30 19 30 +2 29 30 29 +19 17 30 26 +12 30 47 33 +24 24 35 26 +22 3 25 32 +46 13 49 14 +19 20 22 22 +3 2 29 3 +28 3 31 35 +25 11 50 25 +44 14 46 20 +22 18 24 25 +4 10 47 18 +13 21 44 34 +31 8 31 18 +3 19 46 34 +27 0 40 33 +15 35 43 35 +7 22 39 30 +2 8 31 15 +12 12 32 16 +47 6 47 16 +32 12 51 13 +9 36 21 36 +10 2 25 17 +40 24 40 36 +27 17 35 30 +43 13 47 28 +50 20 50 36 +41 10 47 10 +1 23 11 26 +3 5 41 8 +34 29 34 30 +24 12 39 26 +24 28 29 32 +38 26 49 31 +35 21 45 31 +22 23 27 23 +39 24 39 33 +31 11 35 30 +41 9 43 28 +28 23 37 35 +44 10 47 18 +29 21 32 22 +50 7 50 17 +38 33 49 33 +37 17 42 22 +17 4 42 21 +38 15 41 20 +3 28 35 31 +25 36 42 36 +34 9 39 32 +3 20 30 34 +14 14 24 28 +19 0 34 15 +3 31 34 35 +17 7 42 20 +9 7 16 29 +50 32 51 32 +1 8 7 25 +46 3 49 34 +25 17 51 24 +25 18 50 20 +3 17 3 27 +31 27 49 35 +51 31 51 32 +48 29 48 29 +40 12 47 12 +4 2 31 23 +3 2 29 6 +28 7 33 36 +17 15 32 25 +3 20 28 33 +31 34 35 34 +42 33 51 36 +33 8 42 14 +28 27 46 31 +17 26 26 36 +51 16 51 17 +31 7 33 10 +45 25 50 35 +36 33 41 36 +12 33 18 35 +4 33 34 36 +47 33 48 34 +41 7 50 13 +30 25 42 36 +47 30 47 30 +14 0 32 1 +11 21 11 27 +27 28 44 28 +7 11 17 15 +4 13 22 30 +34 23 37 36 +18 15 48 31 +1 18 23 36 +5 5 50 36 +50 27 50 36 +5 4 29 35 +24 9 45 26 +11 16 21 28 +21 21 33 23 +38 9 47 25 +39 31 46 33 +46 10 50 29 +32 18 44 23 +8 26 25 31 +50 29 50 36 +4 4 49 12 +48 11 49 36 +10 0 36 20 +39 23 49 26 +10 13 36 35 +50 24 50 33 +0 4 29 31 +50 11 50 16 +8 9 40 22 +30 11 31 30 +31 0 43 2 +36 12 45 22 +20 7 32 27 +26 10 36 10 +32 7 35 30 +19 28 44 32 +46 22 49 30 +19 15 26 17 +12 25 34 35 +47 28 49 32 +36 10 43 28 +46 24 46 36 +16 25 21 34 +25 12 27 18 +23 36 37 36 +20 31 50 33 +5 33 23 36 +2 26 34 36 +35 33 42 34 +34 23 49 35 +4 16 41 35 +4 5 44 16 +5 23 18 33 +24 36 24 36 +10 30 22 30 +40 33 43 34 +19 27 37 34 +48 18 49 25 +41 10 48 31 +9 10 29 19 +10 20 29 28 +28 24 31 35 +36 32 42 33 +50 6 50 15 +47 9 47 21 +15 6 45 11 +22 32 34 35 +19 1 31 26 +38 5 40 26 +14 26 18 28 +14 28 42 31 +22 18 29 18 +32 1 47 26 +0 19 21 36 +51 35 51 36 +43 1 50 3 +51 21 51 27 +40 6 47 36 +33 31 44 35 +3 32 28 34 +24 12 38 30 +16 23 23 34 +1 4 15 8 +51 28 51 30 +43 7 47 22 +30 1 51 2 +40 8 47 33 +9 18 18 28 +18 24 22 36 +12 33 24 33 +11 19 21 29 +29 12 50 34 +13 23 48 25 +14 9 44 12 +19 7 37 30 +1 33 25 34 +18 16 23 30 +8 36 10 36 +29 8 42 18 +9 1 33 35 +6 3 31 15 +22 23 36 33 +42 13 45 14 +22 14 42 30 +13 11 43 27 +46 36 47 36 +15 0 28 8 +9 33 32 35 +13 27 45 31 +33 22 46 25 +50 29 50 35 +24 16 32 23 +42 8 45 22 +28 20 36 35 +6 17 40 19 +19 5 31 36 +26 24 50 31 +16 19 36 20 +2 3 33 30 +8 20 25 28 +41 2 47 26 +49 35 51 36 +29 32 37 36 +51 8 51 21 +30 16 33 36 +38 1 46 22 +38 15 41 31 +13 33 18 36 +51 23 51 32 +46 35 50 36 +1 23 34 34 +15 7 28 34 +7 3 48 14 +23 15 46 36 +15 34 20 36 +39 13 45 17 +43 36 43 36 +26 28 49 30 +37 20 50 32 +29 28 48 34 +31 4 46 10 +23 1 29 16 +4 22 27 30 +15 33 49 34 +5 26 8 33 +5 34 27 36 +1 35 9 36 +12 28 39 29 +34 34 35 35 +15 14 49 30 +17 2 36 7 +19 18 40 19 +50 6 50 21 +35 21 46 24 +9 17 39 17 +13 19 39 20 +43 21 44 36 +42 3 45 15 +15 24 17 35 +50 16 50 27 +9 28 44 30 +29 30 32 33 +14 19 28 29 +39 11 46 16 +10 1 17 3 +13 15 22 27 +0 29 1 29 +13 18 44 35 +46 35 46 35 +30 28 35 34 +27 24 35 25 +42 36 44 36 +23 8 48 14 +22 7 50 30 +39 20 50 23 +2 4 35 17 +22 17 40 19 +46 7 50 28 +44 34 44 35 +14 4 47 4 +27 34 34 36 +31 23 40 29 +5 10 10 26 +36 22 43 26 +11 20 30 21 +10 31 16 31 +18 35 32 35 +12 22 22 24 +49 8 51 8 +16 10 45 30 +24 22 44 34 +27 21 31 26 +8 26 22 31 +41 30 44 33 +40 22 51 23 +19 20 20 20 +41 30 44 32 +31 10 47 28 +23 1 33 18 +48 23 51 32 +26 18 26 36 +48 15 50 24 +10 15 16 18 +32 6 36 25 +0 35 39 36 +10 13 45 21 +51 13 51 26 +46 7 48 32 +23 35 41 35 +45 10 48 23 +5 6 19 13 +25 11 34 13 +33 32 44 36 +45 30 51 34 +34 0 36 26 +50 8 50 8 +34 1 35 25 +38 23 45 35 +28 17 40 22 +40 26 44 32 +32 23 46 32 +6 11 16 30 +22 11 48 15 +6 8 43 20 +23 26 39 30 +34 11 39 34 +43 12 46 21 +9 17 40 25 +1 11 38 23 +31 10 41 10 +39 27 49 36 +16 34 44 36 +19 18 39 21 +30 8 44 13 +47 19 49 19 +50 15 50 16 +25 21 42 25 +35 7 50 36 +12 32 18 36 +36 23 47 23 +13 17 24 31 +41 31 47 34 +2 24 19 29 +37 21 43 23 +48 11 50 22 +7 14 27 34 +17 4 29 20 +8 22 17 22 +50 12 50 19 +39 0 50 1 +47 1 49 27 +46 36 47 36 +4 1 44 4 +2 32 22 32 +26 19 33 25 +22 2 26 12 +8 26 31 30 +41 10 48 10 +39 23 45 26 +35 27 43 32 +23 16 44 26 +44 5 44 7 +12 12 45 21 +29 31 38 31 +21 31 32 32 +17 11 44 34 +4 16 51 36 +30 32 40 36 +32 36 41 36 +42 14 44 21 +41 15 50 17 +6 33 32 33 +20 33 40 33 +22 7 41 18 +1 32 44 36 +34 24 35 28 +11 32 45 36 +2 9 31 25 +20 35 45 35 +44 8 46 33 +18 33 31 36 +17 33 46 35 +46 15 50 30 +4 31 27 31 +29 0 37 19 +42 8 49 9 +14 25 51 35 +23 13 50 16 +50 21 51 31 +4 26 31 32 +44 28 49 34 +3 24 42 28 +13 17 21 35 +14 27 32 33 +25 30 45 30 +12 8 13 31 +16 30 20 31 +50 20 50 28 +2 18 20 20 +23 14 38 27 +24 2 42 11 +9 31 47 31 +8 16 38 25 +1 18 20 19 +5 28 10 28 +27 0 45 14 +17 31 36 34 +8 1 47 35 +24 27 29 35 +35 3 47 23 +16 34 51 36 +0 8 3 12 +4 24 25 35 +12 14 47 21 +51 0 51 2 +19 30 26 31 +31 14 37 28 +28 25 43 36 +48 17 50 18 +37 9 45 19 +41 6 43 21 +24 8 44 19 +30 24 40 25 +43 10 47 21 +45 10 47 31 +33 20 43 22 +36 0 41 1 +23 8 49 21 +16 34 48 35 +19 0 21 12 +6 28 50 36 +13 2 35 35 +20 26 24 30 +45 9 51 9 +32 10 38 22 +14 32 49 36 +30 4 49 26 +18 35 20 35 +21 25 40 35 +11 35 36 36 +18 18 36 21 +32 7 33 22 +21 29 36 33 +34 1 36 8 +34 33 45 35 +20 12 30 19 +9 7 46 26 +39 29 46 29 +22 32 30 36 +43 12 48 31 +38 23 46 36 +20 6 38 19 +24 16 46 17 +37 5 49 33 +5 28 18 28 +1 5 6 14 +33 14 36 20 +0 3 24 33 +8 22 30 28 +47 25 47 25 +41 1 51 9 +18 35 27 35 +38 26 41 36 +43 28 48 29 +50 8 51 30 +26 9 50 15 +25 14 33 26 +43 35 50 36 +20 24 46 31 +18 21 21 28 +31 3 34 22 +35 28 46 29 +49 25 51 33 +50 23 50 34 +43 7 48 34 +17 6 31 29 +18 17 19 34 +21 16 44 24 +12 14 18 18 +40 16 46 21 +15 34 21 35 +38 24 43 24 +2 21 8 30 +16 10 33 30 +49 23 49 36 +31 6 38 11 +45 28 47 32 +31 26 41 35 +50 15 50 31 +1 14 8 23 +16 25 36 36 +16 11 40 11 +51 17 51 25 +41 27 41 35 +3 1 14 2 +11 35 19 35 +5 2 5 11 +8 7 22 34 +47 18 51 31 +21 16 46 17 +48 2 51 8 +22 11 51 11 +9 29 31 30 +12 3 34 12 +33 36 45 36 +18 34 39 36 +11 23 35 33 +8 4 30 36 +18 34 26 34 +19 0 44 7 +8 12 32 29 +23 24 37 30 +36 18 37 31 +47 5 51 10 +22 16 40 16 +0 28 40 32 +39 9 47 15 +10 34 27 36 +19 6 37 32 +7 16 19 27 +49 34 49 35 +31 29 42 29 +26 35 40 36 +42 14 49 26 +14 17 15 33 +25 23 26 33 +38 16 48 36 +12 29 13 35 +32 33 47 36 +31 27 31 29 +34 23 49 36 +45 7 46 21 +20 8 30 11 +28 16 50 29 +25 7 42 22 +38 24 48 34 +42 17 49 24 +42 5 42 25 +43 7 46 24 +37 27 51 30 +12 32 17 33 +2 26 2 27 +21 2 42 32 +30 11 39 24 +2 16 2 17 +4 10 4 12 +48 19 49 29 +34 29 45 36 +6 34 44 36 +7 14 22 26 +29 10 46 25 +31 18 47 33 +12 6 26 32 +26 20 46 20 +1 18 39 23 +5 0 32 32 +2 6 45 23 +11 24 40 34 +45 0 50 14 +29 27 51 27 +25 32 47 34 +31 6 47 31 +38 33 38 35 +9 26 13 27 +1 1 8 33 +31 33 40 34 +42 1 51 34 +9 35 29 36 +0 16 44 34 +51 22 51 31 +44 6 51 28 +7 5 48 28 +10 32 20 32 +10 9 16 32 +22 26 26 30 +2 5 45 22 +21 14 24 36 +27 19 37 26 +6 32 37 35 +49 15 49 33 +22 8 26 12 +16 20 27 24 +12 34 20 36 +45 2 48 6 +49 24 51 26 +34 28 40 30 +8 0 21 5 +45 23 49 31 +27 8 36 30 +1 29 30 35 +41 7 44 10 +4 24 25 32 +19 23 28 31 +48 29 48 36 +31 0 51 5 +47 17 50 25 +19 29 23 34 +10 27 13 27 +39 28 41 36 +13 17 27 22 +15 7 24 23 +41 20 46 24 +38 24 47 34 +49 31 50 34 +34 5 50 36 +38 18 42 31 +21 34 28 35 +35 36 45 36 +25 19 42 27 +34 16 47 23 +10 0 30 15 +45 19 48 21 +10 0 17 11 +34 14 43 30 +20 1 41 30 +39 11 42 33 +30 1 48 24 +50 35 50 35 +21 35 35 36 +14 29 42 31 +13 19 46 33 +29 25 48 33 +51 12 51 19 +40 24 51 32 +17 2 20 2 +34 10 44 34 +29 15 33 19 +9 21 40 27 +43 35 51 35 +15 9 43 9 +18 13 34 18 +50 2 50 5 +3 7 6 36 +9 2 11 4 +49 5 50 23 +9 33 36 36 +50 9 50 20 +24 19 47 21 +41 31 49 33 +18 12 48 33 +10 2 12 22 +31 15 50 25 +38 22 48 33 +50 23 51 34 +28 19 46 20 +41 19 45 34 +25 4 36 9 +7 10 27 18 +20 16 48 28 +4 5 22 12 +3 14 35 18 +0 35 29 36 +24 35 37 35 +37 0 42 26 +29 32 47 33 +17 21 43 22 +41 25 45 29 +29 34 37 35 +48 16 51 18 +36 33 36 34 +23 16 33 18 +41 27 43 27 +1 22 44 25 +0 31 30 32 +35 27 44 30 +45 2 49 18 +26 10 36 24 +41 21 47 22 +28 29 50 29 +23 9 49 22 +46 18 50 33 +45 26 46 26 +12 12 28 13 +4 0 14 13 +39 12 41 26 +20 6 22 25 +43 12 51 19 +41 25 42 25 +51 8 51 13 +43 33 46 35 +40 18 46 31 +3 2 17 4 +14 25 33 35 +40 21 49 34 +28 15 34 21 +23 1 36 15 +8 19 30 29 +38 7 49 19 +5 28 36 31 +21 14 26 34 +8 20 31 34 +25 34 45 35 +40 33 45 34 +31 32 36 35 +14 22 30 33 +11 25 21 27 +29 4 50 31 +42 8 47 30 +7 7 12 33 +19 36 30 36 +22 11 29 25 +7 28 28 35 +8 23 28 23 +49 6 51 32 +44 29 44 33 +3 11 43 14 +38 26 43 27 +35 11 50 26 +23 2 34 7 +22 4 23 23 +10 16 41 24 +28 22 31 29 +48 5 50 32 +27 21 31 34 +33 33 50 33 +36 7 38 17 +37 29 37 29 +25 4 43 35 +5 36 48 36 +37 27 43 31 +43 7 44 31 +50 14 51 27 +29 17 51 31 +2 5 20 20 +10 17 49 35 +19 35 28 36 +19 25 50 33 +31 11 50 36 +48 15 49 21 +33 31 36 31 +45 20 47 22 +46 8 51 35 +10 26 12 28 +40 34 41 35 +31 24 35 24 +38 22 51 26 +20 28 49 33 +6 20 31 28 +5 14 41 21 +51 31 51 36 +47 30 50 35 +33 20 51 35 +14 16 48 19 +23 34 28 35 +22 32 44 34 +28 15 40 19 +26 18 41 34 +17 10 39 11 +27 13 51 21 +40 33 46 33 +26 3 47 20 +5 11 16 20 +2 32 25 33 +16 30 38 32 +23 31 49 36 +20 24 21 29 +42 30 46 35 +0 24 12 25 +34 35 41 35 +36 36 37 36 +16 34 36 35 +28 36 45 36 +16 16 49 26 +9 20 18 36 +18 31 47 34 +42 30 47 36 +50 35 50 35 +41 18 48 18 +5 4 22 15 +19 2 31 17 +2 18 24 34 +51 34 51 35 +17 11 48 13 +0 31 11 35 +35 36 50 36 +2 34 47 34 +24 35 36 35 +45 31 47 34 +0 6 46 36 +35 33 47 34 +10 23 18 23 +5 25 17 36 +44 30 50 31 +38 13 44 32 +5 2 28 32 +3 13 7 19 +14 20 41 24 +28 12 39 24 +14 29 39 35 +21 10 45 23 +22 30 39 32 +42 28 51 34 +49 12 49 23 +0 6 24 24 +32 36 51 36 +6 26 11 28 +44 15 51 15 +25 13 36 16 +23 34 38 34 +4 36 40 36 +19 26 44 31 +21 20 27 33 +7 26 22 29 +37 16 45 16 +4 14 5 15 +32 4 33 6 +37 18 47 32 +19 19 38 23 +23 24 41 24 +16 33 30 34 +38 23 47 23 +30 13 47 28 +50 32 50 36 +10 4 17 9 +16 21 48 26 +31 30 31 30 +22 24 35 30 +15 25 31 35 +10 33 33 33 +8 9 46 22 +35 34 46 34 +20 4 43 4 +50 23 51 29 +17 6 48 15 +3 26 23 31 +6 17 21 19 +6 30 48 35 +27 19 46 28 +18 18 45 18 +21 31 40 32 +9 26 36 32 +24 32 50 33 +30 18 43 19 +15 23 27 25 +30 17 36 20 +36 30 49 30 +28 35 39 36 +13 8 39 32 +44 25 46 25 +12 29 14 35 +40 4 46 31 +40 20 44 31 +38 12 44 22 +46 36 48 36 +19 36 34 36 +1 20 22 35 +32 17 47 19 +22 14 22 21 +20 20 46 30 +32 3 51 7 +27 36 46 36 +5 35 30 35 +29 18 34 19 +44 8 44 32 +40 31 43 34 +21 11 47 11 +10 13 27 22 +32 21 36 35 +20 17 46 27 +6 4 47 11 +50 29 51 32 +18 27 51 31 +48 21 49 25 +33 11 51 29 +6 25 28 34 +43 9 46 35 +33 5 48 21 +48 31 48 31 +4 18 38 33 +35 10 37 32 +20 22 35 26 +27 7 34 20 +25 12 46 14 +1 15 18 34 +31 36 47 36 +23 13 49 19 +33 8 38 24 +24 23 28 27 +33 7 47 35 +2 34 24 34 +10 23 44 23 +50 8 50 21 +45 18 46 25 +12 10 12 22 +9 14 50 14 +20 19 26 19 +50 7 50 26 +38 15 39 26 +30 7 30 23 +15 13 28 20 +23 7 24 15 +2 13 10 20 +10 28 44 29 +20 19 42 23 +36 1 40 23 +32 6 50 16 +11 8 11 11 +47 18 51 36 +34 6 49 10 +21 3 42 24 +6 26 6 28 +43 19 49 26 +34 14 36 21 +46 1 48 6 +16 18 28 20 +43 8 47 12 +33 23 45 36 +49 10 50 31 +8 4 51 7 +17 23 51 26 +8 8 12 12 +23 34 25 36 +22 30 37 32 +13 16 34 26 +20 33 44 33 +19 26 26 29 +45 19 51 22 +14 2 35 25 +10 26 44 27 +16 22 33 36 +31 16 48 27 +3 19 20 30 +47 32 47 34 +42 27 45 28 +16 27 23 31 +7 33 27 34 +41 27 43 35 +19 19 49 33 +14 21 14 21 +9 8 43 18 +11 8 29 13 +35 35 47 35 +37 3 45 19 +23 11 23 28 +48 26 51 35 +19 22 42 24 +23 31 30 31 +13 32 42 33 +7 1 43 15 +28 21 41 22 +16 34 47 36 +18 10 18 20 +15 32 22 34 +16 31 38 36 +7 12 8 35 +13 0 41 19 +28 34 47 35 +19 36 44 36 +46 4 50 16 +49 14 51 19 +31 18 37 30 +35 36 44 36 +33 23 48 24 +45 27 45 31 +48 17 51 25 +24 13 38 16 +42 6 42 22 +35 34 37 36 +42 7 48 35 +15 32 25 33 +33 16 39 23 +27 20 35 35 +26 16 40 34 +46 23 50 32 +29 32 34 33 +24 9 36 14 +27 10 28 10 +40 7 50 14 +7 24 17 25 +5 0 30 14 +23 9 37 9 +41 12 51 26 +17 20 20 27 +24 31 38 34 +11 8 17 21 +27 31 46 32 +0 26 3 33 +46 8 51 20 +25 36 25 36 +5 12 10 29 +41 3 45 5 +24 34 50 36 +32 23 34 29 +51 29 51 33 +47 2 50 16 +23 34 33 34 +7 28 23 35 +42 4 45 30 +42 27 43 32 +40 6 48 9 +5 25 35 33 +36 3 40 32 +29 11 42 19 +3 12 25 15 +41 32 46 33 +37 9 37 30 +46 23 51 29 +42 12 45 17 +47 33 49 34 +43 32 44 35 +41 16 51 24 +6 27 24 28 +44 13 46 20 +34 17 42 17 +32 32 38 36 +24 23 33 29 +37 27 41 33 +47 5 51 7 +51 22 51 30 +41 19 45 35 +35 1 50 25 +19 32 21 35 +40 35 50 35 +41 22 51 26 +31 17 39 24 +48 28 48 32 +43 21 46 21 +30 19 44 22 +26 4 26 9 +30 2 46 26 +34 36 44 36 +1 23 24 30 +41 26 50 26 +7 11 7 11 +30 15 48 16 +11 10 20 30 +21 7 40 15 +46 12 46 28 +47 36 51 36 +5 34 42 36 +20 35 21 35 +34 6 34 22 +47 2 51 35 +4 20 30 32 +41 16 46 27 +44 2 51 32 +35 29 42 29 +20 10 21 24 +39 4 39 33 +16 17 39 21 +39 5 47 35 +8 16 9 33 +22 34 22 35 +3 17 13 27 +12 13 44 22 +19 26 48 27 +34 15 49 29 +18 28 22 29 +40 3 44 3 +11 2 43 28 +26 0 50 29 +39 3 42 11 +48 27 48 27 +28 0 39 24 +10 34 23 34 +30 35 49 36 +48 12 49 20 +13 3 24 29 +51 20 51 22 +28 11 37 26 +2 15 8 32 +13 23 14 29 +22 32 42 35 +35 33 50 36 +31 8 35 26 +3 20 41 20 +32 7 50 33 +27 21 27 24 +23 20 46 20 +46 5 51 8 +42 2 44 4 +37 25 41 36 +27 36 33 36 +24 24 49 27 +9 13 19 35 +51 31 51 36 +21 31 32 35 +21 11 29 19 +23 21 45 23 +13 33 36 34 +50 33 51 34 +4 8 33 33 +31 26 38 28 +8 11 22 30 +42 12 48 15 +12 8 51 33 +48 3 48 36 +38 34 43 34 +51 24 51 31 +32 0 38 34 +25 12 49 21 +11 26 20 29 +34 32 36 36 +19 16 29 35 +1 36 4 36 +8 31 41 34 +11 1 51 14 +34 14 47 29 +32 26 47 35 +11 34 28 35 +40 26 51 30 +44 32 51 35 +11 24 13 32 +44 9 51 13 +37 0 49 25 +41 30 49 35 +14 1 40 23 +0 32 41 32 +44 23 48 34 +29 25 35 34 +4 11 13 13 +9 1 15 32 +49 17 50 21 +14 25 19 34 +5 4 14 32 +35 7 50 25 +38 8 50 22 +37 36 49 36 +15 36 24 36 +39 36 45 36 +51 21 51 35 +27 13 46 17 +29 20 32 27 +3 13 31 35 +7 22 45 32 +45 12 45 36 +41 13 45 16 +35 7 38 13 +16 28 31 30 +51 21 51 30 +4 2 9 19 +48 7 50 9 +30 19 37 27 +4 5 50 26 +20 36 31 36 +28 12 33 35 +19 27 25 34 +39 10 45 24 +44 15 46 30 +51 15 51 35 +31 9 41 28 +46 5 50 14 +3 14 18 17 +14 24 30 29 +49 3 51 18 +13 4 14 36 +9 18 38 35 +51 9 51 12 +46 4 51 35 +47 19 51 26 +14 36 38 36 +9 11 19 26 +17 25 39 34 +32 31 43 36 +17 0 29 8 +32 0 49 10 +36 17 45 26 +0 11 36 17 +2 16 22 20 +10 4 27 27 +51 25 51 28 +33 22 45 35 +26 35 49 36 +18 8 41 28 +21 9 36 10 +24 31 50 36 +26 4 30 12 +32 14 43 15 +11 30 17 35 +30 25 42 29 +27 7 39 25 +38 7 40 24 +19 36 47 36 +43 36 49 36 +43 6 44 13 +4 32 8 33 +18 25 48 36 +14 17 42 25 +21 12 39 14 +11 13 40 29 +36 17 44 25 +38 34 47 35 +35 5 41 32 +45 24 45 31 +27 34 45 34 +33 26 51 35 +15 14 45 15 +2 34 14 35 +39 15 49 33 +12 25 42 26 +4 36 45 36 +31 1 37 17 +46 25 49 27 +28 12 34 34 +1 16 26 19 +25 29 34 34 +33 15 45 15 +41 3 51 6 +10 5 22 9 +50 10 51 14 +24 14 35 35 +38 12 41 27 +15 18 48 18 +6 2 13 16 +12 3 47 14 +34 9 35 16 +19 4 37 17 +39 20 45 25 +20 17 31 31 +47 27 47 28 +6 36 16 36 +41 21 47 32 +35 8 46 15 +50 4 50 6 +25 5 28 32 +41 11 42 18 +34 29 40 36 +36 1 36 17 +37 16 51 21 +44 29 44 30 +35 11 44 18 +33 29 39 36 +19 24 34 25 +28 4 45 25 +50 9 50 34 +32 18 40 25 +13 24 47 32 +9 4 48 10 +26 33 45 34 +0 28 25 30 +22 14 51 33 +21 18 24 33 +17 3 51 34 +15 19 40 33 +48 35 49 36 +0 20 44 21 +31 27 37 31 +50 32 51 32 +17 21 17 22 +51 29 51 32 +31 22 32 34 +49 32 51 34 +16 31 18 31 +51 15 51 33 +38 22 43 33 +19 28 30 32 +16 18 25 30 +42 34 49 35 +6 19 30 22 +19 14 39 29 +5 22 11 32 +4 19 11 32 +44 1 47 15 +7 9 37 24 +3 34 41 34 +47 21 47 26 +48 3 51 16 +32 27 43 32 +17 24 24 26 +15 10 32 13 +20 36 27 36 +51 19 51 36 +43 11 51 30 +41 4 51 21 +20 16 25 29 +45 11 45 30 +22 25 22 31 +2 4 23 11 +42 33 49 33 +34 19 43 31 +43 35 43 36 +32 3 35 3 +2 5 4 32 +25 20 35 21 +39 25 40 34 +19 13 28 32 +39 20 48 28 +1 7 24 10 +24 31 51 36 +32 15 49 26 +23 16 24 20 +32 28 49 36 +21 20 47 21 +29 20 34 20 +25 31 25 33 +19 15 19 16 +32 17 43 18 +34 18 37 19 +50 25 51 32 +18 35 34 35 +31 28 32 28 +25 16 30 19 +27 34 39 36 +20 3 39 28 +30 36 38 36 +5 25 21 26 +44 3 50 12 +28 8 48 12 +21 28 25 30 +21 9 27 9 +14 27 31 32 +36 18 40 19 +19 13 21 24 +26 11 31 17 +23 6 43 28 +13 16 24 36 +32 33 45 35 +40 33 43 33 +32 33 37 35 +28 1 46 1 +5 12 5 25 +12 9 26 9 +45 0 51 0 +25 18 27 20 +23 1 28 16 +7 1 40 14 +0 25 32 32 +11 33 30 33 +19 15 49 36 +35 1 41 15 +18 34 35 36 +37 32 37 33 +34 30 34 36 +40 30 43 33 +31 32 42 32 +13 13 41 32 +5 4 25 16 +47 1 50 33 +48 6 48 28 +4 25 21 26 +45 10 49 27 +34 16 44 20 +11 19 44 19 +35 16 41 32 +19 18 23 36 +33 20 44 35 +37 36 43 36 +2 17 14 34 +17 31 28 34 +17 19 28 28 +47 21 49 33 +44 22 49 24 +34 22 49 31 +16 35 36 36 +32 6 47 33 +24 10 30 18 +9 18 43 31 +34 6 35 17 +40 15 49 27 +32 2 33 31 +30 16 42 36 +32 0 44 3 +30 3 39 10 +33 18 43 22 +25 5 30 6 +44 18 44 20 +28 3 44 12 +12 28 46 35 +45 15 50 36 +18 10 26 17 +10 36 10 36 +13 24 22 36 +30 34 37 36 +39 29 45 31 +2 5 15 32 +34 3 39 24 +1 3 12 11 +29 11 38 11 +28 31 35 33 +41 25 43 30 +47 0 47 8 +32 27 33 35 +50 32 51 35 +37 21 45 34 +25 6 28 32 +45 35 45 35 +13 5 37 9 +31 13 36 22 +12 22 36 26 +50 26 50 32 +9 33 36 34 +18 5 40 35 +38 23 42 34 +27 35 37 36 +39 25 45 26 +46 15 50 33 +30 7 30 13 +37 23 49 33 +2 8 14 16 +19 30 27 30 +47 26 49 34 +50 33 50 35 +45 27 47 29 +7 29 15 31 +28 29 39 34 +30 6 36 23 +5 19 42 32 +23 12 30 33 +32 20 37 27 +14 16 21 22 +8 11 38 14 +12 28 25 30 +6 24 28 29 +23 22 31 23 +11 9 31 16 +11 10 31 28 +45 25 45 25 +31 14 51 33 +42 9 43 36 +36 2 47 8 +41 18 45 18 +39 6 48 9 +15 17 30 36 +17 9 21 35 +51 1 51 27 +10 34 42 36 +30 12 49 34 +19 24 40 27 +20 11 27 19 +3 16 40 16 +9 15 47 32 +15 9 40 21 +49 35 50 35 +46 13 46 13 +24 13 39 29 +10 14 12 25 +11 36 16 36 +49 25 51 28 +41 32 50 36 +41 8 43 16 +39 36 51 36 +32 25 39 35 +41 21 48 23 +16 9 23 29 +7 24 25 36 +44 14 51 26 +36 1 46 25 +49 12 49 33 +22 33 47 36 +27 5 36 33 +0 22 50 35 +34 17 49 18 +6 7 49 9 +0 27 12 27 +41 36 46 36 +17 32 34 33 +41 29 46 29 +11 31 17 34 +5 22 29 26 +38 18 42 24 +10 34 12 36 +46 23 49 30 +17 20 24 22 +5 3 42 30 +0 36 49 36 +36 7 36 18 +5 13 26 25 +34 27 36 35 +47 5 47 31 +37 7 37 36 +27 4 50 5 +31 25 48 31 +24 26 27 34 +23 10 43 30 +51 7 51 24 +41 7 41 26 +12 13 33 16 +34 30 46 34 +51 16 51 19 +45 25 50 35 +8 8 23 31 +15 10 44 31 +47 30 51 34 +4 16 32 30 +45 17 51 20 +31 30 45 31 +49 34 49 34 +7 18 30 22 +32 21 50 28 +44 5 44 26 +38 13 41 29 +2 24 36 34 +10 4 25 22 +2 4 14 13 +2 24 37 27 +19 32 30 32 +29 4 36 14 +19 9 20 12 +7 0 23 31 +51 33 51 33 +4 14 49 14 +31 7 36 26 +17 5 31 29 +35 14 50 30 +17 8 43 8 +31 12 50 25 +50 31 51 36 +32 11 44 18 +46 6 51 9 +28 5 37 35 +22 24 28 27 +38 14 45 28 +27 1 41 14 +48 2 50 33 +3 17 51 23 +12 12 51 23 +0 36 27 36 +19 36 33 36 +50 23 50 23 +33 36 47 36 +32 3 39 30 +27 36 40 36 +43 32 51 35 +3 1 38 1 +51 23 51 25 +11 13 23 29 +28 18 41 22 +11 0 26 26 +46 30 46 32 +47 9 49 17 +5 21 32 30 +21 29 34 35 +46 29 51 33 +37 15 42 30 +40 31 48 35 +48 0 49 8 +28 6 44 32 +4 13 38 14 +6 36 26 36 +27 16 45 19 +13 17 30 30 +20 26 26 28 +7 10 36 33 +32 5 50 31 +50 4 51 24 +6 31 6 33 +28 5 38 22 +28 5 36 32 +9 20 44 32 +8 22 20 26 +12 12 50 26 +40 2 49 20 +13 5 47 5 +26 6 34 29 +41 1 51 27 +29 1 34 26 +37 5 37 7 +22 16 25 19 +3 26 20 34 +11 3 12 5 +16 29 45 32 +43 15 48 19 +5 21 23 21 +28 16 40 19 +49 16 49 29 +32 17 49 23 +12 5 51 18 +5 31 36 36 +28 24 41 25 +22 29 28 30 +42 19 46 27 +23 11 45 20 +49 24 50 33 +8 6 47 31 +40 9 42 12 +7 16 10 25 +35 31 48 33 +46 33 47 34 +2 1 17 26 +6 7 30 36 +26 6 46 16 +34 35 41 36 +6 20 19 33 +16 36 51 36 +35 4 48 24 +11 32 45 36 +45 26 49 32 +23 32 27 33 +35 4 41 18 +17 10 24 23 +7 7 31 31 +16 5 23 9 +23 27 48 32 +9 19 29 20 +33 33 48 34 +8 30 8 32 +13 24 41 25 +9 25 34 31 +50 9 50 14 +8 21 24 28 +32 28 46 30 +33 28 45 32 +8 28 13 33 +1 21 14 29 +51 31 51 32 +38 7 48 28 +31 1 38 6 +3 13 36 14 +5 9 44 17 +46 10 51 16 +34 13 36 32 +36 30 45 35 +25 24 46 36 +45 3 46 29 +2 19 29 19 +9 17 15 34 +26 2 39 27 +40 33 43 36 +29 31 40 31 +35 11 45 30 +27 23 33 34 +41 12 47 19 +0 31 1 34 +23 16 45 16 +16 4 34 20 +40 15 41 25 +7 30 9 35 +17 21 20 34 +30 10 50 33 +26 13 47 13 +16 3 43 16 +0 4 49 9 +14 8 24 17 +21 19 51 24 +43 20 49 32 +23 20 47 26 +49 28 50 35 +41 25 41 27 +42 11 43 25 +24 21 36 31 +28 3 49 29 +7 32 35 32 +38 16 39 26 +4 23 5 24 +28 11 41 16 +33 34 44 35 +11 30 42 30 +8 28 9 33 +46 2 46 2 +3 1 42 19 +7 25 43 29 +44 34 48 35 +20 0 39 21 +42 25 46 27 +46 20 47 32 +18 26 41 36 +25 0 25 12 +31 21 34 32 +34 22 35 34 +43 0 49 5 +40 23 43 24 +8 35 42 35 +35 6 37 34 +12 19 39 32 +32 16 39 32 +46 29 48 29 +3 29 14 33 +10 19 44 22 +8 2 27 7 +8 27 34 30 +43 22 46 22 +6 14 19 36 +24 5 35 9 +9 30 25 33 +35 5 41 29 +16 35 34 35 +37 23 44 24 +33 19 38 29 +1 2 42 32 +51 22 51 26 +15 29 31 34 +30 32 47 36 +41 27 43 33 +2 14 24 30 +29 26 51 36 +12 9 33 36 +25 6 45 28 +51 8 51 20 +7 27 9 34 +4 18 5 36 +45 14 47 17 +23 29 38 32 +31 7 39 14 +8 7 20 10 +15 5 19 7 +42 3 46 17 +0 28 47 33 +40 16 50 29 +4 15 27 21 +27 20 49 23 +48 9 49 18 +45 31 46 31 +8 28 27 31 +49 27 51 32 +1 29 44 33 +16 34 22 36 +45 35 49 35 +2 4 48 28 +30 11 40 24 +3 15 6 23 +43 27 45 30 +31 8 48 33 +46 28 46 30 +35 27 40 33 +4 24 23 24 +45 12 45 25 +20 16 26 19 +31 4 48 20 +37 1 45 16 +4 10 28 14 +31 28 43 33 +26 9 31 25 +46 30 49 31 +47 22 51 29 +11 9 40 33 +8 12 39 33 +37 20 38 29 +33 4 46 26 +0 24 9 27 +39 35 42 35 +22 9 30 26 +44 20 45 28 +29 36 50 36 +39 32 45 36 +47 4 50 13 +29 0 33 10 +34 25 49 26 +49 35 50 36 +28 21 45 22 +8 27 11 28 +24 14 24 20 +14 1 48 10 +3 6 30 36 +40 36 49 36 +13 10 51 27 +36 34 51 34 +5 21 38 28 +20 4 43 18 +16 23 20 24 +11 27 32 34 +14 0 26 8 +23 19 36 33 +23 29 29 31 +29 5 29 25 +4 29 26 32 +16 13 37 18 +48 24 50 29 +10 3 14 36 +7 22 23 31 +24 33 32 36 +34 31 51 35 +43 30 45 36 +9 36 38 36 +14 7 27 21 +28 13 39 30 +17 12 18 27 +22 18 47 27 +46 28 51 36 +29 26 37 34 +10 5 27 18 +4 3 26 28 +24 19 51 28 +36 0 39 29 +30 33 33 36 +48 31 49 31 +22 18 27 22 +29 29 48 30 +43 4 48 15 +26 4 48 11 +21 13 33 16 +41 24 47 36 +24 1 36 36 +12 22 22 22 +6 25 22 35 +36 33 40 33 +48 32 51 36 +50 30 50 30 +22 26 28 34 +1 13 1 23 +4 26 13 28 +42 8 42 25 +13 18 13 34 +37 13 43 16 +0 5 13 21 +1 28 3 33 +21 30 45 35 +51 18 51 24 +41 33 50 36 +15 31 46 33 +0 2 33 25 +17 28 17 31 +40 23 51 24 +1 7 7 19 +45 29 45 30 +28 30 35 31 +27 33 43 34 +42 0 45 23 +25 18 50 29 +6 36 21 36 +38 22 49 30 +21 31 27 36 +35 15 38 32 +42 21 46 27 +26 3 47 7 +7 17 18 18 +38 24 50 31 +51 6 51 24 +41 34 51 34 +34 21 42 22 +45 14 49 26 +8 7 26 23 +27 11 30 35 +14 11 14 36 +39 7 39 18 +8 11 14 33 +42 29 45 29 +46 30 47 36 +26 1 30 2 +19 1 47 2 +49 31 51 31 +28 14 40 17 +19 8 50 34 +14 27 40 29 +35 31 46 31 +24 27 40 30 +14 29 20 30 +18 35 41 35 +5 26 21 33 +4 22 34 22 +38 8 49 16 +28 13 45 33 +23 16 45 36 +16 0 20 9 +6 20 48 23 +1 31 42 32 +10 13 27 19 +11 18 51 34 +12 4 41 24 +30 25 43 32 +35 6 50 26 +35 5 35 15 +45 1 47 21 +16 32 34 36 +28 13 38 29 +40 13 41 36 +46 11 49 20 +17 14 46 18 +5 32 7 32 +24 16 34 19 +51 6 51 7 +0 26 1 32 +27 10 51 32 +39 11 39 36 +2 32 2 35 +28 10 47 20 +32 34 50 35 +39 10 41 10 +17 22 40 29 +28 3 35 7 +0 9 13 23 +8 32 40 35 +47 1 50 33 +43 8 47 16 +24 6 46 15 +24 4 27 12 +26 29 48 32 +37 6 41 18 +10 28 12 32 +44 7 46 22 +18 3 51 36 +34 28 46 35 +30 2 48 33 +12 21 15 33 +46 21 51 35 +5 3 22 10 +49 13 49 19 +34 16 46 30 +21 4 46 25 +42 26 42 29 +1 9 14 9 +50 6 50 15 +49 33 49 33 +10 14 11 28 +18 2 19 29 +6 21 8 33 +51 35 51 35 +31 5 37 27 +21 5 46 15 +23 16 46 18 +4 29 25 33 +24 24 46 30 +12 12 20 27 +13 12 27 30 +49 20 50 22 +23 24 30 30 +50 8 51 13 +6 30 32 34 +38 27 45 32 +9 9 9 33 +19 0 46 27 +22 17 51 26 +10 6 18 23 +44 32 50 32 +9 28 47 31 +39 23 39 27 +0 11 44 18 +35 12 42 31 +23 15 40 33 +9 23 13 34 +14 11 20 33 +41 11 44 33 +6 1 47 36 +42 8 51 36 +9 19 48 26 +22 12 40 21 +13 34 33 34 +11 27 34 31 +41 19 48 21 +46 13 47 26 +47 20 48 29 +32 26 32 31 +17 13 18 20 +20 15 38 31 +24 26 39 36 +39 31 42 35 +40 3 50 8 +0 4 32 27 +42 5 44 5 +40 22 49 36 +32 28 41 29 +39 6 45 21 +29 11 48 33 +9 35 16 36 +18 14 51 21 +14 3 37 15 +26 27 45 31 +31 12 39 30 +51 24 51 28 +34 32 43 33 +3 27 15 28 +46 31 50 33 +4 20 31 27 +36 10 49 25 +20 3 49 15 +11 5 39 30 +29 12 31 32 +50 25 51 34 +14 5 17 21 +4 12 16 19 +28 32 38 32 +23 2 50 5 +6 24 21 28 +42 1 49 14 +42 0 42 26 +34 15 37 20 +38 10 44 34 +46 4 50 6 +0 36 15 36 +18 33 22 34 +26 13 43 14 +44 29 48 36 +3 31 32 32 +38 14 43 36 +40 30 41 32 +33 6 48 33 +40 0 50 5 +13 4 20 36 +28 31 38 32 +51 7 51 18 +39 6 51 19 +2 7 36 35 +23 4 42 20 +51 27 51 27 +46 5 47 15 +45 36 45 36 +35 19 48 22 +29 22 34 29 +38 14 38 26 +7 17 29 32 +3 14 11 15 +15 35 35 36 +44 12 46 27 +1 10 35 27 +39 22 44 30 +21 23 34 29 +25 25 41 34 +36 12 45 21 +45 3 45 24 +17 23 24 26 +29 8 39 21 +13 19 36 23 +12 1 50 16 +20 32 27 33 +43 9 47 11 +37 8 40 13 +36 0 50 14 +46 14 49 31 +10 28 28 36 +14 1 16 12 +35 7 47 16 +25 4 51 21 +4 32 29 35 +15 14 33 29 +32 14 50 18 +45 30 49 34 +34 14 40 21 +31 30 51 33 +35 30 44 35 +12 2 38 16 +41 22 42 32 +13 29 15 30 +34 34 43 34 +2 6 25 13 +41 19 47 33 +32 28 32 32 +32 21 36 27 +25 16 38 20 +12 0 18 18 +44 25 44 33 +29 16 35 23 +2 9 46 34 +28 6 30 23 +45 24 48 31 +34 0 38 5 +49 4 51 15 +44 0 44 15 +38 27 49 29 +9 35 46 36 +24 4 43 16 +37 20 42 25 +31 34 36 36 +10 9 50 19 +7 36 49 36 +38 27 49 28 +45 28 51 29 +15 1 50 12 +48 0 51 33 +51 35 51 36 +9 33 24 34 +20 31 44 32 +32 30 49 32 +16 24 32 30 +40 14 43 30 +30 18 46 35 +39 21 46 27 +51 28 51 28 +36 20 51 20 +30 12 40 16 +39 11 41 27 +37 26 41 31 +20 28 40 34 +34 0 40 34 +28 11 40 26 +27 25 30 31 +26 14 26 30 +34 4 38 19 +48 29 49 29 +45 17 50 33 +12 2 24 3 +3 35 24 35 +31 9 49 30 +42 15 49 16 +29 18 46 30 +35 34 41 35 +27 2 44 26 +41 29 45 34 +48 29 51 30 +22 6 29 29 +13 19 31 28 +40 5 49 11 +5 11 13 24 +34 26 44 34 +49 15 51 21 +28 8 43 21 +45 33 47 34 +50 12 51 33 +40 13 45 32 +18 13 22 31 +36 28 50 28 +25 27 36 28 +5 6 22 27 +43 24 51 35 +41 0 48 1 +8 25 13 28 +11 10 20 13 +15 9 49 25 +32 28 35 30 +2 28 8 34 +27 1 48 4 +36 32 41 36 +27 23 39 36 +18 3 39 17 +43 16 45 23 +35 23 51 25 +33 30 35 34 +5 11 25 32 +0 9 27 24 +45 12 51 12 +4 20 35 22 +38 24 42 29 +26 10 49 17 +43 23 48 25 +25 14 27 17 +17 33 17 33 +31 2 32 22 +49 9 51 28 +50 31 50 35 +28 6 34 6 +19 27 26 32 +42 14 51 14 +50 2 51 31 +18 34 41 34 +12 10 30 35 +33 11 47 28 +12 6 15 8 +47 22 47 30 +22 15 47 33 +48 13 50 27 +28 20 31 31 +44 19 49 36 +51 17 51 31 +20 21 44 23 +2 14 12 33 +39 16 40 35 +12 7 44 16 +50 20 51 30 +5 36 39 36 +16 32 19 33 +33 16 33 17 +46 10 47 32 +17 27 37 28 +12 36 41 36 +48 6 49 13 +3 3 46 36 +43 20 44 21 +5 33 23 36 +50 2 50 31 +24 27 48 34 +28 9 28 26 +14 33 35 35 +3 1 47 9 +7 26 27 32 +33 21 37 28 +43 26 44 32 +20 4 32 6 +33 8 39 28 +51 10 51 13 +30 21 46 35 +15 1 27 33 +2 27 34 34 +28 29 36 34 +30 6 38 25 +1 1 35 32 +29 22 40 34 +7 6 22 33 +4 34 18 34 +18 29 28 30 +29 30 47 31 +6 2 8 23 +51 3 51 12 +8 33 37 33 +32 2 47 7 +15 3 36 23 +30 9 42 15 +39 3 47 17 +19 16 34 27 +30 19 45 26 +49 7 50 27 +13 35 49 35 +7 23 28 27 +39 31 40 31 +38 35 46 36 +3 26 9 31 +13 1 28 22 +9 12 39 15 +41 22 51 31 +49 0 51 32 +45 1 50 18 +36 17 43 35 +3 28 7 32 +25 9 34 15 +37 0 44 8 +49 21 50 23 +22 5 31 8 +35 22 37 32 +15 17 17 21 +5 25 35 32 +18 0 29 23 +29 27 41 36 +22 27 48 36 +9 14 21 24 +8 18 28 18 +32 28 50 28 +7 7 37 19 +14 14 44 21 +42 12 50 24 +28 35 29 35 +29 13 44 16 +45 28 50 35 +31 10 47 10 +2 21 37 33 +23 36 40 36 +3 13 22 18 +3 17 32 21 +33 25 45 26 +48 1 49 21 +46 17 48 26 +4 27 32 32 +15 29 33 31 +15 30 23 31 +25 29 46 34 +17 36 37 36 +4 2 35 30 +38 33 50 36 +11 21 35 29 +2 13 40 25 +19 2 29 26 +9 24 39 25 +19 0 21 1 +5 5 33 9 +49 11 49 20 +7 35 7 36 +36 15 37 22 +26 20 39 35 +20 3 40 33 +3 6 48 30 +30 22 37 33 +30 12 43 33 +17 36 42 36 +28 5 36 34 +10 23 34 25 +2 23 33 29 +28 8 40 23 +33 26 44 26 +41 7 42 25 +48 11 50 34 +15 23 44 36 +4 1 4 13 +12 23 43 27 +28 34 38 36 +26 29 43 33 +25 5 40 19 +36 20 50 35 +12 14 28 27 +23 24 41 27 +35 24 44 32 +34 34 50 34 +16 9 33 35 +23 11 37 13 +9 15 33 25 +7 17 25 31 +25 18 51 25 +2 14 4 22 +33 30 46 36 +0 8 12 29 +0 13 0 27 +2 35 8 35 +16 18 24 35 +19 21 38 33 +39 27 42 30 +35 3 40 30 +47 31 51 31 +43 19 51 29 +6 27 42 29 +51 30 51 30 +15 32 34 32 +11 3 37 26 +11 35 42 35 +7 0 42 25 +16 10 32 11 +26 35 42 35 +2 11 35 32 +7 17 24 19 +21 14 41 23 +39 23 50 32 +16 29 19 36 +8 10 36 23 +41 9 44 22 +30 2 50 7 +2 36 13 36 +8 22 40 35 +10 26 26 34 +36 33 48 34 +10 33 32 36 +12 31 49 32 +1 36 12 36 +22 33 32 35 +28 6 45 18 +33 1 45 9 +34 31 49 32 +13 23 30 36 +18 15 45 22 +51 6 51 32 +40 14 47 16 +6 29 44 29 +27 4 44 18 +47 7 48 33 +10 14 48 31 +34 5 34 29 +39 19 40 26 +43 28 43 29 +38 17 46 32 +2 3 49 21 +20 13 33 14 +36 28 49 28 +49 4 51 8 +8 12 29 25 +37 35 46 36 +14 30 46 32 +28 2 31 19 +15 34 18 34 +6 36 37 36 +3 30 48 30 +44 7 50 29 +34 22 45 36 +4 16 7 28 +39 0 42 9 +37 26 39 35 +4 28 49 32 +41 2 42 28 +36 17 51 33 +2 10 32 28 +28 31 36 34 +9 16 50 28 +23 18 36 19 +46 16 48 22 +17 10 29 23 +13 7 13 11 +28 10 45 17 +23 34 38 36 +30 0 36 21 +19 33 34 33 +33 4 34 11 +5 33 17 35 +7 20 47 20 +23 36 48 36 +6 11 14 26 +47 29 50 33 +45 26 49 28 +15 5 29 10 +17 5 50 25 +0 25 48 27 +13 12 42 17 +18 29 23 31 +18 19 48 19 +19 19 47 35 +8 3 19 13 +51 1 51 31 +51 27 51 32 +51 13 51 34 +31 10 37 29 +39 7 44 19 +25 10 32 17 +18 26 51 34 +20 25 36 31 +41 13 47 25 +24 8 44 25 +0 11 18 27 +50 26 51 27 +0 18 24 31 +22 12 44 32 +40 29 44 32 +15 7 28 31 +49 5 51 36 +31 0 41 21 +17 9 36 15 +5 36 29 36 +11 8 41 17 +5 21 5 31 +9 33 19 34 +28 33 36 34 +29 29 36 35 +37 21 50 30 +6 18 49 21 +32 1 41 21 +40 8 48 15 +23 12 28 33 +10 15 25 29 +36 1 45 25 +39 28 46 30 +16 20 17 28 +21 21 21 22 +16 5 38 7 +5 29 24 29 +18 8 28 35 +19 30 50 35 +13 18 33 33 +19 23 26 31 +14 12 18 17 +4 24 47 36 +16 13 33 32 +40 4 40 26 +33 33 45 33 +50 1 51 36 +6 13 20 34 +23 5 41 11 +23 33 35 33 +2 31 8 34 +20 5 24 29 +13 22 30 23 +37 19 46 19 +29 19 51 32 +15 21 29 31 +45 25 51 25 +25 36 50 36 +24 3 30 9 +0 3 29 11 +46 16 47 30 +28 28 32 34 +23 27 29 31 +21 19 46 20 +13 17 18 18 +50 26 51 34 +41 1 45 20 +17 16 51 31 +45 21 47 22 +37 12 40 17 +45 32 46 35 +31 25 37 29 +29 4 50 28 +22 36 26 36 +45 6 46 24 +34 3 45 28 +13 34 35 35 +29 21 43 26 +49 22 49 32 +17 8 46 30 +31 0 47 17 +19 18 39 35 +24 11 41 12 +16 16 46 25 +35 23 35 34 +26 36 26 36 +50 36 51 36 +31 20 43 27 +30 0 35 5 +11 8 37 8 +51 17 51 17 +29 7 41 28 +38 33 50 35 +10 26 16 35 +45 8 48 27 +38 9 40 16 +23 11 23 15 +17 18 50 34 +9 23 18 23 +7 23 21 24 +38 1 49 17 +41 4 49 31 +40 8 42 35 +30 36 46 36 +20 20 46 25 +6 16 18 31 +14 28 22 34 +26 22 35 29 +23 15 23 21 +29 33 47 36 +26 4 37 5 +21 33 31 33 +4 22 19 33 +33 9 43 26 +3 35 28 35 +16 23 26 35 +2 4 15 19 +44 10 47 36 +51 19 51 23 +49 30 51 34 +44 19 44 23 +14 9 38 24 +31 22 46 36 +31 15 32 30 +6 16 15 18 +34 15 36 35 +12 19 46 35 +1 25 10 29 +46 27 49 31 +41 15 47 18 +10 17 45 18 +11 24 32 28 +36 0 40 15 +5 17 45 18 +44 33 46 33 +34 17 44 22 +29 6 41 8 +39 36 45 36 +13 4 31 20 +50 23 50 26 +10 25 50 32 +11 29 19 31 +27 33 49 33 +26 29 42 31 +1 24 48 32 +39 17 42 28 +39 3 47 29 +22 27 48 36 +18 30 27 34 +0 9 40 10 +46 8 48 19 +15 15 30 21 +19 18 28 25 +38 34 42 36 +48 18 51 23 +31 32 38 36 +48 31 48 36 +6 7 30 12 +24 19 28 34 +37 5 48 7 +30 22 40 29 +38 27 44 29 +49 30 51 30 +35 13 48 29 +22 1 49 4 +39 24 51 26 +1 7 34 35 +6 8 44 22 +46 3 50 4 +29 4 43 9 +21 33 21 35 +20 7 36 25 +2 22 39 26 +30 3 30 15 +33 23 45 25 +12 24 16 24 +0 16 5 26 +43 25 43 35 +32 15 47 36 +13 19 50 35 +32 36 42 36 +8 31 9 36 +5 24 47 30 +23 8 47 32 +51 36 51 36 +14 18 41 31 +10 18 41 19 +35 9 43 31 +6 11 8 33 +8 6 36 36 +24 26 47 34 +49 3 49 6 +27 25 43 28 +28 36 30 36 +0 36 0 36 +0 16 7 23 +42 7 48 17 +22 7 46 12 +3 1 39 33 +16 35 42 36 +21 15 21 30 +5 5 51 20 +41 15 46 17 +19 1 19 28 +15 10 22 14 +2 17 11 20 +5 22 6 23 +40 5 45 29 +7 0 15 19 +27 4 50 35 +14 20 28 32 +13 14 13 21 +18 27 42 29 +45 11 47 27 +38 7 48 26 +19 6 26 12 +36 5 48 12 +8 33 39 36 +46 31 51 36 +24 0 40 5 +14 22 36 29 +6 36 18 36 +2 21 13 24 +19 7 48 30 +13 7 36 35 +15 29 49 31 +17 8 48 32 +27 22 41 22 +51 13 51 27 +1 27 42 30 +46 31 46 33 +35 27 48 30 +32 14 37 17 +29 19 49 27 +11 12 12 35 +2 36 46 36 +17 21 33 26 +7 3 22 32 +25 4 43 12 +20 13 30 21 +8 9 39 33 +49 3 50 14 +33 30 37 31 +22 3 22 33 +29 5 42 26 +19 4 49 30 +27 30 45 33 +29 25 40 28 +1 6 22 10 +31 23 35 27 +2 24 37 31 +14 16 25 23 +18 34 40 34 +5 5 6 30 +49 31 51 35 +50 36 50 36 +48 8 51 28 +35 25 41 28 +50 24 51 30 +26 11 32 33 +17 23 48 34 +14 15 31 33 +22 6 40 17 +19 11 34 11 +36 27 40 35 +18 34 27 36 +14 21 28 22 +47 0 48 19 +24 22 35 36 +49 20 49 36 +30 8 44 32 +37 15 45 27 +38 33 42 36 +23 2 30 17 +25 19 25 27 +12 10 46 24 +5 17 47 17 +2 8 37 34 +14 28 17 34 +23 33 40 36 +8 31 39 35 +51 12 51 13 +23 15 26 18 +13 2 41 24 +12 2 47 15 +34 34 34 35 +49 20 51 29 +18 27 49 29 +4 25 48 26 +40 20 46 26 +20 6 26 36 +14 32 35 34 +51 31 51 32 +20 32 22 33 +15 1 31 19 +44 2 49 7 +18 12 47 26 +36 32 44 34 +9 7 43 22 +12 33 23 35 +4 8 51 14 +0 14 21 24 +25 8 34 35 +39 35 46 35 +0 30 37 33 +23 36 49 36 +38 13 46 25 +6 17 8 26 +43 17 49 30 +14 8 14 33 +1 4 6 17 +11 18 11 35 +48 36 50 36 +35 18 39 30 +1 7 39 33 +45 20 49 31 +30 30 44 30 +51 7 51 28 +14 21 38 26 +34 20 34 36 +37 10 37 10 +50 24 50 30 +36 16 49 21 +24 5 33 22 +35 6 49 9 +30 24 42 25 +21 15 38 26 +30 27 46 27 +28 24 46 24 +0 9 37 9 +30 18 33 27 +11 0 44 29 +17 6 18 30 +28 19 44 26 +40 1 44 20 +51 17 51 17 +36 32 46 34 +15 16 19 20 +15 21 28 35 +22 34 34 36 +29 12 43 15 +23 25 33 26 +22 30 48 33 +15 19 43 29 +45 3 48 3 +49 16 51 19 +20 12 43 26 +22 13 47 13 +30 27 41 30 +34 33 46 35 +19 10 42 27 +20 32 37 36 +44 31 49 33 +41 33 45 35 +32 4 33 5 +2 16 16 21 +20 2 42 3 +22 36 26 36 +36 12 46 24 +29 15 37 21 +43 6 48 17 +40 27 51 34 +12 28 21 35 +22 15 45 21 +47 2 51 5 +5 6 51 20 +20 27 35 30 +43 25 47 29 +24 30 51 36 +13 23 29 32 +42 32 50 34 +23 20 51 23 +8 16 46 33 +42 17 48 34 +19 32 47 35 +1 4 49 29 +7 11 37 13 +16 24 49 26 +32 2 37 11 +12 30 48 31 +46 32 50 34 +37 10 42 29 +10 24 11 34 +43 15 51 29 +51 34 51 34 +17 6 39 15 +50 6 50 13 +25 31 42 33 +42 14 47 15 +51 28 51 34 +4 3 30 8 +29 6 43 36 +20 1 39 30 +5 15 24 22 +10 2 39 22 +3 22 9 26 +42 9 47 27 +39 23 41 30 +13 21 33 33 +24 23 51 27 +26 31 30 36 +35 28 38 31 +18 20 29 21 +33 22 33 25 +24 15 40 16 +29 30 31 31 +34 8 45 24 +35 34 43 36 +22 16 28 33 +8 28 35 29 +26 18 49 25 +39 36 39 36 +12 19 15 33 +37 31 48 35 +42 25 43 30 +22 32 49 33 +7 36 10 36 +6 27 15 35 +40 0 48 35 +14 2 33 8 +48 32 50 35 +48 33 51 33 +9 36 19 36 +30 12 39 12 +45 3 51 19 +28 21 47 32 +6 34 14 35 +29 31 38 32 +38 36 38 36 +45 2 49 33 +8 32 39 36 +26 2 34 27 +17 26 31 35 +7 6 23 9 +27 10 51 20 +0 8 36 30 +10 0 39 29 +21 11 47 23 +10 21 51 28 +30 3 30 24 +22 1 31 19 +29 12 49 29 +40 18 51 27 +15 36 28 36 +30 14 47 19 +3 32 32 35 +35 0 45 29 +19 12 46 36 +8 17 16 20 +20 4 27 4 +36 28 46 34 +27 20 34 32 +16 27 51 34 +19 24 26 28 +47 25 48 35 +4 27 19 29 +7 30 38 35 +15 4 21 20 +3 15 8 35 +3 23 25 33 +27 36 39 36 +1 2 20 28 +43 11 48 20 +49 0 51 3 +48 10 50 30 +27 25 31 36 +21 14 38 18 +16 17 30 17 +16 1 27 8 +22 5 30 8 +46 6 46 9 +11 24 24 32 +22 5 40 6 +46 8 48 33 +27 29 35 35 +8 9 14 22 +50 34 51 35 +41 9 41 27 +1 10 31 16 +5 32 43 34 +46 20 49 30 +28 7 46 31 +40 11 42 27 +37 14 51 26 +5 5 46 32 +42 20 48 29 +10 18 51 29 +27 26 49 30 +3 12 42 29 +39 11 48 29 +32 29 47 34 +11 25 48 28 +9 18 21 32 +22 6 24 27 +19 6 24 8 +22 21 29 21 +9 24 32 27 +37 31 51 31 +40 4 45 12 +28 14 50 25 +35 0 46 33 +0 24 41 34 +28 26 44 36 +0 25 32 30 +44 24 51 31 +37 25 41 34 +11 0 49 4 +34 27 42 34 +38 16 45 23 +33 31 38 31 +23 31 30 36 +48 20 49 27 +9 16 47 21 +48 23 50 30 +33 5 38 11 +9 33 50 35 +6 20 44 20 +19 17 30 36 +42 25 46 35 +3 27 37 29 +23 4 38 31 +8 2 30 23 +47 29 50 32 +15 1 28 10 +20 23 38 26 +16 25 27 32 +21 5 28 7 +11 18 49 31 +47 3 51 26 +31 35 31 35 +20 6 32 22 +18 27 34 27 +7 2 37 3 +19 34 31 35 +46 33 49 33 +51 20 51 32 +35 26 43 33 +13 10 33 17 +4 4 24 17 +5 9 39 27 +12 8 14 17 +33 36 41 36 +39 12 50 23 +7 18 28 33 +37 31 47 32 +41 19 42 29 +4 35 45 35 +17 20 50 35 +49 16 51 32 +29 2 29 11 +35 13 45 25 +8 3 38 9 +9 1 40 10 +3 31 24 35 +27 25 30 31 +25 15 51 18 +0 32 38 36 +11 30 13 30 +43 19 45 29 +25 6 49 8 +49 12 51 24 +47 8 49 12 +1 8 18 28 +45 6 47 18 +28 23 33 31 +11 1 16 16 +46 22 49 25 +38 2 47 9 +39 4 47 7 +46 23 50 33 +38 4 45 35 +6 20 35 27 +50 35 51 35 +10 5 23 5 +0 26 35 33 +4 0 41 27 +34 11 36 18 +27 21 45 22 +15 14 23 19 +18 15 23 30 +37 10 43 30 +39 31 47 36 +21 15 26 27 +6 23 29 32 +11 7 45 29 +34 12 42 20 +19 28 39 29 +3 10 31 32 +45 12 47 16 +19 27 26 29 +30 36 38 36 +44 36 49 36 +1 7 2 18 +35 31 36 32 +39 8 49 29 +29 21 36 21 +31 22 47 28 +33 3 44 7 +14 33 26 34 +23 19 44 28 +4 1 35 35 +43 32 43 34 +6 36 24 36 +35 25 49 27 +6 34 20 34 +37 22 45 23 +42 0 45 27 +18 20 40 36 +28 1 29 15 +34 24 49 24 +40 29 44 35 +37 30 48 35 +6 8 23 21 +11 26 24 28 +12 19 13 19 +13 25 19 30 +6 17 36 36 +18 1 43 30 +21 3 37 11 +35 36 35 36 +51 9 51 36 +8 4 48 10 +15 30 50 35 +16 26 35 34 +13 30 24 34 +17 29 34 35 +18 6 50 33 +30 8 43 24 +14 18 51 28 +51 12 51 30 +0 4 50 6 +36 2 38 33 +10 33 40 35 +26 0 31 25 +50 26 51 36 +21 36 35 36 +10 16 21 36 +28 9 33 25 +13 18 23 31 +48 7 48 27 +20 27 25 29 +14 10 45 23 +29 16 38 24 +36 8 48 36 +7 18 51 21 +16 34 46 35 +33 13 50 32 +1 35 44 36 +3 35 46 36 +27 31 28 34 +20 21 33 25 +32 34 38 34 +2 27 32 34 +50 15 51 26 +0 26 24 27 +34 12 37 18 +11 2 14 32 +11 9 14 21 +30 14 30 24 +28 9 34 21 +22 13 49 23 +34 26 48 33 +50 4 51 34 +27 4 44 26 +13 23 46 34 +22 31 37 33 +11 10 50 27 +24 9 25 16 +4 20 30 33 +4 35 12 36 +4 19 23 27 +16 10 30 18 +0 35 50 36 +47 26 49 30 +24 14 46 27 +32 26 43 29 +18 30 45 31 +13 0 35 34 +42 31 47 32 +30 10 32 21 +28 5 38 17 +22 2 38 17 +3 19 14 36 +45 8 46 17 +46 33 50 36 +1 34 6 35 +26 22 31 29 +44 12 45 32 +46 1 51 23 +39 30 51 31 +11 6 46 13 +30 25 39 27 +47 12 48 12 +46 2 47 27 +42 36 49 36 +26 36 27 36 +41 10 42 14 +35 14 42 20 +33 11 49 13 +8 9 10 16 +46 6 46 22 +30 24 43 33 +49 12 51 19 +49 23 49 35 +13 19 50 28 +33 31 44 33 +11 19 39 31 +50 36 51 36 +46 16 46 25 +32 8 37 35 +12 1 37 4 +28 13 44 35 +38 33 39 36 +21 19 29 36 +28 13 48 24 +12 21 23 25 +19 22 31 36 +36 21 38 30 +37 18 37 26 +19 4 47 23 +5 22 27 29 +16 25 16 36 +17 7 24 29 +10 10 46 24 +22 1 40 9 +11 26 11 26 +31 15 38 27 +43 29 44 29 +49 13 49 32 +40 4 45 9 +16 19 16 33 +5 24 17 34 +9 13 15 27 +20 22 26 34 +47 1 48 15 +50 21 51 29 +43 19 50 25 +8 35 27 35 +39 21 51 32 +0 27 36 28 +23 2 39 29 +40 31 42 36 +43 7 51 26 +47 20 48 30 +10 34 19 36 +45 19 45 35 +22 9 41 25 +43 26 48 36 +25 13 47 24 +21 21 28 28 +14 26 49 29 +35 24 38 28 +30 33 41 33 +5 16 23 27 +35 29 35 32 +35 16 47 30 +49 31 49 31 +37 18 40 21 +48 10 51 16 +48 35 48 36 +15 14 48 30 +51 36 51 36 +37 6 47 11 +23 20 49 21 +42 24 48 30 +40 25 45 33 +46 19 51 20 +1 21 32 26 +38 32 43 32 +28 20 36 36 +1 30 32 35 +47 30 49 36 +44 8 51 30 +40 15 44 35 +35 11 45 15 +15 23 15 27 +2 19 38 23 +2 7 38 25 +32 0 47 31 +0 1 4 17 +48 8 49 8 +27 17 41 27 +11 34 29 34 +48 30 51 30 +23 27 41 28 +20 0 29 21 +47 7 49 28 +17 20 44 26 +17 35 30 35 +4 13 47 23 +47 34 48 35 +14 31 26 33 +50 29 51 33 +27 31 45 36 +46 36 48 36 +26 36 46 36 +47 18 49 29 +20 29 44 32 +26 30 28 35 +5 34 51 35 +42 24 42 36 +17 19 34 25 +31 33 51 36 +16 6 33 28 +7 5 29 28 +2 28 32 28 +20 28 35 34 +0 35 46 35 +43 28 46 29 +25 7 28 34 +4 29 20 33 +2 10 9 18 +20 3 25 12 +14 6 17 13 +9 2 15 21 +23 9 51 9 +6 9 37 27 +43 34 46 34 +4 18 23 20 +24 0 51 13 +14 4 37 32 +21 6 26 35 +14 27 36 30 +46 33 50 36 +26 18 42 18 +4 35 11 35 +40 30 44 32 +38 26 41 32 +2 15 30 32 +9 7 40 8 +34 33 45 33 +42 5 43 31 +39 12 46 18 +39 19 39 27 +31 20 51 34 +17 9 25 35 +43 6 45 6 +13 21 23 25 +2 18 9 32 +18 22 38 36 +38 5 44 23 +20 16 32 31 +29 1 37 1 +20 19 22 31 +1 16 31 31 +2 33 12 36 +13 29 42 35 +42 26 49 28 +46 34 46 34 +28 29 49 30 +6 22 41 24 +20 35 30 36 +41 22 42 23 +2 29 33 36 +35 10 48 10 +18 29 46 30 +3 6 33 6 +38 9 51 20 +51 29 51 36 +15 6 33 15 +9 32 51 33 +36 0 51 1 +16 14 33 19 +15 10 50 13 +37 16 46 20 +2 2 36 36 +39 24 41 33 +15 5 41 10 +4 34 28 34 +16 36 39 36 +13 29 41 33 +24 1 39 4 +13 28 18 31 +0 28 2 34 +42 1 42 14 +28 32 30 33 +27 14 27 22 +3 35 45 36 +9 29 50 29 +10 8 11 15 +14 9 43 21 +45 29 45 31 +33 8 51 28 +36 24 49 36 +36 17 36 32 +20 20 50 35 +16 9 29 12 +0 24 51 36 +9 26 51 28 +44 8 48 25 +23 28 43 34 +41 25 51 32 +2 26 46 30 +15 34 27 34 +11 23 32 33 +2 1 15 36 +4 30 13 32 +38 1 50 17 +45 33 46 35 +43 34 43 36 +29 4 50 15 +41 9 50 34 +41 12 46 18 +8 21 14 31 +22 32 39 33 +46 3 47 18 +41 3 41 28 +24 36 27 36 +46 29 51 33 +1 17 43 17 +38 13 46 16 +47 10 51 16 +16 26 18 26 +12 33 41 33 +29 22 34 24 +22 23 34 34 +36 8 50 9 +43 10 45 23 +35 10 43 10 +6 20 37 23 +44 23 44 26 +36 19 38 33 +4 31 45 36 +20 2 39 14 +31 26 46 31 +12 7 37 28 +15 24 45 29 +18 4 46 36 +9 20 48 27 +11 26 29 26 +43 34 45 36 +3 34 34 35 +0 10 28 21 +2 24 37 26 +38 29 42 35 +13 25 35 36 +11 21 15 31 +20 11 46 19 +13 18 46 18 +42 21 42 28 +34 28 39 34 +44 4 51 31 +45 6 51 21 +21 8 33 29 +42 7 51 33 +51 34 51 36 +34 16 50 27 +9 33 49 35 +33 36 47 36 +31 34 37 36 +50 2 50 21 +2 5 42 9 +3 13 23 19 +49 0 49 32 +43 10 49 26 +29 11 30 29 +30 25 39 30 +45 35 51 36 +8 13 40 21 +34 36 43 36 +26 6 42 35 +29 22 41 32 +22 3 44 34 +16 36 27 36 +28 9 33 32 +17 26 18 30 +0 16 49 35 +27 2 42 21 +9 36 45 36 +31 25 36 27 +14 34 47 35 +36 18 37 27 +43 29 43 31 +12 27 34 30 +24 19 40 35 +1 3 20 14 +26 28 36 29 +28 31 30 32 +0 15 4 30 +5 8 32 9 +36 0 37 14 +12 35 50 35 +35 20 44 29 +2 21 24 23 +20 16 22 33 +35 9 50 35 +14 15 37 34 +22 8 51 30 +49 6 51 30 +39 17 50 29 +45 3 46 29 +8 12 22 21 +4 28 23 34 +16 13 29 23 +31 1 37 8 +3 1 40 13 +45 5 46 10 +1 2 45 4 +3 0 43 9 +6 30 51 34 +17 35 44 35 +3 28 40 35 +23 25 46 35 +40 3 45 23 +21 27 47 29 +12 32 46 33 +8 4 47 19 +45 0 48 1 +19 20 37 36 +49 8 51 34 +11 17 50 17 +34 9 39 18 +19 36 35 36 +42 16 47 16 +44 13 51 15 +40 33 41 33 +42 34 45 35 +5 18 33 21 +18 18 22 33 +32 19 36 35 +30 22 37 29 +43 36 47 36 +20 32 29 35 +7 9 7 18 +31 20 47 28 +44 4 49 17 +4 2 16 32 +22 34 30 34 +42 16 42 32 +17 31 17 36 +7 14 39 32 +18 36 23 36 +25 36 41 36 +1 5 24 33 +38 30 48 34 +1 14 25 31 +48 26 48 31 +22 7 37 32 +45 30 47 33 +38 0 45 10 +12 29 26 36 +40 33 50 35 +11 22 51 33 +8 18 26 32 +27 29 27 32 +46 18 46 20 +23 7 45 10 +10 29 45 29 +1 4 28 17 +49 22 51 35 +51 8 51 10 +15 18 39 29 +7 19 37 26 +39 2 41 14 +8 36 11 36 +10 29 20 36 +11 25 50 30 +21 19 47 19 +43 16 50 19 +2 13 43 26 +13 36 45 36 +51 12 51 29 +36 9 50 12 +27 33 32 34 +18 20 47 31 +51 13 51 18 +46 9 47 24 +2 18 24 21 +28 7 44 13 +1 29 17 30 +28 26 39 27 +32 7 49 26 +43 8 48 14 +19 29 27 34 +48 28 50 36 +46 22 47 34 +8 35 28 35 +42 36 43 36 +3 14 49 35 +42 14 42 25 +9 25 22 28 +14 19 42 20 +49 25 49 31 +39 15 47 34 +34 36 43 36 +49 12 50 17 +21 14 49 24 +27 26 27 35 +16 23 38 24 +19 3 39 27 +30 33 49 34 +4 15 33 28 +1 34 9 36 +46 29 50 35 +50 24 51 36 +5 15 12 22 +5 28 51 28 +2 11 41 34 +42 10 43 26 +9 4 11 20 +41 2 43 30 +21 26 30 33 +3 3 47 34 +43 11 47 22 +51 3 51 32 +0 7 18 36 +6 0 45 33 +10 3 49 14 +50 33 50 34 +35 22 44 22 +31 20 36 27 +2 26 4 26 +42 5 49 15 +24 18 30 34 +0 13 1 19 +24 30 38 32 +41 33 42 35 +23 34 28 34 +39 17 45 26 +21 2 31 18 +2 17 37 27 +50 17 51 35 +14 3 45 16 +50 15 50 31 +49 13 50 28 +37 27 41 32 +29 5 38 18 +28 8 51 35 +12 17 38 28 +38 32 39 34 +16 35 18 36 +28 27 44 29 +43 15 44 18 +42 27 46 31 +3 9 13 20 +0 36 28 36 +43 5 46 21 +1 35 47 35 +29 9 30 11 +27 31 36 34 +50 28 51 28 +9 30 49 34 +1 23 24 29 +3 33 46 34 +4 14 4 30 +2 14 51 20 +13 36 19 36 +38 34 39 36 +22 12 39 12 +34 4 51 6 +5 30 31 34 +16 34 46 35 +13 18 34 23 +38 28 48 35 +44 33 45 36 +45 7 51 29 +47 33 47 36 +30 16 45 33 +21 27 22 31 +44 24 47 31 +40 30 41 32 +24 27 33 30 +23 7 39 28 +41 0 43 6 +10 13 42 16 +40 31 45 36 +25 32 26 35 +13 3 28 12 +41 7 41 18 +44 0 50 28 +8 7 33 25 +9 5 13 14 +50 15 51 22 +20 21 41 35 +47 26 47 31 +18 23 34 34 +26 31 34 36 +6 28 25 29 +14 20 35 25 +45 1 48 22 +27 21 47 34 +7 20 36 21 +21 17 40 28 +27 0 32 2 +33 15 42 32 +3 11 26 35 +46 2 51 11 +14 3 35 28 +38 33 41 36 +0 29 46 33 +14 6 28 31 +33 20 48 24 +30 24 42 32 +14 36 47 36 +34 2 37 13 +2 24 7 26 +2 5 24 14 +27 21 32 32 +11 23 40 23 +3 22 38 36 +7 28 8 28 +43 7 48 8 +45 3 50 24 +32 32 39 35 +35 36 42 36 +36 3 46 9 +27 1 50 5 +9 35 34 35 +50 25 51 29 +11 32 33 36 +8 24 29 30 +17 33 51 33 +50 35 50 35 +4 35 21 35 +22 25 35 33 +28 14 34 15 +11 2 51 14 +1 12 41 21 +18 22 44 27 +31 20 40 23 +14 7 46 15 +2 3 28 5 +4 12 44 28 +11 23 51 24 +24 3 39 22 +45 33 46 33 +11 17 38 25 +33 29 33 31 +47 32 50 34 +23 31 26 33 +2 16 28 25 +30 11 44 30 +15 35 18 36 +12 31 23 36 +15 0 48 25 +44 20 49 28 +49 10 50 13 +25 11 37 28 +15 34 18 36 +2 23 23 32 +31 12 46 12 +21 35 26 35 +19 25 31 34 +14 12 37 24 +21 25 40 25 +39 15 49 29 +48 30 49 31 +18 5 47 5 +33 22 33 28 +0 13 46 16 +50 2 50 33 +1 10 12 21 +18 12 31 21 +22 29 42 31 +39 33 46 35 +46 20 48 27 +7 36 48 36 +17 28 33 36 +29 3 37 32 +9 30 33 34 +49 1 51 18 +48 18 51 25 +47 36 51 36 +22 21 27 28 +28 23 51 29 +21 29 45 33 diff --git a/2018/republic/10-12_d1/arta/tests/03_pattern.txt b/2018/republic/10-12_d1/arta/tests/03_pattern.txt new file mode 100644 index 0000000..4369ba5 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/03_pattern.txt @@ -0,0 +1 @@ +90 diff --git a/2018/republic/10-12_d1/arta/tests/04_input.txt b/2018/republic/10-12_d1/arta/tests/04_input.txt new file mode 100644 index 0000000..f875609 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/04_input.txt @@ -0,0 +1,2368 @@ +11 89 +2366 +5 25 8 86 +2 78 6 81 +2 79 10 81 +10 36 10 88 +0 46 1 49 +4 84 8 87 +5 40 6 57 +10 27 10 32 +0 83 10 83 +8 16 9 34 +2 86 6 88 +4 76 8 78 +10 47 10 50 +4 22 10 63 +2 54 5 63 +0 62 6 70 +5 46 10 78 +0 31 4 70 +7 62 10 72 +3 44 7 73 +1 11 3 18 +9 70 9 77 +0 20 1 34 +7 48 10 73 +5 19 7 29 +3 69 3 80 +6 49 7 73 +5 1 7 61 +4 9 7 49 +1 85 9 87 +2 2 4 4 +2 25 3 49 +10 0 10 0 +9 44 9 80 +1 68 6 76 +6 10 6 54 +1 18 8 25 +3 57 10 76 +2 10 5 25 +2 32 9 36 +7 51 8 54 +10 3 10 24 +5 29 6 38 +10 57 10 82 +2 50 5 53 +0 1 4 37 +3 74 6 78 +1 32 5 48 +10 29 10 61 +0 69 9 82 +9 56 9 67 +6 81 6 87 +3 7 8 45 +5 8 5 46 +3 22 3 56 +5 61 9 70 +5 9 6 27 +9 2 9 41 +9 7 9 55 +5 21 10 46 +6 59 7 67 +6 19 9 84 +9 1 10 40 +1 62 3 73 +9 54 10 75 +7 83 7 86 +7 3 8 52 +1 66 2 68 +8 88 10 88 +9 0 10 62 +8 16 9 78 +10 86 10 86 +2 27 7 69 +6 30 8 70 +2 52 7 81 +10 64 10 74 +2 12 6 42 +0 82 0 86 +9 0 10 28 +8 14 10 49 +1 5 7 53 +1 88 8 88 +9 45 9 84 +2 38 7 51 +10 8 10 19 +0 84 1 84 +2 59 9 71 +7 26 9 63 +8 25 8 54 +4 44 7 55 +7 4 9 60 +5 67 10 87 +4 63 4 66 +9 11 9 45 +8 68 9 80 +7 15 9 19 +1 88 9 88 +3 11 6 32 +2 28 8 28 +6 27 9 79 +8 54 10 81 +4 53 4 70 +7 40 7 63 +0 11 3 58 +5 34 8 82 +0 41 4 66 +8 87 10 88 +1 82 8 87 +7 12 8 49 +1 49 3 62 +2 81 5 82 +1 68 4 85 +0 38 0 81 +7 49 10 67 +10 41 10 48 +0 31 8 81 +7 77 9 81 +10 80 10 81 +9 25 10 53 +2 33 7 60 +2 43 5 69 +5 84 8 87 +4 53 4 62 +3 21 7 34 +4 68 9 82 +2 73 7 88 +9 21 10 30 +9 48 10 49 +2 60 10 60 +0 74 10 82 +10 36 10 67 +9 24 9 38 +7 82 8 84 +7 31 8 87 +10 48 10 68 +6 45 10 60 +2 12 7 20 +7 48 9 48 +2 77 8 83 +9 24 10 86 +3 7 10 68 +6 74 9 82 +5 0 5 32 +1 16 5 83 +1 84 8 87 +0 37 9 50 +5 12 10 86 +4 62 9 87 +2 10 10 41 +6 80 10 84 +6 62 9 83 +1 38 8 41 +3 36 8 41 +8 11 8 86 +3 88 9 88 +10 61 10 70 +6 80 10 81 +3 4 4 88 +6 63 8 83 +7 26 9 52 +2 32 8 52 +5 38 10 62 +1 82 10 84 +10 45 10 64 +3 43 3 71 +9 3 10 17 +9 53 10 81 +6 69 10 79 +10 41 10 79 +2 27 7 42 +0 43 8 86 +8 22 10 74 +10 78 10 79 +10 30 10 58 +0 38 2 56 +8 81 8 83 +4 29 7 59 +9 45 9 59 +4 85 6 85 +0 12 5 48 +4 48 9 59 +5 63 5 63 +5 64 5 73 +6 42 8 71 +10 66 10 82 +4 54 9 72 +5 34 10 39 +4 53 7 54 +5 74 5 77 +7 32 10 82 +2 44 4 50 +1 40 4 75 +6 12 7 48 +1 3 8 52 +10 59 10 75 +8 58 8 63 +5 30 6 53 +6 19 10 60 +6 7 6 46 +9 85 9 86 +7 22 10 65 +0 15 0 46 +3 73 7 83 +10 45 10 52 +1 4 1 13 +8 73 8 73 +10 72 10 82 +0 69 3 86 +5 58 7 85 +7 19 8 40 +2 6 10 6 +9 45 9 57 +10 3 10 85 +2 78 9 80 +10 86 10 86 +3 87 7 87 +9 20 10 50 +2 45 9 78 +2 19 4 34 +7 73 8 76 +0 6 0 45 +6 48 10 88 +8 78 9 83 +2 44 9 77 +0 46 1 78 +3 36 5 50 +8 39 9 46 +5 51 5 69 +8 75 10 85 +5 0 7 17 +6 69 8 84 +5 48 7 63 +0 2 7 67 +7 20 8 82 +1 61 4 80 +5 8 5 34 +7 73 10 85 +5 20 7 57 +6 84 9 88 +10 41 10 85 +1 54 2 71 +8 41 10 47 +10 10 10 11 +1 58 2 58 +6 11 8 57 +2 31 7 44 +1 38 3 81 +4 88 6 88 +8 64 9 67 +6 19 9 24 +10 41 10 52 +8 16 8 21 +8 45 8 69 +7 44 10 53 +8 88 9 88 +9 40 9 62 +5 19 8 86 +8 84 8 88 +6 2 8 43 +9 8 9 73 +1 7 3 54 +8 54 10 76 +9 27 10 85 +5 15 9 46 +6 60 9 61 +6 22 10 31 +0 60 7 73 +3 58 6 85 +5 35 10 39 +5 9 10 60 +1 24 7 26 +3 86 10 87 +1 65 6 82 +8 75 8 79 +10 62 10 69 +6 78 9 79 +0 78 3 79 +0 63 3 81 +2 62 2 72 +9 87 10 88 +4 85 10 87 +9 59 10 77 +6 66 7 68 +6 15 9 62 +4 76 10 86 +4 73 7 87 +1 26 8 38 +0 71 5 75 +6 10 10 61 +9 66 9 73 +9 4 9 85 +1 79 7 80 +1 65 5 70 +1 13 3 54 +6 72 9 74 +8 78 10 84 +3 81 6 88 +1 54 4 79 +1 53 4 66 +4 60 8 80 +1 73 1 74 +4 19 9 51 +9 84 10 84 +4 70 5 79 +0 82 5 85 +2 41 6 67 +5 54 5 60 +2 34 6 36 +0 72 9 81 +0 77 2 88 +6 52 9 73 +5 69 7 87 +5 55 10 61 +6 54 9 84 +7 76 9 80 +1 72 6 87 +9 74 10 77 +2 23 7 64 +4 50 6 71 +9 50 9 53 +0 82 3 87 +10 34 10 36 +8 43 9 44 +1 54 4 74 +6 47 10 83 +9 33 10 81 +3 51 8 86 +4 29 5 58 +9 39 9 85 +10 39 10 62 +6 39 10 71 +7 32 8 56 +4 87 4 87 +8 44 8 78 +9 36 10 60 +10 69 10 79 +8 61 10 69 +5 63 7 71 +7 75 9 88 +2 74 6 85 +2 74 7 88 +7 52 9 87 +4 79 8 80 +5 22 9 43 +6 39 10 74 +4 71 8 84 +1 36 2 57 +4 85 4 85 +8 27 8 35 +6 65 9 83 +6 55 7 68 +2 35 5 85 +7 30 7 32 +8 71 10 85 +3 69 3 83 +9 10 9 17 +1 14 4 22 +7 3 7 70 +0 66 8 79 +3 16 3 45 +0 86 0 86 +5 26 5 69 +7 39 7 42 +1 16 7 22 +9 21 9 36 +9 46 10 74 +6 56 6 87 +0 67 10 79 +9 9 10 50 +0 45 7 52 +9 74 10 84 +5 79 7 84 +6 41 9 58 +6 40 9 48 +9 21 10 29 +9 4 10 23 +8 26 10 72 +6 72 10 81 +4 51 4 88 +4 79 9 86 +9 88 10 88 +1 74 6 88 +1 22 4 76 +0 71 6 87 +0 24 8 51 +5 50 7 73 +1 80 8 82 +2 4 3 52 +5 31 9 70 +10 62 10 63 +0 67 5 69 +5 41 9 45 +4 50 6 88 +3 84 5 88 +7 69 7 83 +10 0 10 8 +6 58 8 60 +3 19 7 44 +1 5 1 19 +7 36 7 73 +3 79 4 80 +4 40 6 80 +2 32 7 73 +8 19 9 71 +6 68 6 71 +2 33 5 82 +2 36 6 66 +4 0 5 33 +7 78 10 85 +7 51 10 83 +7 54 7 57 +1 73 4 87 +10 53 10 65 +2 27 5 67 +10 21 10 86 +4 86 4 86 +1 21 3 82 +9 23 10 64 +1 42 5 62 +3 24 10 55 +6 86 6 88 +10 12 10 81 +5 51 5 83 +10 43 10 43 +9 51 9 75 +7 27 7 37 +9 4 10 48 +9 26 9 79 +10 83 10 86 +6 87 10 87 +7 75 8 84 +9 33 10 61 +6 65 8 75 +2 57 2 72 +1 38 4 78 +4 58 5 61 +0 8 10 44 +0 84 0 85 +7 18 7 49 +1 55 7 71 +9 82 9 83 +3 75 8 85 +1 43 9 49 +5 22 9 49 +7 74 10 81 +3 6 8 25 +6 20 6 41 +3 18 10 29 +5 11 6 23 +2 14 6 40 +8 27 10 48 +1 39 2 52 +0 50 7 74 +6 24 8 64 +9 75 9 86 +6 22 8 38 +0 6 10 27 +3 86 9 86 +3 5 10 39 +0 23 2 71 +9 53 10 80 +2 82 10 88 +6 54 10 66 +4 46 8 49 +7 15 8 57 +7 41 10 42 +6 57 10 71 +2 4 4 66 +9 45 10 72 +5 7 9 10 +6 38 9 71 +2 8 2 25 +2 10 5 20 +9 17 9 41 +1 73 7 76 +6 88 7 88 +9 53 10 58 +10 64 10 78 +1 88 10 88 +8 63 10 70 +9 73 9 86 +2 43 4 67 +2 15 7 22 +6 34 7 37 +6 16 10 56 +0 76 5 81 +1 31 10 78 +5 54 9 64 +7 52 7 65 +6 59 7 85 +3 39 8 62 +3 34 5 84 +1 65 9 75 +5 71 5 72 +1 86 10 88 +6 43 8 48 +1 25 1 72 +5 77 8 84 +10 54 10 85 +0 5 9 84 +6 64 8 71 +1 32 7 64 +1 63 4 82 +6 63 7 72 +4 32 10 82 +7 65 7 71 +9 69 10 80 +4 80 4 85 +1 35 6 40 +6 88 7 88 +9 31 9 54 +6 70 6 86 +0 60 5 86 +2 15 9 42 +5 78 5 80 +7 86 7 87 +9 33 10 76 +10 41 10 50 +7 79 7 82 +8 4 8 19 +6 72 8 88 +9 15 9 61 +1 86 6 87 +7 28 7 76 +3 76 7 81 +1 1 3 64 +3 64 6 87 +0 27 8 41 +8 51 10 64 +10 37 10 64 +4 29 7 50 +1 47 7 82 +9 39 9 88 +3 65 4 82 +4 73 5 84 +0 46 10 61 +1 16 1 50 +5 76 8 77 +4 54 10 67 +8 42 8 69 +2 11 7 15 +8 58 10 66 +10 80 10 81 +10 41 10 62 +8 66 10 73 +7 14 9 82 +2 4 6 72 +5 58 6 59 +7 0 8 28 +6 75 8 76 +6 7 7 72 +0 52 7 57 +5 73 8 82 +10 19 10 25 +1 57 5 82 +3 82 10 86 +4 75 8 85 +5 58 5 62 +6 43 9 57 +1 26 5 56 +3 84 4 87 +8 4 10 43 +2 35 10 76 +4 84 10 84 +7 33 10 34 +8 66 10 88 +9 51 10 86 +7 15 9 55 +2 56 5 57 +6 28 9 41 +1 26 6 45 +8 63 10 85 +10 60 10 63 +9 56 10 76 +8 57 10 82 +7 51 8 56 +8 83 8 87 +1 0 6 72 +2 42 9 52 +9 27 9 49 +9 54 10 55 +8 83 10 83 +2 63 8 73 +6 63 6 81 +0 86 7 87 +0 66 3 76 +3 78 3 82 +10 19 10 82 +8 22 10 54 +0 27 7 83 +1 37 9 53 +5 56 6 82 +4 83 6 87 +2 44 3 50 +7 56 10 73 +7 29 7 84 +7 20 10 65 +7 30 9 86 +5 53 6 78 +6 28 8 33 +5 23 7 68 +5 4 9 37 +4 40 7 68 +4 9 8 86 +0 51 3 57 +5 27 5 67 +3 88 8 88 +8 54 10 84 +8 52 8 69 +10 41 10 76 +1 69 1 85 +9 82 10 86 +0 24 2 49 +7 42 10 48 +9 53 10 61 +3 40 3 58 +10 28 10 71 +8 14 10 69 +0 43 4 61 +9 44 10 72 +5 11 7 45 +3 64 3 82 +1 85 10 88 +4 73 6 73 +0 52 8 64 +10 48 10 76 +10 57 10 69 +0 30 9 85 +5 79 5 87 +7 9 8 77 +9 75 9 78 +6 73 7 85 +4 67 7 78 +9 71 9 83 +2 4 3 38 +7 60 8 61 +2 64 8 82 +0 72 2 80 +0 11 3 81 +3 36 10 88 +5 52 8 53 +9 26 9 53 +10 10 10 44 +4 74 8 81 +0 28 8 59 +9 78 9 85 +7 47 8 80 +1 24 6 30 +1 51 8 67 +5 49 9 57 +5 40 10 78 +7 70 7 88 +0 73 2 83 +8 58 10 81 +10 64 10 81 +7 61 9 74 +6 55 8 82 +3 66 8 66 +2 35 2 69 +5 73 6 80 +10 79 10 88 +2 68 9 74 +9 84 9 84 +8 46 9 70 +10 2 10 37 +10 13 10 72 +10 64 10 81 +4 9 7 9 +2 71 9 72 +0 62 7 64 +1 25 6 35 +3 56 8 66 +7 73 7 86 +2 23 8 77 +9 67 10 69 +6 3 10 7 +5 74 5 75 +10 38 10 62 +8 11 10 76 +0 18 1 72 +1 24 1 32 +9 46 9 70 +0 17 5 51 +6 66 7 73 +4 51 7 64 +10 76 10 87 +6 77 7 77 +3 81 4 88 +0 51 2 83 +9 76 9 76 +10 31 10 34 +1 24 7 69 +9 26 9 62 +9 24 9 40 +10 46 10 69 +0 5 1 50 +7 67 9 76 +3 2 4 26 +8 7 8 87 +7 2 10 57 +7 47 9 50 +10 82 10 84 +8 57 8 67 +6 27 9 54 +0 73 0 83 +4 8 8 56 +2 58 2 80 +3 35 9 45 +1 45 1 52 +3 30 7 51 +6 15 7 87 +1 65 2 87 +9 42 10 85 +1 70 7 83 +8 63 10 63 +7 4 10 63 +0 67 8 79 +2 23 2 77 +5 74 7 88 +3 28 3 84 +10 12 10 74 +1 71 10 79 +1 58 8 71 +8 61 8 64 +8 72 10 83 +1 34 10 84 +2 49 10 57 +4 11 8 66 +4 60 4 69 +6 16 9 51 +9 9 9 56 +6 26 9 36 +5 55 7 81 +3 77 4 79 +2 71 3 78 +2 81 4 83 +5 57 9 62 +0 65 6 70 +3 55 8 86 +5 33 5 80 +8 6 10 37 +5 64 6 84 +2 43 3 51 +4 78 9 88 +9 47 9 47 +0 12 7 32 +8 69 10 73 +7 63 10 77 +8 21 9 50 +2 39 6 56 +9 53 10 83 +7 51 8 86 +3 34 7 36 +5 31 10 81 +0 65 2 74 +3 66 6 87 +5 70 8 71 +3 42 6 50 +1 57 4 80 +10 49 10 83 +10 43 10 73 +0 17 10 58 +6 52 10 52 +0 52 9 73 +2 85 10 87 +5 40 6 65 +7 35 9 79 +3 25 9 25 +4 74 4 88 +5 51 8 53 +1 24 5 34 +4 74 10 79 +0 18 10 38 +8 29 9 48 +0 76 2 87 +7 11 8 53 +0 61 3 76 +10 26 10 68 +7 75 7 83 +8 19 9 40 +6 80 8 88 +3 86 5 88 +8 53 10 59 +4 64 6 68 +6 3 8 68 +6 6 9 74 +10 52 10 67 +0 9 5 36 +9 42 10 55 +10 60 10 87 +6 53 10 55 +5 15 9 27 +10 5 10 38 +2 88 6 88 +1 86 5 87 +0 64 8 87 +8 23 10 56 +1 56 9 81 +4 34 5 82 +6 25 7 60 +8 8 8 52 +4 66 10 75 +1 52 2 79 +7 54 9 85 +9 73 9 87 +10 49 10 74 +0 80 9 86 +0 29 9 64 +10 26 10 61 +4 3 9 4 +4 7 10 15 +9 36 10 56 +9 26 9 32 +0 86 4 86 +7 72 9 85 +3 3 9 3 +8 37 8 69 +7 79 7 79 +1 57 8 67 +8 54 10 77 +4 35 9 51 +7 64 9 68 +0 3 7 15 +2 43 3 70 +1 27 5 30 +7 13 10 53 +7 20 10 72 +5 49 8 50 +9 19 9 77 +5 85 8 86 +8 20 8 54 +3 50 6 82 +3 27 4 59 +2 54 2 74 +5 0 9 54 +5 31 6 41 +8 38 10 51 +4 44 6 46 +8 36 10 63 +4 27 10 59 +5 21 10 28 +8 8 9 14 +4 80 5 80 +9 83 10 87 +6 10 6 12 +9 88 9 88 +7 3 9 34 +7 50 8 83 +4 70 6 79 +4 49 5 59 +8 77 8 86 +4 9 7 68 +1 7 7 45 +8 1 8 45 +7 84 8 87 +9 45 10 82 +1 49 7 64 +9 37 9 54 +6 87 6 88 +5 51 6 78 +0 48 4 74 +4 2 9 88 +8 5 9 40 +2 70 5 82 +7 16 7 54 +2 26 10 35 +5 44 8 48 +7 66 8 76 +6 83 9 84 +4 83 5 85 +2 17 9 52 +10 65 10 84 +4 20 5 34 +7 21 9 35 +8 11 8 35 +0 75 9 84 +3 37 6 66 +2 71 5 72 +0 63 8 83 +2 84 6 84 +2 61 6 62 +2 42 4 80 +0 7 0 63 +0 6 9 64 +6 69 7 75 +10 76 10 78 +9 9 9 59 +6 79 8 87 +10 63 10 76 +2 80 6 81 +10 18 10 62 +9 54 9 84 +3 11 10 50 +10 83 10 88 +8 30 10 39 +5 71 10 74 +7 38 7 47 +1 17 6 58 +3 62 4 71 +5 70 8 80 +0 2 0 47 +7 38 10 39 +8 77 10 81 +4 40 6 48 +2 14 2 52 +3 18 6 36 +7 47 8 69 +10 54 10 68 +9 67 9 70 +7 13 9 22 +10 88 10 88 +1 3 5 28 +0 71 4 76 +6 83 9 85 +3 79 10 83 +7 47 9 52 +5 74 7 77 +5 39 7 39 +6 85 10 87 +3 28 3 55 +1 57 6 77 +3 74 6 74 +1 29 6 68 +8 45 8 58 +1 44 5 48 +10 22 10 32 +10 2 10 14 +10 39 10 70 +0 82 9 82 +3 22 3 35 +1 50 8 56 +7 88 8 88 +9 37 10 50 +7 65 8 83 +5 36 8 50 +9 84 9 86 +9 48 9 61 +6 68 10 81 +6 82 10 82 +0 6 10 66 +10 73 10 79 +8 86 9 88 +8 44 9 82 +2 61 8 78 +6 75 6 77 +0 28 1 33 +8 7 10 16 +1 86 6 86 +6 12 10 76 +10 63 10 83 +1 28 6 65 +1 39 2 88 +4 7 9 87 +5 28 10 77 +1 47 4 84 +0 83 6 85 +5 65 8 83 +7 66 10 79 +7 51 7 80 +7 33 9 88 +4 19 6 27 +4 33 6 83 +2 48 2 57 +3 31 7 33 +8 1 10 49 +9 53 10 70 +8 22 8 81 +4 37 10 44 +1 40 9 53 +8 58 9 71 +4 10 6 12 +9 78 10 84 +3 45 10 62 +8 58 9 74 +6 59 8 73 +6 32 7 52 +6 80 7 88 +10 35 10 82 +8 26 8 62 +7 36 8 85 +8 51 9 71 +9 54 10 80 +9 12 10 69 +9 24 10 36 +7 64 10 78 +4 9 9 79 +4 5 9 81 +8 66 8 83 +10 30 10 49 +7 14 9 75 +0 11 0 27 +7 23 9 73 +6 16 8 40 +7 86 8 87 +10 54 10 68 +4 33 4 68 +6 44 8 65 +6 69 8 74 +9 32 9 75 +9 16 9 87 +5 21 9 67 +3 57 5 63 +7 62 10 63 +6 7 9 80 +9 45 9 53 +4 12 6 58 +8 59 9 64 +1 82 6 86 +7 26 7 85 +10 81 10 82 +2 43 7 60 +0 45 9 67 +6 43 8 76 +8 77 9 78 +0 4 8 56 +5 44 5 52 +4 23 5 23 +5 68 8 88 +2 6 3 44 +9 51 10 69 +3 3 10 3 +4 21 4 28 +3 85 8 87 +9 84 9 86 +3 47 3 73 +8 13 9 64 +3 34 4 39 +9 78 9 78 +9 53 10 78 +5 18 8 69 +9 50 10 54 +3 21 8 50 +9 13 9 46 +7 41 10 59 +5 27 7 73 +4 13 9 86 +10 33 10 61 +10 15 10 24 +5 8 8 50 +0 17 5 34 +8 82 8 87 +4 87 10 88 +6 26 8 44 +3 83 10 87 +9 12 9 27 +9 79 10 80 +8 75 10 78 +2 84 4 85 +5 54 9 87 +1 21 1 60 +7 0 8 29 +4 25 7 59 +2 63 4 74 +4 67 6 83 +7 18 7 23 +3 8 9 70 +4 86 6 87 +0 27 6 60 +8 59 9 76 +7 49 8 60 +5 16 5 23 +0 39 2 48 +0 41 4 85 +7 23 7 34 +10 31 10 47 +5 63 7 77 +1 9 10 51 +10 66 10 67 +7 30 8 62 +0 45 2 81 +10 67 10 77 +10 76 10 79 +4 61 4 72 +10 71 10 80 +0 45 10 61 +5 47 7 87 +3 77 4 88 +10 55 10 82 +3 30 9 81 +9 8 10 19 +8 40 9 70 +9 81 9 88 +0 74 4 81 +3 48 9 84 +6 22 10 68 +2 39 6 40 +6 45 9 45 +9 64 10 75 +4 34 6 40 +0 34 5 42 +3 22 6 42 +9 20 9 74 +1 55 10 57 +7 23 10 43 +7 60 9 73 +0 81 0 88 +5 8 6 88 +2 42 4 51 +9 45 10 76 +5 79 5 81 +6 66 7 86 +1 81 10 87 +4 8 4 50 +2 49 8 66 +5 24 10 76 +9 45 10 72 +10 81 10 85 +5 69 7 75 +7 66 8 68 +3 86 7 87 +9 84 9 84 +4 71 5 81 +9 30 9 52 +3 7 10 27 +6 16 8 39 +6 88 8 88 +10 1 10 25 +2 79 2 85 +10 57 10 61 +7 12 8 65 +2 42 4 80 +4 10 7 88 +5 68 5 82 +4 65 4 65 +6 12 6 40 +10 52 10 58 +0 31 9 82 +3 19 3 56 +1 64 8 64 +1 31 6 80 +8 30 9 85 +8 21 10 75 +5 28 9 60 +6 10 8 52 +1 23 7 33 +5 28 9 64 +7 19 9 35 +8 59 8 85 +3 13 6 38 +3 78 6 78 +6 26 6 27 +5 46 7 53 +9 74 10 83 +8 80 9 87 +4 29 6 66 +8 85 10 87 +5 2 5 79 +2 59 4 80 +2 4 3 6 +10 18 10 68 +2 22 7 62 +6 48 10 85 +5 86 5 86 +3 23 8 61 +3 15 4 31 +3 67 9 83 +7 25 8 36 +3 72 9 75 +3 68 7 69 +4 43 10 72 +8 27 8 65 +10 79 10 85 +3 33 7 64 +9 58 9 82 +10 10 10 42 +0 78 0 79 +3 78 7 81 +0 57 10 79 +7 53 9 83 +2 18 9 56 +6 0 8 80 +0 28 1 52 +0 20 1 20 +0 3 3 67 +2 39 9 48 +1 5 9 54 +2 83 3 87 +8 58 10 67 +1 71 7 80 +1 5 4 84 +0 79 1 88 +8 84 9 86 +6 25 7 54 +6 36 8 53 +10 50 10 82 +5 35 7 79 +10 81 10 85 +6 10 6 22 +9 66 9 78 +2 4 5 72 +7 6 10 13 +4 80 10 83 +0 49 9 86 +0 4 10 27 +5 21 8 39 +9 54 10 76 +10 59 10 80 +10 85 10 87 +1 50 6 75 +6 31 6 53 +3 82 10 86 +5 61 8 67 +9 23 9 34 +6 83 9 83 +5 54 9 73 +4 38 8 45 +4 67 4 72 +3 9 6 27 +0 6 2 79 +9 82 9 83 +5 27 10 30 +4 88 5 88 +1 54 1 61 +3 63 8 72 +3 18 6 18 +8 37 10 79 +3 86 5 88 +3 57 3 64 +10 86 10 86 +1 28 8 76 +0 22 7 76 +0 77 0 80 +5 78 8 88 +4 85 10 88 +7 88 7 88 +10 49 10 78 +6 82 8 88 +7 84 7 84 +1 75 9 76 +8 9 8 9 +0 26 4 40 +4 27 8 32 +2 8 2 33 +2 79 8 83 +5 50 9 55 +9 19 10 67 +8 70 10 86 +0 10 2 50 +6 33 7 64 +5 64 6 71 +7 37 8 64 +5 14 6 19 +9 45 9 73 +10 28 10 77 +1 49 4 86 +0 52 6 58 +6 87 6 88 +1 52 7 65 +4 22 7 73 +2 33 10 80 +1 12 7 82 +10 32 10 62 +9 59 9 62 +5 2 9 19 +9 71 10 73 +1 60 4 66 +4 61 5 85 +1 16 2 60 +10 18 10 85 +2 45 10 82 +0 18 10 41 +0 79 1 88 +0 45 3 49 +3 13 8 67 +2 56 8 71 +9 65 9 75 +6 78 6 78 +0 32 9 57 +7 74 8 78 +4 16 8 83 +0 9 0 78 +4 50 6 81 +9 63 9 83 +0 42 9 72 +8 4 10 17 +9 46 9 67 +0 71 10 82 +4 88 8 88 +7 19 8 56 +5 51 9 78 +10 67 10 81 +9 47 9 63 +1 3 10 42 +1 83 8 83 +2 63 8 77 +10 23 10 80 +1 74 4 87 +7 32 8 75 +1 0 7 14 +1 59 2 86 +8 48 8 52 +6 11 8 37 +8 55 9 80 +1 38 9 67 +4 16 5 77 +1 66 7 86 +10 55 10 57 +8 70 10 70 +4 72 9 80 +9 60 9 61 +10 40 10 68 +0 3 7 42 +10 66 10 66 +0 57 5 88 +1 72 7 72 +2 39 10 53 +1 47 6 74 +10 72 10 77 +4 3 9 75 +9 75 10 87 +7 81 10 82 +10 4 10 8 +8 48 8 61 +6 77 8 79 +10 25 10 32 +5 60 10 73 +7 9 8 17 +9 31 9 50 +4 36 5 79 +1 19 8 59 +3 14 6 46 +2 69 5 84 +2 63 2 85 +7 27 8 71 +8 86 9 86 +6 10 9 53 +5 10 8 67 +2 49 9 78 +2 50 7 82 +7 71 7 83 +2 0 2 30 +5 33 6 52 +1 15 1 43 +5 71 8 76 +5 82 8 82 +7 57 8 65 +4 24 4 31 +3 88 7 88 +2 83 6 84 +2 42 10 59 +0 71 2 87 +10 79 10 88 +0 43 8 86 +5 75 10 76 +3 87 5 87 +10 13 10 23 +8 4 10 31 +1 40 6 40 +2 63 8 86 +9 19 9 69 +1 60 2 67 +3 65 6 80 +8 46 8 75 +1 6 10 53 +7 62 7 64 +5 5 10 80 +10 71 10 86 +10 78 10 82 +4 82 9 87 +2 54 2 74 +9 16 10 51 +9 64 10 76 +2 37 6 63 +10 65 10 83 +2 78 8 88 +0 2 4 35 +0 53 6 59 +0 3 3 47 +3 86 7 87 +10 62 10 75 +5 5 8 27 +8 48 9 85 +6 87 10 88 +1 80 1 85 +9 83 10 87 +0 56 9 57 +5 27 5 77 +4 9 9 11 +0 50 8 85 +10 80 10 83 +3 7 4 24 +3 22 4 52 +4 79 9 79 +3 49 10 69 +4 86 5 88 +3 44 6 60 +2 12 8 65 +0 77 6 85 +9 88 10 88 +6 43 10 86 +4 36 10 69 +3 52 5 82 +3 49 5 49 +9 83 10 84 +7 59 7 88 +10 70 10 81 +8 25 8 29 +3 42 6 88 +8 19 8 34 +2 1 6 74 +8 53 10 55 +5 28 6 75 +10 30 10 77 +6 61 8 70 +9 41 9 70 +10 38 10 48 +5 76 6 77 +6 22 9 83 +10 4 10 50 +3 28 6 38 +10 0 10 17 +1 79 7 83 +8 7 10 11 +7 34 9 61 +4 36 5 80 +1 63 10 63 +8 19 10 76 +1 70 10 74 +2 55 5 82 +4 51 7 66 +3 5 10 63 +0 59 3 78 +9 32 9 69 +4 27 5 55 +6 0 8 42 +2 49 10 79 +9 66 9 76 +8 18 9 83 +6 24 7 81 +9 81 9 83 +9 68 10 75 +1 80 9 83 +3 79 6 85 +4 53 6 53 +9 51 10 68 +7 49 9 61 +6 86 10 87 +7 54 7 59 +10 6 10 46 +2 32 5 55 +6 65 7 77 +5 64 5 79 +5 87 9 87 +4 22 10 83 +3 39 8 73 +4 49 9 63 +3 42 8 49 +8 77 10 77 +6 86 6 86 +1 48 10 62 +8 29 10 83 +4 17 8 40 +2 8 3 41 +9 0 10 42 +8 36 8 47 +5 24 7 43 +2 54 2 71 +4 28 9 39 +10 79 10 80 +3 73 5 76 +4 49 7 57 +10 6 10 57 +6 75 6 86 +8 63 8 77 +8 63 10 79 +4 26 7 56 +6 66 10 67 +9 88 10 88 +5 0 10 11 +0 73 4 74 +8 31 8 73 +9 72 9 74 +0 38 10 70 +0 7 7 45 +2 10 3 85 +9 40 9 70 +7 2 8 16 +1 13 7 58 +7 6 7 67 +0 77 6 85 +9 26 9 47 +9 59 10 83 +0 44 2 87 +0 4 8 65 +0 54 2 78 +4 54 4 87 +6 30 10 66 +6 43 9 58 +1 81 10 86 +8 57 8 78 +3 41 6 64 +4 11 10 53 +10 74 10 77 +4 63 8 82 +2 23 10 83 +2 8 5 75 +8 70 9 70 +7 30 8 53 +2 57 9 61 +2 76 3 82 +2 41 8 73 +5 88 6 88 +9 46 10 52 +4 23 5 36 +0 74 3 82 +7 84 9 87 +0 18 0 65 +4 48 5 68 +9 34 10 41 +2 25 8 26 +5 72 10 81 +0 17 6 65 +10 48 10 77 +6 83 6 83 +6 26 6 39 +4 13 6 71 +8 44 9 81 +2 78 4 86 +4 85 7 87 +8 56 8 83 +9 69 9 79 +1 56 1 73 +10 63 10 67 +3 28 6 71 +9 73 9 73 +4 53 8 54 +0 72 4 82 +4 65 5 80 +1 73 7 78 +9 27 10 87 +1 62 9 74 +8 70 9 88 +7 5 8 7 +3 79 4 86 +7 88 8 88 +0 33 7 37 +3 60 3 72 +8 23 10 34 +6 20 6 22 +2 87 3 87 +1 34 2 46 +1 30 8 63 +10 59 10 74 +9 62 10 64 +8 53 9 77 +0 7 3 77 +4 15 9 52 +3 14 10 15 +9 40 9 68 +9 66 9 69 +6 5 6 7 +8 31 10 71 +4 66 9 68 +6 59 7 64 +2 69 4 79 +9 62 10 71 +0 20 5 60 +5 41 5 58 +0 27 4 27 +2 57 4 76 +7 45 10 88 +5 84 7 84 +4 65 4 82 +5 41 9 78 +5 61 10 74 +3 7 5 9 +4 84 7 88 +5 15 5 44 +7 42 7 81 +0 69 3 73 +8 56 8 64 +1 72 7 77 +5 67 5 70 +5 40 10 81 +4 8 8 77 +2 18 9 74 +0 31 0 63 +6 62 7 69 +8 80 10 86 +10 82 10 82 +2 18 5 80 +7 69 10 85 +2 23 3 88 +8 44 9 62 +2 79 10 84 +8 78 9 86 +4 11 10 25 +9 26 9 67 +1 83 10 88 +2 7 8 54 +7 30 8 59 +8 26 10 46 +10 51 10 84 +9 1 9 22 +3 63 6 76 +3 48 3 60 +4 3 9 26 +7 43 8 58 +3 87 6 87 +10 11 10 28 +8 26 8 35 +7 6 9 66 +9 33 9 80 +2 60 6 60 +7 16 8 43 +8 0 9 26 +0 5 0 46 +3 34 6 57 +7 45 10 86 +9 62 9 68 +9 43 9 48 +2 8 3 81 +6 40 10 53 +3 81 5 87 +6 32 10 78 +6 82 7 88 +2 80 9 88 +2 74 5 84 +6 48 10 49 +7 68 7 70 +9 58 9 68 +0 16 1 82 +1 64 4 85 +10 49 10 68 +9 6 9 6 +7 23 10 73 +2 22 5 35 +2 21 8 56 +1 73 6 79 +0 78 9 81 +5 65 8 80 +3 25 4 86 +3 75 3 81 +2 7 2 56 +3 7 6 42 +4 7 8 60 +4 50 9 76 +4 9 9 11 +1 32 5 75 +1 23 10 30 +0 53 10 67 +1 60 10 84 +0 46 1 67 +10 47 10 50 +6 6 10 74 +0 80 1 84 +0 14 3 87 +5 8 7 62 +1 28 7 87 +3 41 8 41 +2 88 4 88 +0 69 9 70 +10 8 10 30 +5 47 8 55 +6 6 8 45 +9 6 9 14 +0 32 2 86 +3 55 10 75 +2 13 10 79 +1 74 2 84 +4 51 5 56 +9 88 9 88 +4 87 5 88 +7 10 9 29 +1 57 3 84 +3 48 4 87 +1 49 1 65 +6 18 7 46 +4 39 9 84 +7 13 8 47 +9 38 10 77 +6 12 9 59 +1 45 6 66 +10 48 10 74 +5 56 10 79 +5 79 5 79 +1 54 7 79 +6 45 8 66 +6 24 7 49 +2 4 4 4 +5 3 5 53 +7 13 9 16 +3 83 7 86 +9 15 9 66 +2 85 2 85 +10 63 10 79 +5 49 8 72 +4 76 10 82 +2 28 7 70 +2 43 9 84 +6 18 6 60 +2 16 4 23 +10 48 10 57 +7 37 8 71 +0 48 0 76 +8 41 10 87 +9 53 9 65 +3 3 6 71 +6 36 9 87 +10 49 10 73 +4 76 4 84 +4 6 6 66 +5 39 9 59 +7 3 10 20 +7 12 9 15 +8 6 10 73 +3 72 9 78 +4 74 6 82 +8 11 10 62 +2 25 2 51 +7 60 9 68 +9 22 9 37 +3 66 10 66 +7 75 7 83 +2 30 3 82 +4 70 7 71 +4 12 7 76 +10 72 10 84 +8 36 8 55 +5 37 10 56 +2 75 5 79 +10 86 10 87 +6 76 9 83 +4 28 7 84 +6 80 6 82 +8 7 8 74 +9 17 9 72 +10 15 10 82 +3 52 5 80 +8 44 9 65 +0 71 5 87 +3 68 4 76 +0 16 5 68 +10 55 10 56 +3 73 9 88 +3 56 6 77 +3 88 3 88 +2 72 4 88 +10 58 10 67 +0 18 3 81 +4 13 10 18 +5 15 8 61 +4 88 9 88 +3 65 3 77 +1 30 4 58 +9 42 10 64 +2 72 6 80 +4 10 7 51 +0 29 9 79 +10 37 10 50 +9 71 9 88 +2 52 5 52 +7 57 8 88 +0 57 0 81 +4 23 4 69 +6 46 9 48 +0 78 5 80 +10 48 10 78 +9 51 10 71 +9 80 9 81 +2 12 8 44 +1 45 3 86 +6 88 8 88 +7 63 8 68 +2 57 3 59 +6 48 9 78 +5 33 10 88 +6 66 6 80 +8 86 9 87 +7 63 10 64 +5 87 5 88 +1 74 6 76 +6 49 10 77 +0 82 1 88 +1 1 6 80 +7 15 7 80 +9 32 9 69 +7 38 9 67 +5 31 8 87 +10 15 10 19 +0 23 0 78 +7 10 7 80 +9 15 10 37 +6 1 6 53 +4 36 7 41 +8 7 10 60 +4 76 6 84 +9 0 10 4 +0 1 3 18 +3 67 10 72 +5 41 9 62 +6 28 9 51 +3 12 3 50 +8 87 8 87 +6 86 9 86 +1 35 8 60 +6 54 8 65 +1 54 6 72 +2 5 8 77 +6 4 6 31 +10 69 10 71 +7 47 7 68 +3 34 5 62 +7 36 7 41 +2 79 9 82 +1 10 4 11 +10 32 10 59 +8 2 9 52 +10 60 10 84 +6 72 9 78 +2 34 3 34 +0 55 4 86 +2 56 5 56 +2 72 10 82 +2 29 4 72 +6 50 10 59 +1 61 2 85 +8 35 10 35 +6 54 10 65 +0 7 4 46 +2 1 7 85 +8 40 10 47 +9 60 10 76 +1 23 10 61 +3 10 7 54 +4 60 5 75 +2 45 5 45 +7 10 8 82 +9 68 10 84 +10 50 10 69 +8 30 10 41 +0 34 5 37 +3 27 10 61 +7 73 8 82 +6 76 6 87 +9 67 10 70 +10 3 10 67 +3 44 4 61 +2 74 6 74 +8 46 10 67 +4 0 5 29 +2 3 8 43 +8 62 9 87 +7 27 10 63 +0 29 6 38 +2 40 4 50 +9 20 10 42 +0 6 9 88 +4 47 7 58 +6 14 8 32 +3 14 5 50 +3 83 7 86 +4 68 6 88 +4 20 4 63 +3 88 5 88 +6 51 6 81 +10 11 10 30 +2 15 3 79 +6 21 10 46 +1 81 7 87 +9 18 9 85 +5 87 8 87 +5 16 6 68 +0 37 10 81 +9 7 10 24 +1 32 9 53 +4 75 7 80 +4 32 6 43 +5 61 7 81 +1 16 4 88 +0 20 1 88 +6 10 10 50 +9 5 10 20 +9 18 9 36 +1 26 5 34 +7 63 9 80 +5 78 8 79 +3 23 9 47 +2 28 6 53 +0 0 9 54 +2 59 6 83 +6 11 9 82 +9 26 9 78 +6 78 9 88 +3 88 9 88 +10 0 10 72 +10 4 10 31 +8 82 8 88 +10 80 10 88 +0 20 2 27 +1 12 4 42 +6 38 10 42 +1 54 4 77 +1 86 3 87 +5 18 10 65 +7 73 10 78 +1 72 7 77 +5 5 9 63 +2 43 7 60 +6 22 6 86 +7 67 10 73 +0 50 3 75 +9 30 10 46 +1 60 10 81 +0 63 5 75 +2 79 10 80 +8 68 10 69 +3 76 6 85 +2 31 5 46 +8 45 9 55 +6 68 8 84 +7 36 9 75 +3 69 6 79 +2 4 2 26 +4 72 9 75 +8 10 8 68 +7 33 7 67 +9 30 10 63 +1 55 5 69 +7 86 7 86 +0 85 8 88 +1 67 7 72 +10 57 10 88 +10 47 10 84 +7 47 8 85 +6 82 9 86 +9 18 10 25 +8 53 10 72 +0 50 8 84 +4 61 10 84 +1 20 4 57 +1 6 10 16 +1 83 2 83 +6 35 6 68 +7 86 10 88 +6 75 7 85 +8 60 10 78 +5 58 9 78 +9 83 10 86 +3 20 4 24 +9 24 9 36 +3 70 10 88 +1 72 9 83 +8 83 10 83 +1 37 1 40 +2 60 6 64 +1 13 5 29 +10 85 10 88 +2 56 8 59 +5 17 9 51 +9 47 9 88 +4 65 7 86 +10 16 10 40 +0 46 2 67 +3 65 6 72 +3 76 3 79 +10 74 10 79 +2 69 3 79 +2 86 2 87 +3 21 6 54 +1 77 1 80 +1 71 1 79 +3 78 3 81 +0 45 6 87 +7 66 7 85 +1 55 8 67 +8 49 9 76 +6 26 10 43 +6 44 8 72 +4 56 4 84 +7 36 9 53 +8 75 10 85 +3 31 10 31 +1 58 4 80 +10 55 10 74 +4 21 10 48 +8 57 8 78 +7 68 10 72 +5 57 10 71 +10 52 10 67 +7 58 8 69 +6 27 6 34 +7 49 9 73 +10 46 10 60 +4 25 7 34 +3 81 6 87 +6 2 7 10 +6 8 7 35 +10 22 10 36 +4 24 8 83 +5 12 10 15 +4 52 4 64 +2 38 4 79 +4 15 4 33 +1 35 9 86 +6 51 6 64 +10 24 10 78 +1 86 9 86 +5 22 9 36 +5 5 7 23 +4 19 8 50 +3 18 8 29 +3 86 7 87 +7 18 7 25 +2 42 8 87 +10 4 10 52 +4 72 4 81 +4 16 8 73 +6 13 9 58 +4 79 10 88 +5 49 10 86 +0 28 10 87 +8 86 8 87 +3 21 7 87 +7 13 9 30 +1 46 7 79 +2 86 9 88 +3 21 10 27 +8 29 9 63 +10 5 10 26 +2 41 2 64 +9 0 9 35 +0 60 9 88 +0 43 3 66 +1 12 8 68 +5 63 9 73 +9 21 10 30 +4 51 8 76 +9 3 9 30 +2 2 10 21 +0 44 6 67 +0 53 2 63 +9 49 9 63 +8 43 9 80 +2 39 3 71 +10 27 10 69 +3 31 3 41 +1 65 7 86 +8 1 8 44 +0 37 6 61 +6 43 7 54 +9 14 9 69 +4 60 4 83 +10 16 10 81 +3 42 6 80 +4 68 5 88 +0 40 3 53 +0 21 6 30 +0 10 8 17 +6 77 6 88 +2 37 2 39 +0 55 0 62 +6 33 10 41 +10 79 10 88 +10 2 10 74 +0 53 4 56 +4 62 6 65 +0 1 4 23 +7 16 8 24 +7 63 8 80 +9 66 9 78 +8 48 8 53 +6 24 6 80 +3 85 7 88 +8 4 8 68 +2 76 7 84 +4 54 5 86 +7 73 10 73 +4 61 8 86 +2 39 5 48 +3 0 4 19 +0 69 0 70 +5 62 6 63 +3 13 6 84 +6 88 9 88 +8 0 9 36 +10 3 10 87 +1 71 4 81 +0 9 0 62 +7 45 8 61 +7 40 7 40 +5 50 9 65 +2 82 10 85 +0 38 8 79 +8 46 10 65 +1 61 9 80 +7 13 7 86 +5 53 10 58 +10 74 10 79 +3 88 9 88 +8 19 10 76 +3 40 7 57 +10 40 10 66 +4 40 9 69 +5 1 9 34 +3 53 10 70 +8 50 10 73 +1 40 10 81 +1 7 7 88 +8 37 8 67 +1 33 7 63 +6 67 9 88 +0 68 4 79 +6 84 6 84 +10 14 10 74 +4 38 8 70 +1 10 9 60 +5 24 10 43 +4 17 6 55 +2 10 7 21 +0 62 7 64 +0 88 0 88 +8 60 10 86 +8 23 9 50 +9 73 10 76 +9 28 10 45 +4 84 8 85 +9 13 9 15 +4 77 9 77 +4 27 6 82 +5 20 6 83 +0 21 8 27 +3 86 10 88 +2 59 2 61 +8 63 9 80 +5 29 8 87 +8 78 9 84 +10 50 10 85 +7 73 10 87 +0 58 1 81 +8 60 8 71 +1 83 2 85 +2 83 2 85 +9 55 9 61 +4 66 8 87 +4 67 5 79 +7 82 9 85 +6 83 10 87 +4 74 5 86 +0 75 2 81 +5 74 6 84 +10 24 10 39 +0 5 2 23 +10 63 10 65 +1 44 5 87 +8 47 8 50 +6 65 9 67 +6 70 10 72 +4 18 10 53 +8 75 10 75 +2 54 3 61 +9 51 10 81 +7 69 9 75 +6 43 8 66 +8 3 10 62 +7 0 7 9 +10 3 10 47 +5 9 5 54 +9 27 10 78 +2 28 9 44 +2 64 2 85 +4 34 10 44 +5 16 9 43 +10 3 10 43 +5 23 6 73 +5 68 10 78 +5 82 9 86 +7 76 9 85 +4 61 5 77 +4 53 9 83 +4 70 4 85 +5 32 5 76 +8 59 8 80 +10 1 10 64 +5 86 5 86 +7 86 9 88 +5 71 5 76 +9 12 9 23 +4 24 7 27 +2 75 10 85 +4 14 8 77 +3 79 7 81 +4 47 6 80 +6 6 10 49 +2 17 5 82 +5 61 9 79 +1 37 5 61 +3 43 4 64 +5 59 5 74 +0 47 6 58 +10 8 10 47 +3 63 8 79 +0 68 1 86 +7 37 10 50 +6 34 7 79 +1 34 9 63 +7 5 8 39 +9 69 9 81 +8 80 8 85 +4 10 4 68 +10 16 10 17 +2 72 7 80 +6 84 8 85 +7 76 8 83 +2 36 4 61 +5 26 5 70 +5 19 7 71 +10 86 10 88 +6 10 7 17 +8 88 8 88 +7 37 7 42 +6 15 9 78 +2 32 6 34 +7 43 8 55 +3 5 4 52 +7 40 10 79 +0 16 2 24 +2 35 9 56 +7 63 10 86 +4 37 9 85 +9 86 10 87 +4 0 7 31 +1 19 3 63 +9 37 9 87 +0 76 6 88 +4 44 5 52 +1 82 4 86 +5 0 10 55 +3 3 7 49 +7 53 7 81 +1 43 4 61 +5 16 9 19 +0 8 0 74 +7 45 10 54 +2 82 2 84 +8 72 8 79 +4 66 9 83 +4 59 4 68 +3 39 4 67 +9 17 10 57 +0 44 7 81 +8 60 10 71 +7 71 9 83 +9 52 10 86 +4 60 6 73 +8 84 9 84 +1 17 2 86 +2 50 7 55 +6 40 10 82 +2 50 5 72 +8 64 8 83 +7 72 7 74 +9 0 10 69 +2 57 9 57 +9 10 9 66 +1 39 8 66 +8 79 9 79 +1 17 4 33 +5 52 6 56 +2 49 9 61 +5 23 9 85 +1 85 2 86 +0 26 10 61 +10 63 10 87 +4 13 5 67 +0 39 0 55 +4 30 7 39 +6 23 10 50 +2 51 6 53 +8 80 9 83 +1 37 9 83 +3 27 3 38 +8 28 8 44 +4 84 4 86 +5 17 5 38 +9 53 10 69 +8 74 8 74 +10 58 10 73 +0 32 2 34 +0 23 2 53 +9 63 10 88 +10 66 10 87 +6 7 6 56 +2 47 6 64 +3 9 3 11 +10 16 10 87 +2 68 9 72 +9 25 9 25 +1 33 9 74 +2 54 8 65 +9 14 9 85 +3 46 6 63 +7 7 8 50 +9 39 10 70 +7 44 7 48 +7 66 10 87 +8 35 10 56 +10 16 10 28 +4 15 9 88 +1 59 10 83 +2 54 7 77 +4 82 10 84 +4 13 4 21 +5 29 10 64 +4 72 4 87 +3 66 4 76 +5 36 9 46 +7 18 7 26 +1 62 5 88 +5 32 6 60 +2 64 2 78 +2 16 6 16 +4 2 10 7 +9 63 10 74 +3 66 10 69 +2 4 9 7 +10 32 10 85 +1 18 9 57 +5 70 9 71 +3 84 9 88 +7 2 7 25 +1 14 3 17 +6 25 8 85 +5 9 6 49 +7 34 7 46 +4 88 7 88 +4 29 10 55 +8 83 10 86 +8 18 10 74 +10 75 10 87 +5 3 7 45 +6 78 8 79 +3 49 8 58 +7 42 9 45 +0 77 7 84 +1 82 6 87 +6 29 7 76 +7 55 10 84 +10 5 10 61 +2 81 2 86 +1 0 10 1 +0 0 5 44 +1 63 9 85 +8 0 10 8 +1 82 10 87 +7 17 9 80 +3 31 3 74 +3 34 7 81 +3 42 7 56 +1 41 2 81 +10 87 10 88 +2 83 6 88 +3 66 8 67 +4 68 4 78 +8 81 10 88 +1 54 1 70 +1 78 4 79 +1 30 5 48 +2 69 8 71 +2 83 4 85 +2 40 10 68 +4 73 9 79 +8 65 9 85 +7 51 9 55 +0 27 0 88 +10 86 10 88 diff --git a/2018/republic/10-12_d1/arta/tests/04_pattern.txt b/2018/republic/10-12_d1/arta/tests/04_pattern.txt new file mode 100644 index 0000000..1627a54 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/04_pattern.txt @@ -0,0 +1 @@ +99 diff --git a/2018/republic/10-12_d1/arta/tests/05_input.txt b/2018/republic/10-12_d1/arta/tests/05_input.txt new file mode 100644 index 0000000..b33708d --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/05_input.txt @@ -0,0 +1,185 @@ +61 33 +183 +21 13 42 14 +5 14 9 14 +29 19 56 23 +41 23 58 25 +54 13 55 20 +18 1 38 26 +46 12 59 18 +14 8 42 21 +23 28 39 29 +47 30 58 30 +38 24 60 30 +28 22 41 27 +50 3 56 27 +12 3 24 24 +57 28 60 31 +22 10 27 22 +52 18 58 26 +38 1 47 21 +54 18 59 23 +58 22 58 25 +25 0 45 14 +47 11 51 12 +6 1 37 17 +0 10 28 28 +31 11 57 27 +33 12 44 19 +35 10 59 32 +28 11 32 31 +11 4 31 8 +17 28 57 29 +35 0 43 5 +45 1 50 15 +25 12 41 32 +2 17 27 31 +12 26 33 27 +5 15 50 21 +32 0 59 29 +14 24 39 30 +48 8 56 11 +55 7 58 13 +32 17 48 29 +43 5 48 12 +48 8 58 12 +49 28 59 30 +50 23 52 29 +46 7 56 19 +59 26 60 29 +48 21 49 31 +37 3 49 5 +8 30 14 31 +43 17 50 17 +35 8 43 20 +22 26 27 27 +52 13 52 29 +2 11 46 25 +24 5 34 17 +17 31 52 31 +25 17 50 27 +51 1 54 3 +16 16 46 32 +23 14 45 26 +56 19 56 32 +15 32 31 32 +54 19 57 26 +25 15 42 29 +60 25 60 29 +16 21 55 32 +32 18 59 20 +40 8 47 14 +49 32 59 32 +25 11 48 25 +8 28 11 31 +17 19 38 27 +49 11 58 16 +43 26 45 28 +5 7 12 17 +31 15 49 31 +13 28 43 31 +19 22 60 26 +59 29 59 29 +38 25 38 27 +13 3 22 26 +20 14 23 19 +28 16 33 30 +46 25 57 32 +4 19 30 20 +48 22 53 31 +9 19 30 27 +14 31 59 32 +1 27 22 31 +10 1 43 18 +4 10 38 19 +1 15 50 15 +8 16 14 21 +18 21 20 22 +35 32 53 32 +53 24 60 26 +25 13 30 20 +36 23 57 31 +17 23 59 27 +0 8 53 18 +39 32 46 32 +35 9 36 22 +19 2 37 6 +24 3 28 5 +44 26 47 30 +22 29 25 32 +24 22 34 31 +24 17 28 17 +35 13 56 32 +7 0 49 29 +18 28 19 29 +6 21 42 25 +2 28 14 28 +32 26 34 31 +41 8 44 17 +46 2 60 25 +4 8 26 11 +10 21 48 27 +30 15 60 26 +31 15 52 32 +32 17 52 25 +53 31 56 32 +5 19 38 20 +28 10 45 21 +25 32 32 32 +54 18 57 24 +42 0 55 25 +8 8 32 27 +20 28 36 29 +60 17 60 27 +46 26 48 32 +46 3 60 6 +58 3 60 6 +37 22 48 31 +32 18 39 29 +13 4 17 29 +8 28 33 31 +53 6 59 21 +9 32 15 32 +53 30 59 32 +43 4 51 23 +32 14 56 17 +42 12 50 13 +46 27 51 27 +55 17 56 32 +37 7 44 28 +39 12 51 24 +7 24 18 32 +31 22 47 29 +16 26 34 32 +41 19 44 21 +52 19 53 25 +27 0 49 26 +45 10 54 27 +35 5 48 10 +15 1 45 14 +47 10 52 10 +58 11 60 13 +40 15 56 28 +47 5 60 15 +12 13 57 25 +55 23 56 31 +50 20 58 30 +26 29 57 32 +3 21 59 29 +26 1 52 12 +23 8 58 17 +17 27 18 32 +1 27 12 28 +0 9 41 13 +36 1 48 30 +27 25 38 26 +3 13 48 18 +6 15 8 27 +33 9 41 22 +8 13 16 15 +52 16 57 17 +21 10 38 25 +37 22 47 22 +11 28 12 32 +25 7 39 15 +4 26 44 31 diff --git a/2018/republic/10-12_d1/arta/tests/05_pattern.txt b/2018/republic/10-12_d1/arta/tests/05_pattern.txt new file mode 100644 index 0000000..1157269 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/05_pattern.txt @@ -0,0 +1 @@ +154 diff --git a/2018/republic/10-12_d1/arta/tests/06_input.txt b/2018/republic/10-12_d1/arta/tests/06_input.txt new file mode 100644 index 0000000..cbeb472 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/06_input.txt @@ -0,0 +1,1634 @@ +55 18 +1632 +5 8 9 8 +30 5 38 6 +36 5 42 8 +22 10 31 17 +16 0 39 14 +33 7 37 16 +42 12 47 15 +4 2 28 7 +14 12 51 15 +10 2 39 6 +18 10 47 16 +29 16 41 17 +17 13 25 14 +47 1 53 3 +16 17 39 17 +1 15 45 15 +47 9 48 13 +9 6 12 8 +10 13 38 15 +16 17 28 17 +50 4 51 17 +32 15 44 16 +40 14 49 14 +48 2 53 11 +13 17 34 17 +30 0 41 11 +36 0 43 7 +28 15 45 15 +6 2 44 11 +51 10 53 12 +20 6 52 12 +9 11 44 12 +33 16 47 17 +50 4 52 12 +33 10 34 16 +38 14 54 16 +46 8 49 10 +3 13 4 17 +0 17 43 17 +5 12 25 12 +12 1 29 7 +25 6 30 17 +45 1 48 2 +53 4 53 15 +22 16 28 16 +2 11 47 11 +43 17 51 17 +1 6 8 13 +4 6 27 14 +4 15 39 17 +13 1 48 2 +10 4 29 8 +17 8 27 15 +43 7 45 13 +50 1 52 3 +27 15 54 16 +19 17 25 17 +6 10 13 15 +3 1 43 8 +48 5 50 13 +44 17 52 17 +28 16 44 17 +5 15 9 16 +41 12 54 12 +8 9 27 14 +13 7 42 11 +30 0 44 3 +41 7 47 7 +37 9 41 10 +14 4 31 5 +34 10 49 14 +14 9 52 17 +24 14 28 17 +39 0 48 0 +43 10 45 12 +50 16 54 16 +43 14 46 16 +20 11 53 13 +19 6 45 10 +2 12 11 14 +14 4 45 7 +6 12 28 15 +22 15 34 16 +23 2 47 2 +46 13 49 14 +12 0 53 4 +38 17 41 17 +50 4 52 12 +36 8 36 11 +26 3 26 17 +2 16 21 16 +16 6 24 15 +43 2 45 15 +40 1 41 13 +47 4 53 9 +33 9 48 16 +2 7 52 16 +16 9 28 10 +14 17 32 17 +9 15 49 16 +7 11 20 12 +11 2 47 4 +45 17 47 17 +37 16 48 16 +44 3 45 16 +10 6 20 12 +12 14 21 14 +51 5 52 8 +28 7 39 7 +47 14 52 17 +39 16 48 16 +42 13 51 13 +38 0 51 16 +28 11 37 14 +34 1 52 13 +20 8 33 11 +0 11 5 14 +8 15 32 17 +45 2 49 14 +46 12 52 14 +13 7 26 10 +13 17 24 17 +20 17 35 17 +19 14 19 15 +20 7 46 14 +23 12 41 14 +34 16 47 17 +2 0 40 7 +17 10 18 10 +19 13 35 16 +17 1 26 3 +21 8 48 11 +1 13 13 14 +7 1 15 15 +32 4 33 11 +2 7 19 16 +31 15 48 17 +36 6 53 11 +3 9 28 12 +27 8 32 14 +47 3 53 3 +5 14 5 15 +14 4 40 12 +30 7 40 17 +24 16 26 17 +28 3 39 16 +47 5 49 9 +49 4 49 10 +36 3 47 11 +6 8 43 9 +38 16 51 16 +32 11 36 12 +52 16 54 16 +5 0 33 6 +34 7 42 8 +29 11 34 16 +34 8 52 9 +0 7 10 12 +32 2 40 5 +0 1 40 9 +34 9 43 15 +33 11 44 13 +14 2 53 12 +0 12 14 16 +24 1 29 15 +45 1 51 15 +46 5 49 9 +49 13 51 13 +34 5 50 12 +34 14 49 15 +40 9 45 9 +8 1 18 12 +51 4 52 13 +41 11 52 14 +54 14 54 16 +28 0 30 4 +33 5 35 14 +7 0 40 7 +16 6 19 13 +8 12 13 15 +48 13 52 14 +44 1 46 6 +3 17 7 17 +16 16 46 17 +16 16 39 17 +20 1 53 12 +19 7 25 10 +20 3 30 10 +22 13 50 17 +4 15 45 17 +37 10 45 12 +32 0 40 15 +27 12 38 15 +49 16 49 17 +28 8 34 15 +38 6 45 10 +26 0 45 8 +30 16 48 16 +1 5 12 10 +53 16 54 17 +0 17 14 17 +4 2 27 7 +10 11 44 16 +46 11 49 11 +31 0 52 5 +34 1 39 14 +3 5 13 8 +19 10 38 13 +1 2 14 17 +21 4 53 15 +49 1 50 10 +14 6 43 17 +39 8 54 14 +44 12 51 17 +17 3 29 7 +36 7 49 17 +50 17 52 17 +41 2 50 10 +40 7 53 9 +32 15 33 17 +43 14 53 15 +49 11 52 14 +48 1 52 8 +40 15 52 17 +41 12 54 13 +12 2 27 10 +12 3 32 6 +31 6 38 10 +9 10 39 15 +5 10 22 11 +46 17 54 17 +32 3 34 14 +45 8 54 13 +33 12 37 13 +20 17 36 17 +25 9 49 12 +45 1 49 11 +39 3 40 7 +12 7 43 14 +34 15 53 15 +11 1 26 15 +4 8 40 12 +46 10 47 14 +50 9 51 16 +15 14 45 14 +31 10 51 11 +11 12 16 14 +2 17 29 17 +48 9 53 12 +3 16 17 16 +9 10 14 17 +27 9 35 16 +4 1 18 4 +36 17 44 17 +32 16 49 17 +29 6 32 14 +26 7 34 15 +44 8 53 13 +51 3 53 4 +0 9 53 16 +46 12 46 12 +49 4 54 5 +28 3 54 13 +36 0 50 12 +6 13 31 14 +48 8 54 12 +15 14 32 17 +19 1 50 16 +1 15 45 15 +16 11 45 14 +47 8 51 9 +1 5 9 13 +31 8 37 16 +36 16 44 16 +4 13 34 16 +37 10 47 17 +46 14 50 15 +38 14 54 17 +7 6 46 15 +29 0 53 1 +38 2 46 12 +27 9 32 16 +22 1 34 3 +44 10 50 13 +5 2 43 3 +11 16 46 17 +31 13 54 15 +8 17 37 17 +41 7 48 14 +38 10 38 10 +15 12 34 12 +37 5 42 13 +5 8 33 16 +0 2 1 16 +53 1 54 17 +4 6 38 12 +11 14 43 14 +26 12 50 16 +15 0 48 15 +11 12 52 16 +43 16 54 17 +8 8 53 17 +41 11 48 14 +37 4 39 9 +45 9 51 14 +8 3 50 17 +33 12 42 13 +13 17 54 17 +2 16 11 16 +33 0 43 15 +46 15 53 15 +3 8 9 13 +43 14 52 15 +48 1 52 12 +22 6 52 9 +5 6 31 12 +51 7 52 9 +40 1 50 2 +10 15 53 17 +37 8 48 8 +36 4 44 8 +48 17 54 17 +41 16 52 17 +50 10 50 15 +14 17 40 17 +11 5 19 17 +35 9 45 11 +12 6 35 14 +38 3 45 14 +46 7 53 15 +8 13 13 15 +20 5 44 6 +45 4 50 11 +28 16 41 16 +15 14 29 17 +39 2 49 6 +23 1 54 13 +19 7 24 17 +44 15 50 16 +40 8 50 13 +21 3 29 15 +18 6 29 10 +40 9 41 9 +29 12 45 16 +48 9 50 15 +25 4 27 7 +31 10 32 12 +1 15 52 17 +36 0 38 9 +16 12 23 12 +54 10 54 17 +3 7 37 15 +13 16 44 17 +22 7 40 16 +54 11 54 13 +36 12 51 12 +32 1 45 5 +27 7 33 16 +1 3 20 13 +11 12 45 14 +7 6 22 14 +44 14 49 14 +46 5 54 14 +41 12 53 13 +32 15 39 15 +34 1 49 7 +10 2 12 11 +2 5 52 8 +4 11 52 15 +28 12 37 14 +35 6 38 12 +16 1 19 10 +28 1 48 5 +49 6 52 7 +30 1 32 5 +17 0 40 0 +33 4 49 7 +0 2 37 9 +35 16 46 16 +41 15 47 17 +31 8 38 13 +48 6 53 13 +32 11 51 15 +9 0 31 11 +32 15 46 16 +26 1 49 17 +41 11 47 12 +44 1 52 14 +40 5 53 12 +20 10 36 10 +42 7 45 17 +39 9 46 10 +7 6 51 14 +32 9 50 12 +52 17 54 17 +38 14 46 16 +19 13 41 16 +3 9 53 12 +47 17 52 17 +0 11 25 12 +11 15 43 16 +46 1 54 11 +47 8 51 14 +1 11 36 13 +39 13 40 17 +17 5 32 13 +26 13 31 14 +27 15 29 17 +2 1 44 9 +54 7 54 7 +44 4 47 11 +20 3 47 16 +28 10 33 16 +29 10 54 17 +41 4 45 8 +33 4 37 14 +43 12 46 12 +51 7 54 15 +10 2 45 3 +49 11 53 14 +0 13 14 17 +33 8 41 15 +20 15 32 15 +47 15 49 16 +53 12 53 12 +54 10 54 13 +2 7 19 9 +49 10 50 13 +21 16 52 17 +15 1 24 6 +4 17 26 17 +28 0 33 14 +17 2 26 4 +51 16 54 17 +47 10 49 17 +3 17 39 17 +3 17 26 17 +34 4 37 4 +26 6 31 17 +43 1 48 4 +14 9 30 9 +12 11 16 15 +14 5 40 12 +44 15 50 15 +20 10 26 11 +25 12 33 16 +34 12 51 17 +1 0 3 11 +48 5 51 13 +11 12 36 12 +3 16 19 17 +24 2 44 8 +24 6 50 12 +12 11 32 17 +26 15 41 15 +1 9 31 9 +41 14 46 15 +25 5 53 9 +14 8 22 17 +25 14 33 14 +20 16 52 17 +16 11 23 11 +0 7 41 10 +26 14 49 15 +25 17 53 17 +13 12 20 17 +21 4 29 10 +5 9 52 10 +34 16 49 16 +44 5 52 17 +52 10 53 15 +29 3 48 10 +30 0 47 16 +50 0 52 10 +8 15 9 15 +23 4 34 16 +33 14 33 16 +38 3 39 16 +10 14 17 15 +32 10 50 17 +52 13 53 17 +47 9 47 9 +0 12 11 13 +53 10 54 13 +51 2 54 9 +24 5 36 8 +32 12 45 14 +5 7 44 13 +28 5 41 17 +31 2 33 12 +45 16 45 16 +42 15 42 16 +31 13 45 15 +50 8 50 9 +44 11 50 13 +13 17 16 17 +17 16 19 16 +43 1 48 8 +45 16 51 17 +38 11 40 11 +14 0 27 14 +6 12 7 12 +23 3 38 15 +36 15 50 17 +42 2 42 5 +5 2 39 12 +1 1 35 6 +5 2 34 13 +5 16 6 17 +15 4 28 15 +34 12 52 17 +9 0 43 16 +47 0 47 14 +21 8 47 12 +28 14 44 17 +11 13 38 17 +40 10 54 16 +17 0 50 3 +7 17 54 17 +11 16 16 16 +20 12 52 15 +44 15 45 15 +37 7 52 12 +27 4 34 7 +14 15 31 16 +32 2 49 6 +14 14 35 14 +39 4 50 14 +20 7 46 11 +32 2 53 8 +9 12 10 15 +30 5 32 14 +14 16 14 16 +31 17 41 17 +28 9 47 10 +14 2 27 2 +11 15 12 15 +32 3 50 7 +15 5 50 5 +53 9 54 9 +38 14 51 16 +10 9 53 9 +37 3 37 11 +20 0 47 3 +50 12 52 13 +42 4 42 10 +13 17 39 17 +14 12 45 16 +51 4 51 14 +34 0 45 16 +2 2 46 11 +14 15 41 15 +7 15 26 15 +9 8 26 8 +54 6 54 7 +54 3 54 14 +6 14 29 15 +6 15 52 17 +41 4 42 12 +1 3 3 4 +38 10 53 12 +36 11 49 16 +32 16 39 16 +43 13 53 13 +38 16 52 16 +22 13 32 13 +41 4 53 5 +26 14 48 14 +27 3 34 8 +44 13 47 16 +5 14 50 14 +41 3 50 4 +50 10 50 11 +26 1 42 16 +54 2 54 4 +34 10 44 10 +8 3 53 8 +46 17 54 17 +37 7 46 12 +25 1 39 10 +34 3 51 11 +44 15 48 16 +29 13 38 16 +20 4 41 12 +7 8 13 9 +25 13 45 13 +53 15 53 17 +8 11 39 16 +22 10 50 17 +40 3 44 16 +13 3 52 10 +16 1 19 13 +51 6 51 11 +1 11 17 12 +33 14 44 16 +30 17 41 17 +22 11 37 15 +12 13 34 13 +41 12 51 15 +13 5 16 13 +8 2 44 2 +31 8 32 13 +24 13 54 13 +10 2 13 17 +21 2 25 16 +19 1 25 3 +14 11 33 15 +17 0 48 14 +36 1 51 17 +44 4 45 14 +1 8 41 11 +29 7 45 10 +34 5 52 13 +38 10 52 15 +17 14 42 17 +38 6 39 14 +22 15 23 16 +50 12 50 15 +7 13 17 17 +18 1 50 16 +10 3 21 14 +13 14 30 16 +37 7 52 16 +12 6 26 17 +19 4 33 5 +50 4 54 5 +46 12 53 15 +39 14 53 15 +39 1 50 13 +24 9 33 10 +14 1 39 5 +47 0 53 1 +1 11 48 14 +7 8 14 12 +15 0 33 12 +31 9 50 14 +23 10 54 17 +47 13 50 16 +26 9 44 10 +29 6 47 15 +17 6 18 16 +39 13 42 15 +38 6 48 9 +44 10 47 17 +2 1 32 7 +28 9 43 17 +45 5 45 17 +7 11 17 13 +46 11 52 12 +42 9 47 16 +4 4 10 4 +12 13 49 14 +19 3 29 7 +48 7 52 12 +15 9 28 13 +20 6 38 7 +15 14 48 15 +7 2 25 11 +14 4 21 13 +35 1 36 12 +25 5 48 11 +5 5 6 14 +13 11 19 16 +2 5 30 14 +10 6 27 12 +14 7 25 16 +43 14 48 15 +35 0 44 1 +46 6 54 12 +54 2 54 4 +45 11 51 15 +12 4 32 7 +8 9 36 11 +43 9 47 13 +10 5 24 14 +9 16 43 17 +7 11 32 14 +14 13 45 16 +54 4 54 8 +1 6 6 12 +38 7 43 7 +32 6 49 11 +32 2 37 7 +52 1 53 1 +21 0 26 11 +36 8 53 12 +54 9 54 11 +23 17 30 17 +18 17 51 17 +7 16 27 16 +45 13 46 14 +13 6 18 17 +51 13 52 16 +54 1 54 9 +48 12 50 13 +19 9 51 17 +28 12 44 17 +23 7 53 14 +39 14 40 17 +49 14 52 17 +9 0 44 1 +43 5 51 5 +27 9 54 16 +26 14 32 17 +26 10 52 16 +44 15 46 17 +7 1 40 14 +43 15 52 15 +0 16 36 16 +42 14 43 15 +44 14 45 14 +14 1 40 15 +47 17 51 17 +4 5 5 10 +44 14 49 16 +34 17 42 17 +50 12 52 15 +33 12 52 12 +54 0 54 15 +40 1 43 1 +44 4 52 14 +27 12 37 12 +26 8 40 16 +35 5 41 13 +54 6 54 10 +31 11 53 12 +19 8 32 12 +15 2 35 13 +26 3 48 5 +12 10 17 14 +37 6 49 16 +50 15 52 17 +2 8 28 12 +25 8 53 11 +11 2 16 13 +25 12 40 13 +20 0 48 9 +2 13 39 13 +16 8 22 15 +42 13 47 15 +26 8 53 10 +26 16 26 16 +23 10 23 15 +43 1 53 13 +32 8 41 13 +44 0 54 8 +40 4 48 6 +22 4 43 17 +2 5 48 10 +52 13 54 15 +0 14 40 17 +54 10 54 10 +54 13 54 14 +37 3 49 13 +24 3 29 10 +41 16 54 16 +38 14 39 14 +36 17 46 17 +34 3 36 17 +7 17 44 17 +52 5 54 5 +16 10 52 11 +24 13 38 13 +19 9 34 17 +29 16 52 17 +45 14 48 14 +20 3 34 8 +2 8 31 8 +38 15 51 17 +26 14 53 16 +33 12 40 16 +0 8 33 8 +35 4 44 10 +9 3 38 12 +46 10 47 17 +39 12 51 12 +42 7 48 16 +0 11 25 11 +29 7 29 17 +22 7 49 10 +2 13 18 17 +39 13 46 17 +38 3 39 13 +41 6 51 12 +27 14 47 16 +38 9 41 11 +48 2 52 5 +50 2 53 15 +19 8 49 12 +25 4 25 8 +36 3 36 8 +3 16 31 16 +43 2 43 2 +1 1 39 2 +51 10 54 14 +20 4 20 15 +8 2 26 4 +50 6 54 10 +40 16 48 16 +21 8 22 10 +27 11 28 14 +52 14 54 15 +26 9 48 16 +24 16 34 17 +32 14 43 14 +6 13 6 16 +54 6 54 16 +21 15 47 15 +25 4 39 13 +50 13 54 15 +20 17 39 17 +17 12 48 16 +53 10 54 11 +50 4 53 6 +31 4 45 15 +39 13 44 16 +36 11 43 14 +20 3 35 17 +41 1 45 6 +46 12 47 16 +44 16 53 16 +43 13 52 16 +35 2 45 13 +53 14 54 14 +27 2 45 9 +4 11 54 15 +19 15 54 16 +15 13 26 13 +18 14 45 15 +8 6 31 15 +39 0 52 13 +32 0 48 4 +47 6 48 6 +5 14 36 14 +37 13 39 15 +33 17 45 17 +31 11 43 14 +17 12 52 17 +15 6 26 8 +26 0 33 10 +51 9 52 16 +18 9 18 17 +1 4 19 11 +38 10 53 13 +39 14 45 17 +18 1 54 4 +0 17 27 17 +0 3 24 16 +29 11 46 17 +49 17 52 17 +1 14 19 16 +46 10 50 15 +7 11 53 13 +48 6 52 16 +41 6 51 16 +12 11 16 15 +39 5 49 9 +3 16 36 16 +48 11 51 15 +43 10 50 17 +30 6 50 12 +20 15 34 17 +13 6 51 10 +44 10 50 10 +5 8 52 17 +29 16 41 17 +31 2 34 11 +12 0 29 4 +14 13 54 15 +43 4 46 17 +26 2 27 5 +20 8 20 14 +47 12 52 15 +14 11 26 13 +47 8 48 13 +13 8 45 11 +30 17 30 17 +25 12 52 14 +0 9 10 9 +29 0 33 13 +53 13 54 16 +17 16 44 17 +36 17 45 17 +46 10 50 10 +34 1 40 15 +41 7 54 13 +40 2 42 16 +26 3 46 17 +40 3 41 15 +21 0 37 8 +14 3 49 9 +2 10 45 10 +49 6 50 17 +42 16 48 16 +16 2 29 3 +50 8 51 13 +1 10 49 10 +14 13 27 15 +50 6 53 8 +22 17 41 17 +7 11 33 14 +17 7 35 16 +52 10 54 11 +40 10 46 10 +39 14 41 16 +53 1 54 7 +36 16 45 17 +16 2 21 14 +5 9 18 10 +16 4 47 7 +28 10 31 16 +47 12 49 13 +13 11 19 17 +47 4 50 9 +2 8 33 13 +53 4 54 4 +50 7 53 13 +35 8 48 13 +42 2 51 8 +48 7 54 16 +22 3 53 4 +48 11 48 15 +49 15 51 16 +19 1 27 17 +0 4 42 4 +10 15 42 16 +46 1 54 2 +47 10 47 13 +40 2 41 17 +39 0 44 5 +50 13 51 15 +14 11 34 16 +3 5 34 12 +33 17 39 17 +14 17 49 17 +7 6 15 16 +33 8 49 8 +37 11 51 15 +32 14 34 17 +30 1 39 5 +6 8 50 15 +35 7 48 12 +39 0 41 10 +25 9 50 13 +25 4 53 4 +18 9 28 11 +9 7 43 15 +7 15 26 17 +28 17 48 17 +20 10 38 16 +14 11 18 12 +42 11 49 15 +1 7 29 15 +43 7 48 14 +41 16 45 17 +35 9 38 9 +33 10 54 11 +45 2 49 5 +3 9 43 17 +9 5 32 16 +17 1 27 16 +40 5 40 10 +27 9 46 12 +40 8 52 10 +7 14 28 16 +12 7 44 9 +54 8 54 12 +13 1 25 15 +7 8 45 14 +53 15 54 15 +32 15 45 15 +19 2 29 3 +0 6 32 11 +52 5 52 6 +42 1 54 5 +49 17 50 17 +25 17 37 17 +10 6 20 10 +54 11 54 15 +37 4 51 14 +2 6 2 12 +7 10 47 13 +39 17 42 17 +4 14 42 17 +36 16 52 16 +48 16 54 17 +43 0 44 10 +46 4 47 14 +6 14 29 16 +40 1 48 1 +8 3 19 6 +19 2 43 13 +1 9 19 14 +16 13 51 13 +47 7 49 11 +8 14 49 15 +21 2 48 14 +21 17 39 17 +50 7 52 12 +24 11 54 13 +34 17 43 17 +16 7 26 12 +5 7 8 7 +44 11 49 11 +14 13 46 15 +44 10 51 11 +25 16 49 16 +47 14 48 16 +29 8 37 12 +0 17 31 17 +25 17 36 17 +28 15 44 16 +2 10 44 17 +53 6 53 11 +31 14 35 16 +37 12 47 17 +9 2 35 11 +34 14 53 17 +53 8 54 12 +2 12 5 13 +46 0 49 3 +6 11 21 11 +2 15 4 15 +51 13 54 13 +28 16 30 16 +37 0 43 3 +11 13 29 17 +10 9 38 17 +51 12 54 17 +8 4 46 11 +10 8 31 8 +22 7 41 16 +6 8 25 17 +36 15 37 16 +45 12 51 12 +35 9 37 12 +42 9 43 11 +36 15 47 17 +52 7 53 9 +39 8 44 12 +41 3 52 13 +1 7 45 7 +54 1 54 5 +42 0 51 16 +7 2 47 10 +49 14 49 17 +42 16 48 17 +51 6 54 14 +46 9 46 13 +46 3 46 3 +39 10 49 11 +22 2 30 16 +2 10 43 12 +31 9 54 13 +39 12 52 12 +35 12 47 12 +4 14 50 15 +35 13 47 16 +13 14 22 15 +12 9 25 14 +44 2 50 16 +28 6 33 17 +44 17 46 17 +26 15 34 17 +51 7 52 11 +49 9 53 10 +54 9 54 14 +22 3 29 9 +32 4 36 11 +17 14 31 15 +23 13 53 15 +18 15 19 17 +40 2 52 15 +14 6 23 6 +17 13 30 14 +20 13 41 13 +33 8 43 12 +51 14 54 17 +15 11 24 15 +29 0 43 2 +29 3 42 6 +28 13 33 14 +52 9 54 10 +1 10 18 15 +32 4 52 17 +43 15 53 17 +31 11 41 12 +43 13 45 16 +44 3 46 5 +37 8 39 13 +22 14 48 14 +20 4 21 6 +6 7 54 8 +26 17 34 17 +50 2 50 9 +30 4 37 12 +37 16 47 17 +12 13 48 15 +41 10 42 11 +31 9 42 9 +42 16 45 17 +0 8 26 9 +45 4 49 7 +35 15 39 17 +13 6 53 17 +9 16 35 16 +34 3 38 11 +34 15 50 16 +29 11 49 13 +18 11 20 17 +27 11 32 16 +46 11 51 13 +17 10 42 16 +49 10 49 12 +36 10 39 13 +2 15 11 16 +30 4 38 12 +17 14 25 16 +8 4 37 17 +17 6 29 8 +40 1 41 12 +19 6 24 15 +22 17 52 17 +16 8 24 15 +37 9 47 12 +17 13 20 16 +28 5 54 7 +0 9 22 9 +37 15 45 17 +48 17 54 17 +46 2 46 16 +50 14 53 16 +23 1 34 17 +41 9 53 11 +20 10 53 15 +54 14 54 17 +37 4 51 15 +18 4 26 7 +47 13 51 14 +13 1 48 2 +54 11 54 11 +4 16 49 17 +9 12 36 16 +52 1 52 9 +26 4 52 17 +1 15 25 17 +44 9 45 16 +9 15 36 15 +0 14 50 17 +23 7 26 14 +45 6 48 6 +5 15 51 16 +52 9 54 13 +5 2 44 13 +24 1 32 13 +21 3 27 6 +1 7 53 10 +1 12 3 12 +41 2 50 16 +28 10 49 10 +54 5 54 14 +36 1 49 3 +26 7 36 9 +50 1 54 12 +33 13 52 15 +31 1 46 4 +43 0 49 2 +15 2 54 11 +30 8 35 12 +54 8 54 9 +25 11 31 17 +31 9 51 9 +2 1 10 6 +54 13 54 15 +26 2 39 17 +43 12 49 12 +48 10 54 15 +48 12 54 14 +31 11 31 11 +39 16 51 17 +1 4 45 10 +17 16 30 17 +43 14 50 16 +40 4 42 17 +30 7 39 7 +53 6 53 11 +51 6 53 6 +40 3 41 13 +44 13 53 13 +46 10 46 15 +34 7 42 7 +11 14 13 16 +24 5 34 12 +44 15 52 15 +1 13 48 13 +38 10 39 11 +20 6 44 9 +38 6 47 7 +26 16 35 17 +35 3 47 8 +39 17 50 17 +8 3 20 10 +51 0 53 11 +28 17 42 17 +30 5 30 15 +28 14 28 14 +21 11 35 14 +26 17 41 17 +32 14 43 14 +27 12 43 14 +50 11 51 12 +46 8 53 11 +26 14 45 15 +45 6 51 16 +43 12 51 17 +36 13 39 15 +19 14 46 14 +52 11 52 16 +20 2 51 14 +15 7 27 7 +3 8 34 14 +18 7 43 12 +15 17 16 17 +22 9 53 10 +20 5 26 11 +17 5 37 14 +2 15 12 15 +33 4 52 6 +45 8 53 9 +51 16 52 16 +21 17 21 17 +11 7 33 14 +12 12 12 12 +47 11 48 17 +49 15 52 17 +23 5 37 16 +44 6 54 6 +25 11 27 14 +4 17 47 17 +52 2 54 5 +49 13 53 16 +50 17 50 17 +13 5 24 13 +11 6 25 15 +46 4 47 10 +51 16 51 16 +0 7 31 17 +26 6 30 7 +36 4 50 9 +48 3 48 15 +52 11 52 17 +50 3 52 12 +18 0 43 16 +54 17 54 17 +27 7 40 15 +3 2 14 14 +44 14 50 15 +1 13 22 13 +50 9 53 9 +30 0 38 10 +1 1 42 17 +16 8 34 13 +28 17 46 17 +48 10 52 14 +22 3 31 15 +17 13 33 13 +5 4 7 6 +42 16 53 16 +48 6 49 11 +4 17 18 17 +28 16 42 17 +16 12 34 17 +36 17 37 17 +18 13 51 14 +16 6 18 12 +21 0 40 1 +54 4 54 4 +7 4 40 5 +35 12 48 15 +46 15 54 15 +30 3 39 5 +9 1 49 17 +5 11 43 16 +53 8 54 8 +0 16 43 17 +32 4 32 5 +35 3 49 6 +3 1 28 2 +47 7 49 14 +20 12 46 16 +32 8 43 10 +35 12 49 12 +1 3 52 3 +13 0 34 2 +13 10 31 14 +43 12 44 17 +5 8 39 14 +30 7 31 10 +27 9 36 14 +19 11 54 15 +34 4 47 16 +7 7 31 10 +48 12 48 17 +36 17 46 17 +40 0 54 4 +43 10 49 17 +2 1 40 16 +5 15 43 16 +42 12 50 12 +53 17 54 17 +34 13 43 17 +50 4 50 14 +49 3 50 12 +36 17 39 17 +28 6 31 6 +33 10 35 15 +45 12 47 16 +31 7 39 7 +39 15 40 16 +29 13 41 13 +19 8 51 11 +20 3 52 12 +3 16 45 16 +45 3 45 13 +39 14 53 15 +31 13 45 15 +4 1 37 1 +46 9 54 14 +8 11 24 14 +32 10 39 15 +15 6 22 17 +33 8 49 14 +6 0 52 12 +48 9 48 10 +50 1 54 13 +10 16 33 16 +34 14 49 15 +17 2 29 7 +48 14 49 15 +23 3 49 12 +26 4 30 6 +51 12 53 14 +8 15 21 15 +43 5 45 5 +52 4 52 15 +19 16 30 17 +22 10 52 14 +27 7 44 16 +24 7 28 12 +30 12 51 12 +35 5 47 17 +45 16 53 16 +33 3 46 7 +45 10 48 14 +38 3 46 14 +11 16 42 17 +20 8 32 17 +16 15 34 16 +25 6 25 7 +21 1 45 10 +4 9 30 15 +36 8 38 17 +33 11 40 16 +49 11 52 12 +34 11 43 11 +30 1 34 6 +13 8 32 13 +41 15 46 15 +10 17 42 17 +6 9 8 9 +43 2 49 11 +40 6 45 15 +10 4 45 4 +0 1 9 7 +53 5 53 16 +46 0 48 6 +32 6 51 10 +37 13 45 17 +41 1 47 8 +53 15 54 16 +49 1 51 6 +53 2 54 7 +35 13 39 13 +33 9 43 11 +24 6 36 15 +41 13 44 13 +15 2 47 2 +50 3 52 11 +2 11 53 17 +36 6 52 14 +18 10 42 14 +18 2 20 3 +39 13 48 15 +19 11 44 17 +38 0 48 14 +19 12 46 12 +14 3 36 10 +52 1 54 12 +33 15 49 17 +27 11 33 16 +27 7 51 13 +43 7 44 14 +38 16 39 17 +40 6 49 8 +42 6 52 10 +0 3 36 17 +27 5 30 15 +28 11 45 16 +6 2 13 12 +14 6 19 17 +38 9 52 14 +53 14 54 17 +16 9 20 14 +33 15 50 15 +35 17 53 17 +14 8 23 12 +10 2 54 2 +32 10 32 15 +53 5 54 6 +4 17 15 17 +34 15 44 15 +37 0 46 8 +48 17 53 17 +44 2 51 12 +52 5 52 11 +6 4 18 14 +3 5 53 8 +48 8 51 14 +47 3 48 10 +6 12 54 17 +53 3 53 10 +30 12 49 14 +22 11 53 15 +1 6 19 16 +32 8 40 16 +28 9 52 13 +26 8 51 10 +53 13 54 13 +36 2 52 2 +22 4 28 5 +19 6 26 7 +28 0 31 6 +12 14 51 14 +45 2 54 12 +49 17 52 17 +40 1 46 6 +47 4 51 4 +25 12 34 15 +36 0 43 7 +21 9 24 12 +39 1 45 10 +21 1 49 5 +21 2 29 17 +19 16 45 16 +2 5 44 13 +39 7 52 9 +15 12 31 14 +53 17 54 17 +17 12 26 13 +33 4 33 7 +27 1 30 1 +25 11 41 13 +28 12 51 17 +3 16 27 16 +24 3 41 3 +20 2 51 2 +35 17 50 17 +25 2 25 12 +10 2 53 12 +17 15 35 17 +24 0 38 15 +22 17 47 17 +21 3 41 14 +15 5 21 11 +29 10 37 13 +11 13 37 14 +44 6 47 12 +19 6 23 15 +12 13 43 15 +30 16 32 16 +53 8 53 10 +39 6 48 15 +40 12 49 15 +22 7 37 7 +21 16 45 17 +28 2 29 6 +2 16 30 17 +22 7 36 7 +18 15 18 17 +8 17 24 17 +11 0 21 11 +24 8 33 16 +13 16 28 17 +32 16 38 16 +11 0 19 10 +37 12 51 15 +11 2 14 13 +4 13 23 13 +2 3 6 5 +12 5 34 6 +10 6 45 16 +5 2 19 13 +44 6 50 17 +22 15 39 17 +28 11 38 15 +41 8 50 10 +30 11 37 13 +15 17 47 17 +34 12 50 16 +26 14 34 14 +52 14 52 17 +35 2 37 13 +20 17 29 17 +13 9 49 14 +52 16 54 17 +45 6 50 11 +28 5 29 5 +45 15 51 15 +45 15 52 16 +43 8 45 16 +21 16 21 17 +13 4 15 12 +50 0 52 6 +40 0 49 3 +21 2 31 5 +40 13 43 17 +12 1 28 3 +54 6 54 11 +12 16 50 17 +22 15 43 16 +41 15 53 17 +9 3 21 14 +30 2 32 2 +47 3 52 15 +9 12 9 14 +31 5 44 15 +33 2 35 6 +54 17 54 17 +15 12 24 13 +19 5 45 14 +48 6 52 9 +6 11 42 12 +53 11 54 11 +37 13 43 16 +41 2 54 2 +30 6 35 8 +32 17 47 17 +53 15 53 15 +45 13 46 13 +35 3 50 15 +19 12 26 16 +42 8 47 11 +30 13 38 16 +26 9 45 17 +22 16 48 16 +22 6 51 12 +43 16 43 16 +7 12 50 16 +41 1 44 14 +37 15 43 15 +7 1 24 8 +6 2 49 15 +52 13 54 13 +12 14 21 14 +7 8 33 8 +17 12 21 12 +25 7 41 9 +11 1 48 7 +50 14 50 14 +42 9 50 13 +4 11 44 15 +20 17 52 17 +24 10 42 13 +17 17 45 17 +14 10 25 14 +42 1 46 4 +9 15 28 15 +47 15 51 16 +32 4 35 7 +43 12 51 17 +32 4 33 13 +35 14 41 14 +43 8 46 11 +26 5 35 7 +36 0 37 15 +17 16 41 17 +46 0 54 1 +18 5 29 11 +16 10 32 12 +45 9 46 14 +29 12 33 17 +49 17 50 17 +0 9 47 13 +25 12 48 12 +21 12 50 15 +26 0 54 17 +1 16 4 16 +0 14 32 17 +36 14 47 15 +2 3 5 7 +5 9 27 14 +29 15 35 16 +39 1 43 8 +12 8 38 17 +19 13 49 15 +28 6 38 6 +13 13 17 13 +2 9 2 9 +37 4 49 6 +24 4 30 9 +6 5 23 17 +9 15 50 16 +38 6 43 9 +34 14 40 17 +7 17 8 17 +14 14 39 16 +0 12 25 16 +18 10 27 17 +12 10 25 15 +48 12 49 13 +23 3 39 13 +31 12 52 15 +53 14 53 14 +40 13 46 13 +7 16 46 16 +26 11 28 11 +13 5 51 12 +48 3 51 14 +14 16 44 16 +11 10 42 15 +40 9 40 17 +21 7 33 10 diff --git a/2018/republic/10-12_d1/arta/tests/06_pattern.txt b/2018/republic/10-12_d1/arta/tests/06_pattern.txt new file mode 100644 index 0000000..7f6d1c0 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/06_pattern.txt @@ -0,0 +1 @@ +73 diff --git a/2018/republic/10-12_d1/arta/tests/07_input.txt b/2018/republic/10-12_d1/arta/tests/07_input.txt new file mode 100644 index 0000000..7d40e54 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/07_input.txt @@ -0,0 +1,337 @@ +93 72 +335 +24 61 34 67 +31 38 61 60 +60 25 79 27 +4 58 86 60 +6 30 87 45 +71 33 83 61 +35 35 54 60 +92 71 92 71 +59 28 82 66 +70 47 81 64 +10 64 86 71 +73 12 76 51 +92 35 92 63 +87 51 90 70 +47 13 92 18 +42 6 77 42 +3 0 14 70 +75 26 89 38 +89 6 90 71 +69 34 88 69 +84 25 91 54 +43 50 58 50 +88 17 91 48 +16 45 47 55 +92 18 92 68 +88 23 88 50 +67 3 77 13 +68 60 84 71 +67 0 89 12 +89 7 92 67 +72 33 91 45 +25 36 70 49 +47 16 53 71 +86 15 92 15 +7 71 58 71 +18 42 70 64 +18 56 47 69 +91 51 92 55 +23 51 75 51 +48 27 53 63 +68 36 76 48 +8 48 71 66 +15 66 87 66 +51 12 54 41 +20 33 62 49 +3 68 88 71 +37 57 74 71 +27 10 33 29 +26 21 68 43 +44 12 73 63 +84 68 92 68 +47 43 58 70 +42 35 84 38 +91 36 92 64 +6 49 70 51 +30 26 33 50 +21 2 53 13 +6 34 50 49 +67 5 86 22 +38 5 59 19 +6 46 61 56 +26 58 36 68 +51 61 80 71 +56 49 69 71 +74 61 90 68 +77 65 86 68 +14 30 84 35 +57 59 74 70 +0 67 11 68 +3 45 35 70 +91 28 92 68 +9 65 28 69 +63 5 78 31 +31 11 61 60 +49 53 91 59 +4 62 37 66 +0 24 59 42 +61 15 88 61 +86 46 86 67 +70 32 78 69 +2 42 86 53 +44 39 86 58 +2 11 63 55 +27 29 46 43 +28 62 89 67 +48 7 61 70 +71 35 77 58 +75 0 79 19 +41 4 63 11 +11 37 79 67 +22 25 51 51 +86 31 87 45 +88 14 91 61 +89 53 92 57 +63 35 72 38 +12 0 18 65 +35 11 87 53 +8 45 9 49 +54 37 89 38 +14 70 52 70 +67 30 74 68 +27 33 57 69 +92 22 92 22 +24 7 89 12 +36 23 92 41 +16 15 85 31 +89 17 89 22 +72 1 92 43 +26 16 61 70 +75 51 77 54 +77 28 77 28 +92 55 92 59 +78 24 87 43 +45 35 81 52 +36 35 77 61 +57 39 65 60 +37 43 91 52 +69 51 89 63 +73 37 84 61 +41 15 72 55 +21 38 78 56 +39 65 59 71 +1 61 41 68 +40 34 65 34 +87 6 88 67 +62 57 74 65 +22 1 58 38 +66 15 70 32 +78 41 82 71 +1 49 83 52 +14 30 61 61 +90 57 91 64 +90 43 91 45 +69 29 71 35 +4 32 47 56 +77 63 86 66 +43 57 77 60 +26 3 33 16 +19 30 24 39 +23 20 62 33 +60 49 80 55 +46 40 55 40 +21 11 26 21 +78 47 87 59 +0 63 68 68 +78 24 82 31 +71 5 84 64 +28 51 78 57 +26 24 73 25 +1 32 8 60 +21 56 61 56 +7 63 60 64 +77 57 78 70 +29 46 84 64 +46 34 73 62 +71 7 87 66 +60 56 61 66 +69 30 76 50 +60 33 81 60 +45 55 84 61 +41 33 58 51 +89 6 89 64 +56 55 77 61 +85 70 89 71 +91 1 91 37 +7 43 85 53 +53 52 54 58 +92 55 92 64 +15 61 19 69 +59 1 66 45 +34 12 34 50 +29 25 50 56 +0 19 37 48 +35 69 62 71 +48 51 79 52 +77 64 88 68 +72 39 73 70 +81 13 81 70 +53 39 78 58 +81 48 91 58 +22 30 45 37 +60 46 91 61 +77 4 82 19 +20 32 57 48 +77 37 83 38 +45 68 51 68 +71 9 86 46 +10 52 81 66 +60 50 60 68 +80 53 89 64 +61 49 62 71 +90 40 91 61 +9 25 15 32 +54 13 71 71 +2 50 66 66 +13 19 91 25 +3 63 89 66 +56 17 65 51 +58 1 86 54 +21 33 67 47 +5 2 19 55 +87 71 92 71 +79 34 84 44 +12 55 50 66 +58 6 66 46 +74 4 82 60 +73 12 79 16 +42 1 49 3 +66 64 73 65 +24 20 56 30 +21 10 70 37 +46 70 87 71 +16 13 19 26 +61 21 65 56 +3 34 8 54 +2 42 70 60 +17 3 29 42 +55 67 92 71 +23 56 32 66 +88 18 92 31 +19 14 30 49 +32 60 73 67 +66 51 91 71 +62 11 86 17 +6 43 60 63 +54 4 54 58 +17 6 87 12 +48 18 53 29 +63 47 78 63 +1 33 35 38 +30 31 76 54 +38 43 61 69 +70 48 83 68 +79 23 81 70 +71 10 84 58 +52 29 73 33 +39 66 53 68 +73 12 88 37 +74 22 76 68 +81 68 82 69 +71 26 79 30 +63 52 65 60 +14 38 57 50 +0 21 52 58 +3 13 10 57 +5 53 20 61 +23 56 65 66 +64 13 75 21 +41 49 52 58 +91 67 92 70 +64 17 72 50 +75 17 79 62 +83 50 83 69 +51 68 89 69 +20 29 70 55 +40 14 90 47 +87 45 88 57 +86 60 89 61 +45 58 52 64 +50 41 50 54 +81 0 88 8 +91 41 91 50 +69 45 72 64 +31 63 41 65 +45 7 57 39 +5 8 34 63 +77 11 84 50 +37 61 52 66 +30 63 53 70 +90 21 92 32 +91 9 92 56 +86 8 89 59 +47 21 60 58 +43 45 60 47 +9 59 39 67 +53 21 71 41 +4 63 86 66 +47 70 53 71 +21 63 72 69 +64 49 88 60 +21 64 40 71 +92 68 92 71 +16 42 17 66 +17 17 65 19 +91 56 92 64 +45 13 63 21 +87 57 90 60 +40 26 43 55 +89 65 89 67 +61 54 87 71 +66 64 69 65 +2 1 61 33 +18 2 84 31 +46 35 64 62 +60 53 67 65 +20 3 89 10 +79 70 85 70 +50 49 71 54 +16 37 58 70 +79 54 80 57 +54 37 86 39 +68 54 89 63 +7 29 24 69 +13 21 56 38 +51 17 54 37 +28 23 33 60 +79 57 84 59 +3 54 58 71 +14 33 63 37 +63 16 83 55 +38 63 81 69 +52 62 80 67 +9 9 53 13 +26 14 87 44 +75 44 91 59 +85 10 91 68 +35 46 55 68 +45 56 90 60 +88 45 88 47 +75 32 83 53 +67 54 84 70 +69 64 74 66 +85 7 91 12 +47 11 82 45 +22 28 77 47 +54 45 88 58 +42 46 63 67 +18 49 20 59 +74 39 78 60 +90 68 90 69 +19 0 79 37 +7 55 37 55 +74 20 87 70 +4 41 33 71 +48 18 57 22 diff --git a/2018/republic/10-12_d1/arta/tests/07_pattern.txt b/2018/republic/10-12_d1/arta/tests/07_pattern.txt new file mode 100644 index 0000000..569daf6 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/07_pattern.txt @@ -0,0 +1 @@ +222 diff --git a/2018/republic/10-12_d1/arta/tests/08_input.txt b/2018/republic/10-12_d1/arta/tests/08_input.txt new file mode 100644 index 0000000..4fefb4c --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/08_input.txt @@ -0,0 +1,1655 @@ +66 20 +1653 +64 5 64 6 +30 0 52 13 +58 8 58 10 +42 1 58 11 +46 12 46 19 +43 12 45 15 +1 14 28 14 +63 14 64 19 +64 1 64 6 +30 1 60 18 +38 11 62 17 +12 16 13 18 +33 2 52 4 +47 16 57 18 +27 13 55 16 +36 0 40 19 +64 7 65 17 +36 18 49 19 +47 11 55 12 +65 16 65 18 +48 3 54 9 +41 4 60 10 +16 3 38 19 +56 8 58 12 +50 4 59 14 +63 6 65 11 +53 18 61 19 +22 17 40 17 +54 10 62 14 +22 18 23 19 +61 6 64 8 +44 9 45 17 +27 3 31 10 +62 2 64 17 +15 2 27 15 +3 8 56 14 +33 11 64 18 +57 17 59 17 +45 5 49 5 +56 15 59 18 +19 9 48 11 +17 0 35 2 +35 3 56 3 +63 7 65 9 +46 2 56 16 +15 10 59 15 +32 4 53 9 +11 2 60 3 +31 9 61 16 +43 11 50 16 +6 11 25 14 +59 5 60 7 +11 12 36 16 +31 19 48 19 +36 16 48 16 +1 19 9 19 +22 15 22 19 +63 4 63 11 +35 12 61 18 +14 3 52 6 +27 5 45 15 +8 19 59 19 +60 8 61 13 +17 17 64 19 +34 3 37 7 +30 5 48 5 +15 17 64 19 +53 7 54 14 +46 11 47 14 +17 18 53 18 +54 1 60 3 +51 1 59 6 +25 6 40 11 +65 9 65 17 +21 3 58 19 +4 4 34 4 +37 4 58 16 +64 9 64 10 +55 13 60 14 +62 14 63 18 +42 3 43 8 +57 0 62 15 +18 17 27 17 +24 3 45 3 +19 11 44 13 +56 7 59 19 +48 2 56 16 +13 8 30 16 +13 10 59 12 +63 7 65 14 +47 11 58 14 +9 10 18 13 +29 17 53 17 +32 12 39 13 +38 7 45 16 +63 15 65 19 +51 8 52 14 +43 17 54 18 +9 1 35 15 +22 11 54 16 +24 16 54 19 +35 13 35 15 +14 17 24 19 +11 12 57 19 +19 8 33 18 +20 6 47 14 +50 12 50 19 +59 6 62 10 +10 10 44 17 +8 13 42 13 +17 7 46 15 +19 14 31 18 +34 6 44 16 +22 11 50 17 +1 15 32 19 +19 13 52 13 +10 11 11 12 +60 4 65 7 +2 13 5 18 +20 13 25 17 +27 10 43 16 +43 19 61 19 +47 14 55 16 +33 2 64 8 +64 2 65 11 +38 11 52 17 +46 12 46 14 +12 14 38 18 +49 5 54 15 +12 2 63 7 +53 2 54 16 +35 5 50 9 +3 3 51 9 +54 5 55 10 +43 19 51 19 +63 0 64 3 +3 18 35 19 +26 16 50 17 +40 10 63 13 +26 16 65 18 +33 10 42 16 +21 18 26 19 +36 18 37 18 +8 3 45 12 +40 14 57 15 +49 18 64 18 +43 19 53 19 +40 17 63 19 +17 0 40 2 +22 10 47 18 +19 5 28 6 +16 16 34 16 +64 4 64 18 +45 19 55 19 +49 11 52 14 +48 7 49 10 +2 16 63 19 +4 18 50 18 +40 13 42 17 +57 2 57 16 +64 8 65 17 +49 0 61 7 +32 4 51 4 +54 19 58 19 +18 10 21 12 +52 13 65 16 +60 13 64 13 +35 9 35 9 +13 14 41 18 +27 0 62 14 +45 17 56 19 +63 0 65 14 +44 2 56 3 +17 12 64 14 +32 14 43 19 +57 17 63 17 +32 7 38 14 +48 3 61 4 +62 15 65 15 +48 10 58 15 +14 17 27 17 +18 2 27 19 +18 10 50 17 +63 19 65 19 +30 2 59 4 +14 5 42 6 +11 9 33 18 +48 18 48 19 +11 3 31 16 +40 11 50 13 +36 7 59 15 +26 14 36 16 +0 0 58 17 +63 7 64 7 +63 11 64 16 +40 14 58 14 +37 18 55 19 +6 15 24 15 +53 9 60 13 +54 19 55 19 +51 7 62 8 +1 0 56 1 +49 2 57 18 +0 5 2 10 +43 16 57 17 +38 19 45 19 +25 3 37 9 +61 5 65 5 +44 13 54 17 +64 0 65 1 +45 12 47 16 +3 8 50 16 +0 12 25 15 +25 14 48 17 +51 16 53 19 +20 8 30 15 +59 14 60 14 +61 12 63 19 +47 12 62 14 +61 9 63 13 +27 7 52 19 +58 8 58 10 +22 7 27 11 +12 4 55 16 +57 16 65 19 +1 11 34 15 +2 7 8 17 +21 15 58 19 +31 19 36 19 +62 18 62 18 +41 17 49 17 +49 14 61 16 +20 5 21 5 +57 17 60 18 +40 3 47 14 +29 14 46 14 +2 15 8 18 +30 19 35 19 +33 16 64 17 +45 1 63 8 +14 16 56 19 +41 7 55 13 +44 3 54 14 +32 19 64 19 +45 8 48 13 +55 15 55 18 +5 16 11 19 +17 9 35 18 +52 18 60 18 +64 0 65 1 +12 15 35 16 +47 1 64 9 +20 12 59 15 +34 14 37 18 +48 19 64 19 +45 11 55 19 +39 2 52 10 +5 8 63 13 +32 0 49 10 +23 12 44 15 +36 18 52 19 +29 17 39 18 +8 7 41 11 +46 14 51 16 +57 0 57 7 +9 16 46 17 +36 1 45 7 +45 1 58 11 +21 10 49 19 +3 8 63 8 +42 3 61 12 +41 14 56 14 +43 1 57 14 +57 10 65 18 +44 6 53 8 +31 11 53 14 +18 9 60 13 +21 1 58 2 +65 16 65 16 +13 8 39 15 +49 3 62 3 +1 13 44 14 +27 0 31 13 +34 6 45 10 +58 2 65 18 +48 10 63 17 +4 16 56 16 +17 7 50 19 +48 1 57 9 +20 6 60 11 +40 10 48 18 +43 6 60 6 +55 17 57 17 +53 10 56 11 +8 6 61 17 +40 11 58 17 +30 16 53 18 +32 3 42 11 +23 16 55 17 +43 4 56 6 +38 19 63 19 +35 13 41 18 +6 15 31 17 +39 8 65 16 +0 2 14 16 +56 7 65 7 +65 19 65 19 +27 16 30 16 +57 18 65 18 +31 0 47 15 +17 5 23 14 +4 15 23 19 +17 14 29 14 +14 18 59 19 +42 18 54 19 +50 4 65 5 +45 5 52 7 +10 18 61 19 +6 7 45 16 +24 15 27 19 +22 8 58 10 +55 9 63 14 +46 5 61 17 +39 2 54 7 +22 5 37 13 +44 16 46 16 +58 5 62 5 +26 1 58 2 +42 1 56 12 +38 7 54 19 +20 16 57 19 +17 1 21 2 +21 16 38 17 +4 0 42 4 +43 8 43 16 +3 8 44 13 +23 12 61 14 +50 16 62 19 +27 12 38 15 +47 9 51 18 +29 1 31 16 +62 0 64 5 +14 15 46 15 +16 16 32 19 +58 1 60 13 +16 13 52 15 +11 4 36 17 +23 11 27 16 +17 1 42 9 +30 0 63 8 +8 18 9 19 +26 9 62 19 +28 17 48 19 +26 17 29 19 +35 5 41 19 +40 10 61 14 +8 2 59 12 +45 18 46 18 +14 6 43 6 +30 0 55 10 +30 15 37 17 +39 16 49 17 +15 14 60 14 +29 11 63 13 +40 7 47 7 +52 8 54 19 +7 14 25 19 +26 0 31 11 +13 7 52 12 +16 11 36 18 +49 7 53 10 +53 0 60 6 +38 13 57 17 +29 18 47 19 +9 6 14 12 +11 17 30 19 +42 14 65 16 +18 5 59 17 +52 12 53 14 +13 15 54 18 +42 18 55 18 +53 18 62 18 +29 2 61 18 +17 8 18 17 +36 14 61 15 +6 18 36 18 +60 2 62 3 +40 4 49 18 +47 17 60 17 +36 6 55 16 +27 15 32 15 +13 4 20 10 +28 6 46 19 +11 15 65 15 +25 4 41 18 +37 5 48 17 +63 14 65 17 +27 13 56 19 +48 0 63 18 +1 1 23 14 +5 11 28 19 +30 3 36 13 +49 2 58 16 +38 12 46 13 +51 18 55 19 +6 16 10 19 +20 14 41 17 +14 4 26 11 +5 3 62 5 +62 2 63 11 +19 9 22 18 +14 12 30 16 +24 8 53 8 +22 14 25 18 +54 8 64 18 +25 3 50 5 +47 13 49 18 +40 16 58 19 +7 12 61 12 +34 2 54 9 +12 12 55 16 +60 19 65 19 +17 14 35 18 +38 5 56 18 +40 6 56 14 +32 2 59 12 +36 19 49 19 +5 5 41 13 +62 3 63 10 +3 3 54 7 +54 8 59 17 +24 19 49 19 +37 8 41 18 +5 15 12 15 +14 7 55 15 +64 5 64 8 +40 12 61 13 +38 7 39 9 +34 11 60 19 +57 19 64 19 +49 17 60 17 +62 0 63 0 +30 15 59 19 +54 10 54 19 +31 7 58 16 +17 10 28 16 +5 14 7 15 +12 12 25 13 +33 17 50 18 +8 19 49 19 +29 7 64 7 +16 9 46 14 +35 12 50 14 +29 8 36 19 +36 9 43 18 +63 3 65 10 +34 2 56 6 +14 2 48 17 +36 19 58 19 +57 5 57 9 +37 16 57 18 +60 2 65 7 +11 17 44 18 +55 10 56 16 +11 6 64 17 +17 17 34 19 +30 8 48 9 +58 3 58 7 +40 6 43 14 +3 7 7 11 +3 17 62 17 +65 12 65 14 +11 17 29 18 +28 6 47 19 +7 9 11 13 +61 14 61 19 +33 11 65 12 +14 7 60 8 +64 1 65 16 +4 10 15 19 +62 1 64 8 +19 15 23 15 +12 15 45 18 +13 6 23 11 +53 10 58 10 +18 15 18 19 +35 14 46 19 +19 2 29 19 +47 16 50 17 +65 16 65 18 +9 12 20 12 +59 7 61 19 +58 11 63 18 +8 2 41 8 +37 7 43 12 +24 3 34 6 +29 6 45 11 +12 3 14 13 +49 19 58 19 +48 10 63 15 +21 18 46 18 +46 0 63 0 +14 0 44 5 +0 17 20 17 +59 17 63 18 +35 18 64 19 +64 13 64 13 +29 6 39 18 +32 12 51 13 +57 2 62 19 +21 18 62 18 +30 5 61 8 +4 3 37 14 +16 12 47 16 +39 16 57 19 +19 7 35 14 +4 4 35 10 +7 15 20 16 +36 16 61 17 +31 14 38 15 +48 15 57 17 +33 18 35 19 +41 19 59 19 +1 10 40 18 +61 10 61 12 +25 15 45 17 +20 6 51 6 +21 12 56 13 +28 14 40 14 +32 15 51 15 +57 18 59 18 +61 2 63 14 +16 11 55 13 +9 6 21 13 +51 0 59 9 +54 16 58 18 +30 15 64 15 +32 11 59 15 +58 14 60 16 +20 15 29 16 +32 14 51 15 +58 9 58 12 +58 15 58 17 +16 12 50 15 +27 14 44 16 +13 14 44 16 +0 10 39 19 +62 1 63 13 +55 15 59 19 +7 15 11 19 +24 6 41 11 +27 19 55 19 +7 3 60 17 +59 5 61 5 +20 6 20 16 +13 9 35 15 +16 11 35 13 +21 1 56 3 +10 6 19 13 +44 18 62 19 +9 3 24 18 +58 15 63 15 +9 14 65 19 +58 6 65 18 +31 9 51 13 +5 2 44 16 +35 17 59 19 +57 7 62 9 +60 13 65 16 +59 5 61 12 +42 3 49 7 +26 17 58 17 +1 13 53 14 +61 18 65 19 +65 9 65 15 +57 1 62 1 +1 17 27 17 +18 9 42 16 +46 5 54 11 +5 13 34 19 +42 19 59 19 +28 13 43 18 +51 2 51 19 +2 1 14 9 +25 12 41 18 +57 6 64 15 +62 6 62 12 +21 6 60 16 +57 12 65 18 +8 16 58 18 +62 2 63 4 +20 13 64 19 +10 9 36 10 +64 13 65 13 +21 8 29 16 +35 4 51 7 +1 7 10 9 +44 2 56 13 +19 11 24 13 +36 7 40 13 +51 16 54 19 +30 4 33 16 +32 18 35 18 +43 12 50 13 +41 5 50 19 +10 15 53 16 +24 5 63 11 +15 19 32 19 +29 10 32 15 +45 6 46 16 +28 13 30 13 +6 13 20 19 +2 1 17 10 +13 8 18 9 +37 2 60 4 +17 0 47 5 +39 10 42 17 +36 15 62 19 +55 19 65 19 +53 11 56 19 +56 15 57 19 +30 8 60 14 +60 0 65 0 +8 10 11 12 +31 16 62 16 +63 3 63 13 +46 6 55 6 +51 15 59 18 +60 11 60 19 +39 15 59 19 +53 11 56 17 +51 17 63 17 +39 9 46 11 +53 15 53 15 +50 10 54 13 +31 0 34 18 +56 2 59 7 +17 6 57 6 +57 17 63 18 +16 10 36 14 +45 8 53 13 +3 19 43 19 +2 1 27 18 +26 14 26 14 +37 15 46 17 +42 11 58 19 +34 0 62 16 +32 0 59 1 +51 9 53 19 +8 1 42 14 +19 13 28 14 +37 18 48 18 +47 10 57 13 +31 13 38 15 +25 3 27 18 +4 19 48 19 +44 8 53 18 +65 7 65 9 +38 14 47 17 +34 3 58 16 +13 4 65 17 +64 9 64 19 +58 7 63 15 +65 19 65 19 +60 6 64 15 +41 8 42 17 +14 6 42 10 +52 17 59 19 +48 8 48 9 +56 9 61 9 +17 18 41 18 +54 13 61 16 +54 2 54 13 +3 9 63 19 +51 11 57 19 +61 9 65 9 +18 14 48 19 +26 4 50 16 +27 3 48 11 +8 13 38 17 +64 17 65 17 +49 12 64 13 +38 17 52 19 +34 18 35 18 +0 3 9 7 +23 19 42 19 +41 15 47 15 +34 5 51 8 +50 1 65 18 +16 8 65 18 +49 14 50 17 +11 0 21 3 +28 10 59 19 +0 0 63 12 +55 16 55 16 +4 3 36 12 +50 12 64 16 +39 10 59 13 +10 0 38 7 +0 3 57 12 +21 11 57 18 +43 1 58 15 +53 5 54 6 +25 6 45 10 +24 10 59 10 +55 8 65 18 +28 2 38 14 +5 16 13 16 +11 6 40 13 +41 14 64 17 +38 10 55 10 +8 19 56 19 +49 14 64 14 +5 13 54 19 +32 1 51 18 +39 14 56 18 +17 8 57 11 +48 1 57 1 +28 4 51 12 +60 16 65 17 +18 8 45 11 +24 13 52 15 +32 12 61 18 +12 18 63 18 +42 4 56 13 +56 16 64 18 +60 10 65 17 +62 3 62 8 +44 12 52 19 +55 5 62 11 +24 19 58 19 +1 10 44 15 +41 3 57 5 +52 19 52 19 +55 0 57 0 +23 16 29 18 +25 3 35 5 +40 16 57 18 +21 2 23 17 +19 13 27 16 +53 4 53 17 +65 4 65 11 +18 11 28 12 +56 2 65 18 +6 15 55 15 +52 14 57 16 +21 6 58 6 +44 16 48 18 +34 11 55 15 +52 17 53 19 +40 10 45 16 +45 9 55 13 +52 15 57 15 +3 12 18 19 +39 2 55 12 +28 9 51 13 +57 12 64 15 +42 14 47 14 +60 9 62 14 +1 9 30 16 +14 8 49 11 +37 1 46 1 +41 11 59 15 +50 3 61 10 +14 8 64 18 +63 9 65 10 +39 0 50 7 +8 15 42 15 +25 8 41 18 +65 1 65 1 +47 11 48 19 +29 6 46 9 +48 10 49 15 +9 16 48 16 +53 16 63 19 +17 14 23 18 +5 18 30 19 +36 8 60 16 +56 8 59 14 +13 19 54 19 +21 14 32 19 +13 6 22 9 +61 0 61 2 +12 2 15 18 +21 15 40 15 +62 19 62 19 +23 18 47 19 +22 4 45 4 +8 17 19 18 +5 8 25 16 +10 9 56 9 +46 15 59 19 +27 18 47 19 +59 5 59 6 +50 7 63 18 +43 8 59 14 +8 2 16 12 +18 1 28 1 +27 18 64 19 +8 6 18 18 +28 19 42 19 +10 19 24 19 +59 1 61 5 +30 0 31 8 +33 1 39 5 +51 13 55 14 +29 3 44 8 +16 7 20 13 +48 6 48 12 +33 4 51 14 +25 12 39 19 +4 10 50 18 +14 3 15 10 +7 4 39 10 +11 8 21 16 +59 0 62 10 +58 4 61 15 +45 4 50 8 +36 6 40 7 +22 5 33 8 +33 15 59 16 +21 19 53 19 +58 14 59 19 +29 15 29 17 +19 4 20 9 +0 15 35 17 +1 17 10 18 +7 2 18 9 +25 1 47 5 +29 17 55 18 +3 0 14 8 +17 15 44 16 +36 2 51 19 +52 6 65 11 +45 8 65 8 +50 8 59 15 +40 13 42 13 +36 14 63 17 +63 14 63 15 +47 1 47 8 +6 11 33 17 +55 0 61 9 +45 12 55 13 +13 7 32 17 +47 12 65 12 +47 7 56 9 +10 1 59 9 +46 11 50 13 +37 14 57 14 +65 1 65 16 +64 0 64 0 +21 7 37 12 +33 10 53 11 +35 11 63 14 +27 12 49 12 +9 15 27 15 +26 11 26 12 +39 18 39 19 +14 12 14 15 +34 13 40 19 +1 5 20 5 +40 11 49 13 +21 7 38 13 +30 17 51 17 +20 19 57 19 +2 10 27 10 +22 12 37 16 +52 0 62 18 +8 19 40 19 +40 17 47 19 +13 19 28 19 +5 0 29 4 +14 13 46 19 +45 1 59 9 +38 1 63 18 +0 0 19 10 +58 7 59 13 +9 11 14 12 +10 7 11 14 +33 12 55 13 +24 13 48 19 +64 8 64 9 +27 14 48 18 +47 10 54 12 +44 13 60 15 +23 12 34 16 +35 11 50 17 +12 13 34 16 +18 16 30 19 +18 10 29 19 +7 7 49 11 +54 9 54 16 +6 2 26 3 +63 13 63 16 +65 0 65 1 +7 0 39 3 +12 5 60 13 +4 7 4 11 +9 5 57 11 +26 9 62 15 +37 1 40 10 +40 17 46 19 +60 13 64 15 +19 15 28 19 +40 0 49 17 +49 16 61 17 +54 7 55 15 +27 19 56 19 +49 10 56 12 +4 16 5 16 +63 18 64 18 +49 1 55 7 +23 13 34 14 +54 3 61 9 +12 1 16 18 +27 14 64 15 +35 14 64 16 +64 11 64 11 +3 11 29 14 +34 7 63 16 +31 9 64 13 +17 19 49 19 +2 16 41 18 +61 6 64 10 +42 16 50 19 +8 4 27 5 +57 5 63 6 +43 3 45 19 +51 15 63 17 +3 5 56 14 +28 15 48 15 +3 0 57 19 +34 8 38 14 +16 13 46 19 +26 19 58 19 +47 8 58 9 +55 12 55 12 +44 11 51 19 +15 18 61 18 +54 19 56 19 +23 19 64 19 +42 18 53 18 +23 14 47 16 +21 3 42 17 +3 11 63 11 +13 12 27 14 +35 2 41 10 +23 15 55 15 +44 4 50 4 +2 2 19 9 +13 4 55 14 +35 3 52 15 +33 0 65 5 +44 12 53 15 +15 6 31 6 +49 8 55 11 +13 11 33 19 +19 1 59 12 +16 3 41 11 +32 8 49 11 +5 15 26 17 +40 12 54 17 +62 2 65 3 +41 19 45 19 +63 1 64 12 +45 19 65 19 +29 7 34 19 +20 14 56 15 +62 1 65 11 +8 3 10 12 +37 19 59 19 +43 7 61 12 +49 4 59 12 +37 13 44 13 +8 2 13 18 +9 18 11 18 +65 9 65 19 +51 1 59 11 +51 11 64 11 +62 1 65 7 +38 19 42 19 +16 14 28 18 +54 6 63 11 +10 19 63 19 +27 19 47 19 +12 15 23 17 +1 17 7 18 +12 19 25 19 +19 3 41 10 +40 18 60 18 +57 7 60 7 +2 18 56 19 +44 8 59 18 +31 4 41 14 +64 14 64 18 +4 11 15 11 +31 6 53 12 +37 6 46 16 +54 15 58 18 +63 1 65 4 +29 11 45 16 +51 8 56 13 +8 4 57 9 +20 13 46 13 +29 15 54 17 +63 9 64 10 +4 12 37 16 +41 18 47 18 +15 12 45 14 +15 12 40 15 +46 14 49 17 +39 7 59 19 +55 2 61 17 +14 3 39 10 +13 9 59 13 +19 9 54 13 +17 11 50 14 +0 15 53 19 +45 8 62 15 +44 19 63 19 +32 4 36 7 +51 17 63 17 +38 11 56 11 +13 4 23 12 +4 17 10 17 +51 17 59 17 +22 11 59 11 +19 9 54 17 +38 8 48 8 +4 18 26 19 +57 13 59 18 +38 13 47 14 +26 17 46 17 +17 7 31 19 +14 6 46 7 +47 11 60 17 +33 10 54 13 +34 14 60 18 +31 7 42 14 +47 16 48 19 +20 16 23 19 +11 16 35 19 +38 5 45 9 +14 15 57 19 +28 11 58 11 +9 17 14 17 +38 14 54 17 +25 3 35 13 +38 13 41 17 +48 12 63 13 +33 1 57 8 +7 1 23 8 +20 10 20 15 +27 0 39 3 +41 8 57 15 +59 8 64 17 +53 0 64 1 +11 19 47 19 +21 5 30 13 +12 3 52 12 +21 11 51 18 +21 2 59 3 +21 11 39 11 +38 2 59 16 +55 5 59 7 +18 2 51 8 +7 1 45 16 +18 19 39 19 +29 19 55 19 +60 12 60 17 +41 11 65 15 +17 14 59 19 +15 13 44 17 +20 12 55 12 +48 18 65 18 +16 4 32 6 +29 17 58 17 +12 12 12 17 +52 15 59 16 +20 7 54 7 +26 7 40 10 +4 10 65 13 +19 3 48 16 +27 7 29 7 +51 5 60 5 +13 16 40 18 +22 7 41 7 +4 5 24 6 +29 0 30 17 +55 18 57 19 +12 12 16 13 +44 7 62 7 +16 8 56 16 +2 8 5 14 +0 7 21 16 +60 0 65 0 +51 18 53 19 +64 14 64 16 +39 1 60 7 +60 16 63 16 +55 4 62 5 +51 3 64 14 +54 8 55 8 +49 13 64 16 +38 11 42 14 +52 10 60 18 +26 19 63 19 +37 10 45 13 +59 16 61 18 +65 17 65 19 +42 5 65 18 +0 19 29 19 +17 11 41 13 +10 4 15 11 +19 5 42 16 +0 18 40 19 +63 5 65 19 +21 14 57 15 +63 6 64 16 +38 15 57 18 +0 0 4 15 +62 18 62 19 +49 16 56 17 +11 3 23 3 +24 17 60 18 +24 11 65 13 +44 12 55 14 +62 19 64 19 +53 0 63 16 +1 8 55 10 +30 7 58 17 +4 13 4 17 +13 11 32 13 +19 10 39 15 +22 6 32 8 +36 17 40 17 +57 10 59 19 +19 12 23 12 +27 10 63 13 +6 13 26 13 +21 11 33 18 +15 6 34 7 +56 16 63 17 +57 5 64 16 +13 15 23 16 +45 16 62 17 +23 5 51 12 +18 6 63 16 +58 2 58 16 +59 0 63 17 +54 6 62 7 +25 17 31 17 +3 18 20 18 +41 11 51 13 +19 1 38 8 +7 0 17 4 +49 19 53 19 +63 6 64 11 +42 5 50 15 +7 11 40 12 +61 19 65 19 +5 10 50 13 +0 5 6 8 +6 16 58 18 +5 15 57 16 +40 15 41 15 +32 4 61 9 +5 7 9 9 +42 11 48 16 +63 0 63 16 +35 17 55 18 +51 5 60 8 +19 0 34 7 +38 8 50 12 +17 12 24 18 +21 3 35 11 +50 16 55 19 +20 13 45 18 +47 14 64 19 +11 15 44 15 +6 12 58 12 +9 0 44 4 +45 8 57 9 +57 17 58 18 +38 5 63 17 +38 9 48 19 +6 11 49 18 +25 3 38 4 +27 10 42 14 +64 3 64 17 +46 16 52 19 +22 16 61 16 +44 15 50 16 +19 9 45 17 +1 16 60 19 +30 3 38 13 +65 7 65 16 +60 13 61 14 +2 12 48 12 +18 13 48 14 +62 12 62 16 +65 16 65 17 +38 6 38 8 +65 18 65 19 +54 14 54 15 +47 19 53 19 +44 17 56 19 +51 7 60 18 +63 19 65 19 +45 7 50 9 +44 11 57 11 +39 5 51 13 +41 11 44 13 +11 0 17 4 +56 18 63 18 +64 18 64 18 +10 16 14 18 +30 12 45 17 +29 2 34 3 +59 14 59 14 +61 7 63 16 +7 9 65 15 +41 3 62 17 +1 10 28 10 +41 16 60 17 +23 1 31 12 +51 0 61 9 +2 0 46 8 +1 5 35 13 +57 0 59 10 +51 1 53 6 +1 0 28 3 +20 10 28 18 +33 2 55 19 +54 19 55 19 +43 4 61 16 +62 9 63 19 +50 7 52 7 +21 7 56 16 +43 19 52 19 +58 6 61 8 +32 10 47 11 +3 6 11 19 +30 0 54 19 +33 11 48 19 +45 18 51 19 +40 9 65 12 +7 8 9 16 +53 17 55 18 +60 16 63 17 +10 18 61 19 +38 14 57 17 +53 0 61 3 +33 19 39 19 +47 0 58 13 +37 13 52 13 +18 14 60 16 +28 15 41 15 +37 17 46 17 +18 6 63 12 +43 11 55 13 +7 16 36 18 +65 7 65 15 +16 8 51 9 +18 9 26 16 +46 0 52 6 +4 1 46 13 +47 6 56 7 +46 0 58 6 +60 0 64 1 +35 6 46 12 +24 1 41 8 +36 7 64 9 +57 5 57 10 +40 6 41 14 +44 8 62 8 +52 8 61 8 +55 12 59 14 +16 18 26 19 +44 10 64 15 +39 2 42 7 +8 18 28 19 +32 15 36 17 +56 16 65 19 +38 6 54 10 +54 3 60 13 +50 10 57 11 +27 5 59 17 +13 5 52 15 +44 5 52 10 +13 16 43 16 +4 12 63 14 +31 11 52 13 +22 5 38 10 +32 14 41 17 +58 2 63 10 +59 17 64 17 +14 12 52 18 +38 1 38 17 +4 14 14 16 +42 9 58 16 +54 3 62 19 +6 10 48 19 +54 15 55 19 +31 0 31 8 +65 2 65 17 +9 15 52 18 +9 17 39 19 +34 14 39 15 +19 19 19 19 +36 15 58 18 +38 18 47 18 +2 17 45 18 +16 16 18 17 +48 13 60 15 +8 10 31 16 +20 10 60 11 +16 4 20 19 +1 16 27 18 +63 10 64 11 +60 13 61 17 +15 8 27 17 +62 7 62 10 +22 4 64 6 +65 19 65 19 +12 15 42 18 +2 18 4 18 +52 12 55 16 +12 14 55 14 +15 12 19 15 +9 5 57 5 +39 3 40 14 +19 15 20 15 +10 14 14 19 +19 19 36 19 +29 15 52 17 +15 2 38 11 +35 16 62 19 +28 8 30 12 +53 4 62 5 +47 9 56 18 +13 16 36 17 +52 9 63 11 +17 15 17 18 +12 13 58 18 +30 15 43 16 +46 11 53 18 +20 9 25 14 +2 14 43 14 +26 13 57 19 +22 8 31 18 +9 12 37 19 +62 1 63 15 +53 5 62 16 +40 7 57 11 +64 1 64 5 +17 1 61 8 +21 2 34 8 +29 18 55 19 +30 7 63 15 +13 16 52 19 +27 18 56 19 +5 15 24 16 +50 13 52 16 +47 10 56 12 +37 10 62 13 +60 13 65 16 +9 19 11 19 +22 10 51 18 +43 7 43 14 +19 19 50 19 +4 15 43 16 +29 1 40 3 +49 9 54 10 +20 13 33 16 +7 9 24 10 +37 17 38 18 +59 15 65 19 +11 19 45 19 +19 18 22 18 +18 15 33 15 +32 4 61 7 +30 16 63 19 +21 19 52 19 +58 7 63 9 +34 10 51 12 +63 8 64 13 +62 14 62 14 +53 19 63 19 +61 14 64 19 +65 16 65 16 +48 15 48 15 +30 8 35 19 +60 9 64 12 +42 1 59 2 +30 16 57 18 +27 6 61 12 +15 7 31 10 +48 12 57 19 +53 1 65 3 +22 6 47 7 +35 19 56 19 +64 3 65 13 +54 7 61 12 +14 10 41 15 +5 16 52 16 +22 1 50 19 +36 3 49 18 +16 3 49 5 +16 0 35 18 +28 0 38 10 +35 3 58 16 +5 17 36 18 +43 8 54 12 +13 6 57 18 +30 7 42 18 +14 14 64 18 +4 0 38 16 +53 18 56 19 +40 9 56 11 +13 11 18 13 +44 19 63 19 +30 11 57 14 +4 5 49 15 +35 16 43 16 +61 16 64 16 +11 1 43 16 +39 4 54 5 +63 2 65 14 +55 13 61 16 +4 5 63 5 +59 3 63 17 +51 4 51 12 +19 19 42 19 +18 3 31 10 +33 16 39 16 +38 16 41 17 +25 3 29 17 +46 18 64 19 +0 11 32 18 +15 18 45 18 +45 18 59 19 +17 18 29 18 +60 1 61 8 +65 5 65 14 +5 16 60 18 +21 12 32 13 +31 16 35 19 +65 14 65 19 +39 4 39 10 +28 10 39 12 +28 16 37 18 +61 7 61 14 +12 13 33 16 +10 3 16 9 +57 7 61 11 +29 1 65 17 +4 13 63 17 +26 17 27 17 +38 1 55 6 +58 0 59 6 +65 4 65 6 +12 2 44 19 +52 7 55 10 +44 10 64 13 +8 5 47 17 +2 17 24 19 +35 14 35 17 +5 7 14 8 +19 8 56 14 +44 1 57 4 +25 16 38 17 +37 1 51 11 +23 17 23 19 +31 17 38 18 +25 5 34 12 +37 13 43 15 +59 10 60 19 +41 0 54 1 +16 6 29 7 +18 7 18 8 +19 8 59 17 +40 18 61 18 +50 17 51 17 +5 17 16 17 +11 4 18 13 +23 12 63 19 +2 6 2 16 +47 19 63 19 +2 2 57 9 +42 15 57 17 +23 6 32 16 +14 15 17 19 +26 1 52 1 +25 12 62 12 +28 15 29 15 +5 17 28 17 +13 16 56 19 +64 4 64 16 +20 1 24 12 +17 7 28 13 +33 9 64 12 +36 8 39 8 +5 6 37 19 +20 2 61 16 +59 5 64 14 +21 13 25 19 +20 1 24 11 +19 14 32 17 +53 5 53 8 +27 1 50 6 +46 13 50 19 +39 13 62 18 +51 17 57 18 +43 7 57 14 +37 15 54 19 +11 19 55 19 +17 8 29 8 +23 14 49 16 +1 14 63 18 +61 6 65 12 +31 13 62 17 +45 17 63 18 +53 13 56 13 +32 3 52 19 +14 14 18 18 +30 15 32 17 +47 1 50 8 +3 2 64 5 +10 8 43 17 +28 4 52 9 +16 1 51 1 +42 8 43 18 +9 19 15 19 +7 0 54 19 +2 16 3 18 +64 12 64 13 +1 6 26 16 +41 18 46 18 +42 7 62 12 +16 4 39 7 +30 8 44 10 +30 6 47 13 +18 17 48 19 +63 8 65 16 +49 19 53 19 +21 1 52 3 +16 9 40 17 +49 15 55 15 +8 0 22 9 +28 0 59 5 +44 11 60 11 +5 6 36 12 +37 0 40 2 +53 13 60 14 +23 13 51 13 +50 15 51 17 +8 16 26 17 +45 11 54 19 +3 3 29 8 +40 19 41 19 +13 5 21 18 +10 8 40 15 +51 14 62 18 +18 18 27 18 +27 19 52 19 +10 18 10 19 +10 16 41 19 +41 6 64 19 +58 8 64 9 +44 0 49 8 +17 1 27 11 +64 0 64 4 +34 9 56 18 +4 1 53 1 +24 10 65 14 +63 16 65 19 +24 15 41 15 +62 16 65 19 +13 5 47 16 +21 3 37 13 +62 10 64 10 +58 12 60 16 +31 2 36 9 +15 3 17 4 +30 5 43 13 +54 9 59 11 +61 10 64 12 +37 9 41 13 +16 3 48 6 +23 16 38 18 +55 7 62 17 +52 9 57 12 +62 6 63 10 +64 14 65 17 +51 12 64 17 +13 9 41 9 +29 15 41 17 +31 8 61 8 +24 1 49 19 +51 10 51 18 +7 19 45 19 +47 11 59 12 +41 16 64 17 +0 0 41 7 +9 11 61 17 +33 8 33 16 +57 4 63 14 +39 1 57 6 +20 15 42 19 +18 17 54 17 +58 1 62 11 +31 1 58 16 +57 5 63 6 +33 9 38 14 +52 5 61 12 +60 2 65 5 +23 10 36 11 +1 10 30 11 +28 4 31 15 +29 8 43 9 +17 19 52 19 +16 14 31 19 +35 3 46 13 +9 1 53 2 +38 1 65 2 +42 13 43 19 +45 12 47 13 +63 17 64 17 +61 5 63 14 +22 3 53 14 +36 10 40 10 +32 19 59 19 +60 15 63 15 +6 7 56 19 +41 17 48 18 +56 5 57 18 +64 1 65 3 +5 17 36 17 +48 11 60 19 +61 10 64 10 +13 12 16 13 +7 14 65 16 +43 3 56 13 +47 11 52 17 +5 13 49 13 +37 19 42 19 +37 5 40 16 +43 5 55 8 +24 5 30 13 +10 1 12 13 +18 7 24 7 +27 16 51 19 diff --git a/2018/republic/10-12_d1/arta/tests/08_pattern.txt b/2018/republic/10-12_d1/arta/tests/08_pattern.txt new file mode 100644 index 0000000..9f089a4 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/08_pattern.txt @@ -0,0 +1 @@ +85 diff --git a/2018/republic/10-12_d1/arta/tests/09_input.txt b/2018/republic/10-12_d1/arta/tests/09_input.txt new file mode 100644 index 0000000..96ebe98 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/09_input.txt @@ -0,0 +1,51 @@ +77 46 +49 +49 41 50 44 +5 38 22 41 +24 35 45 37 +67 36 70 39 +66 23 72 31 +25 9 33 26 +14 4 27 39 +61 30 64 39 +61 37 61 37 +64 43 72 44 +54 8 76 20 +7 42 33 42 +52 38 57 43 +22 33 54 37 +28 43 32 43 +14 13 58 22 +44 15 67 24 +73 21 76 27 +9 19 62 40 +44 5 57 45 +55 21 69 34 +48 22 53 37 +68 35 69 36 +20 28 58 31 +9 34 11 45 +67 21 71 43 +14 4 73 31 +74 20 76 28 +1 26 13 43 +6 40 59 41 +38 29 75 38 +0 37 44 37 +47 20 50 27 +37 30 56 36 +63 15 72 23 +65 22 67 43 +63 34 74 34 +75 26 76 41 +70 2 71 33 +39 43 48 44 +59 8 72 36 +51 45 64 45 +39 2 50 20 +76 38 76 38 +20 30 54 40 +1 22 69 26 +68 41 72 41 +15 1 29 44 +57 25 62 36 diff --git a/2018/republic/10-12_d1/arta/tests/09_pattern.txt b/2018/republic/10-12_d1/arta/tests/09_pattern.txt new file mode 100644 index 0000000..09b62a8 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/09_pattern.txt @@ -0,0 +1 @@ +811 diff --git a/2018/republic/10-12_d1/arta/tests/10_input.txt b/2018/republic/10-12_d1/arta/tests/10_input.txt new file mode 100644 index 0000000..7b7a2f4 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/10_input.txt @@ -0,0 +1,247 @@ +48 22 +245 +11 10 45 19 +7 21 47 21 +21 11 43 20 +10 19 21 21 +38 20 41 21 +7 10 12 14 +13 9 43 9 +46 3 47 16 +10 16 46 16 +33 13 47 21 +36 4 39 15 +42 6 42 17 +20 5 20 14 +19 2 25 20 +24 4 42 4 +12 11 21 16 +1 21 4 21 +41 10 46 21 +5 15 9 16 +1 20 42 21 +14 21 33 21 +0 18 8 21 +9 7 39 9 +5 10 8 20 +24 12 46 12 +21 11 34 17 +33 12 47 15 +39 15 43 21 +44 4 47 9 +38 20 46 21 +9 9 21 16 +2 21 19 21 +7 20 9 20 +30 9 34 20 +30 8 35 11 +36 3 40 13 +22 6 37 15 +13 6 35 17 +46 18 46 20 +25 13 40 19 +39 17 46 20 +45 14 47 21 +22 4 47 20 +16 3 37 21 +5 16 17 19 +29 3 45 8 +34 12 38 12 +20 16 39 19 +14 21 34 21 +9 6 40 8 +31 16 33 21 +35 6 36 16 +15 21 18 21 +14 4 21 10 +11 0 18 11 +41 8 44 19 +37 8 47 15 +41 7 47 16 +3 8 6 9 +5 20 27 20 +45 21 45 21 +24 6 29 20 +35 13 36 21 +2 20 33 21 +4 5 40 7 +39 14 47 14 +24 6 26 15 +14 1 25 10 +8 0 45 9 +35 13 42 15 +16 17 20 17 +38 17 47 17 +36 17 36 20 +42 9 46 12 +24 7 25 8 +6 11 22 18 +38 3 38 9 +23 18 37 21 +12 20 38 21 +44 10 45 14 +27 19 39 20 +9 20 19 20 +42 15 43 18 +38 4 43 6 +1 14 28 18 +13 17 42 17 +14 7 27 21 +14 15 45 15 +19 3 35 17 +30 4 40 18 +37 4 44 6 +36 21 38 21 +47 9 47 19 +43 0 45 16 +46 10 47 17 +35 20 41 21 +18 8 20 13 +16 12 21 16 +3 9 11 17 +41 5 43 17 +26 16 45 21 +10 16 18 18 +4 1 25 2 +3 11 6 14 +34 16 44 21 +23 2 37 11 +27 15 45 21 +46 8 47 8 +8 0 34 4 +19 3 44 16 +23 12 23 15 +22 16 47 21 +26 11 45 12 +43 2 44 13 +5 4 17 6 +41 14 42 21 +19 10 31 13 +45 19 45 19 +34 2 41 18 +36 11 45 12 +2 6 32 21 +20 9 21 18 +25 2 44 14 +4 19 35 21 +2 10 24 16 +47 0 47 14 +26 14 42 19 +6 12 25 20 +34 17 34 17 +42 11 45 13 +47 10 47 20 +6 18 43 20 +29 6 44 9 +3 13 46 21 +8 18 39 21 +2 3 14 18 +17 2 22 3 +38 14 42 19 +0 14 30 15 +38 8 39 9 +44 4 45 11 +16 19 22 21 +20 12 42 21 +17 4 46 12 +9 21 35 21 +14 4 43 13 +34 0 37 16 +14 15 44 21 +23 19 38 20 +46 18 46 21 +6 10 9 13 +11 7 30 17 +33 7 42 15 +27 10 35 13 +46 20 47 21 +37 13 37 14 +22 15 40 16 +20 0 39 2 +7 19 44 20 +25 8 37 10 +18 21 38 21 +22 5 39 21 +45 17 46 19 +3 18 22 20 +17 4 29 13 +28 11 31 16 +29 19 32 20 +33 11 34 13 +34 7 43 7 +37 7 42 8 +37 6 40 20 +0 1 10 12 +32 5 41 13 +45 18 47 19 +17 6 30 13 +29 9 40 18 +26 13 38 13 +34 12 38 19 +47 19 47 21 +36 12 43 12 +28 7 43 19 +47 10 47 18 +44 15 47 18 +19 7 27 7 +34 5 37 8 +3 2 26 5 +4 6 40 21 +23 9 25 17 +11 20 32 21 +43 0 45 1 +5 8 40 18 +45 11 46 11 +3 18 12 20 +18 14 34 21 +11 9 22 10 +2 19 35 19 +38 18 47 21 +23 5 36 20 +19 18 28 19 +34 21 46 21 +19 7 20 7 +6 2 33 3 +11 7 41 11 +27 2 33 20 +6 0 33 8 +28 8 46 8 +16 8 33 14 +10 10 39 18 +27 20 41 20 +7 0 23 11 +30 21 35 21 +43 15 46 16 +1 18 28 21 +34 4 46 10 +19 21 23 21 +44 2 45 21 +36 19 43 20 +45 13 47 21 +43 21 47 21 +10 17 11 17 +17 14 37 16 +2 14 19 20 +20 7 32 7 +18 11 46 21 +37 8 40 14 +31 2 35 11 +10 13 22 13 +1 1 42 9 +44 18 45 21 +18 5 46 15 +26 20 43 20 +19 17 36 20 +5 14 47 20 +7 3 37 6 +3 1 38 17 +38 21 44 21 +28 1 43 7 +44 17 47 21 +15 0 40 20 +23 21 42 21 +46 9 46 20 +12 18 17 18 +14 0 45 5 +35 15 46 16 +8 18 22 19 diff --git a/2018/republic/10-12_d1/arta/tests/10_pattern.txt b/2018/republic/10-12_d1/arta/tests/10_pattern.txt new file mode 100644 index 0000000..77b6b6f --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/10_pattern.txt @@ -0,0 +1 @@ +89 diff --git a/2018/republic/10-12_d1/arta/tests/11_input.txt b/2018/republic/10-12_d1/arta/tests/11_input.txt new file mode 100644 index 0000000..d53ba00 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/11_input.txt @@ -0,0 +1,554 @@ +51 97 +552 +37 52 50 82 +17 26 39 31 +26 96 32 96 +0 79 49 96 +20 72 23 83 +12 80 27 84 +6 35 41 42 +5 5 26 26 +50 3 50 27 +20 32 40 91 +39 87 48 90 +34 23 36 62 +22 89 48 90 +25 22 32 42 +43 21 49 66 +50 7 50 71 +21 89 33 90 +39 31 46 65 +48 41 49 88 +35 53 50 95 +1 49 13 86 +39 28 44 63 +24 41 46 59 +35 50 48 74 +14 96 28 96 +13 19 42 56 +9 6 15 34 +25 34 45 60 +16 16 20 43 +19 88 32 92 +42 7 47 42 +23 39 38 43 +34 83 41 86 +7 62 32 89 +50 13 50 52 +5 36 28 91 +38 2 43 24 +5 88 47 88 +48 8 49 32 +50 32 50 68 +47 67 49 73 +37 43 42 76 +50 15 50 39 +50 3 50 36 +27 71 43 84 +12 3 42 8 +9 37 37 60 +29 58 42 95 +29 49 39 73 +44 82 48 88 +10 45 33 78 +9 8 37 52 +32 79 39 90 +34 12 48 54 +32 70 32 88 +50 17 50 62 +1 28 7 31 +19 65 31 78 +17 76 46 86 +37 15 49 96 +41 77 43 94 +10 49 24 78 +9 59 14 74 +1 74 22 77 +46 26 48 91 +6 78 16 87 +46 64 50 87 +33 38 48 85 +28 17 37 25 +12 22 28 41 +48 19 48 28 +23 34 36 49 +28 26 36 74 +25 63 45 71 +35 82 37 94 +2 43 30 67 +32 86 37 88 +31 43 39 94 +42 24 47 48 +7 83 11 90 +8 88 12 91 +18 12 31 63 +10 86 37 88 +49 46 50 63 +30 63 47 95 +13 4 43 54 +0 48 34 80 +22 8 45 88 +33 22 46 42 +31 79 50 83 +37 91 43 92 +27 16 35 38 +36 1 47 2 +5 74 31 93 +20 12 41 94 +8 33 29 61 +34 82 37 95 +11 64 13 96 +44 73 50 83 +43 84 49 85 +5 29 38 79 +2 66 10 70 +35 65 40 83 +9 29 27 81 +10 80 15 90 +28 28 45 72 +21 13 30 46 +1 46 34 65 +2 26 23 94 +1 18 31 40 +44 34 44 43 +20 61 35 83 +48 1 48 66 +7 3 48 45 +50 4 50 9 +37 53 45 87 +9 85 40 93 +26 93 28 96 +7 89 37 93 +36 21 38 51 +20 83 40 87 +45 32 47 82 +22 83 47 89 +30 0 35 61 +43 27 50 56 +25 19 32 51 +0 75 12 91 +27 37 37 76 +40 63 47 66 +41 89 43 95 +19 55 36 92 +17 22 19 50 +35 62 43 78 +47 77 48 78 +37 67 43 85 +15 75 22 75 +32 60 43 76 +45 26 46 26 +36 18 46 89 +30 70 33 92 +30 13 31 84 +19 16 32 45 +42 47 47 86 +49 36 49 51 +36 8 38 88 +32 11 32 61 +31 10 50 58 +5 69 9 78 +36 92 49 95 +15 2 38 43 +29 74 41 86 +23 0 42 88 +29 8 36 10 +5 13 9 42 +23 70 39 73 +4 9 7 23 +24 46 45 91 +39 52 39 72 +2 51 10 92 +16 6 19 56 +1 14 36 28 +16 10 22 11 +25 26 35 47 +13 9 49 83 +30 26 41 31 +17 9 17 92 +3 58 8 79 +50 3 50 28 +32 70 45 87 +18 9 38 38 +31 16 35 76 +46 61 48 88 +26 54 43 56 +29 68 30 84 +36 0 43 74 +0 84 49 87 +38 35 44 67 +39 85 42 93 +4 3 16 83 +39 95 41 96 +48 74 50 86 +3 47 7 54 +43 75 50 96 +19 7 42 27 +24 14 45 33 +34 36 43 50 +44 48 48 90 +32 41 35 62 +20 82 45 95 +45 29 48 80 +28 73 45 92 +34 61 49 62 +9 38 18 62 +9 90 22 91 +36 2 48 14 +16 26 42 56 +31 25 34 78 +8 28 48 79 +13 54 47 55 +46 6 46 72 +26 20 50 81 +45 29 46 80 +8 23 39 75 +32 80 41 80 +31 59 31 73 +28 69 30 82 +31 7 37 42 +36 72 41 95 +18 72 21 94 +48 5 49 77 +49 18 49 52 +19 74 33 81 +10 72 46 76 +9 51 49 52 +24 52 42 71 +31 22 48 28 +20 31 42 51 +26 12 37 50 +34 35 45 62 +48 43 50 65 +46 65 46 73 +11 37 37 66 +4 59 36 77 +13 86 44 93 +3 45 30 53 +14 89 14 91 +32 95 45 95 +33 36 38 61 +2 84 2 85 +42 10 45 17 +19 53 43 58 +38 65 45 94 +28 32 30 56 +46 76 49 83 +45 55 50 66 +47 27 50 52 +35 72 44 94 +11 68 36 80 +1 64 29 83 +11 61 19 62 +16 65 42 96 +30 32 50 35 +14 54 46 73 +31 86 38 92 +37 94 37 95 +31 2 32 60 +2 58 49 94 +17 7 47 20 +31 82 46 89 +28 88 50 91 +23 63 43 78 +33 74 50 83 +38 79 44 84 +35 12 39 92 +9 6 17 20 +38 44 42 46 +47 41 49 86 +2 94 42 95 +13 14 49 27 +23 2 46 22 +33 34 44 74 +12 22 39 70 +20 71 24 74 +7 11 14 80 +26 34 35 38 +15 26 37 33 +42 31 50 51 +24 24 37 69 +28 80 44 94 +0 20 42 53 +1 12 5 70 +11 12 48 57 +47 22 49 35 +5 43 14 80 +4 28 25 66 +6 75 39 94 +44 51 49 59 +37 68 40 70 +3 13 46 89 +10 42 34 78 +22 61 30 64 +10 26 31 41 +10 35 11 72 +47 18 49 75 +14 72 39 95 +12 41 29 77 +43 47 46 96 +40 13 50 57 +30 71 47 89 +46 41 48 72 +31 4 48 21 +44 2 50 63 +12 75 15 80 +41 37 47 75 +21 27 21 76 +38 17 43 83 +37 33 39 96 +1 7 31 19 +27 64 37 72 +20 71 20 87 +48 30 49 69 +40 31 40 94 +32 43 43 44 +43 5 50 79 +49 27 50 45 +20 87 37 93 +21 72 28 75 +4 39 32 63 +44 63 44 75 +50 8 50 24 +29 89 35 93 +18 53 46 88 +6 88 10 92 +18 88 19 96 +0 80 10 91 +23 32 40 59 +13 32 30 73 +13 96 29 96 +32 3 50 62 +3 53 43 79 +16 26 40 76 +38 17 38 24 +14 63 18 82 +27 78 40 94 +5 22 14 79 +49 88 49 89 +22 52 45 93 +14 65 32 91 +24 36 37 80 +24 10 49 37 +2 73 22 95 +21 32 50 95 +9 87 28 92 +0 17 48 26 +44 94 47 95 +41 1 46 5 +11 45 27 54 +19 41 46 58 +15 88 40 90 +34 4 48 32 +2 24 7 53 +13 84 36 94 +6 49 10 69 +0 56 35 68 +24 93 39 96 +47 52 48 76 +43 4 48 11 +19 79 35 89 +49 1 49 65 +7 34 40 76 +30 47 44 61 +37 12 38 69 +47 27 47 37 +25 91 29 91 +14 92 14 95 +8 96 29 96 +1 93 10 96 +5 86 30 91 +0 47 48 59 +17 21 20 64 +26 68 38 71 +27 86 49 87 +45 56 45 89 +8 47 9 90 +3 21 33 62 +3 85 38 88 +41 66 43 95 +11 62 44 65 +50 65 50 79 +25 69 47 95 +14 90 49 92 +26 46 47 55 +34 72 35 74 +24 76 25 93 +12 83 43 91 +40 59 41 65 +14 81 46 87 +43 83 45 94 +42 16 45 69 +44 42 44 77 +10 67 14 76 +43 21 43 71 +39 39 45 45 +22 83 36 91 +9 83 16 92 +29 24 49 80 +7 27 33 87 +46 55 46 78 +40 4 40 34 +33 46 43 84 +9 28 37 60 +31 24 37 90 +34 39 34 70 +8 14 29 45 +31 47 44 79 +15 1 31 29 +43 15 46 19 +19 72 27 93 +49 91 49 94 +14 34 33 72 +28 15 28 25 +32 30 32 54 +20 95 27 95 +40 69 42 83 +26 39 46 84 +4 34 44 36 +49 15 49 48 +44 78 45 91 +17 79 34 94 +27 58 31 81 +47 34 50 53 +29 62 49 94 +37 78 50 86 +39 10 50 10 +9 91 36 92 +19 96 26 96 +44 24 45 59 +19 59 30 73 +45 62 50 84 +45 77 48 80 +35 71 46 93 +26 73 41 90 +49 11 50 75 +14 56 34 88 +36 71 38 89 +12 55 12 68 +38 62 49 93 +0 67 23 73 +17 94 23 94 +45 48 46 51 +20 68 34 80 +6 33 8 69 +36 79 38 88 +11 9 17 14 +10 40 16 70 +34 77 34 79 +21 91 44 92 +22 26 39 87 +17 53 50 94 +46 58 49 81 +48 74 48 77 +19 9 21 58 +12 76 40 78 +34 22 44 76 +19 22 45 41 +42 72 42 89 +19 6 48 9 +35 68 46 77 +41 69 43 81 +42 90 47 91 +31 54 36 86 +42 62 46 77 +26 28 41 33 +31 24 39 37 +47 12 49 50 +26 96 27 96 +47 74 48 74 +11 67 49 73 +43 2 45 52 +22 76 42 80 +43 89 49 96 +23 4 39 32 +7 14 33 48 +48 63 50 89 +11 7 34 16 +8 41 22 78 +36 21 41 35 +16 89 26 96 +31 93 41 95 +0 8 38 11 +45 20 45 69 +4 76 47 80 +44 14 46 45 +41 41 47 57 +13 77 49 84 +43 79 43 80 +21 23 33 35 +20 81 20 90 +20 93 48 95 +2 5 9 65 +38 12 49 76 +44 89 44 96 +41 62 46 83 +44 53 46 62 +28 40 49 87 +43 66 44 95 +31 46 41 93 +22 90 25 94 +6 73 47 74 +49 22 50 65 +22 95 41 95 +38 46 46 63 +6 86 33 89 +27 68 47 86 +10 42 33 79 +19 45 45 70 +21 1 38 77 +19 17 23 64 +24 34 46 36 +45 49 46 66 +48 35 50 59 +33 66 39 81 +9 48 30 92 +3 79 15 90 +45 1 46 46 +38 71 50 93 +28 19 48 63 +11 2 20 92 +7 86 23 91 +23 9 42 21 +14 76 48 77 +31 21 41 41 +1 92 49 95 +18 89 33 94 +27 58 30 76 +7 31 20 73 +30 70 50 91 +8 54 42 65 +1 34 4 70 +37 19 41 36 +29 57 45 61 +22 8 31 94 +28 48 32 81 +31 96 45 96 +49 13 49 21 +1 37 6 55 +34 89 34 90 +32 4 46 45 +29 86 42 94 +38 87 48 90 +1 35 40 79 +3 16 31 57 +33 40 48 44 +17 74 23 84 +38 18 45 35 +25 47 36 57 +16 44 19 55 +30 12 48 64 +32 49 42 79 +24 44 45 67 +17 62 27 79 +19 4 29 18 +30 85 44 92 +3 60 24 69 +19 6 19 30 +38 80 49 82 +41 6 47 75 +44 56 48 78 +22 30 48 54 +22 40 49 87 +37 88 37 90 +29 40 37 64 diff --git a/2018/republic/10-12_d1/arta/tests/11_pattern.txt b/2018/republic/10-12_d1/arta/tests/11_pattern.txt new file mode 100644 index 0000000..8623c09 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/11_pattern.txt @@ -0,0 +1 @@ +225 diff --git a/2018/republic/10-12_d1/arta/tests/12_input.txt b/2018/republic/10-12_d1/arta/tests/12_input.txt new file mode 100644 index 0000000..3972edb --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/12_input.txt @@ -0,0 +1,2718 @@ +69 81 +2716 +0 27 25 35 +40 23 53 32 +42 40 44 47 +36 39 52 64 +9 62 66 70 +24 22 40 65 +58 56 63 67 +11 55 59 70 +26 32 55 35 +44 64 62 75 +66 48 68 60 +12 21 20 38 +15 70 64 80 +47 28 64 80 +41 67 46 69 +22 15 33 78 +26 36 62 59 +2 58 8 77 +30 59 57 64 +3 51 41 68 +41 27 57 60 +46 55 61 70 +19 41 27 63 +53 79 54 80 +41 77 63 80 +53 71 57 74 +47 50 64 63 +30 64 44 77 +55 23 57 38 +30 24 68 76 +6 20 64 21 +22 12 50 56 +47 13 63 34 +58 21 62 25 +49 27 56 78 +21 80 28 80 +58 12 64 57 +54 39 68 69 +66 8 66 10 +24 8 58 71 +56 58 66 80 +65 59 68 79 +66 16 67 39 +37 35 49 59 +8 58 61 67 +30 72 53 76 +56 23 67 49 +3 7 24 9 +36 2 64 70 +59 33 65 69 +8 39 51 75 +65 51 65 60 +9 3 32 67 +67 76 68 77 +4 38 31 72 +53 45 64 68 +53 26 56 58 +64 34 67 56 +7 55 35 79 +0 77 64 77 +11 5 36 42 +55 41 62 58 +26 8 53 28 +28 0 63 38 +40 20 68 34 +43 76 56 79 +41 11 65 34 +14 40 42 48 +20 5 60 15 +6 52 43 80 +67 35 68 41 +53 0 66 73 +39 14 50 25 +63 62 68 73 +6 46 39 60 +49 70 49 80 +26 10 61 55 +68 29 68 43 +0 44 38 65 +44 18 53 24 +45 73 49 77 +0 20 29 24 +59 38 66 67 +48 17 50 19 +27 49 38 55 +34 68 63 70 +38 74 48 79 +21 30 44 77 +64 78 64 79 +45 70 54 73 +10 12 62 66 +7 32 23 67 +61 66 64 72 +23 28 43 39 +32 17 34 70 +30 67 52 71 +0 61 9 76 +46 52 67 67 +57 28 63 42 +48 56 53 77 +26 20 44 28 +4 11 49 61 +21 51 63 54 +0 35 26 61 +58 3 58 56 +32 11 66 30 +2 43 52 66 +5 3 9 24 +7 68 39 68 +20 50 23 79 +56 42 68 66 +10 13 54 69 +44 66 61 68 +29 43 31 57 +21 3 67 5 +55 41 63 79 +34 61 56 75 +18 20 29 61 +14 54 48 54 +50 46 68 73 +65 43 65 78 +60 49 66 71 +18 1 19 56 +10 49 54 59 +11 52 21 63 +5 5 53 18 +62 47 64 73 +39 61 55 62 +58 72 63 78 +60 19 66 39 +9 78 51 80 +11 45 18 64 +28 28 35 57 +52 18 53 40 +44 54 51 63 +15 80 45 80 +37 33 54 71 +21 58 26 74 +29 51 68 61 +0 46 39 80 +41 2 48 24 +11 72 53 76 +54 16 62 72 +4 78 13 80 +48 38 54 75 +64 49 66 79 +1 60 47 62 +34 39 51 55 +31 19 40 71 +0 32 36 64 +46 59 59 71 +30 51 36 51 +17 22 33 40 +28 80 49 80 +0 17 19 18 +20 59 59 67 +15 29 22 66 +51 3 58 55 +17 48 48 52 +28 69 45 74 +27 29 60 77 +5 77 61 78 +5 29 27 38 +67 16 68 30 +25 44 52 61 +53 61 67 63 +48 39 56 74 +62 58 62 67 +66 44 67 68 +27 65 41 69 +62 63 65 69 +60 3 60 43 +46 72 60 76 +28 49 48 53 +34 42 52 43 +52 62 62 66 +65 5 65 41 +24 62 26 70 +50 78 67 79 +13 65 14 79 +30 11 66 42 +37 12 42 53 +41 1 54 42 +47 14 57 37 +43 68 68 72 +0 63 0 77 +15 15 37 28 +7 22 20 38 +3 5 39 15 +19 43 60 57 +16 55 46 63 +8 57 68 71 +47 67 58 67 +15 60 37 80 +15 43 60 60 +28 55 48 71 +26 47 65 78 +11 3 67 71 +66 41 68 68 +22 17 24 43 +14 9 66 53 +36 59 50 72 +65 35 66 61 +67 76 68 77 +48 48 48 65 +61 80 63 80 +47 75 52 78 +43 6 52 51 +38 19 42 25 +42 29 59 31 +63 55 65 68 +16 37 57 42 +33 59 53 63 +62 23 64 77 +44 42 45 78 +60 62 63 78 +25 79 48 79 +52 23 52 39 +18 68 51 76 +54 67 56 75 +50 39 62 80 +33 75 47 76 +29 69 32 78 +5 72 68 72 +55 1 60 15 +7 24 54 55 +13 32 30 68 +65 5 65 15 +37 13 44 69 +50 34 54 39 +3 18 38 55 +59 5 61 60 +19 67 63 76 +45 22 49 37 +12 42 28 68 +45 35 61 47 +41 71 59 78 +35 36 65 54 +55 27 64 54 +56 39 66 43 +30 58 38 77 +37 11 56 52 +22 67 60 74 +1 9 38 66 +59 15 64 32 +56 17 59 44 +17 13 55 48 +24 39 55 44 +41 68 59 75 +21 69 55 72 +62 16 67 74 +55 80 59 80 +27 28 60 42 +13 1 47 13 +32 40 54 76 +51 76 67 76 +65 51 67 75 +32 2 42 44 +38 33 44 67 +52 37 65 57 +3 76 55 79 +15 16 21 26 +44 42 67 70 +68 63 68 63 +19 71 53 75 +48 68 51 69 +26 38 67 64 +21 44 22 61 +46 39 58 71 +14 61 26 77 +40 60 53 65 +1 4 34 70 +1 19 49 44 +65 80 68 80 +34 24 63 35 +57 22 63 27 +34 58 38 73 +14 58 26 78 +12 69 57 80 +43 28 47 46 +20 7 37 80 +40 27 41 31 +52 13 62 59 +35 65 61 79 +16 23 22 43 +30 10 42 33 +57 10 59 75 +29 35 47 60 +1 65 51 68 +31 20 59 48 +5 39 22 70 +28 31 54 59 +62 8 67 76 +44 58 66 74 +25 71 46 79 +61 77 61 78 +35 36 65 63 +18 55 28 64 +68 61 68 71 +21 28 56 31 +56 39 61 61 +40 19 50 24 +35 41 59 47 +21 28 48 48 +4 35 9 38 +54 17 65 20 +68 52 68 78 +8 80 57 80 +39 40 53 77 +62 45 67 45 +67 48 68 56 +58 41 59 74 +47 44 62 53 +35 41 39 72 +20 51 34 78 +15 70 36 72 +23 4 37 78 +59 45 65 80 +23 47 28 78 +33 33 42 53 +28 26 51 45 +45 16 49 30 +19 12 25 36 +7 35 38 58 +21 74 27 74 +57 23 64 51 +48 59 58 62 +2 57 13 70 +60 21 64 45 +28 51 50 69 +44 67 68 70 +2 33 30 52 +16 14 57 44 +55 61 63 69 +29 16 30 30 +12 79 29 79 +61 3 68 66 +60 12 61 47 +31 57 38 62 +6 31 53 47 +20 56 37 57 +50 49 55 59 +20 68 20 74 +28 39 68 63 +51 60 68 68 +63 55 66 71 +18 51 19 53 +20 18 25 69 +50 66 64 67 +31 52 52 53 +31 33 65 54 +13 2 14 33 +3 25 29 62 +1 23 24 40 +51 21 54 33 +21 17 24 55 +18 40 44 71 +36 54 44 77 +18 45 30 49 +48 2 50 74 +40 77 46 79 +2 2 11 11 +63 49 67 62 +52 65 53 65 +10 14 40 76 +32 43 43 79 +46 14 68 37 +67 36 68 72 +41 56 62 58 +9 8 60 70 +37 0 61 23 +20 43 26 67 +40 49 59 73 +42 59 45 76 +47 78 67 79 +53 68 67 76 +55 41 59 68 +43 16 62 66 +8 5 64 38 +6 75 46 79 +34 62 50 71 +4 21 14 32 +50 43 65 68 +9 26 23 74 +1 39 62 66 +33 23 56 52 +68 65 68 69 +20 60 32 79 +67 7 68 76 +50 61 53 61 +58 20 60 35 +25 3 41 70 +42 22 48 49 +54 52 56 54 +44 44 52 60 +67 8 67 34 +29 19 41 61 +48 37 49 54 +68 72 68 75 +68 72 68 73 +14 54 41 73 +20 70 48 76 +55 75 67 78 +1 38 44 73 +49 26 53 39 +26 50 65 56 +55 78 67 80 +23 53 42 54 +50 77 51 78 +32 74 63 74 +49 30 63 77 +1 9 44 35 +64 7 64 43 +35 50 65 74 +2 68 25 75 +32 64 34 74 +36 45 44 51 +58 42 67 56 +54 19 61 58 +37 7 51 52 +37 28 67 44 +20 68 54 75 +59 23 66 53 +21 27 64 47 +19 32 51 46 +54 29 54 58 +13 8 53 50 +64 74 68 77 +26 5 67 6 +3 31 50 73 +66 64 68 72 +49 29 52 34 +61 12 63 48 +19 23 38 49 +53 37 54 66 +38 20 52 73 +49 46 60 56 +59 18 68 67 +13 61 54 68 +18 40 41 53 +59 26 68 67 +25 49 42 60 +27 3 52 13 +23 23 49 42 +66 4 66 32 +43 48 43 77 +47 28 49 45 +41 48 52 55 +46 16 67 47 +65 69 67 73 +55 38 65 54 +15 69 34 74 +4 0 58 37 +1 22 47 24 +6 9 63 77 +62 34 65 43 +40 4 48 26 +44 38 59 52 +14 60 44 66 +1 22 39 47 +8 26 32 61 +43 44 58 73 +15 29 65 43 +27 30 54 75 +52 63 67 75 +62 12 65 69 +16 42 68 80 +17 0 66 60 +52 5 66 17 +67 26 68 28 +35 64 42 75 +8 78 19 78 +5 22 44 28 +17 47 61 72 +63 77 68 79 +35 47 55 57 +53 61 56 65 +24 5 49 80 +31 78 59 78 +61 62 64 68 +37 53 54 56 +43 42 48 64 +31 41 55 67 +63 5 64 60 +37 19 51 72 +52 29 63 51 +66 51 66 78 +29 72 31 77 +36 71 41 71 +21 25 39 70 +29 29 41 37 +42 57 56 71 +44 14 54 47 +18 65 67 66 +29 40 56 63 +29 47 68 48 +64 23 67 39 +8 71 8 73 +50 47 64 58 +42 18 54 68 +60 38 64 77 +38 56 59 56 +28 6 60 47 +7 10 31 57 +46 44 53 68 +51 59 51 75 +64 11 68 77 +58 78 61 78 +38 38 62 77 +33 19 46 77 +61 50 63 74 +49 72 57 79 +18 4 49 68 +61 75 66 80 +28 58 53 64 +55 70 57 75 +19 64 62 69 +28 70 51 80 +10 70 17 70 +31 27 48 43 +35 49 47 71 +54 53 61 59 +22 71 55 77 +6 71 14 75 +4 30 18 46 +46 2 55 40 +0 16 58 57 +5 41 54 43 +33 70 35 71 +51 55 66 60 +62 6 66 19 +68 6 68 19 +9 41 47 69 +36 16 47 63 +23 79 55 79 +39 0 41 3 +46 24 59 60 +67 22 68 33 +62 77 66 77 +48 9 51 39 +16 68 58 69 +66 44 66 61 +38 23 57 75 +30 3 39 35 +64 7 65 44 +25 69 51 75 +23 8 31 15 +24 63 30 78 +19 23 64 42 +57 55 63 63 +26 13 33 22 +4 65 26 76 +23 33 45 35 +50 31 61 33 +37 68 57 73 +50 23 61 52 +38 6 67 15 +55 36 64 80 +51 67 60 76 +65 60 68 75 +29 18 60 75 +48 36 55 71 +14 76 46 77 +39 4 59 77 +52 72 67 77 +42 51 67 71 +10 77 60 78 +1 17 48 77 +10 59 15 62 +47 50 60 75 +38 31 56 58 +30 6 55 65 +0 48 20 58 +35 16 63 32 +19 35 46 78 +25 20 42 37 +37 42 63 78 +7 50 21 55 +52 46 57 60 +58 67 59 67 +44 74 44 75 +56 9 64 43 +9 44 57 45 +64 72 68 73 +21 3 25 33 +2 64 60 68 +49 50 67 76 +62 0 64 24 +16 2 65 75 +39 74 52 80 +12 33 45 33 +12 27 29 55 +5 1 22 64 +49 75 61 77 +34 12 42 79 +58 60 68 72 +59 60 60 77 +51 30 57 72 +20 37 61 44 +48 26 66 40 +23 3 24 10 +46 43 56 80 +31 30 46 43 +32 29 67 75 +3 30 48 30 +4 6 42 56 +29 35 64 53 +66 8 66 44 +27 42 31 72 +62 7 64 55 +24 47 55 50 +44 13 63 29 +31 77 38 77 +15 75 47 79 +2 36 41 42 +9 52 22 74 +29 10 63 72 +52 54 52 67 +29 17 38 36 +7 11 21 45 +7 71 9 79 +47 26 54 43 +66 31 68 47 +11 72 68 74 +35 78 44 79 +49 1 60 45 +8 7 10 30 +4 60 27 72 +35 70 49 78 +51 54 57 65 +29 40 60 73 +8 70 54 79 +14 75 42 75 +60 29 68 77 +10 73 42 76 +10 8 61 32 +27 36 44 55 +38 41 42 62 +44 68 66 77 +41 17 67 27 +40 58 68 63 +34 40 36 52 +51 47 52 70 +17 67 62 75 +58 3 64 63 +3 1 5 49 +52 65 65 76 +10 53 41 56 +61 32 63 48 +35 71 66 71 +27 80 65 80 +33 18 56 37 +25 27 67 80 +14 72 16 72 +43 54 56 60 +27 35 52 45 +44 65 47 65 +35 0 57 53 +56 62 61 73 +50 7 65 10 +51 28 53 47 +37 68 63 80 +6 72 30 75 +29 77 66 80 +68 11 68 59 +15 33 19 57 +27 27 41 62 +44 28 65 57 +9 37 14 48 +47 27 57 59 +48 37 49 67 +31 50 59 74 +2 33 32 73 +2 20 23 74 +34 4 64 73 +57 35 68 69 +0 30 54 36 +3 54 64 69 +57 4 58 47 +24 35 47 56 +48 3 59 19 +14 17 36 31 +0 78 13 78 +43 30 44 68 +8 5 21 38 +58 39 63 65 +66 14 67 71 +1 46 60 75 +54 51 54 66 +4 56 53 67 +18 6 68 70 +13 32 31 46 +57 76 59 78 +66 24 68 79 +65 59 65 69 +8 8 52 9 +46 62 59 64 +23 0 41 36 +44 56 67 75 +45 12 54 54 +31 11 31 80 +34 65 43 65 +1 68 15 72 +68 29 68 56 +2 61 11 79 +7 47 59 64 +12 28 20 79 +59 37 59 52 +64 53 64 69 +8 19 19 53 +57 54 57 61 +8 9 20 72 +4 19 39 27 +55 4 62 32 +6 46 46 67 +49 53 66 78 +40 25 41 73 +29 34 46 75 +20 72 60 75 +43 28 50 33 +63 58 67 76 +5 75 61 79 +62 3 62 45 +44 57 54 77 +48 66 66 72 +57 22 60 38 +44 68 53 71 +31 37 39 49 +30 45 51 68 +24 36 65 56 +44 71 44 79 +16 9 53 50 +26 10 61 78 +49 64 65 75 +25 74 39 78 +42 4 58 12 +47 34 54 37 +45 72 50 78 +35 1 44 56 +49 41 51 58 +57 7 66 38 +7 39 31 61 +40 0 61 43 +50 22 62 57 +5 57 51 63 +6 8 13 55 +13 15 26 28 +8 45 47 74 +43 23 63 30 +66 2 68 40 +33 24 37 49 +27 66 28 71 +17 20 25 38 +47 41 54 52 +40 0 57 73 +39 5 39 5 +43 57 64 64 +5 51 43 60 +50 18 59 18 +64 41 68 65 +29 61 51 61 +61 7 67 60 +65 27 66 52 +61 65 63 74 +7 56 54 70 +18 4 28 38 +13 9 28 35 +40 59 55 73 +68 47 68 74 +43 79 62 79 +4 78 65 80 +46 15 53 56 +55 25 59 44 +58 21 64 37 +32 13 36 57 +38 73 47 80 +51 9 65 31 +2 62 30 74 +61 29 61 35 +22 63 63 76 +32 49 39 63 +14 50 39 52 +66 61 66 63 +49 9 54 52 +54 33 63 61 +28 22 44 72 +45 79 45 79 +29 5 49 42 +43 63 62 68 +36 12 41 59 +52 64 56 75 +55 33 67 78 +48 38 50 51 +5 63 24 73 +8 44 16 51 +67 60 67 68 +50 39 53 46 +61 0 62 61 +18 29 58 34 +26 42 30 53 +9 3 23 56 +49 12 55 71 +27 9 29 69 +7 5 42 28 +58 12 59 26 +9 30 33 54 +14 33 56 59 +5 54 8 68 +25 14 59 37 +16 30 29 34 +49 37 66 51 +41 22 42 59 +21 2 66 47 +5 79 55 80 +28 65 52 69 +2 61 57 74 +51 75 60 75 +26 2 52 6 +60 35 67 46 +21 23 36 37 +56 20 63 53 +7 56 32 66 +33 44 39 57 +32 15 46 55 +20 36 55 55 +30 60 33 60 +61 77 63 78 +52 5 56 32 +16 55 30 79 +40 35 46 42 +7 9 36 63 +18 77 66 78 +10 30 26 46 +59 15 59 62 +9 74 33 75 +27 53 31 65 +11 55 13 67 +2 53 25 79 +19 69 45 75 +32 50 41 67 +58 50 58 62 +56 57 62 73 +28 39 59 58 +23 13 59 51 +10 57 48 80 +19 40 67 78 +32 21 59 28 +44 69 49 70 +13 73 48 74 +21 49 33 64 +54 58 60 62 +60 65 66 76 +18 60 49 76 +29 4 40 74 +31 69 49 78 +19 74 67 74 +33 68 38 77 +7 70 7 78 +49 37 53 70 +51 66 53 69 +66 45 67 78 +13 8 43 77 +19 68 58 76 +51 5 52 33 +22 67 62 75 +0 40 61 56 +65 67 67 74 +63 46 63 80 +59 8 59 56 +16 74 59 77 +35 68 61 77 +15 21 24 41 +33 7 63 53 +36 49 65 53 +38 28 53 68 +61 42 62 44 +7 32 46 59 +67 35 67 67 +54 19 66 20 +63 75 66 80 +17 12 18 48 +3 29 68 32 +3 68 52 77 +14 53 26 76 +14 5 16 7 +44 5 66 26 +22 21 44 49 +37 50 38 53 +20 32 44 66 +62 0 68 19 +17 0 68 13 +13 4 52 43 +54 17 60 57 +37 72 63 78 +37 79 59 79 +67 79 67 80 +38 50 42 76 +65 69 65 76 +20 25 34 78 +65 74 66 80 +2 55 22 60 +41 0 46 45 +26 69 33 73 +47 59 47 77 +12 62 40 65 +18 70 39 80 +46 79 61 80 +37 74 51 78 +24 58 60 76 +46 52 57 62 +55 44 56 56 +10 46 12 51 +2 63 37 74 +42 3 56 34 +20 22 41 70 +55 35 65 77 +42 27 64 35 +32 5 67 14 +37 48 58 58 +48 36 52 44 +55 25 65 69 +39 31 65 78 +10 8 67 55 +32 29 54 50 +62 30 63 54 +32 8 47 65 +24 36 56 55 +23 62 29 70 +3 73 24 79 +36 47 56 57 +0 21 50 39 +65 54 65 78 +54 5 68 8 +8 18 27 23 +28 63 47 72 +10 43 60 66 +17 74 27 76 +61 28 62 76 +37 72 62 77 +53 34 57 49 +0 33 61 63 +34 36 34 78 +20 15 66 35 +61 30 68 33 +35 3 49 68 +50 80 60 80 +0 73 11 74 +7 59 20 67 +49 22 55 39 +57 67 62 69 +66 32 66 73 +4 37 65 45 +9 60 42 65 +0 33 63 62 +4 12 65 25 +67 27 67 59 +37 62 62 69 +60 5 67 23 +30 20 54 60 +27 38 30 55 +62 72 63 79 +40 0 51 32 +38 13 41 37 +22 78 43 79 +15 80 34 80 +31 31 39 73 +26 15 26 24 +6 28 67 48 +46 16 66 36 +14 68 19 71 +41 75 60 76 +59 5 61 61 +4 54 8 62 +11 50 63 74 +55 5 66 74 +15 31 27 70 +0 47 29 75 +15 4 43 37 +1 17 9 75 +22 47 45 75 +33 5 50 19 +31 55 45 67 +64 47 64 54 +5 11 42 52 +33 72 56 74 +10 27 58 56 +37 48 55 66 +5 39 9 58 +40 46 40 65 +41 46 57 57 +18 62 56 69 +17 54 35 67 +14 24 67 30 +1 35 59 46 +32 37 33 56 +23 70 36 73 +30 6 58 56 +48 26 55 70 +63 71 63 72 +47 11 53 64 +45 64 59 70 +2 15 13 56 +40 51 64 62 +19 0 55 64 +43 16 66 75 +43 46 61 61 +67 53 67 53 +51 54 68 59 +36 11 50 70 +1 46 65 74 +47 51 52 62 +62 5 66 11 +17 71 27 74 +25 2 41 15 +14 5 46 56 +65 15 67 71 +57 77 67 77 +50 1 58 79 +9 71 58 72 +2 32 2 63 +22 80 24 80 +32 37 51 67 +40 35 47 78 +32 79 47 80 +13 24 17 40 +46 53 58 66 +35 49 58 80 +18 76 58 76 +44 5 56 27 +35 68 61 76 +27 34 47 46 +28 40 68 60 +14 71 20 72 +22 14 46 77 +67 30 68 53 +15 58 54 70 +0 54 68 79 +48 43 54 53 +24 77 61 78 +48 27 54 28 +10 28 49 79 +65 61 65 76 +52 7 60 67 +9 61 50 64 +61 38 61 64 +27 45 49 64 +30 68 43 74 +9 44 49 65 +28 14 39 35 +46 62 57 67 +35 76 56 79 +17 54 39 75 +54 53 67 73 +28 5 36 74 +66 21 67 70 +22 72 28 75 +51 8 58 55 +26 6 26 50 +24 42 63 56 +40 64 49 71 +50 55 60 58 +54 20 61 39 +44 13 51 37 +44 45 44 53 +36 59 48 75 +67 54 67 61 +34 12 42 48 +9 67 65 67 +7 63 29 72 +13 29 62 52 +42 26 52 61 +40 73 52 79 +68 39 68 77 +63 47 65 71 +54 4 58 69 +28 57 28 74 +35 1 66 28 +18 55 55 77 +5 67 19 69 +0 30 62 61 +13 54 56 60 +62 73 62 75 +20 62 30 69 +13 72 22 73 +4 31 58 35 +18 58 55 66 +1 14 7 18 +13 80 45 80 +11 70 63 70 +10 75 31 75 +21 53 59 75 +53 32 66 55 +6 46 55 53 +33 32 68 41 +16 10 46 35 +52 23 57 74 +42 35 68 42 +51 74 55 78 +50 71 53 79 +21 29 40 63 +14 60 15 70 +4 69 30 79 +20 62 26 67 +32 78 34 78 +18 15 23 44 +54 58 64 66 +36 40 68 75 +12 41 23 65 +30 55 49 66 +0 59 56 77 +67 39 67 59 +66 19 68 55 +28 14 31 43 +17 62 35 65 +3 65 21 68 +8 46 55 79 +23 22 41 74 +57 58 66 69 +15 49 37 68 +23 72 45 76 +38 65 52 71 +42 50 60 62 +17 38 66 44 +62 33 65 44 +38 38 58 42 +27 51 51 53 +48 16 55 35 +2 29 29 75 +46 23 65 67 +36 68 59 74 +14 2 31 26 +15 38 50 52 +15 58 51 62 +8 70 30 79 +3 52 20 74 +3 9 32 75 +65 15 65 21 +25 48 45 51 +22 66 38 70 +44 60 68 71 +44 18 56 41 +23 37 31 38 +33 59 64 76 +10 53 64 61 +2 32 65 69 +30 54 35 73 +36 36 38 50 +23 68 65 80 +51 41 66 50 +3 69 52 78 +29 2 48 23 +18 51 67 76 +62 50 63 76 +49 31 57 35 +51 34 59 68 +38 72 67 76 +35 44 40 49 +33 58 35 69 +48 70 65 76 +58 22 67 28 +48 74 49 78 +12 12 27 58 +46 2 67 13 +17 53 46 74 +24 74 51 79 +20 58 25 58 +35 42 61 48 +32 69 59 80 +17 54 48 60 +40 78 48 80 +1 36 13 42 +17 76 22 80 +17 22 55 74 +13 16 66 28 +24 44 57 65 +12 19 25 21 +27 80 51 80 +34 75 40 79 +5 11 24 13 +21 17 61 58 +18 29 40 65 +51 37 59 65 +68 65 68 69 +16 64 32 68 +23 42 31 69 +31 7 54 14 +21 71 53 75 +0 29 9 30 +52 80 57 80 +23 78 51 78 +55 1 61 49 +46 52 67 71 +0 4 53 78 +42 20 52 39 +41 65 55 68 +39 40 62 41 +55 47 63 66 +13 59 54 67 +18 61 21 74 +8 27 14 29 +12 22 64 46 +18 58 18 67 +13 32 14 73 +27 18 55 36 +23 0 68 37 +27 66 54 73 +9 69 16 71 +20 0 36 17 +25 19 26 20 +17 25 37 47 +38 70 48 71 +27 22 60 77 +6 1 61 70 +51 74 65 75 +51 40 64 40 +50 80 64 80 +10 18 51 55 +33 4 48 43 +43 30 52 48 +43 75 55 77 +48 80 60 80 +7 21 43 71 +50 54 51 63 +47 41 66 61 +33 71 33 74 +44 38 64 69 +50 29 56 74 +45 5 55 41 +40 68 48 79 +67 55 68 64 +58 28 60 64 +26 47 65 53 +65 22 67 42 +9 49 45 67 +26 4 41 48 +25 52 44 80 +9 57 14 70 +60 7 61 29 +33 46 48 56 +55 9 68 78 +12 17 23 60 +36 20 55 66 +28 46 46 72 +62 50 68 58 +17 46 19 54 +68 39 68 62 +10 36 50 73 +62 58 68 76 +16 66 56 69 +55 48 55 51 +22 68 68 80 +47 16 63 75 +23 22 30 38 +36 29 43 39 +66 21 66 22 +25 37 40 46 +30 10 51 48 +8 2 59 30 +41 5 51 68 +62 38 63 77 +53 76 56 78 +24 35 63 44 +0 53 12 73 +44 53 47 75 +43 69 64 70 +21 79 41 80 +9 31 10 75 +35 20 39 36 +42 1 64 69 +31 71 38 78 +3 56 37 59 +17 4 61 77 +63 16 63 72 +11 78 40 78 +27 56 61 78 +13 68 52 75 +2 68 63 68 +19 0 26 14 +66 54 66 57 +18 45 55 50 +48 11 48 42 +10 3 43 25 +66 15 66 48 +54 11 54 45 +46 3 48 18 +27 12 58 48 +8 15 34 73 +68 7 68 77 +60 34 61 66 +58 27 63 42 +54 74 64 79 +45 20 57 78 +33 43 33 54 +16 24 62 61 +19 20 40 76 +17 12 57 25 +23 53 37 61 +30 54 35 57 +14 71 34 73 +16 6 43 18 +61 53 64 57 +66 78 67 79 +19 11 61 79 +51 78 57 79 +53 32 63 49 +66 26 68 34 +66 11 67 72 +43 73 44 77 +22 38 62 69 +31 21 47 28 +44 43 58 73 +12 47 41 66 +57 21 64 71 +39 13 44 72 +7 70 22 77 +68 35 68 51 +62 36 63 79 +53 32 55 44 +61 71 61 76 +2 73 31 80 +54 79 58 79 +53 58 59 67 +63 30 67 35 +14 34 39 46 +1 29 52 66 +33 6 38 41 +17 39 61 66 +34 53 41 59 +13 78 34 78 +30 39 31 40 +10 71 67 73 +61 23 61 78 +12 21 38 27 +15 54 36 64 +64 73 65 78 +57 67 61 78 +46 34 60 79 +66 51 68 66 +60 75 63 77 +42 2 58 37 +31 52 48 80 +30 11 32 58 +56 48 56 68 +63 74 65 74 +45 39 65 63 +45 67 50 70 +26 27 29 37 +60 9 61 56 +16 56 33 68 +17 33 33 35 +61 29 68 34 +53 40 55 69 +33 4 53 31 +56 34 59 79 +39 66 67 68 +64 12 66 14 +12 3 47 41 +62 6 63 52 +38 66 44 74 +60 19 66 77 +11 69 38 77 +16 58 66 80 +35 32 45 34 +52 74 53 80 +31 47 47 73 +11 69 51 79 +38 29 49 80 +56 24 66 26 +61 1 66 78 +61 56 65 70 +38 33 58 70 +34 52 65 67 +21 44 34 70 +67 31 68 61 +10 60 18 73 +66 48 66 52 +11 35 17 79 +38 29 66 40 +38 4 41 22 +49 56 63 66 +39 41 45 49 +61 43 61 63 +41 43 57 76 +40 37 43 50 +66 60 66 73 +47 67 53 69 +33 62 63 62 +14 37 38 59 +18 70 33 77 +29 57 36 57 +57 56 61 63 +43 30 46 36 +39 49 53 55 +45 21 65 78 +2 73 16 73 +30 1 48 43 +65 27 68 49 +49 25 63 26 +55 78 57 79 +3 73 34 79 +31 74 59 76 +46 73 57 76 +53 12 53 46 +40 33 58 41 +12 36 17 68 +4 71 38 72 +13 29 38 57 +39 12 52 68 +45 23 46 75 +62 6 62 25 +68 75 68 76 +61 26 64 62 +14 6 60 51 +33 49 61 65 +51 68 52 80 +51 68 51 77 +29 26 47 57 +16 59 39 70 +13 49 31 66 +28 78 56 80 +27 37 54 67 +52 53 59 74 +38 48 67 76 +10 61 15 77 +29 33 34 78 +29 26 66 44 +13 23 51 71 +67 14 67 51 +50 12 57 30 +41 27 51 52 +22 58 22 76 +57 61 64 80 +37 60 57 79 +9 39 42 80 +5 78 61 78 +16 68 29 68 +6 36 46 62 +37 77 43 79 +48 80 52 80 +10 20 41 52 +9 64 19 69 +48 61 67 61 +35 78 52 78 +53 39 54 74 +10 48 64 59 +61 35 62 53 +62 62 65 70 +57 19 59 27 +60 79 64 80 +32 36 55 37 +19 64 31 67 +63 12 67 40 +44 46 63 57 +66 71 68 71 +39 78 46 79 +56 72 67 72 +55 36 59 80 +45 27 67 58 +43 2 54 31 +67 35 68 46 +57 19 65 32 +51 21 63 59 +39 80 50 80 +49 68 50 70 +12 19 21 34 +7 63 10 76 +8 31 48 72 +63 6 64 62 +9 66 40 70 +9 29 48 75 +2 45 27 49 +66 69 67 78 +54 53 61 68 +54 21 60 65 +48 43 64 64 +44 70 52 75 +34 18 65 39 +0 70 0 72 +48 53 49 54 +1 19 10 38 +36 71 59 72 +16 68 24 72 +26 26 64 43 +1 51 10 58 +8 29 42 56 +51 49 66 54 +22 58 29 72 +63 30 63 36 +63 73 65 74 +0 4 23 8 +6 45 23 51 +40 70 41 71 +36 69 52 73 +67 77 68 77 +20 63 24 71 +55 66 62 66 +37 4 60 20 +35 15 48 42 +31 28 38 69 +57 50 66 65 +34 16 38 61 +60 35 67 38 +1 40 56 57 +33 7 63 80 +37 0 46 69 +62 74 68 76 +67 50 67 77 +67 35 67 68 +31 57 51 71 +40 10 60 66 +49 6 64 59 +47 28 68 62 +24 56 42 69 +17 13 32 22 +9 46 12 67 +11 80 23 80 +64 40 68 54 +8 12 21 54 +31 61 36 64 +62 20 66 38 +46 78 53 79 +26 29 27 65 +64 28 66 63 +27 48 66 50 +50 8 51 55 +15 15 15 44 +65 44 65 52 +44 16 59 74 +45 79 47 80 +12 76 47 78 +50 24 56 40 +30 5 59 48 +14 63 40 69 +34 48 39 69 +15 15 59 67 +5 2 8 3 +47 6 47 29 +3 3 11 64 +7 13 67 33 +3 64 29 77 +1 55 4 66 +43 52 51 70 +39 74 60 74 +14 13 48 43 +39 18 67 75 +29 64 53 79 +8 43 56 72 +44 65 60 67 +5 18 62 35 +51 32 68 55 +37 52 48 68 +11 10 17 35 +33 73 43 75 +49 38 58 73 +0 63 8 67 +41 54 51 62 +45 19 67 64 +14 67 50 80 +26 16 39 30 +37 48 65 49 +56 47 63 56 +64 72 64 77 +34 11 34 42 +7 0 39 39 +31 67 67 78 +0 41 54 42 +13 15 39 74 +3 57 6 59 +22 7 64 49 +66 33 68 75 +52 49 56 50 +15 4 21 57 +26 71 26 71 +61 14 61 29 +58 9 63 31 +4 58 16 58 +19 2 67 56 +49 42 54 53 +59 11 62 34 +57 49 62 78 +60 61 64 71 +50 9 66 41 +22 16 24 64 +60 46 61 56 +15 66 68 71 +57 66 63 76 +52 30 62 65 +44 48 55 49 +33 38 42 69 +66 9 66 53 +65 53 66 71 +58 2 60 30 +62 12 66 41 +48 68 63 72 +36 28 39 78 +9 76 48 76 +23 80 35 80 +2 48 40 71 +41 31 54 65 +45 20 61 23 +31 17 43 71 +47 72 56 74 +24 77 63 80 +62 15 67 21 +46 3 55 35 +18 49 26 51 +11 8 68 31 +29 14 45 65 +40 74 53 80 +63 54 64 76 +9 66 53 73 +7 41 24 46 +20 57 55 78 +48 13 65 35 +17 78 58 80 +43 8 67 40 +0 35 9 39 +38 12 54 70 +65 41 67 72 +50 40 51 60 +16 35 33 66 +14 36 60 44 +34 74 39 80 +59 9 59 54 +3 31 16 65 +14 52 53 76 +9 30 66 55 +68 1 68 21 +58 36 58 46 +42 15 62 24 +66 57 68 66 +33 52 33 74 +18 13 44 42 +56 21 63 35 +45 2 59 56 +24 72 26 73 +60 63 62 80 +41 13 54 23 +14 29 63 63 +53 46 65 70 +40 80 62 80 +61 9 63 28 +26 3 37 51 +51 3 56 79 +31 29 59 42 +39 26 49 45 +66 69 67 78 +46 25 47 68 +10 76 28 77 +48 65 67 73 +0 16 36 23 +28 80 48 80 +68 31 68 39 +60 49 67 54 +33 35 43 39 +3 34 32 58 +36 32 39 79 +34 50 50 51 +13 53 26 53 +57 22 57 69 +14 75 54 75 +39 3 51 36 +3 49 34 68 +55 45 60 73 +61 5 68 7 +34 31 34 57 +9 30 58 73 +10 52 47 64 +13 68 56 74 +57 19 62 57 +34 26 58 71 +26 33 57 38 +19 41 65 62 +29 5 64 33 +23 58 35 72 +16 25 57 45 +38 67 65 77 +20 37 27 68 +16 25 58 67 +20 64 45 72 +36 5 58 8 +15 9 50 25 +42 64 51 64 +67 46 68 64 +60 80 61 80 +54 75 64 76 +31 47 33 77 +53 2 65 55 +25 38 49 71 +25 43 32 77 +17 48 66 79 +18 25 34 73 +35 49 56 79 +58 40 63 41 +14 45 25 76 +60 2 68 59 +21 57 25 80 +25 47 43 54 +42 73 57 80 +25 4 27 58 +50 33 66 69 +45 51 67 59 +49 75 64 80 +43 67 61 74 +67 11 67 18 +33 76 57 79 +40 69 60 73 +57 69 62 80 +41 73 45 77 +47 28 67 44 +28 22 30 44 +61 48 67 70 +24 0 58 57 +64 30 65 62 +35 69 61 79 +56 67 64 72 +4 34 47 69 +59 57 62 75 +18 73 24 74 +16 33 51 48 +44 18 44 38 +45 22 62 45 +59 58 61 76 +31 14 63 74 +58 12 60 12 +2 32 59 79 +28 80 41 80 +14 47 60 76 +57 17 66 66 +29 51 33 78 +31 6 56 14 +40 14 48 19 +40 10 53 70 +9 53 21 67 +26 12 40 22 +68 34 68 73 +46 48 51 65 +67 79 67 79 +51 66 68 75 +1 19 9 28 +47 13 63 13 +38 24 61 77 +23 15 55 53 +62 26 64 39 +44 74 67 74 +52 75 67 75 +10 22 27 27 +19 66 56 71 +46 32 65 49 +58 22 58 38 +18 18 20 37 +68 21 68 23 +40 76 67 79 +13 12 65 37 +39 75 59 80 +59 74 61 75 +16 29 37 77 +19 43 51 73 +60 30 60 31 +66 28 67 57 +24 67 55 77 +28 32 64 40 +36 65 60 73 +5 47 10 72 +59 66 66 76 +66 50 68 50 +12 31 38 46 +51 56 60 71 +32 5 44 22 +35 48 49 71 +20 49 56 57 +67 6 67 38 +2 32 36 58 +59 16 61 39 +31 78 40 78 +50 0 62 61 +46 0 64 56 +29 6 42 48 +12 35 55 79 +39 53 49 79 +49 10 65 26 +52 40 63 74 +14 51 17 79 +16 8 54 66 +4 59 11 62 +55 76 63 76 +16 57 67 67 +54 47 58 80 +5 64 30 72 +21 63 67 65 +32 50 55 57 +49 29 60 31 +11 18 62 72 +18 16 35 45 +10 7 21 29 +8 71 56 74 +52 45 53 55 +6 33 45 57 +50 49 63 74 +11 56 49 75 +39 22 61 69 +17 44 51 44 +5 56 40 72 +12 77 37 78 +49 22 67 42 +21 66 51 70 +30 11 39 18 +37 19 37 66 +31 80 58 80 +66 57 67 77 +10 72 23 77 +23 71 44 75 +18 26 28 70 +22 12 35 71 +44 77 53 79 +36 77 37 80 +28 68 48 79 +35 40 45 53 +14 32 63 38 +41 69 48 80 +10 21 33 31 +4 28 17 37 +58 53 65 80 +50 56 52 69 +13 46 36 78 +61 66 61 80 +14 23 25 60 +20 46 50 70 +12 44 30 68 +22 19 52 33 +35 24 66 63 +50 8 55 14 +67 26 67 59 +54 50 61 63 +29 78 36 78 +0 29 21 33 +51 40 62 51 +64 1 64 59 +64 45 65 46 +57 43 63 64 +14 42 41 55 +5 2 20 26 +56 43 58 51 +46 5 63 47 +45 51 57 54 +32 1 53 49 +14 15 54 15 +66 79 68 80 +49 75 68 77 +65 50 67 74 +17 46 65 56 +52 56 62 66 +47 33 56 76 +16 16 60 30 +25 0 28 20 +28 75 29 80 +50 10 57 24 +1 46 11 66 +8 78 10 80 +46 21 62 27 +29 4 53 20 +35 43 44 77 +17 65 55 68 +56 71 60 77 +54 1 54 76 +12 18 35 65 +15 28 50 72 +50 74 59 76 +29 59 38 73 +30 46 66 61 +33 61 52 73 +58 46 60 51 +55 70 58 71 +43 75 48 76 +42 24 45 55 +4 65 6 66 +52 18 63 46 +1 40 42 52 +40 20 67 52 +6 16 19 30 +66 59 66 73 +16 50 40 61 +61 47 63 73 +32 19 44 34 +60 71 67 71 +53 3 56 64 +59 40 68 49 +1 8 45 12 +53 1 55 16 +41 26 50 72 +38 76 66 76 +63 42 63 43 +34 58 40 70 +45 42 63 53 +43 56 58 56 +41 13 47 27 +14 38 24 60 +16 12 20 77 +62 68 67 77 +58 52 67 68 +45 55 46 75 +54 65 57 77 +50 52 67 78 +5 25 7 36 +38 54 54 75 +43 20 56 68 +22 50 38 79 +59 49 65 54 +55 32 64 41 +55 30 65 62 +21 48 54 52 +22 56 44 69 +19 33 47 42 +0 73 22 78 +47 34 48 51 +13 80 23 80 +48 39 67 68 +41 20 44 66 +54 55 58 72 +64 67 68 74 +36 39 55 48 +29 32 34 75 +12 61 60 63 +9 77 22 79 +34 23 58 23 +28 48 61 68 +4 62 60 62 +45 0 60 3 +23 77 25 77 +53 56 54 68 +7 73 28 79 +41 57 46 72 +45 45 56 60 +61 47 63 54 +17 10 22 63 +56 36 57 53 +32 9 68 73 +62 20 65 25 +33 41 57 72 +25 11 25 47 +59 63 62 80 +51 78 58 78 +64 18 66 21 +55 2 55 12 +65 57 65 76 +19 12 53 20 +27 2 64 53 +20 7 58 56 +27 26 33 33 +37 50 65 52 +55 39 57 67 +43 56 64 69 +68 60 68 68 +30 46 38 47 +35 26 49 27 +54 6 63 15 +43 74 63 76 +53 1 65 75 +16 11 51 39 +18 36 43 50 +12 8 65 47 +44 15 56 62 +35 73 53 79 +19 10 33 34 +34 42 64 78 +31 55 56 66 +47 55 47 66 +35 74 45 80 +52 75 59 77 +12 62 18 71 +44 28 56 35 +2 31 36 53 +10 44 56 55 +46 49 65 55 +7 41 67 47 +2 21 37 71 +61 22 66 65 +54 64 61 74 +39 68 59 77 +5 3 44 6 +65 10 66 47 +37 2 55 41 +46 64 49 74 +25 15 47 73 +17 34 40 70 +33 13 57 55 +15 45 40 62 +17 37 47 79 +68 21 68 31 +34 13 45 27 +60 49 63 53 +48 6 60 38 +64 8 68 31 +51 33 54 76 +44 31 68 69 +32 35 56 75 +20 25 23 49 +23 33 40 58 +47 61 55 71 +24 70 58 74 +27 24 43 32 +26 56 38 66 +38 9 61 60 +10 75 47 79 +40 36 51 40 +35 48 50 64 +33 73 63 77 +25 37 42 42 +19 22 68 28 +32 11 38 22 +59 25 61 36 +61 79 68 80 +37 6 54 43 +13 18 46 70 +49 50 63 75 +31 38 53 70 +37 63 58 67 +24 3 45 12 +60 37 67 65 +62 57 65 73 +39 48 47 79 +40 68 44 72 +31 16 64 29 +30 41 43 50 +55 18 58 41 +64 62 68 72 +5 59 53 63 +23 60 46 69 +17 10 35 22 +38 9 61 70 +61 65 65 79 +56 28 58 57 +41 33 48 36 +23 19 38 61 +46 60 52 78 +14 73 32 73 +30 9 56 25 +68 21 68 69 +42 33 67 49 +7 59 30 67 +10 80 64 80 +8 77 39 79 +49 30 60 52 +9 78 9 78 +21 73 27 80 +44 45 57 47 +55 72 66 78 +24 3 30 48 +65 39 66 73 +61 42 68 77 +6 32 56 46 +8 71 64 72 +48 9 53 58 +53 29 54 45 +41 65 41 75 +59 63 59 64 +48 45 63 73 +8 4 51 23 +38 30 46 48 +25 10 54 61 +25 10 56 26 +63 52 68 75 +46 60 56 74 +20 33 47 62 +33 36 64 79 +66 23 67 66 +44 54 50 58 +24 66 50 68 +44 65 49 78 +9 75 59 75 +10 76 41 78 +41 49 52 66 +53 6 59 63 +47 47 56 50 +68 1 68 59 +19 2 33 80 +23 64 30 65 +35 26 43 72 +26 40 57 47 +30 1 44 28 +32 56 36 64 +9 68 33 69 +38 74 38 79 +5 44 18 56 +18 35 54 59 +0 39 64 57 +61 36 67 38 +9 76 49 76 +55 32 62 63 +1 1 30 3 +42 63 43 74 +50 12 52 80 +51 42 61 77 +12 19 42 69 +67 45 68 77 +2 16 44 16 +1 11 36 62 +14 11 68 31 +8 66 37 78 +68 57 68 64 +39 59 40 79 +46 74 66 76 +51 33 63 46 +24 16 51 26 +12 56 37 67 +68 71 68 71 +2 48 38 61 +26 62 49 73 +42 31 55 44 +57 69 57 70 +8 36 59 66 +67 38 67 49 +28 13 52 15 +47 77 65 77 +47 30 51 66 +24 62 60 62 +25 24 36 27 +5 52 9 76 +3 1 59 37 +59 47 65 60 +15 74 51 80 +47 6 51 63 +64 33 67 52 +1 28 23 40 +41 1 63 24 +17 24 26 76 +10 52 41 73 +36 16 43 46 +36 55 53 79 +47 11 54 39 +51 60 61 69 +46 22 53 53 +10 79 67 79 +36 44 57 68 +65 22 65 69 +42 3 54 13 +31 10 38 11 +59 13 68 17 +42 11 52 63 +10 19 37 58 +32 33 36 38 +30 2 66 41 +44 16 57 79 +32 73 35 75 +45 4 61 68 +47 44 64 52 +24 64 25 79 +15 48 62 55 +21 72 57 76 +58 48 61 65 +45 36 67 70 +12 61 55 65 +4 61 46 70 +49 38 60 68 +3 58 3 69 +33 68 68 76 +62 66 65 75 +4 12 40 49 +57 80 62 80 +3 1 45 13 +63 63 65 80 +36 47 53 51 +6 20 55 69 +40 38 62 42 +31 29 43 41 +29 48 35 68 +21 43 66 47 +47 56 53 80 +47 39 55 76 +8 53 68 75 +24 44 43 79 +44 39 62 71 +54 48 64 52 +16 48 64 65 +35 11 45 53 +5 79 46 80 +37 46 57 70 +53 2 54 42 +1 43 43 71 +66 14 66 52 +6 76 55 80 +14 11 33 57 +16 58 42 72 +47 4 58 68 +36 52 51 76 +18 6 59 39 +34 50 50 57 +35 54 57 76 +53 44 65 67 +29 2 38 3 +55 41 58 73 +61 56 61 66 +25 44 53 78 +24 66 40 79 +48 29 54 40 +8 72 68 77 +48 41 65 73 +34 38 46 62 +40 45 66 55 +1 62 65 64 +7 38 27 57 +55 64 63 78 +49 21 51 36 +29 52 48 62 +59 10 68 19 +59 72 65 79 +26 19 44 36 +19 18 54 65 +65 35 65 57 +58 14 66 15 +14 11 22 26 +2 80 62 80 +56 8 59 68 +1 54 30 65 +39 62 59 62 +31 42 38 67 +42 25 49 38 +64 15 68 31 +66 2 66 8 +26 36 28 42 +35 40 68 62 +13 26 59 76 +34 15 35 29 +34 67 57 71 +6 20 35 61 +13 11 52 67 +15 41 26 68 +43 10 56 68 +62 51 67 51 +25 77 29 80 +15 28 27 57 +1 26 40 34 +47 23 60 61 +36 71 61 71 +31 62 60 65 +55 62 57 71 +49 52 63 55 +30 20 33 32 +56 78 68 78 +31 55 65 67 +12 22 43 42 +58 69 65 78 +47 35 55 66 +58 52 63 66 +47 50 62 51 +12 33 62 35 +67 2 67 47 +11 24 12 67 +29 31 33 55 +53 11 64 49 +11 40 51 68 +39 53 41 59 +1 23 39 54 +12 24 26 74 +46 34 49 73 +18 1 49 17 +0 6 28 47 +59 28 61 74 +21 50 62 75 +28 61 36 62 +23 73 58 73 +66 67 67 72 +60 66 68 79 +64 31 68 36 +38 54 45 55 +22 12 48 36 +15 40 32 65 +2 73 2 79 +30 34 41 77 +42 78 64 78 +37 19 60 44 +59 38 67 62 +9 31 20 47 +42 68 64 73 +1 78 43 80 +45 60 60 79 +41 49 48 63 +30 20 47 47 +23 79 63 79 +61 28 64 45 +11 6 30 40 +41 20 43 61 +33 30 33 70 +17 37 43 68 +35 54 44 64 +20 28 49 30 +52 16 54 49 +33 25 39 25 +26 17 65 69 +7 23 38 70 +35 13 53 46 +1 25 44 54 +64 3 65 10 +7 39 49 51 +20 78 54 78 +11 9 44 80 +61 63 67 68 +1 0 33 37 +32 31 58 39 +47 8 54 26 +16 8 61 13 +26 30 38 40 +1 42 6 46 +0 10 50 63 +14 68 51 80 +65 37 68 73 +57 52 58 75 +58 25 68 49 +59 27 62 65 +48 40 52 54 +12 42 20 71 +7 28 13 29 +64 52 66 74 +8 25 41 62 +52 10 53 63 +1 71 48 72 +4 65 23 75 +27 20 40 44 +37 79 37 79 +41 60 44 74 +23 68 54 80 +65 24 67 62 +33 9 52 20 +44 30 49 39 +59 64 63 79 +50 13 67 41 +64 13 66 26 +67 80 68 80 +56 66 67 73 +37 19 54 59 +58 71 61 75 +59 40 62 61 +6 70 59 73 +40 28 46 78 +62 57 63 66 +3 62 8 73 +15 76 52 77 +47 46 63 76 +47 75 65 76 +54 33 60 37 +39 80 64 80 +63 37 65 55 +5 8 51 54 +20 21 24 22 +50 59 63 80 +27 57 49 64 +29 54 61 57 +8 80 9 80 +54 72 64 78 +27 26 63 64 +31 9 43 9 +55 74 55 75 +53 56 58 56 +14 55 37 80 +60 26 64 78 +53 6 57 8 +17 20 55 26 +45 59 54 74 +30 70 54 79 +64 50 66 72 +21 42 52 62 +35 57 52 80 +0 71 10 76 +8 48 51 71 +9 36 58 58 +3 52 68 64 +59 65 61 66 +39 72 45 79 +32 25 50 72 +60 77 64 80 +10 59 49 78 +52 15 56 52 +50 18 66 69 +54 39 68 73 +45 16 66 16 +43 62 58 66 +52 5 59 55 +15 55 49 63 +18 44 31 45 +65 29 66 32 +54 54 61 56 +8 72 54 80 +17 51 19 76 +46 34 48 63 +7 33 62 36 +42 63 45 66 +15 25 67 32 +38 31 40 57 +12 55 12 56 +56 41 58 44 +32 6 50 59 +16 49 18 61 +41 41 42 69 +5 15 19 44 +35 77 36 79 +50 43 52 61 +38 2 44 2 +41 5 59 10 +28 59 34 62 +57 9 61 64 +3 17 57 76 +7 75 34 78 +65 3 66 5 +23 10 28 66 +37 60 48 67 +25 70 26 74 +34 20 54 74 +33 66 43 75 +8 23 57 74 +24 45 59 59 +48 10 62 11 +53 49 55 77 +11 61 46 77 +19 66 41 70 +32 79 34 79 +27 62 53 78 +14 58 33 75 +13 28 66 28 +7 44 28 79 +41 78 53 78 +60 21 62 60 +64 66 65 72 +39 13 47 40 +23 35 39 47 +53 42 65 48 +64 80 68 80 +6 74 68 75 +13 66 61 75 +30 26 42 36 +19 80 57 80 +15 77 28 78 +9 1 26 51 +66 62 67 70 +29 66 34 74 +45 20 66 20 +41 67 43 70 +0 23 49 66 +24 33 50 33 +15 52 60 75 +23 9 42 18 +56 9 68 53 +55 61 55 76 +28 70 42 74 +67 18 68 50 +1 73 46 74 +64 26 64 48 +54 5 56 36 +22 7 40 51 +13 28 51 68 +52 22 59 77 +11 70 54 79 +3 65 30 66 +14 16 43 20 +64 79 67 79 +27 54 67 55 +37 21 39 70 +63 17 67 52 +63 37 63 40 +14 61 31 78 +46 3 55 21 +56 0 56 26 +47 17 64 35 +65 29 67 66 +58 51 60 67 +27 18 29 27 +46 39 51 65 +55 28 62 43 +8 28 57 41 +22 40 41 44 +40 41 50 67 +35 73 57 80 +32 49 34 49 +10 61 48 69 +26 39 38 79 +2 19 33 72 +2 27 37 56 +32 22 68 41 +61 24 67 52 +51 65 52 66 +65 73 67 78 +19 76 57 79 +11 69 52 76 +10 27 19 76 +27 46 53 61 +34 10 39 14 +51 62 52 74 +34 34 37 35 +13 9 14 64 +11 67 56 75 +66 36 66 48 +35 40 60 40 +36 64 49 71 +67 19 68 58 +59 5 64 31 +3 78 46 80 +30 3 63 68 +26 64 40 79 +44 57 49 77 +10 20 19 45 +12 23 68 52 +40 52 56 78 +7 31 33 31 +61 78 66 79 +17 79 57 80 +8 31 12 69 +58 50 67 78 +14 10 18 49 +8 38 37 43 +47 50 56 67 +66 48 66 50 +68 59 68 65 +44 26 62 54 +37 19 37 27 +15 35 55 44 +28 27 34 74 +2 18 37 28 +59 68 59 75 +6 4 32 41 +43 78 54 79 +48 49 56 59 +40 46 46 75 +61 59 64 64 +45 77 51 77 +18 10 39 66 +55 24 65 63 +36 24 48 44 +24 56 31 76 +12 29 62 78 +14 7 45 61 +19 65 23 78 +4 77 54 78 +9 17 9 60 +63 68 67 76 +35 31 57 67 +2 58 42 69 +66 15 66 51 +57 22 64 60 +13 39 50 68 +35 44 48 64 +57 60 58 65 +54 45 56 59 +7 36 27 56 +11 19 40 63 +41 33 55 42 +6 32 65 77 +52 62 58 69 +55 64 65 68 +14 73 68 76 +18 75 28 79 +62 13 67 45 +16 17 49 27 +21 18 30 33 +21 7 23 20 +43 6 52 10 +13 53 30 57 +10 7 48 36 +36 67 53 74 +49 27 65 29 +15 79 67 80 +32 7 44 65 +53 70 62 72 +22 8 67 28 +32 67 64 78 +27 15 60 21 +28 64 30 66 +66 72 67 76 +32 15 53 52 +12 30 42 30 +26 42 45 50 +19 69 48 79 +33 70 33 72 +21 55 43 67 +53 68 67 68 +2 58 52 65 +51 62 58 71 +18 17 54 79 +3 50 22 77 +55 60 59 67 +53 18 63 19 +22 15 63 19 +58 15 66 33 +6 32 45 38 +67 6 67 14 +36 9 45 71 +35 51 45 76 +62 37 67 40 +53 44 58 78 +44 22 57 55 +23 1 66 65 +11 78 26 78 +28 60 45 78 +46 68 49 72 +26 68 29 71 +46 74 68 75 +50 71 52 77 +15 22 18 43 +11 19 29 50 +3 13 40 71 +60 58 65 67 +5 10 65 17 +61 69 68 73 +63 12 63 68 +59 51 62 51 +3 32 22 50 +51 51 53 56 +46 22 59 29 +32 63 53 64 +2 63 33 80 +33 7 45 52 +5 9 5 43 +66 39 66 68 +50 49 52 59 +53 20 59 69 +28 44 51 64 +27 45 66 80 +48 27 60 53 +8 25 48 72 +51 45 66 49 +3 42 45 53 +65 22 67 62 +8 47 41 80 +53 39 63 70 +40 80 40 80 +4 53 25 54 +63 52 63 80 +18 9 31 47 +35 1 59 25 +6 3 38 69 +19 29 42 74 +57 4 60 28 +60 27 67 54 +2 77 30 77 +36 36 52 64 +56 3 66 74 +8 17 37 80 +22 78 34 80 +1 11 65 25 +64 28 66 75 +61 58 61 66 +13 20 26 29 +42 43 50 54 +27 25 47 25 +65 7 66 69 +56 60 63 60 +12 26 24 56 +53 38 66 73 +17 46 28 57 +9 74 34 77 +28 33 53 80 +60 18 65 39 +32 2 50 72 +35 11 37 41 +14 58 64 79 +19 18 64 41 +11 52 63 56 +8 53 12 68 +49 2 54 36 +65 75 67 80 +30 56 49 65 +12 44 14 67 +66 65 66 79 +7 70 31 78 +3 38 54 66 +29 36 65 53 +21 4 64 30 +9 39 61 44 +68 5 68 19 +35 33 67 57 +32 5 36 17 +39 64 54 76 +44 5 61 63 +13 55 15 68 +24 48 57 80 +56 0 64 80 +32 78 56 79 +60 52 62 62 +2 10 12 74 +7 40 47 70 +6 46 61 63 +5 38 11 80 +35 44 47 67 +15 28 51 79 +62 7 65 67 +51 38 66 42 +40 49 48 54 +56 79 57 80 +63 48 64 61 +7 30 51 72 +52 49 60 66 +35 62 47 69 +13 30 64 68 +4 32 20 32 +14 69 61 73 +43 33 59 65 +63 5 66 46 +50 53 68 80 +23 68 57 74 +39 58 43 69 +65 53 66 62 +68 65 68 75 +14 5 50 78 +41 77 49 80 +21 14 23 54 +15 8 50 44 +67 44 67 71 +3 13 11 21 +5 47 24 71 +24 36 31 65 +38 68 54 78 +9 32 46 34 +32 38 60 53 +9 2 25 27 +28 0 28 76 +42 12 55 14 +46 48 48 62 +62 61 62 79 diff --git a/2018/republic/10-12_d1/arta/tests/12_pattern.txt b/2018/republic/10-12_d1/arta/tests/12_pattern.txt new file mode 100644 index 0000000..03ed502 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/12_pattern.txt @@ -0,0 +1 @@ +153 diff --git a/2018/republic/10-12_d1/arta/tests/13_input.txt b/2018/republic/10-12_d1/arta/tests/13_input.txt new file mode 100644 index 0000000..cb4e425 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/13_input.txt @@ -0,0 +1,4692 @@ +87 87 +4690 +72 72 79 78 +23 27 82 74 +2 71 50 77 +36 43 52 63 +53 55 75 74 +48 74 76 84 +71 79 81 80 +35 41 52 75 +40 27 40 63 +10 12 68 21 +18 59 37 78 +52 6 86 74 +39 48 75 62 +55 74 64 83 +27 12 81 33 +9 16 61 36 +38 7 48 36 +64 18 86 61 +74 8 75 44 +86 1 86 20 +11 3 70 15 +26 82 72 83 +23 33 49 74 +82 24 85 85 +19 0 71 15 +60 18 65 36 +50 29 81 55 +40 11 76 20 +61 44 67 72 +80 73 82 77 +53 84 67 84 +22 75 49 83 +9 60 83 79 +67 50 80 55 +79 57 79 82 +44 57 61 80 +35 68 37 85 +39 3 84 56 +64 43 80 76 +18 83 68 84 +78 15 86 57 +31 47 60 84 +48 43 83 73 +4 80 15 86 +80 40 80 52 +20 12 75 85 +85 80 85 80 +47 74 66 81 +52 53 82 84 +18 36 53 44 +60 63 78 84 +74 55 80 73 +77 25 81 67 +77 17 86 59 +39 55 74 79 +41 65 53 68 +35 26 44 45 +35 85 37 86 +65 53 71 77 +83 35 85 82 +36 33 72 62 +48 29 61 73 +40 14 73 63 +65 49 70 84 +61 51 72 86 +41 33 54 40 +30 18 58 46 +73 39 81 63 +12 31 34 47 +43 69 48 80 +21 7 46 80 +24 26 30 52 +1 25 65 76 +40 24 40 72 +18 59 34 81 +47 81 53 84 +19 48 30 79 +22 52 32 69 +41 13 52 25 +49 36 59 68 +43 57 79 80 +0 6 36 77 +28 29 64 71 +82 85 85 86 +30 11 35 29 +12 77 52 78 +5 73 24 80 +20 73 60 85 +1 29 34 86 +16 23 65 57 +73 45 77 70 +12 47 13 69 +32 81 52 82 +61 75 81 76 +35 67 86 75 +12 16 50 54 +36 41 39 82 +83 70 84 77 +38 32 40 46 +30 59 38 70 +30 58 50 74 +1 74 43 86 +9 81 63 85 +52 25 62 86 +55 85 61 86 +42 6 81 30 +28 43 57 75 +64 21 75 21 +15 10 81 35 +83 84 83 85 +84 40 85 57 +15 27 80 54 +20 70 32 70 +37 48 66 75 +75 48 81 53 +19 39 60 56 +27 11 60 41 +28 66 67 72 +83 24 83 30 +51 21 83 45 +16 4 20 60 +56 15 85 31 +55 30 67 58 +57 30 85 38 +1 34 83 74 +3 15 74 80 +48 35 50 73 +7 46 55 64 +3 81 32 85 +17 53 25 81 +4 68 33 71 +33 66 47 69 +8 83 65 84 +53 84 83 84 +70 51 83 83 +67 86 75 86 +48 39 57 57 +57 60 68 72 +62 43 66 77 +22 49 54 72 +18 32 28 63 +1 29 78 37 +21 66 86 85 +25 82 65 84 +84 55 84 68 +8 84 27 84 +69 26 80 26 +57 11 75 13 +19 22 70 85 +8 48 26 50 +21 16 59 48 +39 10 71 30 +33 2 72 8 +9 39 21 54 +51 60 61 74 +44 19 53 78 +13 30 64 50 +47 32 48 84 +36 86 58 86 +76 57 79 74 +65 80 73 85 +45 78 83 85 +24 30 82 82 +77 66 85 75 +48 43 54 46 +53 22 62 86 +72 4 75 61 +12 47 63 75 +50 58 63 77 +84 50 85 79 +46 57 85 76 +34 3 44 71 +44 24 69 75 +3 41 6 60 +69 83 81 86 +81 9 84 12 +44 40 81 60 +83 35 83 36 +52 71 55 76 +18 70 69 79 +22 38 36 47 +6 65 49 68 +37 43 79 52 +41 44 70 76 +5 49 83 81 +46 17 68 84 +17 11 83 18 +84 84 84 85 +82 8 85 78 +15 48 78 83 +65 12 75 69 +43 60 58 67 +85 56 85 73 +47 68 67 77 +79 28 85 61 +42 40 64 73 +15 46 48 61 +29 69 60 86 +82 74 82 86 +85 57 86 76 +13 48 33 74 +6 12 22 16 +77 46 78 71 +14 32 17 67 +12 66 14 75 +86 40 86 71 +32 2 74 80 +2 75 64 85 +26 44 52 69 +31 86 64 86 +4 33 39 49 +75 77 77 79 +74 79 79 85 +20 7 42 73 +22 70 71 71 +82 18 84 34 +62 47 85 49 +77 14 84 27 +20 23 43 39 +30 24 39 74 +42 75 56 81 +77 42 86 74 +3 9 8 39 +22 32 53 57 +48 36 53 82 +49 86 49 86 +69 85 73 85 +16 25 44 65 +10 1 65 7 +2 86 85 86 +55 54 62 58 +52 9 64 45 +7 30 34 35 +21 40 42 47 +78 64 85 82 +72 61 72 85 +56 6 86 25 +17 37 56 66 +71 46 83 63 +49 56 52 64 +13 61 58 62 +22 9 51 11 +54 22 78 67 +78 70 78 71 +14 53 78 66 +76 26 80 39 +51 59 80 62 +75 26 80 64 +70 78 74 85 +12 70 60 80 +15 31 59 37 +24 83 33 83 +25 52 68 79 +58 21 60 39 +10 40 13 54 +36 40 62 70 +79 9 79 21 +49 55 50 64 +59 18 85 31 +49 57 74 81 +73 44 83 76 +2 58 35 86 +33 54 39 86 +86 29 86 50 +46 0 54 48 +12 2 27 37 +6 16 29 55 +29 9 45 58 +39 12 49 78 +55 9 77 85 +23 62 34 68 +17 21 75 23 +19 57 77 61 +53 18 65 82 +70 62 71 71 +85 0 86 22 +57 11 84 67 +86 44 86 44 +46 65 62 73 +46 16 57 34 +13 50 66 78 +22 76 23 80 +44 29 62 55 +4 67 28 68 +70 77 74 78 +71 51 80 80 +34 71 84 73 +56 65 80 79 +48 32 86 80 +44 40 44 70 +37 57 57 74 +85 57 85 58 +11 53 49 56 +56 17 70 55 +83 66 86 73 +6 10 30 86 +81 38 86 57 +34 73 59 73 +45 12 68 56 +4 0 53 9 +32 47 68 69 +21 51 63 79 +74 18 80 76 +74 5 80 44 +83 82 85 84 +33 3 86 65 +32 56 62 75 +63 76 82 84 +11 34 52 47 +45 39 53 72 +76 22 85 62 +18 2 71 46 +15 70 33 70 +48 66 79 70 +31 38 60 82 +57 68 60 74 +42 58 67 70 +84 54 86 80 +32 37 74 41 +49 81 84 83 +52 8 57 70 +32 20 53 60 +68 50 85 73 +62 36 66 49 +69 24 70 66 +43 30 83 68 +17 26 65 29 +75 14 75 55 +10 79 35 85 +26 65 46 74 +62 19 66 47 +20 71 22 78 +75 21 84 36 +0 25 47 81 +3 80 58 82 +46 15 64 81 +14 44 74 48 +79 31 81 50 +13 28 42 38 +8 75 61 82 +33 1 38 79 +38 51 76 58 +39 42 42 48 +79 44 86 83 +60 21 67 77 +56 80 67 86 +75 83 81 84 +33 69 80 77 +73 15 75 66 +6 39 56 41 +76 19 81 58 +72 15 86 74 +72 48 81 50 +39 64 42 78 +21 45 21 51 +5 0 47 77 +56 6 77 80 +78 79 81 80 +76 44 76 86 +25 53 33 83 +76 29 83 41 +43 41 58 81 +70 85 71 86 +16 29 82 65 +6 39 75 60 +76 0 78 70 +52 10 81 31 +45 32 68 79 +57 80 84 85 +38 54 59 73 +80 32 83 62 +5 35 33 62 +74 49 84 52 +7 58 35 67 +32 28 75 32 +80 38 80 64 +20 35 67 50 +43 40 85 45 +42 67 63 85 +77 74 85 86 +84 31 84 31 +38 71 51 85 +28 70 37 84 +33 46 37 51 +37 86 62 86 +32 2 69 83 +82 39 83 67 +57 17 80 54 +43 82 78 82 +71 81 82 82 +41 56 86 81 +61 46 74 78 +1 28 66 78 +24 37 63 40 +79 34 85 45 +18 85 49 86 +71 42 84 76 +72 12 84 57 +33 5 40 11 +40 6 52 38 +19 69 71 77 +0 50 32 83 +13 30 63 45 +25 78 62 84 +7 86 46 86 +59 37 59 59 +68 4 84 82 +46 75 74 79 +44 82 60 85 +68 11 78 41 +31 77 53 78 +39 35 62 43 +58 12 85 16 +36 72 86 85 +48 63 67 63 +17 67 81 75 +72 61 84 66 +8 48 83 61 +30 82 60 85 +13 5 71 77 +11 12 46 68 +19 77 41 80 +41 54 47 62 +58 61 78 79 +29 69 34 77 +55 4 84 78 +43 57 66 82 +55 71 86 75 +46 80 50 84 +16 69 17 83 +45 57 64 61 +0 61 46 67 +58 5 67 63 +73 83 81 86 +30 74 59 79 +4 12 55 73 +13 45 86 72 +80 86 81 86 +13 25 16 43 +33 81 71 83 +5 8 14 37 +66 58 76 69 +53 72 64 79 +62 49 84 75 +9 66 73 80 +21 20 43 58 +59 85 85 85 +51 86 65 86 +16 49 53 75 +27 7 77 42 +52 84 55 84 +72 3 84 68 +0 50 70 69 +6 43 70 44 +0 4 40 77 +49 17 76 17 +25 0 38 52 +13 40 65 48 +62 65 77 78 +4 56 81 63 +34 85 81 85 +79 5 81 19 +10 47 53 53 +6 61 52 64 +39 25 75 71 +82 77 83 84 +23 14 44 60 +56 48 80 63 +18 39 77 53 +68 8 77 29 +23 50 36 69 +11 63 83 67 +27 38 30 86 +9 47 73 82 +7 77 73 83 +28 6 42 62 +63 45 74 51 +20 12 33 63 +18 40 56 59 +46 52 74 58 +53 21 56 41 +22 60 69 62 +14 62 27 76 +29 78 74 85 +24 18 81 76 +28 45 66 79 +16 74 64 82 +27 38 54 39 +2 19 66 72 +46 34 50 70 +3 81 47 85 +71 75 82 77 +41 85 70 86 +53 61 61 79 +58 52 77 75 +2 41 58 75 +63 8 69 22 +85 9 85 32 +34 17 73 80 +62 19 82 27 +63 1 72 26 +18 73 44 73 +26 48 84 79 +3 56 10 69 +63 80 65 81 +37 12 61 31 +16 26 44 55 +18 59 56 60 +29 56 50 79 +63 55 76 79 +78 6 86 44 +54 32 56 61 +52 51 75 64 +22 12 59 45 +71 14 79 81 +83 62 86 73 +35 24 80 76 +84 37 84 64 +13 25 20 72 +47 49 51 51 +1 5 22 65 +62 53 70 62 +19 66 27 86 +74 48 84 50 +27 11 70 33 +54 40 77 47 +83 9 86 45 +38 39 50 58 +26 35 78 83 +48 6 80 62 +49 48 68 61 +21 47 38 80 +74 12 86 26 +72 29 85 54 +29 9 78 81 +10 12 75 77 +72 42 81 48 +60 49 65 73 +67 62 68 67 +62 42 73 67 +64 63 66 70 +27 10 85 42 +20 39 35 84 +48 65 67 68 +23 79 31 82 +24 46 41 50 +36 49 56 62 +60 23 67 76 +48 5 86 7 +27 26 27 46 +64 85 72 85 +24 25 61 48 +35 63 55 75 +85 17 86 59 +11 74 23 81 +70 43 77 63 +29 34 64 36 +77 68 86 80 +69 28 76 77 +58 5 65 16 +23 70 80 75 +54 45 60 80 +17 69 54 76 +16 58 84 85 +3 69 16 84 +26 59 79 62 +47 75 79 85 +26 53 53 72 +4 31 17 51 +19 80 34 83 +26 57 78 79 +69 53 86 65 +8 5 73 41 +29 4 50 13 +59 43 71 60 +80 13 81 44 +66 38 79 44 +57 85 62 85 +61 43 77 80 +72 53 73 61 +13 69 65 82 +84 17 85 79 +31 41 63 47 +38 3 67 62 +56 47 56 59 +29 80 45 85 +76 41 83 77 +28 41 38 68 +32 29 48 53 +33 38 33 85 +84 14 86 46 +0 7 80 34 +12 76 67 82 +15 75 19 83 +67 47 71 76 +14 28 46 84 +6 73 50 73 +77 23 86 41 +6 65 32 86 +20 44 27 85 +73 42 80 84 +54 27 62 76 +17 36 42 68 +7 10 33 79 +43 76 47 77 +34 46 44 48 +34 71 77 85 +30 86 58 86 +76 11 79 29 +85 74 86 84 +16 49 21 61 +57 79 86 82 +57 7 61 84 +53 79 83 79 +18 34 82 38 +57 82 69 83 +47 62 63 77 +5 19 72 29 +50 77 68 78 +61 17 80 41 +73 80 81 83 +37 44 43 44 +27 21 48 84 +63 52 80 72 +32 50 81 69 +45 79 62 85 +67 6 67 43 +73 23 76 76 +68 81 86 82 +24 16 25 66 +2 0 22 56 +80 82 85 86 +33 39 73 43 +50 42 52 83 +57 51 82 67 +19 8 36 81 +9 66 37 84 +13 83 70 85 +42 86 44 86 +73 31 74 77 +7 78 49 86 +50 85 61 86 +28 59 50 79 +16 75 77 82 +51 17 70 53 +43 73 77 79 +5 56 7 65 +52 7 68 86 +78 17 78 30 +39 75 49 79 +33 56 40 65 +80 70 83 79 +81 63 83 80 +55 35 57 54 +53 73 72 76 +42 32 84 71 +66 11 78 54 +23 4 78 47 +28 54 44 66 +42 50 59 83 +84 26 84 26 +36 49 38 80 +48 79 76 86 +24 25 86 64 +8 17 73 27 +29 16 78 61 +8 40 8 82 +43 57 60 57 +32 1 49 65 +77 37 80 76 +38 53 83 54 +30 33 39 86 +45 86 53 86 +5 34 60 44 +79 70 83 78 +28 53 35 63 +35 33 70 47 +82 40 82 59 +4 43 77 68 +47 76 52 81 +44 51 82 58 +12 50 49 84 +10 64 15 69 +80 32 83 37 +37 84 85 84 +84 50 86 77 +28 73 60 76 +48 41 86 42 +66 71 83 85 +7 32 75 45 +79 10 83 13 +10 35 41 83 +37 77 38 84 +80 43 86 47 +66 62 71 62 +27 60 67 83 +69 83 85 84 +19 45 28 81 +61 49 71 76 +47 22 70 85 +39 75 67 82 +23 4 57 19 +33 84 36 86 +73 66 83 76 +57 30 77 76 +66 80 85 84 +66 14 73 57 +7 75 39 78 +46 20 82 82 +80 12 83 60 +55 49 62 52 +41 33 71 40 +17 70 73 86 +12 42 34 59 +16 4 30 13 +62 27 62 30 +69 28 69 58 +9 66 48 74 +51 45 63 74 +83 60 86 74 +78 22 84 61 +21 56 63 62 +26 71 65 72 +1 69 78 75 +52 79 83 86 +11 63 18 86 +44 30 73 53 +83 48 85 76 +57 1 75 47 +17 51 77 66 +79 78 80 83 +2 50 50 61 +13 22 36 44 +77 80 86 81 +37 83 55 86 +55 57 80 81 +25 79 56 82 +85 50 85 61 +57 31 81 51 +65 65 86 81 +12 2 35 57 +64 30 76 85 +27 35 47 77 +30 66 36 70 +66 40 74 67 +32 58 65 68 +70 74 84 82 +18 36 77 81 +15 56 44 60 +26 7 49 54 +78 12 83 70 +53 39 65 72 +21 1 34 29 +5 28 47 45 +28 31 42 54 +8 16 26 47 +58 29 86 38 +85 31 85 34 +47 4 61 79 +18 28 47 68 +9 85 40 86 +51 43 75 52 +46 86 50 86 +50 12 69 29 +49 37 74 54 +64 70 81 82 +7 16 61 82 +30 11 40 76 +18 80 37 86 +85 16 85 76 +39 1 72 81 +53 0 65 26 +3 1 24 61 +2 73 12 80 +74 54 82 63 +69 37 73 86 +56 10 58 13 +42 78 44 84 +33 5 44 15 +36 65 82 74 +3 78 56 86 +77 55 79 70 +31 53 35 74 +76 71 76 83 +84 28 86 44 +74 13 80 24 +11 23 51 36 +64 32 80 69 +6 8 32 83 +40 12 49 20 +63 39 73 66 +32 4 55 39 +83 6 86 67 +0 55 72 67 +30 42 86 68 +11 24 84 74 +18 57 18 82 +11 68 71 83 +71 20 86 42 +25 82 49 82 +21 26 26 38 +38 12 79 57 +46 59 86 64 +58 65 86 67 +27 66 52 82 +8 30 53 33 +64 44 71 61 +71 8 71 54 +57 33 78 79 +10 78 16 83 +64 25 70 33 +86 8 86 83 +14 1 81 34 +70 69 74 74 +40 48 58 84 +28 51 73 51 +45 72 67 78 +19 75 44 76 +41 15 83 28 +18 3 44 84 +83 67 84 82 +45 15 85 77 +40 41 65 46 +5 46 60 60 +2 20 48 21 +66 40 78 79 +17 24 23 64 +59 13 77 69 +46 47 82 75 +57 22 85 74 +35 5 52 21 +7 17 31 43 +46 56 86 71 +85 79 86 82 +10 84 26 86 +18 36 27 41 +74 50 81 78 +79 86 82 86 +39 83 62 86 +29 22 86 64 +83 15 83 72 +49 13 65 23 +2 70 21 79 +73 45 77 58 +32 49 54 81 +34 4 84 68 +85 76 85 79 +83 14 86 28 +61 37 74 56 +13 51 60 69 +48 0 50 35 +71 60 76 82 +69 83 70 86 +11 18 65 26 +50 0 52 70 +50 15 66 36 +64 35 73 64 +72 63 74 84 +74 54 80 83 +44 15 79 42 +29 58 63 82 +2 3 68 26 +27 18 71 60 +3 26 18 82 +16 78 48 84 +78 75 84 83 +52 14 53 43 +76 62 76 80 +32 61 83 76 +7 74 19 79 +10 20 22 29 +32 23 81 75 +86 40 86 47 +71 2 82 10 +31 14 52 46 +85 70 86 74 +41 70 75 80 +22 10 63 78 +66 18 68 23 +36 29 42 83 +59 35 65 44 +83 5 84 8 +37 30 69 70 +16 60 47 78 +33 20 82 67 +54 29 67 29 +50 59 61 84 +80 67 81 78 +54 15 60 85 +15 15 73 74 +69 14 71 60 +24 66 70 68 +37 54 77 67 +40 45 71 82 +60 28 63 44 +11 2 82 71 +86 56 86 59 +71 10 84 85 +16 70 72 75 +52 11 66 40 +3 61 54 83 +25 4 48 85 +75 83 75 85 +73 23 82 45 +48 39 64 65 +71 0 73 61 +74 29 85 40 +5 33 76 66 +78 32 82 67 +62 11 62 42 +48 38 59 39 +55 71 62 72 +78 85 81 86 +52 33 57 73 +56 11 77 76 +54 16 63 76 +76 77 79 80 +82 59 83 68 +18 34 32 47 +2 4 36 83 +37 11 56 70 +66 23 85 56 +13 37 13 48 +23 0 27 82 +53 86 63 86 +58 70 58 73 +32 57 39 85 +57 40 59 40 +11 42 38 78 +5 11 42 77 +26 76 60 82 +64 34 70 67 +1 77 26 79 +68 85 86 85 +71 59 78 84 +64 59 66 65 +72 65 81 83 +48 70 52 77 +32 76 44 82 +86 27 86 48 +16 13 51 79 +33 71 56 72 +74 42 80 57 +84 34 84 85 +14 10 45 29 +3 56 53 67 +23 53 56 66 +10 50 34 51 +31 71 52 78 +63 85 79 86 +54 67 55 70 +78 10 86 80 +0 74 63 76 +17 65 60 80 +67 5 67 22 +41 1 44 71 +29 6 55 67 +21 56 36 71 +10 65 63 72 +24 64 60 65 +34 85 45 86 +83 82 85 85 +35 23 85 50 +50 80 75 85 +35 43 67 50 +21 7 81 33 +71 2 77 10 +32 81 69 81 +78 55 84 71 +84 49 86 55 +58 35 74 74 +37 64 41 85 +35 7 55 76 +50 80 70 83 +13 84 47 84 +30 74 32 84 +80 65 84 77 +78 54 83 77 +42 6 57 59 +82 26 83 77 +1 27 42 54 +23 29 57 49 +55 64 72 64 +39 6 74 43 +8 25 38 25 +45 32 51 43 +4 26 78 35 +16 46 66 70 +65 8 86 38 +12 43 51 48 +5 52 21 71 +78 49 84 81 +19 38 39 43 +64 31 81 42 +0 79 47 79 +4 74 29 80 +30 8 72 55 +54 10 58 58 +55 22 65 46 +32 8 59 44 +80 31 85 43 +35 56 46 70 +19 72 81 77 +33 63 74 74 +33 8 42 45 +54 24 76 64 +17 13 82 74 +5 21 25 37 +60 9 82 50 +74 66 78 86 +37 34 43 70 +36 38 76 64 +24 83 26 83 +47 43 64 81 +34 46 83 62 +4 27 61 28 +20 33 82 81 +54 20 81 33 +72 7 84 82 +60 58 67 83 +28 0 31 24 +61 10 74 48 +58 9 76 79 +78 62 80 62 +38 64 72 80 +8 67 26 68 +17 36 73 60 +44 78 74 79 +57 86 70 86 +48 73 50 85 +9 24 40 71 +32 26 60 32 +30 17 67 76 +39 77 53 83 +15 67 85 77 +66 31 84 66 +22 38 85 80 +68 78 77 85 +73 82 75 86 +40 31 62 84 +50 66 70 69 +75 8 77 49 +75 18 85 59 +44 65 68 72 +57 85 82 86 +46 49 54 77 +56 38 72 59 +54 56 69 60 +17 0 61 37 +47 7 72 14 +77 56 81 69 +54 14 63 46 +74 2 84 86 +77 76 82 77 +39 14 50 85 +16 55 42 80 +72 47 78 48 +55 56 65 75 +42 60 62 86 +77 72 79 77 +68 6 78 51 +30 60 34 86 +56 31 56 35 +59 23 61 56 +60 3 64 58 +39 57 52 66 +0 68 17 72 +50 65 66 68 +43 34 59 67 +62 79 79 80 +74 53 81 56 +42 23 72 80 +31 3 38 12 +46 6 83 73 +24 37 83 51 +15 58 56 63 +79 3 80 43 +46 25 73 37 +22 30 52 70 +40 10 69 83 +8 70 14 70 +46 2 51 34 +5 24 11 70 +56 12 61 14 +43 40 74 55 +25 52 68 64 +14 36 33 79 +37 64 77 65 +50 61 68 77 +29 33 76 68 +0 31 80 52 +72 8 84 85 +77 84 79 85 +84 6 86 83 +8 65 68 75 +50 67 79 81 +59 16 76 44 +30 63 74 79 +40 73 55 75 +10 85 61 86 +21 18 52 44 +3 66 62 75 +7 37 39 70 +36 65 50 86 +49 44 58 59 +73 71 76 86 +12 59 83 76 +3 55 41 72 +47 86 80 86 +14 11 32 82 +28 77 31 79 +80 45 84 51 +8 2 85 12 +79 45 81 49 +41 19 41 85 +3 57 6 80 +61 48 77 72 +53 59 84 86 +56 66 74 69 +21 38 83 68 +66 15 67 31 +74 5 76 33 +74 27 75 29 +85 9 85 72 +37 49 55 50 +2 39 37 60 +50 64 82 83 +4 52 30 77 +74 74 84 78 +11 46 78 65 +36 43 44 70 +3 72 9 86 +53 70 73 73 +62 16 82 81 +80 55 86 71 +53 76 61 77 +81 65 84 76 +9 6 59 56 +21 43 56 73 +10 4 29 20 +31 70 52 73 +66 40 76 50 +0 85 29 85 +51 81 54 85 +85 21 85 66 +56 52 74 85 +23 66 64 70 +38 14 54 33 +24 50 49 77 +7 19 67 63 +58 70 76 72 +81 16 85 50 +46 78 67 84 +39 13 82 65 +16 42 44 69 +55 56 72 84 +16 15 45 41 +17 17 74 52 +19 50 34 73 +35 71 57 84 +0 31 4 79 +64 72 64 74 +85 32 85 73 +21 32 37 72 +64 69 82 85 +37 83 49 83 +19 13 59 84 +56 38 68 39 +85 1 85 59 +25 81 66 85 +67 44 83 77 +59 61 70 75 +38 5 56 84 +79 36 80 68 +65 75 68 80 +69 41 70 84 +18 35 35 71 +61 63 74 68 +47 68 51 80 +43 36 62 67 +58 36 73 50 +35 84 36 85 +61 42 64 71 +13 34 30 63 +31 40 60 56 +39 4 76 73 +71 73 86 76 +67 37 81 44 +85 0 86 48 +8 69 15 74 +44 15 64 25 +24 73 49 76 +19 79 25 81 +14 64 14 70 +23 63 68 67 +9 2 10 9 +39 65 54 83 +37 14 75 73 +41 52 53 85 +76 73 85 78 +13 82 75 83 +61 12 83 33 +12 86 42 86 +3 27 10 75 +28 4 34 42 +83 7 86 17 +62 72 70 85 +42 76 64 76 +83 8 86 82 +35 0 68 27 +69 81 70 85 +42 75 62 77 +34 32 48 55 +15 33 67 86 +78 60 79 70 +45 72 86 82 +64 40 85 75 +72 75 84 75 +46 50 58 57 +29 51 44 58 +84 0 86 73 +3 28 10 52 +49 13 59 27 +82 10 85 60 +2 41 74 78 +61 85 67 86 +68 41 76 70 +80 50 86 81 +46 52 76 65 +3 47 80 55 +37 77 85 86 +19 45 69 53 +78 36 86 72 +54 71 70 83 +72 16 83 77 +71 2 79 22 +8 56 68 70 +17 18 22 56 +0 10 73 18 +26 78 37 79 +0 22 41 42 +31 15 47 77 +44 64 60 86 +6 48 10 76 +47 33 72 66 +61 74 79 77 +63 34 73 54 +30 82 64 84 +37 71 62 73 +77 28 84 31 +71 1 84 66 +84 16 84 27 +22 67 46 78 +54 72 71 77 +76 5 79 64 +6 36 15 76 +44 53 75 58 +86 59 86 68 +25 45 41 45 +83 39 86 74 +39 83 72 83 +19 50 22 76 +50 55 84 55 +30 47 76 59 +64 31 83 83 +62 61 65 65 +84 57 84 77 +26 21 48 77 +23 13 32 59 +78 22 85 26 +10 56 16 60 +77 86 79 86 +71 10 72 75 +77 86 77 86 +8 17 17 72 +46 25 72 84 +24 28 55 82 +85 73 85 81 +58 70 61 74 +53 69 83 72 +81 67 83 86 +77 78 79 86 +68 32 80 63 +58 2 83 10 +85 20 86 69 +17 12 77 58 +49 76 85 86 +25 14 60 71 +16 25 47 67 +28 49 51 52 +53 73 67 75 +44 62 49 85 +30 64 75 74 +27 24 29 28 +4 35 47 65 +77 4 79 27 +10 64 64 84 +51 78 67 86 +34 33 42 56 +44 4 81 22 +80 12 82 74 +65 22 82 77 +15 4 21 75 +47 48 71 69 +16 85 57 86 +52 48 52 85 +65 17 69 25 +75 10 81 58 +4 43 30 85 +52 9 80 24 +42 21 62 33 +23 69 44 81 +4 54 46 81 +75 29 75 83 +81 53 86 75 +32 14 61 86 +83 85 84 86 +62 85 64 85 +66 44 73 57 +77 37 82 65 +12 62 52 85 +29 66 70 73 +47 30 66 81 +51 13 83 24 +4 17 22 68 +47 73 58 77 +29 69 31 77 +11 10 85 33 +42 11 46 67 +17 43 30 75 +76 24 76 32 +61 76 78 86 +21 75 78 83 +29 2 37 19 +25 18 78 53 +77 3 83 61 +24 6 79 45 +15 28 54 61 +53 58 66 59 +31 73 50 85 +57 42 76 84 +76 32 79 53 +28 80 52 82 +81 65 84 83 +77 52 84 83 +7 33 42 81 +1 25 75 61 +62 33 79 47 +55 53 77 63 +12 9 20 37 +82 75 84 84 +43 55 61 72 +17 18 57 63 +59 30 69 38 +78 82 83 83 +71 16 83 59 +54 54 64 63 +83 25 83 67 +47 7 64 29 +62 13 66 31 +0 65 48 78 +21 23 78 80 +47 20 67 20 +17 42 59 84 +58 84 59 86 +86 26 86 54 +28 36 56 47 +81 73 85 74 +17 85 27 86 +75 29 77 35 +37 18 72 69 +26 20 83 79 +23 76 77 83 +13 9 17 45 +1 39 52 53 +24 6 61 61 +51 57 70 75 +73 13 85 55 +21 1 27 10 +30 65 60 74 +71 4 71 65 +38 55 74 74 +52 49 77 55 +37 80 58 83 +44 54 78 86 +86 8 86 44 +41 78 82 83 +12 21 40 70 +52 20 70 56 +70 62 79 71 +14 15 19 46 +25 51 66 75 +11 24 31 31 +84 26 85 64 +20 76 66 85 +84 27 84 38 +86 84 86 84 +29 74 47 77 +2 79 36 86 +22 66 64 67 +38 0 79 69 +30 4 42 26 +60 65 66 83 +28 86 84 86 +28 53 57 74 +57 61 68 77 +59 38 68 55 +49 15 79 68 +29 31 64 59 +10 32 56 45 +1 6 47 46 +79 34 80 38 +59 46 70 74 +50 56 82 69 +12 44 20 48 +58 0 60 72 +76 55 82 76 +19 63 57 82 +64 72 65 75 +49 65 73 74 +38 55 81 75 +36 21 79 84 +85 60 86 65 +43 18 45 85 +0 50 19 68 +4 29 10 60 +62 42 78 78 +28 69 68 69 +34 45 59 83 +2 36 82 73 +47 84 79 84 +18 76 53 80 +9 32 70 39 +20 49 74 60 +77 46 82 61 +39 80 40 83 +24 80 29 84 +8 23 8 52 +39 9 53 58 +70 13 81 57 +18 26 31 71 +76 44 77 83 +71 0 71 26 +60 4 63 9 +0 32 36 71 +76 79 77 84 +66 85 82 86 +12 57 55 77 +65 39 86 54 +28 63 34 73 +70 25 71 39 +0 42 0 63 +49 9 64 45 +65 84 86 84 +70 47 80 84 +23 7 24 57 +63 51 66 67 +63 43 81 72 +40 51 49 75 +47 29 79 31 +27 18 76 20 +29 70 61 72 +60 44 67 48 +64 82 81 82 +32 2 61 69 +42 55 71 72 +12 73 29 83 +21 68 71 73 +56 10 69 14 +36 78 77 81 +38 67 75 74 +82 11 82 56 +31 68 54 68 +8 83 45 84 +69 12 72 18 +29 42 67 64 +77 11 81 79 +82 44 84 55 +20 20 62 66 +75 27 84 63 +81 58 86 67 +56 40 82 82 +16 22 24 25 +71 14 84 16 +45 78 81 80 +67 54 85 72 +37 55 86 72 +52 86 86 86 +71 21 71 66 +61 76 83 81 +54 15 67 72 +22 1 27 25 +48 22 56 50 +80 5 85 50 +23 11 45 57 +40 5 57 52 +1 48 7 86 +37 0 65 45 +81 81 86 86 +5 27 64 52 +76 35 78 77 +19 30 80 78 +13 85 84 85 +83 70 83 72 +22 3 36 8 +62 16 64 16 +66 59 73 70 +11 11 12 75 +43 4 77 45 +8 73 31 86 +59 46 70 62 +10 65 42 79 +19 21 66 49 +67 36 75 74 +86 24 86 38 +83 80 85 84 +32 82 52 83 +39 85 59 85 +28 52 44 70 +68 1 71 18 +63 13 81 39 +81 75 82 82 +58 13 63 39 +11 85 78 85 +79 54 80 84 +4 24 15 31 +63 66 84 71 +34 85 47 86 +43 78 68 85 +58 11 58 62 +3 5 79 24 +72 54 73 81 +36 8 56 65 +74 62 84 62 +61 1 82 47 +13 30 27 42 +3 57 33 71 +37 49 61 82 +44 20 85 82 +62 35 73 40 +56 7 65 36 +27 64 48 77 +82 12 84 80 +46 59 77 75 +38 33 69 41 +35 27 41 38 +60 85 73 85 +59 72 63 80 +26 71 53 74 +10 41 48 66 +86 59 86 84 +71 79 73 86 +22 77 76 86 +58 79 79 81 +63 69 71 84 +37 80 77 85 +18 77 62 81 +66 80 82 85 +50 56 72 72 +40 69 85 79 +55 25 81 37 +77 66 80 77 +82 13 82 14 +16 14 21 32 +6 5 28 5 +23 10 70 25 +50 11 82 60 +13 70 38 81 +15 49 27 55 +11 49 37 55 +43 63 56 83 +64 63 77 77 +10 13 10 72 +48 49 74 83 +69 84 69 85 +36 21 60 24 +2 66 34 85 +67 80 81 85 +7 54 37 82 +31 28 38 85 +8 11 40 41 +31 76 79 85 +46 69 61 85 +24 10 45 76 +18 2 69 38 +81 12 84 81 +24 86 44 86 +15 86 41 86 +21 86 50 86 +81 64 86 76 +49 5 75 12 +27 23 41 36 +49 57 78 60 +60 25 83 25 +10 39 81 52 +13 85 77 85 +0 52 71 84 +36 24 43 71 +77 19 83 71 +23 52 74 54 +71 31 81 38 +75 81 81 81 +75 67 76 71 +73 78 79 82 +63 74 73 76 +68 38 79 85 +62 24 69 32 +35 44 35 62 +43 20 46 78 +19 59 61 70 +86 66 86 79 +81 14 85 18 +75 69 81 80 +44 80 56 80 +7 49 40 56 +45 5 65 37 +34 46 36 46 +31 81 76 83 +8 1 69 70 +24 22 33 70 +39 45 79 53 +53 9 69 41 +17 80 32 84 +51 72 75 77 +65 84 74 85 +60 46 65 57 +60 52 63 75 +56 45 74 72 +1 26 40 40 +56 27 81 28 +12 25 31 82 +10 46 24 85 +4 54 75 71 +75 37 81 44 +65 55 82 60 +84 85 84 86 +80 68 81 69 +84 41 85 55 +72 29 76 56 +11 77 43 86 +82 66 84 73 +4 0 27 80 +15 1 86 4 +58 37 73 74 +9 37 43 54 +46 61 69 84 +68 47 86 61 +72 70 81 71 +22 29 76 34 +47 34 47 74 +1 42 47 51 +35 44 52 70 +1 36 42 51 +5 75 12 83 +50 72 84 78 +82 80 83 80 +0 38 36 62 +49 76 67 77 +69 11 81 43 +58 48 59 79 +48 65 54 77 +47 84 85 85 +8 76 73 82 +31 57 37 81 +35 27 85 27 +71 42 78 65 +84 74 86 78 +8 34 20 59 +75 75 78 78 +37 34 76 36 +55 66 62 70 +78 16 84 50 +46 79 46 81 +77 84 85 86 +12 0 15 54 +81 78 84 79 +56 51 72 73 +3 86 25 86 +39 61 56 79 +43 13 45 41 +52 27 79 76 +14 84 39 85 +70 28 85 42 +46 69 82 69 +32 79 77 81 +50 34 59 50 +49 6 73 75 +25 82 85 86 +9 1 75 8 +24 68 86 84 +48 59 83 77 +13 43 59 43 +37 77 39 84 +8 30 77 70 +20 20 60 81 +25 66 58 66 +27 30 78 62 +29 44 30 78 +27 37 40 65 +76 49 81 52 +1 29 24 66 +67 83 73 83 +20 9 72 69 +30 40 47 60 +61 56 81 56 +59 5 69 59 +31 24 51 79 +26 0 70 73 +48 21 53 44 +61 19 81 54 +75 52 76 74 +45 74 76 77 +52 9 52 78 +71 6 83 34 +83 36 84 59 +53 48 65 59 +28 81 29 83 +44 69 49 80 +48 15 86 85 +86 30 86 51 +76 55 77 85 +38 56 80 66 +70 43 73 69 +7 69 8 71 +7 82 11 83 +53 17 83 39 +3 56 11 75 +46 78 70 85 +21 84 61 86 +34 83 54 86 +77 78 79 86 +21 54 27 76 +13 44 73 45 +28 55 40 85 +10 54 59 72 +10 43 11 82 +22 46 41 71 +67 56 77 76 +51 9 61 85 +12 14 37 17 +32 84 72 84 +12 70 52 74 +13 75 82 75 +71 86 80 86 +59 53 74 65 +43 69 45 74 +51 65 55 86 +24 50 26 84 +2 39 15 71 +38 15 72 73 +66 11 66 17 +85 77 85 77 +67 77 74 86 +32 49 62 58 +60 44 76 71 +67 43 74 60 +3 19 27 79 +60 54 65 70 +54 63 60 70 +65 76 77 81 +30 66 39 80 +25 20 36 24 +47 77 63 82 +17 26 43 75 +39 51 69 83 +4 13 4 26 +5 83 62 84 +42 62 50 83 +32 46 51 77 +9 74 49 76 +60 9 73 33 +31 70 63 74 +14 29 17 63 +28 17 86 42 +14 33 74 69 +5 55 62 77 +1 10 60 39 +44 21 59 32 +46 77 77 81 +45 23 68 29 +82 59 83 68 +30 24 67 56 +51 43 66 75 +78 26 81 42 +25 0 59 70 +59 56 79 80 +83 27 83 64 +74 35 80 64 +64 82 73 82 +3 63 61 86 +43 1 66 24 +18 65 73 66 +36 2 41 29 +56 67 62 85 +5 26 54 84 +33 1 65 42 +0 46 45 54 +47 24 75 24 +78 31 79 82 +10 47 45 78 +11 74 41 77 +58 35 68 49 +37 16 81 31 +53 0 67 73 +10 27 53 65 +48 67 74 80 +0 37 8 59 +20 24 86 72 +60 17 64 29 +71 13 72 51 +19 6 45 10 +25 5 74 68 +45 80 57 82 +18 18 38 51 +75 76 78 77 +4 61 37 66 +15 24 37 70 +4 55 33 81 +8 42 79 55 +53 24 84 35 +55 5 76 32 +21 23 65 63 +36 69 63 82 +50 56 58 75 +80 31 82 82 +68 29 74 50 +47 65 49 79 +63 78 71 78 +29 81 48 82 +44 8 86 38 +35 33 48 77 +25 4 44 78 +4 40 35 53 +35 68 69 83 +23 53 32 84 +48 77 54 82 +57 40 85 63 +70 1 83 38 +39 54 40 57 +23 24 40 74 +76 40 81 83 +33 25 82 42 +42 81 79 85 +18 3 19 52 +22 4 22 22 +59 62 84 76 +33 48 83 78 +35 15 50 56 +83 82 83 85 +7 86 70 86 +82 85 82 86 +4 74 78 74 +77 14 80 74 +23 84 74 84 +75 3 81 70 +10 26 24 78 +0 53 86 63 +59 2 83 8 +18 14 21 19 +20 58 80 66 +45 62 65 68 +47 62 86 65 +5 0 47 13 +86 1 86 10 +19 24 83 53 +26 62 42 86 +62 56 74 57 +39 46 40 49 +84 34 85 63 +60 57 62 77 +31 45 48 65 +14 68 43 71 +32 73 42 75 +72 40 85 65 +39 2 46 33 +82 83 83 83 +23 31 79 47 +2 77 27 86 +83 36 85 70 +23 44 72 51 +36 26 82 41 +65 9 71 78 +80 32 80 56 +8 21 28 42 +82 15 82 72 +8 26 86 61 +28 80 46 81 +43 73 68 80 +11 70 11 70 +55 21 63 34 +8 69 82 78 +72 8 81 18 +63 10 79 83 +84 22 85 85 +86 67 86 67 +15 75 57 75 +70 48 78 83 +57 53 71 61 +46 17 50 17 +83 31 85 34 +72 3 79 58 +46 69 48 82 +41 64 56 67 +74 17 81 71 +85 49 85 58 +72 61 77 77 +52 29 54 47 +66 22 76 55 +61 68 82 74 +50 43 50 82 +64 64 85 77 +24 65 73 86 +57 50 62 72 +1 7 73 64 +75 22 79 37 +64 47 86 78 +84 29 86 65 +2 1 56 42 +48 39 49 53 +29 84 76 84 +8 40 67 70 +79 68 84 75 +35 48 78 68 +76 54 84 81 +35 39 66 78 +34 7 81 40 +3 83 13 85 +72 33 77 56 +52 18 59 64 +9 23 51 25 +47 78 65 83 +63 69 63 70 +61 84 65 86 +25 17 64 21 +56 17 60 86 +29 52 44 72 +44 49 71 67 +86 40 86 78 +61 34 73 65 +59 32 72 41 +1 19 55 25 +24 86 49 86 +41 69 69 76 +63 61 67 71 +18 31 52 51 +17 2 86 12 +48 49 53 75 +81 14 83 78 +35 82 69 85 +4 18 53 69 +67 13 74 46 +25 73 69 84 +60 76 65 77 +16 4 26 5 +80 4 80 47 +26 58 71 70 +62 80 68 84 +12 27 33 77 +53 15 61 40 +20 24 37 68 +6 17 73 33 +51 8 57 32 +47 55 78 61 +33 54 45 82 +35 13 68 38 +25 51 36 54 +56 43 59 70 +22 67 76 67 +35 70 64 81 +23 44 29 68 +21 41 64 49 +54 5 59 67 +30 27 68 72 +41 66 75 70 +2 41 7 76 +79 36 79 66 +43 82 53 85 +23 59 64 75 +70 47 82 63 +2 45 49 67 +5 20 79 39 +66 24 66 78 +2 58 58 74 +26 14 49 49 +65 0 78 41 +7 12 70 61 +40 49 82 61 +65 1 78 62 +10 42 31 44 +71 5 80 18 +48 60 77 74 +60 60 74 63 +32 66 80 77 +70 46 83 80 +0 3 68 61 +75 79 85 82 +62 69 76 69 +12 39 53 49 +84 48 85 86 +47 68 64 72 +41 44 51 78 +0 50 70 51 +61 17 85 81 +19 4 77 38 +46 81 55 85 +34 23 78 51 +12 67 46 82 +14 60 28 68 +85 18 85 61 +72 13 82 64 +35 41 41 70 +51 36 69 79 +64 68 65 73 +41 59 48 66 +44 22 64 50 +30 5 47 7 +4 60 6 64 +78 71 84 73 +40 0 47 13 +75 63 81 79 +65 64 75 83 +9 35 65 71 +86 5 86 79 +17 60 42 78 +82 71 83 72 +86 86 86 86 +3 57 67 84 +16 7 27 74 +40 44 80 48 +71 45 86 64 +62 55 79 67 +17 68 44 81 +77 52 84 79 +13 11 56 18 +18 42 38 84 +43 41 75 43 +56 2 81 20 +7 78 77 83 +59 19 69 48 +6 25 56 56 +16 70 84 72 +49 16 71 81 +16 83 74 85 +85 22 86 67 +21 78 71 82 +15 14 19 44 +29 70 53 81 +8 85 69 85 +5 53 37 72 +22 45 34 83 +64 23 77 76 +81 19 82 44 +6 21 76 38 +21 10 55 15 +35 77 40 85 +2 5 60 49 +52 29 82 49 +42 48 69 62 +13 10 15 67 +53 80 56 82 +37 81 66 83 +54 46 76 56 +33 56 43 68 +13 40 30 62 +62 4 69 84 +59 78 78 79 +77 50 80 72 +62 67 72 80 +74 46 86 59 +70 10 80 20 +34 8 48 23 +55 81 67 83 +72 53 83 74 +7 21 73 41 +49 49 63 62 +10 11 62 13 +32 14 79 35 +15 72 16 81 +26 84 51 84 +70 85 83 86 +81 55 85 62 +72 56 73 74 +37 29 71 39 +52 82 53 86 +46 27 83 71 +81 80 83 84 +49 40 80 77 +42 75 43 81 +43 45 56 77 +51 30 77 56 +40 59 65 60 +69 74 83 80 +38 50 58 52 +46 84 49 86 +9 49 62 81 +66 53 77 78 +42 37 58 41 +16 1 63 82 +75 65 84 67 +72 55 81 58 +26 2 34 81 +75 26 75 79 +68 58 75 81 +43 36 60 79 +70 80 79 81 +30 62 81 72 +64 48 82 85 +58 69 80 83 +82 70 84 85 +6 69 35 80 +76 24 85 62 +69 41 73 82 +40 6 67 40 +77 26 77 30 +58 9 86 13 +44 58 85 76 +56 72 82 75 +67 25 85 41 +83 59 86 70 +49 45 50 73 +63 29 84 43 +81 39 81 85 +7 22 34 40 +34 26 48 73 +80 10 86 30 +13 18 78 57 +30 82 86 85 +83 1 84 19 +56 84 67 84 +32 74 74 80 +84 24 84 50 +15 18 83 45 +9 41 77 47 +20 81 78 84 +83 16 83 79 +83 12 86 70 +16 28 46 86 +28 61 38 75 +41 46 49 52 +54 61 66 76 +35 67 74 83 +74 37 76 37 +78 61 83 68 +59 54 80 71 +10 42 54 82 +7 52 69 73 +80 44 80 84 +83 71 86 78 +45 6 85 76 +7 85 10 86 +61 14 74 21 +47 16 71 63 +38 61 57 81 +40 24 61 60 +76 40 85 51 +58 30 61 69 +5 66 53 81 +14 30 32 52 +21 5 46 77 +64 33 83 62 +0 83 84 85 +72 76 73 76 +86 4 86 10 +61 81 63 86 +36 8 56 62 +77 9 77 30 +36 81 74 84 +24 79 32 85 +68 4 82 23 +29 27 76 51 +79 37 86 50 +48 22 83 33 +48 0 83 69 +71 17 71 41 +68 71 84 72 +42 67 78 83 +3 41 47 55 +3 54 18 67 +29 69 72 84 +49 40 60 58 +56 55 85 59 +41 62 56 63 +56 71 69 73 +63 49 84 55 +40 76 56 81 +45 23 49 49 +21 74 49 78 +24 9 33 62 +24 41 46 62 +15 44 23 70 +49 13 69 39 +3 74 8 77 +0 0 46 67 +46 71 51 81 +35 29 69 59 +35 18 37 63 +2 41 82 78 +67 18 85 25 +23 13 38 49 +41 36 56 48 +36 34 80 57 +86 25 86 28 +44 42 80 57 +71 47 76 47 +48 8 60 70 +83 74 85 85 +31 20 58 35 +10 35 60 75 +29 54 52 60 +6 11 29 85 +32 51 68 73 +86 33 86 62 +67 66 86 67 +54 53 73 72 +48 79 64 85 +9 7 56 60 +51 67 77 70 +4 16 50 38 +1 35 73 59 +44 26 60 52 +66 40 78 40 +13 67 18 75 +45 74 50 78 +43 44 79 44 +70 59 73 65 +68 70 79 73 +60 66 70 73 +17 10 39 86 +35 23 60 72 +76 30 84 39 +1 66 62 74 +72 71 81 84 +19 51 22 55 +84 8 84 36 +66 86 68 86 +61 60 65 73 +18 22 82 78 +75 43 79 60 +36 73 42 81 +20 53 22 73 +45 76 54 83 +70 75 80 85 +15 68 56 68 +45 55 77 66 +67 63 79 80 +68 68 78 84 +79 61 85 69 +53 76 61 81 +23 0 36 28 +3 10 65 10 +60 58 68 80 +1 6 48 64 +81 4 86 22 +36 48 42 65 +43 62 85 85 +66 9 76 49 +19 49 35 64 +19 50 57 67 +54 77 59 81 +9 39 42 54 +61 86 69 86 +43 54 81 81 +67 3 76 23 +86 45 86 53 +26 50 81 55 +45 66 72 78 +38 72 38 77 +42 66 81 67 +53 69 53 70 +18 45 28 79 +68 81 79 81 +42 39 63 44 +58 41 69 56 +47 82 56 83 +74 27 83 78 +69 33 70 79 +34 11 60 72 +24 83 72 86 +42 9 44 38 +20 57 70 66 +26 42 58 68 +6 72 77 76 +3 23 10 68 +67 11 77 30 +54 70 84 82 +82 26 84 81 +30 31 61 50 +40 63 54 79 +29 54 31 75 +44 51 53 79 +59 58 86 79 +34 53 65 53 +32 25 41 80 +53 12 68 76 +57 50 61 81 +21 52 23 54 +16 26 27 81 +28 9 41 47 +33 0 54 67 +72 17 76 54 +24 26 39 84 +54 64 81 81 +20 10 54 34 +12 60 60 73 +28 60 79 63 +78 39 84 44 +78 12 83 32 +9 28 63 42 +11 49 68 67 +5 77 86 78 +10 64 58 83 +24 49 75 74 +74 72 74 74 +74 35 81 73 +14 9 17 18 +32 53 35 64 +53 83 72 85 +28 65 35 70 +73 60 83 72 +79 13 80 79 +2 37 50 42 +78 75 78 78 +86 58 86 60 +63 3 75 46 +17 36 49 42 +73 25 83 30 +71 83 71 83 +21 43 43 46 +82 86 85 86 +86 76 86 78 +31 59 76 78 +32 35 50 61 +26 31 43 70 +5 47 81 56 +51 81 84 86 +19 12 75 68 +48 11 71 73 +48 12 70 54 +39 71 60 79 +8 52 77 59 +69 83 86 83 +41 4 57 34 +81 75 83 79 +33 58 79 59 +31 52 81 73 +84 53 85 58 +81 70 81 76 +15 51 61 84 +63 40 69 71 +77 2 84 46 +72 85 81 86 +8 39 42 85 +2 49 55 54 +61 21 61 60 +34 14 42 56 +32 14 64 20 +32 82 47 86 +73 45 78 82 +6 67 67 75 +22 84 23 86 +34 51 51 84 +42 40 68 57 +75 44 80 54 +34 16 70 32 +73 48 81 77 +72 4 83 67 +56 2 69 47 +55 43 85 77 +47 32 86 75 +11 41 51 62 +53 53 61 69 +35 24 51 25 +42 47 67 86 +41 14 44 53 +36 2 56 13 +71 34 84 70 +56 65 71 86 +66 77 77 80 +40 80 70 84 +8 73 35 78 +34 52 74 58 +52 74 53 86 +36 74 41 84 +51 36 72 73 +44 84 79 86 +23 40 82 59 +26 65 80 69 +30 65 62 75 +84 15 86 64 +76 83 81 83 +18 82 57 84 +25 40 25 73 +5 59 16 64 +67 59 74 65 +0 7 77 66 +78 51 84 62 +61 16 64 30 +49 29 68 49 +45 25 59 33 +35 78 36 86 +62 0 70 50 +80 43 83 49 +21 67 86 72 +28 36 36 78 +31 24 31 38 +58 0 67 53 +85 75 86 80 +22 14 48 60 +44 76 83 82 +71 56 83 72 +44 37 66 71 +68 38 75 44 +13 23 58 47 +37 31 85 81 +33 17 81 58 +65 8 67 46 +53 21 69 36 +16 79 23 80 +48 86 68 86 +49 45 58 55 +43 29 59 84 +55 85 76 85 +60 9 72 49 +55 33 62 50 +57 18 80 37 +46 80 74 81 +23 85 29 86 +70 5 83 52 +60 11 85 78 +49 14 52 75 +4 29 33 79 +38 66 46 84 +22 85 85 85 +48 0 48 32 +64 82 78 86 +74 46 78 70 +20 7 75 7 +2 56 49 84 +71 86 74 86 +28 35 67 64 +65 47 69 81 +42 84 42 86 +81 76 82 76 +22 70 36 82 +6 34 74 57 +60 24 70 67 +50 81 56 86 +75 55 75 62 +38 84 54 84 +68 34 69 72 +24 75 70 75 +60 53 81 83 +6 1 20 14 +61 60 62 74 +58 43 85 80 +50 71 59 75 +6 65 25 80 +1 25 5 60 +68 69 71 69 +68 31 82 43 +22 28 60 35 +71 55 82 71 +0 8 77 21 +9 71 73 72 +52 75 73 83 +86 34 86 57 +26 58 74 79 +80 84 85 84 +46 17 49 27 +19 18 82 79 +5 83 70 85 +26 78 55 86 +15 31 86 51 +61 85 61 86 +43 77 53 85 +36 63 55 84 +85 79 86 83 +0 5 83 45 +65 59 83 63 +19 65 79 74 +13 6 38 67 +57 28 78 61 +82 81 86 85 +62 9 79 83 +42 12 57 50 +37 48 55 50 +21 60 25 65 +67 77 75 85 +4 79 19 81 +47 46 73 48 +3 71 11 83 +40 81 63 83 +48 62 75 69 +24 12 74 62 +18 71 19 81 +86 17 86 70 +47 22 73 33 +49 11 70 59 +31 49 65 83 +46 75 48 84 +68 81 84 82 +75 39 86 41 +41 2 41 26 +74 62 79 82 +51 52 61 63 +40 35 81 84 +2 32 66 64 +80 54 86 59 +1 37 6 80 +28 10 35 19 +65 30 75 52 +71 50 71 51 +48 14 77 31 +13 69 34 85 +30 69 43 77 +48 66 82 84 +22 28 36 58 +34 83 61 84 +24 25 46 56 +73 27 86 28 +63 54 73 60 +7 9 12 75 +69 81 82 81 +42 73 79 84 +3 21 53 54 +78 43 85 52 +40 66 52 84 +37 27 80 49 +23 8 73 50 +19 53 62 66 +63 77 83 82 +53 25 71 62 +63 12 65 17 +80 39 84 76 +47 71 63 75 +53 55 69 85 +38 14 64 49 +61 32 73 70 +58 51 80 78 +37 80 47 84 +55 44 77 64 +30 47 48 74 +30 48 50 54 +51 72 65 83 +8 71 77 80 +19 48 38 84 +83 63 84 76 +76 57 77 84 +9 43 27 80 +81 0 85 54 +45 49 55 58 +7 21 59 80 +24 10 53 85 +83 35 84 65 +79 6 85 74 +68 18 80 21 +44 68 72 86 +58 8 64 53 +76 18 82 81 +32 22 34 85 +73 85 75 86 +81 24 84 60 +48 49 59 54 +14 1 31 68 +21 42 82 83 +30 84 86 86 +65 77 79 83 +74 7 74 59 +45 59 67 60 +67 83 70 84 +16 70 51 78 +48 60 77 86 +57 66 60 75 +26 37 73 44 +34 75 39 75 +46 57 75 69 +81 84 81 86 +72 4 84 52 +22 24 25 86 +57 51 71 72 +81 21 85 40 +2 37 71 79 +41 38 47 47 +43 63 75 65 +70 60 80 81 +67 46 77 48 +11 16 67 18 +61 67 84 81 +67 0 70 44 +78 34 83 81 +25 4 53 54 +69 69 76 74 +39 41 70 84 +58 46 82 48 +82 74 84 83 +41 42 57 66 +4 18 70 18 +42 10 85 66 +19 18 71 66 +21 10 56 62 +1 4 64 68 +22 81 68 86 +35 56 79 75 +52 6 53 52 +75 10 79 19 +45 47 63 60 +24 20 56 24 +50 9 64 30 +45 75 65 84 +25 60 29 68 +32 38 36 84 +74 52 81 56 +40 13 68 13 +53 62 69 82 +21 44 32 49 +1 18 9 28 +39 50 53 66 +43 82 51 82 +26 18 77 20 +17 25 71 59 +55 65 81 75 +47 37 61 67 +41 49 59 71 +57 30 74 54 +77 46 77 69 +66 72 79 86 +34 1 59 37 +48 66 57 84 +58 76 65 76 +81 54 84 57 +8 60 41 71 +36 47 75 75 +31 16 54 55 +12 2 45 31 +10 57 27 64 +75 67 84 79 +7 44 85 44 +28 84 54 86 +74 19 81 79 +7 53 43 53 +57 13 78 75 +76 81 80 84 +68 8 75 68 +7 42 53 65 +74 70 81 76 +58 21 75 48 +29 61 52 64 +56 8 62 15 +2 62 84 68 +39 59 74 85 +73 2 79 29 +22 18 48 70 +47 29 70 77 +20 2 48 39 +78 32 86 82 +81 31 81 64 +51 64 84 81 +69 81 77 85 +59 82 68 86 +83 54 83 86 +48 7 56 86 +32 84 71 84 +72 21 86 59 +26 67 51 72 +31 5 38 63 +63 62 67 83 +12 9 60 39 +28 50 33 53 +64 16 70 47 +28 72 46 84 +53 39 81 64 +54 83 70 84 +13 30 54 51 +22 14 49 19 +23 14 46 43 +1 59 33 69 +22 43 52 49 +46 41 56 69 +43 23 43 42 +26 16 78 54 +86 4 86 69 +52 48 57 59 +82 24 82 79 +70 81 85 82 +1 30 86 75 +23 79 73 86 +62 0 72 29 +81 77 81 86 +8 59 50 64 +65 80 75 80 +54 56 55 59 +4 74 20 76 +13 12 48 84 +4 45 54 60 +80 11 86 55 +21 20 79 63 +15 20 52 67 +0 32 48 45 +23 53 51 67 +55 23 79 31 +32 6 54 52 +42 44 43 67 +26 16 68 49 +48 18 49 55 +71 8 73 25 +34 72 50 73 +26 24 82 63 +80 82 83 82 +68 10 82 34 +68 13 86 40 +51 41 82 55 +30 77 85 80 +42 70 64 71 +79 27 79 86 +33 75 65 85 +43 23 45 55 +12 1 65 4 +55 73 83 81 +34 9 38 54 +80 5 83 35 +10 27 14 86 +26 48 79 70 +32 57 39 77 +10 13 59 62 +86 22 86 36 +25 65 43 69 +68 83 82 86 +17 61 53 80 +78 27 81 65 +79 41 85 71 +84 7 86 54 +64 80 73 80 +4 67 82 69 +11 70 86 77 +36 85 38 86 +70 14 84 32 +38 56 49 68 +21 61 80 86 +1 59 76 66 +69 0 82 23 +51 83 51 85 +67 33 81 68 +63 21 71 24 +31 25 52 82 +84 81 84 84 +30 30 60 82 +24 3 35 68 +28 22 79 39 +7 55 66 65 +56 80 62 82 +5 81 35 86 +23 84 82 84 +17 73 26 79 +62 81 69 84 +2 21 68 74 +39 28 76 59 +12 2 60 46 +5 5 37 13 +53 57 82 74 +69 78 70 79 +59 75 82 76 +38 65 44 70 +31 68 74 72 +22 82 81 82 +52 18 85 83 +75 68 79 80 +7 70 62 86 +33 19 73 43 +72 81 86 83 +69 76 78 80 +21 81 69 81 +51 56 79 63 +40 52 80 85 +7 48 11 74 +2 15 17 61 +29 69 74 85 +22 1 85 46 +76 10 84 68 +42 7 77 25 +18 30 19 85 +25 69 39 78 +47 22 61 85 +16 64 36 72 +48 58 48 67 +67 50 76 67 +25 70 66 79 +7 58 60 64 +60 68 86 85 +67 66 84 82 +59 77 66 83 +15 42 22 52 +27 52 53 74 +86 17 86 44 +77 84 81 86 +82 85 82 86 +73 11 80 78 +14 55 45 81 +33 21 47 30 +38 20 66 54 +17 40 48 50 +69 15 85 31 +56 63 63 74 +35 1 65 80 +24 24 71 39 +20 55 21 57 +4 11 35 27 +55 48 64 77 +80 48 83 84 +42 55 50 66 +40 63 56 68 +65 77 66 77 +71 83 84 84 +80 63 85 81 +2 51 70 64 +49 8 82 78 +66 56 86 67 +55 9 60 72 +0 25 52 56 +59 47 75 47 +42 83 45 86 +29 58 85 83 +65 86 78 86 +83 30 83 52 +67 51 86 86 +85 17 86 45 +77 18 80 21 +73 50 83 85 +12 47 50 59 +18 29 64 40 +79 18 80 39 +26 74 36 82 +24 58 60 68 +68 60 84 71 +41 8 84 25 +59 42 78 42 +15 60 28 75 +29 0 63 23 +0 17 59 26 +1 79 20 81 +67 25 80 28 +66 8 75 62 +37 80 67 86 +18 39 20 86 +12 74 13 80 +6 63 10 67 +4 58 8 70 +2 84 73 85 +17 24 28 52 +53 57 69 84 +15 40 44 69 +80 38 84 64 +41 54 56 75 +0 61 38 84 +53 11 67 24 +7 19 21 81 +39 81 84 86 +39 12 83 49 +33 52 63 54 +14 17 53 47 +39 53 67 56 +45 46 77 74 +12 45 39 48 +39 82 73 84 +78 23 85 23 +52 61 74 85 +20 0 44 50 +44 82 52 84 +47 83 48 84 +50 81 58 83 +15 15 24 33 +58 20 71 45 +69 66 69 80 +53 23 64 47 +64 39 68 51 +61 82 84 84 +9 42 84 79 +22 2 51 80 +18 83 31 83 +29 22 53 66 +73 60 74 65 +42 47 62 71 +37 63 57 79 +27 53 83 54 +51 73 68 77 +17 40 50 60 +19 64 79 75 +59 26 85 42 +85 5 85 12 +74 55 79 75 +62 19 62 32 +67 9 76 56 +34 41 74 67 +80 16 80 51 +59 47 82 63 +64 36 69 58 +61 28 69 33 +35 44 71 83 +17 23 45 73 +62 58 74 68 +35 44 85 71 +65 62 73 78 +23 44 71 65 +30 7 44 73 +56 36 78 45 +9 39 30 70 +0 36 38 77 +0 32 38 84 +31 78 36 83 +80 80 81 81 +18 74 53 77 +29 77 68 84 +25 82 55 84 +7 84 23 85 +61 78 68 79 +83 59 85 71 +72 36 74 62 +8 44 49 77 +16 19 20 42 +51 49 61 66 +58 65 72 68 +86 21 86 77 +72 42 77 59 +6 74 36 86 +54 73 62 82 +48 75 50 84 +43 35 72 86 +48 46 73 55 +29 86 34 86 +56 84 57 84 +34 23 51 59 +37 49 38 64 +3 9 31 45 +3 52 75 66 +75 82 86 86 +79 5 85 57 +28 57 31 57 +36 20 52 55 +47 49 50 70 +51 53 84 70 +46 78 57 83 +45 57 62 84 +25 69 43 73 +68 72 78 82 +20 73 85 79 +17 77 23 81 +60 33 79 72 +0 78 54 82 +42 35 55 41 +68 38 85 74 +16 60 79 80 +19 80 78 84 +13 37 17 58 +58 81 80 82 +62 41 80 68 +21 36 63 44 +38 12 57 47 +15 46 22 61 +79 17 79 31 +65 48 72 83 +63 27 83 64 +11 66 31 75 +6 42 67 44 +67 79 85 79 +6 72 17 75 +76 45 79 71 +26 20 33 39 +9 8 51 77 +66 81 77 85 +0 17 58 25 +28 31 48 45 +83 83 83 86 +25 77 26 79 +18 69 18 84 +66 47 78 80 +16 23 52 27 +23 69 24 78 +23 21 77 39 +57 78 57 79 +23 73 47 80 +48 20 72 51 +68 49 80 64 +41 51 68 68 +36 24 52 29 +5 14 61 52 +3 23 23 70 +58 58 62 66 +63 30 76 81 +40 44 86 51 +55 35 56 79 +46 57 86 57 +39 65 41 71 +76 63 84 64 +57 65 61 85 +48 26 52 56 +20 26 45 38 +40 41 65 55 +61 5 67 71 +48 41 62 67 +7 68 66 82 +84 0 86 9 +0 25 30 49 +58 47 78 69 +74 56 76 86 +79 27 81 85 +69 56 72 86 +84 73 84 74 +26 17 84 57 +32 75 79 78 +10 23 33 36 +78 80 81 84 +15 41 60 84 +84 3 86 84 +17 8 18 76 +7 28 60 66 +57 53 82 75 +61 64 80 79 +18 43 21 49 +84 38 86 65 +30 23 75 48 +86 1 86 37 +4 67 25 67 +3 79 4 83 +69 34 74 56 +37 1 83 80 +3 75 64 82 +69 71 80 86 +81 26 86 27 +47 38 80 72 +5 70 7 82 +49 11 58 33 +57 4 57 52 +18 82 49 86 +21 64 45 83 +16 75 74 86 +11 53 14 81 +3 50 24 79 +7 38 29 70 +43 69 67 83 +28 45 36 46 +73 18 83 52 +77 79 80 80 +34 48 85 62 +81 30 84 42 +32 46 41 49 +14 85 64 85 +79 54 81 74 +31 40 76 53 +31 49 74 83 +29 78 62 85 +23 23 59 73 +75 7 76 14 +59 63 69 74 +48 77 66 77 +60 3 73 35 +52 32 60 50 +58 77 69 80 +7 6 10 30 +12 11 14 80 +0 16 25 75 +23 70 66 80 +2 61 67 71 +83 20 86 74 +85 14 86 27 +68 17 70 26 +69 73 84 78 +73 37 82 68 +48 39 67 65 +83 11 83 20 +45 66 83 77 +29 44 49 85 +58 42 77 57 +85 46 85 50 +4 64 40 74 +40 73 46 85 +25 7 36 11 +35 42 85 82 +43 40 71 47 +54 27 83 78 +62 10 81 32 +32 64 52 64 +19 7 45 58 +17 45 52 75 +12 36 31 41 +13 68 59 69 +53 58 57 81 +13 39 53 51 +25 27 54 77 +77 43 77 69 +19 82 33 84 +72 0 77 17 +80 79 82 83 +22 32 37 35 +66 59 66 59 +36 51 68 62 +69 32 78 55 +60 14 77 43 +16 72 28 76 +83 85 85 85 +53 64 60 69 +27 33 67 65 +79 48 85 49 +13 7 75 78 +14 2 71 67 +10 53 61 76 +34 61 63 67 +63 50 66 55 +34 50 36 51 +31 86 42 86 +56 71 76 72 +18 38 67 70 +43 16 68 65 +29 33 86 79 +27 53 84 59 +36 28 37 55 +81 71 83 75 +5 22 11 78 +3 63 71 75 +3 52 6 61 +62 11 73 24 +7 21 70 22 +54 6 78 9 +47 46 51 65 +71 59 78 82 +46 77 68 82 +61 86 63 86 +46 53 81 80 +28 52 35 77 +19 56 71 85 +76 56 81 74 +43 85 83 85 +37 37 54 59 +64 65 65 69 +5 66 43 72 +16 79 19 80 +83 65 83 70 +74 75 82 85 +62 34 66 67 +11 45 53 58 +61 10 75 56 +21 15 67 47 +37 26 86 54 +54 69 66 77 +72 19 77 70 +21 49 21 67 +67 39 71 72 +73 66 74 76 +62 23 86 43 +30 49 74 83 +84 54 85 78 +27 50 75 53 +85 7 86 45 +16 18 21 71 +8 33 84 48 +20 71 36 83 +15 41 57 57 +56 7 69 73 +59 18 83 72 +56 34 58 42 +52 39 85 50 +58 4 61 71 +25 76 85 79 +37 71 60 84 +43 39 50 48 +47 3 51 6 +10 53 50 76 +68 40 71 76 +14 79 84 81 +14 64 78 84 +73 35 84 70 +0 36 72 80 +31 27 78 75 +84 9 85 79 +85 16 86 69 +41 37 71 37 +48 17 78 43 +64 62 66 82 +3 70 32 79 +42 83 45 85 +86 59 86 81 +30 12 71 48 +45 28 76 47 +26 38 56 65 +19 7 28 46 +17 15 24 83 +7 11 19 50 +77 52 82 66 +65 18 71 68 +85 65 86 79 +73 55 85 77 +30 59 80 75 +17 42 35 86 +1 40 23 66 +83 40 84 81 +31 83 46 86 +80 60 82 80 +62 25 76 68 +17 35 62 77 +22 40 74 78 +79 38 86 57 +62 56 69 84 +48 26 82 49 +27 2 83 31 +74 62 78 75 +47 18 69 84 +10 31 11 44 +38 14 78 37 +7 58 21 73 +64 22 69 51 +25 86 80 86 +85 55 86 79 +76 82 82 86 +56 66 65 71 +16 66 27 82 +84 30 85 84 +80 66 81 69 +66 49 82 75 +34 52 86 79 +9 0 81 68 +66 67 72 79 +39 56 79 80 +54 43 62 75 +84 81 84 81 +14 4 72 84 +17 56 41 62 +85 55 86 58 +84 68 84 84 +73 69 82 72 +16 83 68 83 +70 1 74 48 +73 58 81 63 +2 50 15 50 +36 31 66 55 +28 3 71 61 +3 12 25 53 +25 81 51 82 +78 78 83 85 +81 42 85 59 +11 32 40 80 +53 22 71 63 +23 53 37 54 +53 21 76 29 +54 49 54 53 +11 29 15 62 +53 74 55 85 +7 69 54 84 +80 28 83 53 +50 31 53 44 +70 39 74 49 +72 1 79 74 +49 35 80 67 +22 69 54 84 +4 74 36 76 +74 64 79 81 +42 47 74 77 +59 27 60 38 +19 3 60 36 +43 29 61 45 +19 66 21 85 +64 56 72 59 +52 69 86 73 +3 64 34 72 +21 16 64 34 +82 22 86 38 +55 84 57 84 +26 48 32 76 +10 70 12 82 +71 22 78 58 +34 85 74 85 +51 36 74 70 +75 15 83 20 +79 75 86 80 +83 49 84 55 +45 11 66 42 +60 16 77 16 +53 41 69 76 +13 12 76 44 +30 9 64 9 +42 43 77 64 +50 69 67 86 +29 85 78 86 +17 29 47 35 +75 54 78 60 +37 47 38 63 +7 69 20 72 +28 81 29 85 +73 84 81 85 +47 49 62 84 +32 6 58 47 +84 44 84 61 +32 55 47 66 +8 46 41 47 +51 78 86 84 +4 15 10 45 +35 41 60 61 +74 38 75 42 +83 77 84 84 +24 7 72 36 +77 42 77 85 +22 50 46 83 +83 44 85 81 +78 9 79 39 +22 57 47 82 +9 66 39 80 +7 16 8 23 +9 84 74 84 +17 79 26 80 +69 23 74 60 +80 8 81 22 +70 78 78 83 +86 26 86 33 +11 29 52 77 +24 73 80 81 +26 12 46 51 +86 3 86 9 +35 81 44 86 +15 23 54 42 +73 4 77 58 +1 82 77 85 +18 66 32 67 +26 13 75 59 +18 63 46 69 +39 44 64 66 +59 4 83 7 +71 33 82 74 +25 77 71 84 +83 49 84 63 +14 58 70 67 +62 77 86 82 +63 50 82 72 +52 81 73 81 +2 14 24 80 +20 79 72 82 +56 44 80 83 +53 50 72 58 +3 18 48 39 +83 22 85 30 +77 84 82 86 +36 15 51 67 +7 85 12 86 +80 38 83 43 +77 68 83 72 +2 13 73 72 +1 21 49 86 +85 72 86 80 +82 32 84 45 +78 11 79 56 +83 18 85 64 +24 27 56 63 +17 26 79 37 +85 21 85 33 +72 9 73 17 +55 63 60 66 +31 21 59 59 +62 67 66 82 +86 67 86 69 +49 54 62 65 +80 72 82 77 +18 24 77 83 +62 20 75 32 +75 36 85 84 +37 52 39 55 +26 20 49 63 +85 55 86 78 +44 84 59 85 +56 16 75 19 +80 4 80 56 +41 40 68 81 +18 73 28 78 +83 8 85 42 +25 65 52 78 +29 45 55 73 +8 83 74 84 +36 29 36 73 +49 43 49 73 +60 68 62 68 +34 63 48 65 +51 52 68 77 +79 80 85 81 +80 56 83 69 +63 63 73 68 +75 55 75 78 +3 27 46 62 +75 51 81 62 +27 17 64 78 +76 61 78 81 +42 77 53 84 +11 27 33 61 +41 9 69 39 +34 51 76 86 +10 0 64 29 +54 64 81 78 +2 46 63 80 +18 65 80 65 +19 43 76 46 +50 46 84 48 +68 8 78 63 +30 8 60 79 +12 69 41 84 +47 70 70 80 +72 63 81 64 +40 79 83 85 +45 31 66 75 +58 44 76 52 +5 6 38 62 +46 73 75 78 +81 62 86 83 +26 75 65 80 +13 21 32 42 +63 38 72 68 +85 20 85 33 +6 45 44 70 +72 51 82 67 +55 86 79 86 +71 47 85 61 +9 8 83 13 +29 1 38 75 +81 85 86 85 +63 83 70 83 +82 49 85 56 +72 77 78 82 +44 65 51 82 +58 73 86 82 +34 63 46 68 +19 0 66 84 +75 28 77 81 +60 10 83 55 +22 43 35 83 +30 33 72 43 +80 10 85 35 +20 81 44 85 +7 12 14 72 +67 29 79 42 +76 33 77 79 +60 11 61 68 +48 18 53 19 +10 18 28 43 +61 48 62 69 +64 81 73 86 +84 10 85 25 +78 46 85 58 +9 40 86 75 +8 69 33 84 +21 62 59 82 +44 57 79 61 +58 83 78 86 +54 3 61 65 +32 79 85 84 +30 81 63 83 +52 1 83 80 +35 32 46 65 +74 15 84 35 +54 36 58 39 +37 22 77 31 +15 79 69 84 +68 17 78 62 +0 24 0 77 +47 48 53 70 +28 49 39 63 +16 37 24 79 +42 52 68 56 +38 77 72 80 +14 50 49 69 +75 63 79 82 +58 8 71 61 +86 62 86 69 +69 12 78 36 +12 46 20 60 +55 69 86 69 +62 34 72 50 +26 52 59 60 +16 68 76 85 +80 86 84 86 +21 52 61 79 +18 33 22 69 +18 75 34 82 +9 32 78 45 +66 65 80 69 +37 22 75 65 +70 24 78 35 +55 3 60 80 +60 34 67 58 +42 51 83 52 +60 58 80 61 +70 64 78 75 +21 29 64 43 +76 81 86 85 +24 60 81 83 +65 36 83 79 +0 3 68 52 +70 49 78 85 +69 82 74 86 +73 15 85 54 +68 56 77 67 +22 39 63 65 +32 16 32 35 +13 6 72 51 +84 20 84 42 +11 45 54 62 +47 33 82 36 +14 22 56 85 +34 84 84 84 +51 8 73 9 +36 37 41 71 +19 30 26 82 +51 71 81 85 +25 7 66 37 +39 76 62 83 +50 14 55 86 +2 60 43 64 +74 20 77 23 +14 10 84 82 +43 66 77 70 +64 5 82 60 +25 31 41 76 +82 4 83 55 +32 1 70 73 +41 25 76 72 +72 58 82 66 +86 40 86 82 +63 47 69 84 +8 60 54 61 +63 20 75 42 +81 82 85 82 +5 15 76 57 +60 30 86 63 +10 28 80 28 +63 37 69 49 +46 34 65 42 +22 12 74 13 +84 55 85 55 +76 64 81 70 +62 32 68 42 +45 18 74 37 +80 47 84 84 +38 58 84 85 +32 8 61 19 +26 29 73 65 +25 56 40 68 +7 2 29 29 +47 7 73 8 +84 31 85 73 +48 68 75 84 +26 5 73 33 +48 75 68 80 +70 52 73 68 +68 68 79 73 +2 17 9 77 +21 56 71 67 +18 30 67 72 +23 50 73 52 +37 13 75 68 +20 65 69 69 +81 10 86 54 +36 27 75 54 +61 62 83 82 +68 63 82 84 +28 17 45 65 +6 55 58 70 +67 31 81 38 +69 69 78 81 +57 4 61 56 +28 53 47 72 +0 13 33 43 +82 74 86 84 +49 29 81 64 +49 2 54 27 +65 67 86 72 +7 82 59 85 +41 64 70 66 +48 45 60 61 +53 48 59 79 +58 24 82 76 +58 85 64 86 +44 25 82 30 +59 86 67 86 +71 69 82 74 +6 83 55 86 +50 53 70 75 +68 4 73 38 +68 32 75 73 +53 39 74 64 +46 66 57 79 +5 1 47 1 +24 8 31 83 +58 78 76 80 +42 49 81 54 +53 13 73 77 +26 80 73 80 +43 44 63 59 +6 12 53 70 +81 52 84 84 +76 35 85 40 +84 20 85 21 +72 77 83 82 +59 21 59 42 +66 73 78 73 +58 27 77 73 +15 27 56 32 +70 56 76 58 +81 28 82 73 +23 27 55 27 +59 10 67 73 +13 64 48 81 +19 71 42 81 +27 74 80 74 +85 76 86 86 +64 17 81 21 +19 52 33 61 +86 31 86 68 +86 51 86 54 +59 73 69 77 +80 26 84 50 +11 16 77 36 +19 22 39 71 +57 51 62 62 +67 61 85 85 +64 30 78 30 +79 68 86 83 +35 20 55 26 +79 15 83 45 +86 45 86 64 +9 52 22 62 +58 5 86 55 +66 25 71 59 +1 81 42 81 +6 76 47 81 +33 24 62 57 +15 66 19 66 +56 5 75 83 +32 43 83 54 +34 79 35 82 +49 2 63 13 +42 27 80 37 +86 46 86 60 +72 74 80 74 +75 12 78 29 +4 49 56 54 +85 55 86 57 +25 49 64 57 +35 7 62 29 +30 9 85 67 +30 15 39 70 +43 19 72 31 +81 46 86 70 +80 43 83 57 +0 76 18 83 +5 45 10 86 +33 2 75 42 +28 27 60 65 +30 1 39 40 +50 44 60 67 +51 79 62 84 +54 13 63 38 +11 8 32 49 +72 31 85 43 +66 76 83 80 +51 65 69 72 +34 57 45 64 +53 70 84 81 +73 28 86 49 +83 72 85 86 +72 27 84 33 +30 73 30 78 +85 39 86 79 +81 2 83 20 +38 75 76 86 +42 37 44 52 +19 0 59 17 +53 60 68 75 +68 58 74 58 +42 7 44 20 +2 56 53 79 +27 37 27 86 +78 10 78 21 +62 6 82 6 +17 72 70 86 +38 85 61 86 +44 1 44 68 +58 61 69 65 +7 66 14 86 +43 9 80 53 +5 62 70 84 +54 20 80 71 +55 79 62 83 +73 0 78 70 +9 64 39 81 +16 34 20 59 +13 82 44 84 +12 83 84 83 +8 31 65 56 +67 39 81 40 +58 2 81 66 +64 47 75 71 +39 77 47 86 +39 84 49 86 +9 34 27 38 +36 27 60 53 +1 74 60 74 +46 39 46 84 +83 11 85 69 +44 73 78 82 +29 32 69 62 +69 27 76 29 +61 63 72 80 +30 79 77 83 +84 14 85 84 +40 59 56 65 +24 53 46 69 +73 17 73 43 +4 12 9 45 +61 65 63 79 +72 34 86 54 +69 27 78 73 +63 25 71 57 +56 60 62 69 +60 20 68 66 +71 2 81 39 +31 25 83 48 +75 39 78 86 +80 49 82 61 +72 70 83 72 +70 61 78 62 +4 72 55 84 +58 50 67 51 +9 14 46 31 +23 26 86 27 +14 80 55 81 +26 49 34 57 +3 12 72 83 +58 85 78 85 +70 72 70 81 +86 58 86 69 +49 82 82 86 +28 17 41 61 +85 43 86 60 +64 35 77 83 +76 74 78 83 +20 67 23 72 +19 25 29 80 +46 84 58 86 +19 65 50 79 +19 85 56 85 +49 82 60 85 +21 26 63 47 +26 45 74 85 +53 46 75 80 +69 12 86 34 +4 28 51 51 +85 37 85 53 +43 41 86 67 +61 37 62 66 +33 45 70 67 +9 19 62 42 +72 71 75 86 +51 43 66 66 +43 66 84 85 +48 79 69 82 +77 28 86 52 +85 84 85 84 +12 65 16 73 +56 69 60 85 +32 54 67 57 +38 73 73 82 +27 2 40 70 +19 51 27 78 +32 47 63 58 +78 80 78 84 +36 69 71 85 +37 42 79 50 +51 29 85 54 +11 72 72 72 +77 57 79 86 +8 81 69 84 +1 81 60 85 +39 72 62 77 +30 84 70 86 +14 28 55 84 +32 73 68 80 +46 17 51 70 +30 83 66 83 +12 45 40 54 +73 66 84 83 +41 82 71 85 +70 76 80 82 +67 70 70 72 +69 68 84 83 +13 62 44 83 +5 0 82 18 +17 6 22 38 +25 4 31 46 +59 1 67 8 +54 33 62 50 +86 44 86 72 +37 77 82 83 +48 63 60 70 +51 24 58 24 +23 31 78 50 +36 75 57 77 +26 16 28 63 +64 86 76 86 +9 34 27 43 +6 83 12 85 +25 78 69 84 +85 11 86 69 +48 54 50 67 +7 71 74 83 +67 32 81 41 +4 9 58 26 +18 0 55 16 +85 28 85 70 +0 4 58 22 +76 48 84 74 +40 47 82 50 +31 79 59 85 +57 23 77 75 +72 36 83 69 +85 11 86 65 +0 1 82 80 +18 9 52 67 +1 32 63 68 +46 47 86 82 +67 18 82 50 +7 59 73 79 +3 75 19 77 +51 74 83 83 +41 44 81 77 +86 35 86 76 +63 19 64 82 +46 17 66 48 +69 22 81 83 +4 74 73 78 +0 65 46 71 +60 76 63 78 +81 8 86 33 +48 37 84 86 +41 68 65 82 +10 10 39 22 +61 33 79 75 +31 12 65 21 +0 11 36 13 +19 38 79 53 +4 64 12 83 +27 60 53 82 +55 16 83 73 +3 36 15 44 +57 56 73 61 +33 26 75 27 +41 49 48 83 +17 13 82 48 +38 26 66 49 +23 50 83 81 +32 1 71 51 +58 83 79 83 +83 50 85 71 +84 77 86 80 +1 86 36 86 +77 38 84 70 +71 84 73 86 +14 43 63 50 +65 22 67 23 +70 59 84 68 +11 11 51 50 +77 48 83 50 +72 70 80 84 +63 14 69 85 +43 68 69 80 +29 57 56 79 +0 62 86 62 +76 0 82 77 +47 32 72 34 +0 64 23 78 +75 17 81 28 +58 50 59 61 +79 45 85 57 +27 33 32 80 +48 54 62 82 +3 64 3 74 +35 8 75 59 +67 27 71 80 +57 65 59 78 +75 38 82 63 +4 61 20 77 +37 34 72 48 +34 54 42 54 +65 18 72 67 +14 83 24 83 +71 76 75 81 +19 72 41 80 +29 48 45 57 +37 0 40 59 +78 80 86 80 +80 40 82 80 +78 36 86 57 +62 81 82 84 +84 46 85 56 +45 24 56 86 +80 17 81 60 +63 73 64 78 +72 76 82 80 +74 3 85 72 +55 75 75 83 +17 46 81 58 +15 8 41 67 +78 1 83 54 +29 62 83 64 +44 6 71 63 +37 2 67 35 +86 27 86 46 +21 40 34 40 +20 29 79 59 +58 18 60 32 +1 3 50 26 +43 83 66 84 +71 57 82 72 +73 71 79 77 +33 30 83 50 +21 51 43 69 +0 32 1 44 +11 80 59 85 +25 14 77 64 +39 67 62 72 +22 31 36 48 +30 80 62 84 +79 86 84 86 +52 29 58 48 +16 5 59 24 +9 31 14 84 +62 52 63 71 +70 49 86 70 +82 57 86 85 +39 28 44 48 +27 73 51 79 +48 25 78 25 +57 28 59 67 +62 71 64 82 +11 61 50 79 +35 8 63 31 +71 43 80 58 +41 46 51 48 +45 58 62 76 +41 13 56 50 +39 42 72 55 +73 84 85 85 +18 49 68 74 +16 79 75 80 +4 24 15 34 +85 10 86 32 +85 22 86 78 +25 27 62 65 +13 26 84 69 +56 81 61 83 +13 5 85 34 +28 30 63 32 +25 11 76 49 +54 36 62 41 +86 46 86 77 +33 2 65 77 +17 84 71 86 +8 86 13 86 +61 74 76 84 +17 74 79 74 +66 29 83 30 +4 81 83 81 +32 78 73 78 +38 50 77 53 +76 43 85 73 +2 39 53 44 +40 0 67 60 +27 24 47 72 +70 79 73 81 +83 44 85 86 +12 10 59 53 +46 35 49 73 +58 82 86 85 +67 12 76 21 +45 35 51 86 +8 23 30 81 +32 84 61 86 +83 17 84 44 +42 67 47 83 +31 30 70 35 +75 41 79 61 +19 46 24 59 +70 27 75 76 +10 18 32 24 +73 38 74 43 +18 34 44 61 +69 20 81 27 +34 6 75 55 +32 35 86 59 +65 30 86 76 +42 38 56 64 +14 56 66 64 +43 85 64 85 +32 27 35 50 +29 79 59 84 +33 52 76 76 +45 70 73 78 +53 86 63 86 +80 3 82 74 +74 75 80 83 +70 3 84 4 +23 21 53 48 +12 7 27 67 +76 71 83 71 +74 69 81 82 +51 85 70 86 +50 84 56 85 +57 51 85 83 +7 14 86 57 +80 28 83 59 +76 59 77 60 +20 53 76 53 +71 1 71 73 +23 85 27 86 +47 84 69 84 +24 26 39 71 +45 2 75 41 +20 33 81 48 +30 70 86 73 +37 36 73 71 +59 41 68 45 +44 61 75 78 +31 45 76 78 +76 21 80 63 +66 29 80 37 +23 31 84 54 +42 3 45 6 +78 58 81 67 +75 29 79 48 +82 29 86 84 +67 75 68 86 +74 13 80 20 +35 86 55 86 +53 86 58 86 +45 86 57 86 +25 27 74 74 +59 13 85 66 +36 11 54 78 +4 61 56 66 +5 73 63 76 +71 55 86 70 +61 66 73 78 +39 4 78 15 +64 31 82 64 +55 57 81 79 +86 72 86 75 +0 71 53 85 +85 73 86 81 +24 55 58 60 +15 57 80 62 +17 35 32 48 +52 25 73 44 +6 79 63 80 +47 82 85 86 +51 68 74 71 +13 76 64 76 +76 44 76 74 +75 0 76 31 +71 59 82 77 +38 30 74 86 +18 17 53 23 +13 33 44 35 +58 81 69 83 +64 33 73 70 +81 76 81 84 +36 26 36 74 +18 22 25 54 +51 42 84 42 +35 11 66 56 +8 42 83 80 +49 2 61 41 +64 51 86 67 +20 40 64 77 +5 11 70 73 +75 26 83 49 +1 45 43 68 +53 43 81 73 +12 6 56 38 +72 25 83 54 +56 69 80 86 +40 62 76 62 +14 42 78 73 +63 6 68 79 +36 29 66 62 +76 73 82 86 +25 62 28 70 +16 3 62 16 +67 42 73 84 +14 52 20 59 +81 17 81 56 +54 81 58 81 +70 76 78 77 +47 12 52 72 +62 36 63 36 +48 1 60 36 +4 41 7 46 +0 38 27 71 +74 12 75 34 +18 59 83 76 +81 81 85 85 +61 39 84 56 +34 83 86 86 +5 62 20 86 +43 37 61 46 +52 5 60 20 +12 85 61 85 +33 19 45 51 +15 2 17 61 +32 57 61 62 +18 51 52 76 +83 70 85 79 +8 8 22 82 +2 3 35 29 +28 43 41 54 +73 52 79 61 +28 8 86 75 +6 0 24 0 +80 78 85 85 +7 59 33 79 +48 57 51 81 +76 31 85 49 +27 76 80 80 +16 48 39 76 +39 79 85 79 +71 23 81 80 +34 4 54 42 +66 14 75 30 +75 2 84 81 +82 69 84 75 +31 38 86 53 +40 28 45 78 +67 81 71 85 +15 21 23 35 +38 45 69 61 +45 73 70 75 +43 27 43 30 +50 19 72 49 +67 81 71 84 +57 20 58 55 +31 11 62 64 +20 45 43 73 +29 26 65 60 +64 70 71 73 +11 27 44 64 +81 29 82 35 +68 19 80 21 +49 62 55 66 +10 18 16 37 +21 43 86 78 +76 67 76 85 +24 14 29 37 +83 85 83 85 +29 46 62 63 +11 80 11 84 +12 55 34 84 +77 28 85 42 +86 28 86 72 +4 71 66 76 +52 72 54 82 +85 85 86 85 +5 27 26 43 +65 8 66 63 +26 84 48 86 +49 32 82 75 +70 76 83 84 +6 32 71 71 +53 16 53 60 +72 70 79 83 +69 31 69 82 +62 78 82 78 +86 66 86 70 +2 65 60 71 +14 77 14 78 +54 41 58 42 +9 60 83 61 +48 61 48 65 +12 61 76 75 +33 25 45 86 +71 77 80 81 +54 79 59 82 +64 37 69 43 +54 53 57 77 +6 77 76 86 +66 2 72 16 +75 19 79 62 +45 54 52 58 +44 81 85 85 +74 5 77 71 +35 36 80 71 +69 63 80 85 +29 68 41 81 +50 49 59 71 +53 71 62 84 +70 63 73 67 +27 59 83 71 +70 48 84 53 +79 15 83 67 +5 73 35 76 +22 15 49 47 +57 45 62 53 +17 48 46 63 +41 43 60 64 +31 76 45 83 +30 74 65 84 +11 71 13 85 +80 63 82 65 +61 78 63 78 +15 48 79 59 +55 23 84 51 +77 53 81 63 +82 73 86 75 +24 68 32 70 +74 47 79 69 +55 57 65 73 +7 25 34 36 +12 10 40 71 +37 46 83 74 +51 50 53 57 +18 22 81 34 +19 5 59 36 +1 25 50 79 +35 27 80 54 +24 38 53 52 +38 64 59 68 +24 61 36 66 +33 20 59 58 +74 20 82 56 +52 4 77 48 +8 47 11 51 +77 11 80 56 +38 76 77 79 +67 32 73 79 +42 81 55 83 +45 24 52 70 +61 62 74 82 +9 56 66 73 +8 65 61 78 +56 84 79 85 +15 18 57 63 +69 39 80 73 +63 66 68 70 +67 71 72 78 +47 32 82 40 +52 11 75 36 +74 51 86 74 +5 17 79 45 +53 14 85 66 +48 41 61 51 +55 49 80 51 +16 31 72 76 +77 26 85 63 +6 48 61 67 +67 36 70 81 +61 16 81 57 +66 21 71 51 +59 36 71 56 +3 7 46 9 +19 22 22 25 +74 62 76 64 +9 39 27 43 +59 5 80 40 +3 74 5 77 +41 6 69 76 +0 84 50 85 +46 19 47 61 +53 19 83 85 +3 86 61 86 +67 64 73 67 +33 70 63 70 +56 41 75 65 +70 29 86 41 +75 84 82 86 +2 25 42 67 +16 69 52 73 +51 45 66 74 +27 14 27 57 +37 2 37 53 +31 10 86 77 +26 48 54 78 +68 59 77 82 +70 62 78 85 +7 80 83 80 +16 73 71 78 +20 73 79 83 +27 45 33 67 +73 55 77 69 +33 53 40 69 +39 73 82 73 +41 3 59 50 +72 29 85 47 +83 22 84 76 +67 31 78 66 +55 73 60 83 +24 55 41 71 +86 16 86 19 +68 76 79 79 +34 16 54 56 +22 76 73 86 +54 42 67 85 +11 67 43 78 +53 63 84 70 +2 42 52 60 +21 36 41 62 +47 62 47 80 +73 51 75 58 +52 40 53 73 +65 7 81 38 +27 43 46 54 +45 51 80 78 +59 60 79 76 +38 79 48 82 +56 3 67 74 +79 38 81 53 +35 73 47 74 +33 28 47 35 +43 13 78 86 +81 0 86 54 +81 17 84 80 +10 52 50 82 +78 83 84 85 +80 84 82 84 +58 39 60 80 +70 49 72 60 +67 60 80 86 +24 56 37 64 +8 57 11 66 +23 56 47 66 +24 5 48 62 +57 23 82 55 +49 75 53 83 +10 85 43 85 +0 22 33 25 +63 21 76 74 +24 80 38 86 +11 77 50 79 +24 54 72 70 +70 68 81 71 +12 70 77 71 +25 74 71 81 +28 5 54 65 +65 4 71 33 +11 17 86 51 +3 86 66 86 +83 67 86 78 +79 42 81 68 +86 62 86 86 +43 13 48 51 +58 6 80 76 +85 59 85 68 +40 73 53 82 +54 32 68 59 +12 61 46 72 +86 60 86 86 +45 13 55 14 +4 37 73 78 +15 4 47 63 +75 17 79 34 +84 24 84 36 +28 76 86 83 +81 63 82 69 +27 20 35 20 +1 8 25 73 +71 47 72 51 +15 75 39 80 +36 73 49 78 +16 35 85 83 +65 69 73 84 +20 23 57 73 +51 84 61 86 +25 31 29 82 +76 45 79 63 +74 69 79 72 +39 43 58 47 +74 20 77 42 +31 77 82 84 +12 41 38 58 +11 83 22 85 +54 10 69 65 +39 11 85 82 +48 79 63 81 +4 82 70 82 +48 12 50 59 +17 54 64 83 +27 28 63 60 +32 53 57 74 +76 60 76 68 +53 53 57 56 +75 33 83 63 +5 84 30 85 +58 3 71 74 +7 26 22 30 +48 17 48 19 +26 70 35 85 +9 16 60 63 +30 52 69 76 +41 70 54 83 +81 77 85 78 +49 73 50 85 +64 81 80 84 +44 22 66 72 +69 77 80 78 +71 65 73 85 +67 76 68 82 +32 81 39 81 +49 3 65 37 +58 32 65 49 +5 31 73 70 +63 7 71 71 +15 52 48 62 +66 31 80 48 +77 26 80 26 +83 76 83 78 +8 78 19 82 +28 61 52 73 +9 42 60 70 +21 64 51 84 +56 39 57 56 +17 62 82 82 +74 74 85 80 +50 78 54 80 +43 62 78 74 +3 73 71 86 +46 30 66 58 +81 3 86 58 +84 10 85 35 +52 60 76 78 +31 51 34 55 +59 4 82 56 +52 44 80 84 +17 74 36 81 +35 32 81 80 +52 45 78 80 +33 24 56 83 +18 77 23 84 +56 61 70 85 +58 36 82 41 +7 36 65 63 +32 74 69 81 +37 73 85 79 +71 47 78 70 +1 14 57 40 +78 57 82 81 +70 41 77 79 +59 80 59 82 +40 25 55 42 +24 68 43 77 +32 4 66 59 +32 78 71 78 +69 59 80 70 +55 41 77 70 +61 80 84 80 +42 79 50 85 +42 14 60 38 +73 58 79 82 +85 37 85 70 +22 43 35 79 +78 77 78 85 +84 52 85 86 +43 23 51 83 +54 70 54 71 +64 69 64 82 +49 86 74 86 +64 21 70 30 +84 25 84 53 +29 54 84 64 +82 4 82 9 +42 63 45 67 +17 71 85 71 +82 33 86 75 +36 27 78 84 +65 36 69 86 +17 7 61 39 +84 9 84 16 +70 53 80 53 +12 30 59 61 +15 55 61 76 +9 50 17 63 +46 27 75 53 +22 63 64 73 +73 34 81 72 +12 4 27 15 +25 45 76 74 +70 52 71 78 +32 26 42 36 +86 38 86 82 +80 37 83 79 +61 30 77 65 +52 74 67 77 +69 52 79 70 +31 38 75 73 +61 6 63 29 +63 32 82 65 +83 73 86 78 +14 77 47 85 +2 24 33 64 +36 18 54 37 +84 26 85 31 +13 41 15 68 +74 5 83 42 +40 9 80 52 +42 34 83 65 +83 58 83 83 +3 73 23 86 +3 56 45 70 +0 15 79 59 +84 13 86 13 +45 35 54 84 +52 52 78 71 +85 14 85 72 +18 47 41 68 +37 26 64 29 +67 39 70 61 +26 58 30 72 +58 40 70 53 +39 83 54 83 +60 61 70 70 +85 54 85 63 +4 2 21 10 +60 14 78 17 +11 30 69 65 +77 85 80 86 +52 73 65 83 +52 6 71 18 +15 86 67 86 +19 5 82 82 +64 68 66 79 +48 20 63 67 +34 15 50 35 +21 67 83 67 +27 7 28 73 +67 12 82 32 +50 74 55 77 +28 17 53 38 +39 14 64 42 +79 80 80 81 +69 71 80 75 +63 41 82 73 +75 76 86 81 +53 33 79 72 +35 10 43 52 +62 42 79 67 +13 63 53 72 +13 72 66 83 +57 33 82 50 +50 23 67 35 +76 51 80 51 +55 66 72 85 +84 0 86 47 +36 41 69 55 +31 7 78 60 +78 57 85 82 +25 81 66 81 +45 69 59 83 +8 62 19 79 +17 4 74 31 +3 51 41 77 +75 22 75 36 +12 52 64 52 +84 47 86 47 +5 66 51 70 +66 67 77 84 +17 75 33 86 +75 60 83 75 +60 56 78 57 +66 46 79 84 +60 7 70 59 +27 30 53 45 +22 47 67 55 +71 65 77 83 +24 62 47 74 +4 3 10 29 +65 5 80 75 +84 82 86 82 +10 13 78 19 +7 10 15 17 +28 34 85 44 +82 52 85 65 +4 69 75 82 +56 9 69 64 +81 44 84 86 +79 9 84 69 +58 44 81 64 +58 78 71 83 +21 15 39 69 +55 67 60 78 +61 28 79 69 +69 6 69 26 +18 67 35 77 +41 39 61 62 +13 52 32 64 +79 55 82 73 +75 53 75 73 +19 6 75 71 +24 30 68 31 +69 16 74 24 +21 6 61 70 +36 76 74 86 +43 58 85 60 +77 24 80 65 +20 35 54 56 +77 64 81 85 +2 24 6 31 +10 71 66 73 +63 32 86 38 +63 0 86 52 +53 5 69 49 +45 19 53 20 +74 38 85 42 +32 11 58 35 +59 61 65 82 +12 66 47 71 +10 68 77 80 +43 21 78 85 +10 49 60 77 +50 58 67 62 +69 3 77 58 +19 65 55 83 +47 25 69 79 +1 24 58 57 +35 41 53 50 +64 11 65 79 +20 4 37 86 +58 81 78 83 +84 23 86 24 +75 10 79 45 +5 70 26 84 +41 30 47 65 +36 37 38 41 +85 53 85 78 +1 73 48 75 +55 35 84 41 +16 86 86 86 +22 80 32 84 +21 9 31 62 +40 67 52 82 +74 30 75 39 +20 35 46 77 +34 33 53 80 +38 79 39 79 +34 40 39 67 +72 53 82 84 +20 19 36 33 +2 69 26 74 +26 37 61 50 +36 0 71 60 +41 44 42 72 +84 34 86 36 +33 7 75 41 +50 64 55 69 +63 14 70 37 +69 33 83 59 +70 23 84 48 +79 32 84 70 +45 49 72 55 +21 19 76 83 +15 32 22 57 +32 26 61 73 +57 44 60 78 +80 84 83 85 +56 50 63 53 +59 73 66 81 +31 20 53 34 +42 76 46 83 +53 77 86 84 +46 59 62 72 +61 73 78 76 +31 5 48 52 +50 75 82 86 +13 22 54 58 +57 63 84 81 +13 55 23 83 +67 61 72 74 +23 11 34 58 +43 21 49 43 +58 86 73 86 +82 3 86 21 +57 43 79 81 +50 54 54 77 +69 12 85 21 +72 80 78 82 +60 19 71 77 +10 49 48 64 +13 14 13 42 +17 66 42 79 +58 51 60 63 +43 61 49 82 +49 50 62 56 +50 13 58 70 +29 62 70 75 diff --git a/2018/republic/10-12_d1/arta/tests/13_pattern.txt b/2018/republic/10-12_d1/arta/tests/13_pattern.txt new file mode 100644 index 0000000..be27944 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/13_pattern.txt @@ -0,0 +1 @@ +174 diff --git a/2018/republic/10-12_d1/arta/tests/14_input.txt b/2018/republic/10-12_d1/arta/tests/14_input.txt new file mode 100644 index 0000000..557247a --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/14_input.txt @@ -0,0 +1,4757 @@ +55 95 +4755 +26 74 34 85 +1 59 32 94 +33 63 33 65 +48 61 50 93 +20 69 40 76 +35 32 46 44 +12 4 38 18 +41 11 45 30 +20 70 31 83 +40 62 44 77 +46 28 50 60 +1 88 27 94 +10 69 53 78 +45 15 52 39 +40 94 44 94 +2 86 37 89 +34 30 52 82 +31 52 52 74 +10 4 16 61 +3 58 39 67 +7 2 41 49 +41 11 43 29 +43 79 48 92 +2 59 17 91 +8 30 29 91 +53 54 54 60 +16 23 54 36 +41 54 45 55 +22 85 54 92 +18 31 23 61 +20 88 34 92 +18 45 45 90 +51 44 53 52 +41 39 42 67 +26 19 43 36 +10 41 24 54 +3 32 51 34 +32 4 45 88 +44 43 47 51 +45 12 51 48 +25 28 28 32 +26 26 53 47 +29 4 48 84 +24 83 35 93 +47 56 52 93 +18 25 38 70 +12 59 41 92 +24 56 53 59 +34 30 46 77 +5 54 34 72 +35 88 50 92 +50 17 53 57 +23 46 40 79 +39 4 39 34 +26 40 52 70 +25 36 49 94 +2 94 50 94 +16 26 28 74 +9 88 41 94 +47 9 52 67 +11 88 14 89 +19 15 38 40 +3 87 10 88 +49 35 52 67 +10 53 31 75 +45 64 45 82 +38 74 47 82 +44 58 44 76 +21 64 31 87 +14 56 35 89 +40 83 53 88 +51 67 53 74 +29 32 49 89 +13 59 51 62 +36 46 50 61 +29 13 34 18 +43 32 46 35 +22 67 37 93 +18 16 34 47 +23 14 52 48 +21 33 26 48 +24 10 45 33 +31 68 40 80 +27 63 34 85 +13 60 46 76 +54 46 54 68 +53 32 54 59 +34 66 46 88 +7 61 42 67 +18 79 47 81 +24 3 42 91 +2 36 26 63 +20 83 32 92 +14 7 32 16 +21 13 28 57 +17 84 35 86 +52 15 54 75 +8 64 43 78 +16 6 29 58 +41 89 51 90 +19 53 47 91 +0 11 13 55 +27 91 41 94 +17 57 47 60 +1 72 22 91 +8 92 17 94 +6 14 20 57 +5 57 22 76 +39 3 41 7 +10 78 18 79 +7 18 40 47 +41 14 45 52 +48 22 54 31 +26 56 49 80 +45 73 49 94 +0 62 19 87 +42 33 46 40 +48 54 49 57 +49 17 51 49 +19 21 24 75 +21 21 34 50 +52 58 53 59 +8 14 34 52 +16 9 22 55 +45 67 47 88 +36 19 53 28 +24 8 39 43 +44 86 46 88 +35 17 51 86 +47 58 52 86 +21 37 54 58 +1 26 37 48 +5 17 11 61 +40 2 44 5 +51 6 54 9 +54 64 54 67 +48 70 48 85 +18 63 51 74 +52 57 53 57 +20 81 44 91 +2 52 24 86 +42 79 51 87 +25 19 53 58 +37 47 44 80 +3 15 45 56 +31 14 51 44 +38 70 54 76 +26 3 54 9 +22 70 25 94 +18 53 31 58 +43 27 48 80 +6 72 35 94 +54 74 54 94 +17 75 39 78 +21 65 46 90 +37 17 39 28 +30 51 33 94 +24 84 44 87 +17 27 54 94 +23 2 35 6 +1 68 12 72 +3 78 29 93 +43 27 53 36 +49 36 53 75 +46 42 47 88 +31 49 37 50 +51 87 52 89 +53 57 53 80 +45 11 46 49 +38 86 40 90 +25 18 29 66 +20 80 34 93 +40 8 49 19 +16 94 49 94 +35 67 43 79 +12 86 46 90 +6 2 9 23 +47 5 54 71 +2 5 25 59 +52 44 54 82 +37 82 40 86 +24 78 31 83 +13 31 19 71 +37 94 53 94 +7 28 51 74 +28 63 47 67 +13 29 36 55 +33 29 52 71 +29 18 33 39 +27 31 39 85 +2 22 42 79 +9 18 15 40 +25 72 25 94 +50 50 53 64 +2 36 16 87 +20 85 49 93 +17 35 46 85 +35 91 43 92 +54 76 54 88 +27 18 29 19 +16 7 19 42 +8 4 13 55 +27 63 33 93 +6 24 18 58 +40 45 53 87 +37 56 38 63 +40 21 54 71 +22 19 34 90 +12 89 45 89 +0 63 28 71 +51 27 51 72 +22 72 46 79 +42 65 53 73 +7 59 37 62 +43 75 46 78 +17 75 46 85 +29 82 42 90 +27 46 51 87 +29 42 54 45 +38 20 40 54 +7 80 27 86 +54 83 54 85 +28 48 48 66 +2 94 18 94 +40 25 48 25 +17 6 18 51 +42 11 42 33 +13 69 35 74 +37 1 41 90 +46 43 46 77 +51 35 51 68 +20 17 27 57 +25 48 54 49 +14 19 40 46 +6 34 36 45 +46 84 54 85 +14 84 53 84 +2 85 13 87 +44 29 53 40 +26 5 28 63 +19 83 45 85 +20 15 41 44 +36 84 54 91 +5 69 5 90 +4 15 17 20 +30 15 46 86 +3 12 31 19 +43 84 50 86 +33 44 42 87 +7 59 21 62 +31 57 36 57 +8 68 15 71 +7 46 42 84 +1 69 3 86 +11 50 43 61 +17 31 53 39 +54 32 54 48 +21 59 27 82 +13 8 22 87 +53 49 54 63 +8 39 53 52 +18 27 34 47 +48 12 52 33 +45 29 53 66 +46 50 46 92 +39 69 48 75 +35 83 52 91 +19 45 43 59 +14 22 31 69 +28 9 53 28 +51 45 54 61 +11 24 37 63 +13 76 36 79 +47 78 51 84 +47 47 51 93 +3 10 54 48 +19 40 36 51 +0 67 18 78 +31 85 44 90 +32 10 42 59 +5 7 16 52 +1 17 23 89 +23 34 23 55 +1 51 2 67 +49 7 52 17 +39 15 44 32 +30 85 31 85 +54 88 54 89 +12 92 27 93 +1 47 29 58 +31 66 43 82 +7 9 47 24 +48 44 50 61 +12 84 39 91 +36 55 49 67 +48 44 53 84 +45 3 48 17 +35 92 44 92 +50 67 53 76 +48 72 50 72 +50 58 50 78 +12 60 25 91 +53 15 54 62 +46 60 50 72 +28 79 43 81 +34 0 42 49 +2 45 49 53 +3 60 53 90 +43 34 51 45 +12 58 46 84 +52 66 53 80 +14 10 43 14 +11 75 14 78 +45 50 54 77 +53 14 54 67 +29 40 45 89 +53 69 53 84 +0 49 27 55 +16 10 29 36 +46 50 50 71 +44 10 48 12 +33 90 54 94 +31 44 49 70 +21 24 50 54 +23 35 38 78 +35 34 41 82 +42 22 47 75 +42 21 42 54 +34 12 47 67 +52 5 53 80 +0 33 0 83 +24 51 47 58 +22 89 42 93 +47 51 53 80 +54 90 54 94 +22 86 38 91 +50 89 52 91 +29 79 46 89 +15 45 31 64 +31 11 45 12 +17 8 49 70 +16 0 46 46 +28 82 44 82 +16 65 26 75 +4 49 36 69 +38 87 50 87 +25 52 29 60 +37 25 41 65 +54 32 54 52 +54 89 54 92 +45 56 48 74 +20 82 39 91 +28 84 39 92 +1 24 35 35 +31 93 47 93 +19 71 35 77 +21 88 43 90 +15 94 31 94 +48 56 53 92 +16 52 23 79 +10 76 38 93 +54 24 54 76 +53 31 53 60 +15 54 28 74 +26 29 35 39 +0 31 18 46 +15 31 38 55 +50 78 51 84 +22 8 43 77 +9 61 19 85 +11 88 30 88 +22 28 27 51 +7 60 12 63 +32 27 38 86 +16 0 40 87 +25 57 44 61 +38 35 53 49 +40 61 40 87 +54 0 54 74 +16 67 52 81 +36 90 37 93 +45 78 48 88 +49 94 52 94 +19 78 22 86 +27 17 54 49 +10 64 28 88 +33 69 39 83 +13 28 40 72 +39 32 40 39 +38 13 50 92 +14 22 24 29 +26 3 27 50 +14 8 29 8 +48 87 51 92 +50 20 51 82 +10 62 12 78 +16 67 47 82 +17 4 42 50 +50 77 52 86 +34 19 51 57 +21 37 41 65 +0 68 13 69 +6 39 49 42 +30 86 39 86 +11 87 38 87 +44 58 52 70 +9 63 24 69 +12 62 51 78 +1 31 24 74 +48 77 48 92 +23 13 27 17 +32 54 40 77 +10 64 13 66 +22 29 49 83 +6 65 9 72 +0 6 34 65 +41 19 49 63 +23 48 28 75 +31 22 32 67 +4 62 10 66 +10 54 44 90 +32 93 50 93 +41 56 46 56 +30 53 36 87 +24 90 50 93 +17 30 21 37 +49 40 52 64 +23 50 52 92 +47 22 50 37 +51 9 52 88 +41 86 49 86 +28 72 45 75 +33 72 49 85 +22 31 53 50 +4 34 4 39 +26 72 32 84 +39 4 41 78 +2 30 17 35 +23 36 47 70 +10 54 41 67 +14 39 17 80 +24 89 40 94 +1 38 51 53 +45 63 48 73 +30 39 50 60 +46 63 51 64 +32 30 46 70 +9 38 23 51 +23 71 45 94 +49 89 53 90 +39 5 50 9 +5 66 32 94 +9 56 40 89 +16 83 49 93 +37 16 45 73 +41 82 45 87 +16 48 50 52 +35 62 40 89 +54 60 54 73 +41 87 50 88 +30 68 42 86 +54 67 54 71 +47 19 47 71 +22 31 40 83 +13 27 34 63 +13 64 46 89 +9 32 24 75 +43 56 43 76 +34 92 40 93 +36 57 43 79 +7 53 34 67 +30 17 34 84 +30 57 47 78 +8 5 39 70 +36 28 41 31 +42 56 46 58 +49 19 50 71 +16 30 51 90 +19 37 43 74 +3 54 31 91 +28 91 29 94 +3 29 19 32 +51 53 53 78 +5 7 54 58 +36 36 43 60 +28 91 43 94 +5 59 29 84 +35 73 37 73 +23 61 27 94 +42 19 48 80 +2 17 4 65 +35 62 44 75 +6 34 19 69 +33 12 41 67 +29 17 41 93 +29 52 37 53 +14 90 45 94 +48 11 54 91 +26 76 47 84 +37 20 42 27 +6 65 13 80 +32 77 46 91 +8 76 41 79 +20 19 35 34 +36 90 48 92 +17 57 54 84 +22 31 51 68 +38 27 42 89 +11 8 12 80 +48 37 51 83 +39 31 49 82 +50 29 52 78 +9 75 29 79 +38 79 45 86 +14 39 27 47 +16 59 26 76 +21 10 54 72 +31 53 49 72 +3 29 20 75 +39 87 53 89 +18 40 31 73 +45 22 53 92 +30 56 30 84 +49 44 50 65 +40 3 47 8 +38 62 51 78 +33 27 46 55 +7 30 32 82 +3 75 12 89 +0 79 5 89 +2 37 33 40 +22 34 29 79 +51 28 52 88 +38 14 46 76 +43 56 52 59 +46 44 54 75 +54 45 54 73 +5 72 34 90 +31 14 48 42 +33 40 39 57 +37 10 52 91 +26 15 50 51 +30 69 34 83 +16 47 17 76 +21 33 32 55 +26 74 44 82 +44 9 50 74 +29 5 46 77 +52 64 52 85 +34 91 38 91 +13 76 40 93 +53 12 53 23 +25 90 47 93 +39 9 53 29 +22 55 32 61 +41 15 54 82 +32 83 33 84 +33 52 48 67 +10 9 14 18 +1 29 9 60 +21 74 34 82 +11 10 36 15 +40 51 42 86 +42 80 52 89 +38 79 39 87 +8 90 51 91 +4 50 33 66 +1 59 39 93 +15 22 26 36 +8 70 9 90 +53 4 53 39 +27 78 50 84 +13 29 45 70 +14 85 15 89 +49 8 50 73 +50 75 54 94 +17 59 18 92 +31 47 40 52 +45 12 46 86 +13 19 29 54 +7 5 38 76 +31 42 52 77 +19 65 33 78 +23 13 50 13 +29 11 51 92 +43 87 50 89 +24 40 24 62 +0 38 9 59 +23 79 37 89 +2 0 9 29 +18 5 20 24 +10 36 48 52 +11 91 17 92 +50 20 53 93 +3 71 30 73 +1 31 54 34 +51 13 51 86 +14 41 26 45 +37 90 38 94 +49 45 54 56 +52 12 52 12 +4 92 20 92 +38 70 38 75 +23 19 28 57 +5 55 17 59 +6 90 50 93 +4 86 28 89 +18 2 32 78 +52 46 54 59 +47 9 52 22 +11 90 14 94 +12 74 26 83 +4 34 36 62 +17 18 17 57 +43 37 53 58 +48 79 48 89 +9 4 31 83 +52 4 54 77 +52 75 52 89 +49 6 51 50 +22 92 35 93 +17 36 52 79 +18 75 50 94 +5 21 32 29 +50 35 51 42 +39 41 47 75 +36 57 45 63 +8 59 52 85 +46 44 50 84 +40 75 44 87 +5 50 45 69 +28 81 46 90 +39 24 45 40 +17 53 32 79 +3 64 21 86 +32 36 49 92 +0 92 37 94 +20 42 28 85 +50 65 50 81 +42 87 49 91 +12 14 30 56 +38 2 43 62 +0 11 29 82 +39 52 51 80 +31 53 47 78 +11 53 23 57 +5 40 6 53 +43 76 54 87 +36 59 48 59 +18 64 23 75 +43 10 48 63 +24 86 27 92 +53 15 53 42 +19 82 42 90 +2 78 17 93 +18 52 22 53 +26 93 47 94 +16 2 30 41 +45 50 48 67 +10 51 35 90 +31 59 34 93 +39 42 48 89 +22 64 26 79 +47 46 49 79 +54 56 54 83 +25 83 54 90 +36 25 48 78 +45 2 46 38 +18 56 23 76 +53 76 53 77 +15 90 42 93 +15 20 47 46 +19 53 53 63 +53 37 53 42 +27 22 35 52 +39 28 42 28 +11 67 50 77 +8 72 30 93 +18 34 22 58 +52 0 53 91 +48 91 49 91 +3 14 19 82 +24 89 28 93 +36 62 49 72 +34 57 41 58 +3 78 53 89 +17 48 53 70 +19 25 40 85 +47 86 51 92 +44 25 48 84 +22 10 22 91 +9 77 30 87 +17 71 50 94 +28 49 39 69 +25 94 43 94 +10 9 31 41 +16 18 37 36 +21 9 51 84 +1 16 22 23 +30 2 46 20 +3 32 52 61 +43 15 50 43 +38 25 46 54 +47 68 48 93 +26 60 54 89 +34 51 51 76 +19 60 21 83 +3 74 13 91 +27 78 37 85 +27 11 50 50 +6 67 13 86 +33 3 52 61 +18 4 51 59 +45 72 50 72 +20 77 41 77 +43 4 43 61 +42 26 43 89 +0 41 26 80 +36 48 47 81 +9 8 9 50 +1 92 20 92 +30 41 39 86 +38 79 39 86 +16 17 19 21 +45 76 48 91 +47 41 52 52 +19 91 50 91 +29 49 44 68 +15 0 17 19 +2 56 22 70 +43 85 44 92 +21 2 23 43 +9 31 54 75 +11 80 47 90 +42 13 47 74 +52 23 53 78 +21 52 21 86 +54 65 54 84 +2 93 15 94 +10 68 31 83 +48 77 50 87 +39 80 49 80 +54 85 54 94 +42 72 50 80 +11 86 23 89 +10 66 31 92 +15 13 52 30 +46 83 49 83 +20 12 47 48 +36 94 46 94 +51 29 51 45 +33 65 45 65 +20 41 40 57 +25 69 49 79 +30 22 54 41 +21 43 29 81 +27 77 49 92 +3 23 4 55 +6 10 6 35 +36 45 54 94 +47 14 47 22 +28 51 30 58 +26 83 46 85 +42 87 45 94 +44 49 53 79 +6 6 28 31 +2 94 29 94 +52 43 53 86 +24 18 34 94 +10 16 12 94 +13 75 34 90 +49 1 49 2 +3 82 19 83 +19 14 45 69 +43 55 48 79 +25 81 52 87 +36 56 49 67 +46 22 49 56 +44 56 47 67 +46 93 48 94 +33 14 54 31 +32 72 45 84 +54 40 54 84 +35 91 46 91 +35 11 51 82 +24 41 41 51 +14 69 21 91 +50 42 53 62 +4 73 15 82 +2 41 48 46 +46 87 52 93 +3 66 19 78 +44 58 48 75 +10 22 24 50 +50 58 54 70 +26 36 37 62 +53 92 53 92 +34 16 46 64 +6 40 17 82 +28 22 49 81 +35 66 41 84 +49 25 52 34 +23 52 33 63 +11 29 49 47 +26 76 42 84 +31 41 34 94 +31 18 38 90 +38 19 50 30 +38 94 38 94 +50 61 50 71 +1 56 17 62 +32 1 52 6 +24 41 27 85 +27 0 48 20 +6 27 40 82 +41 59 48 62 +1 6 33 84 +35 83 51 84 +37 4 48 58 +35 71 48 86 +41 74 50 85 +52 7 52 38 +33 87 41 91 +27 1 37 7 +28 32 44 83 +39 88 39 89 +53 72 54 94 +43 19 43 82 +44 61 49 89 +49 34 49 65 +29 88 38 93 +24 23 32 79 +38 89 43 93 +15 15 35 20 +14 66 16 91 +31 41 41 59 +4 78 46 83 +45 79 48 84 +24 22 54 46 +39 44 42 46 +26 27 26 58 +41 19 45 27 +54 67 54 68 +29 74 53 85 +45 4 50 28 +38 1 46 38 +33 53 51 58 +52 41 53 47 +26 37 29 68 +20 25 32 72 +5 44 51 80 +33 29 52 35 +38 70 38 86 +36 55 40 88 +38 63 45 63 +13 21 42 42 +41 36 52 54 +14 87 15 91 +9 64 51 69 +37 12 50 41 +28 55 46 83 +45 93 48 94 +49 1 53 41 +52 28 53 83 +13 5 42 53 +36 14 37 31 +0 78 2 91 +30 3 30 38 +1 76 37 91 +49 74 53 92 +37 20 51 22 +17 43 35 72 +53 37 53 86 +2 17 23 85 +1 37 28 94 +39 9 54 85 +53 81 53 88 +6 92 26 94 +5 62 30 75 +45 17 50 62 +22 6 35 94 +18 90 19 93 +20 68 22 88 +3 75 13 76 +48 71 54 71 +29 14 54 82 +41 58 43 77 +15 93 28 93 +48 68 52 76 +7 43 43 77 +6 2 8 38 +11 92 37 94 +47 71 52 75 +28 22 29 50 +28 23 44 45 +48 12 49 21 +45 94 49 94 +52 47 54 54 +42 46 47 65 +35 1 54 25 +5 82 11 88 +14 29 18 70 +49 74 50 81 +52 94 54 94 +6 32 9 87 +50 81 53 92 +10 20 25 78 +49 65 52 82 +2 88 18 88 +48 23 50 91 +35 8 45 24 +3 51 3 76 +30 6 40 93 +36 6 43 26 +31 15 45 25 +42 89 43 92 +27 83 53 91 +15 12 32 54 +16 30 48 79 +24 18 53 94 +36 49 43 65 +3 79 43 92 +6 20 41 77 +20 45 39 57 +42 25 46 37 +50 30 54 81 +14 7 34 84 +24 44 34 78 +44 77 45 84 +15 45 50 76 +32 13 44 89 +22 16 48 24 +24 93 43 93 +26 88 35 93 +23 28 32 59 +11 68 27 72 +7 9 18 51 +39 47 52 54 +6 56 29 82 +18 29 18 40 +43 34 45 57 +49 9 49 42 +43 41 45 67 +11 38 35 47 +48 39 53 47 +27 89 54 92 +42 35 49 83 +11 60 53 89 +14 88 22 90 +23 61 54 88 +51 22 51 60 +8 41 31 58 +27 58 45 67 +19 22 51 64 +13 72 27 92 +21 41 46 74 +48 9 54 35 +18 62 21 87 +21 7 21 80 +35 20 54 71 +22 44 53 91 +29 26 44 55 +19 25 40 79 +28 8 44 59 +15 11 29 26 +1 64 50 65 +17 25 41 86 +29 50 40 66 +10 74 47 93 +19 29 37 56 +17 19 30 40 +14 65 49 81 +21 5 45 14 +16 68 48 72 +8 20 45 37 +28 46 43 64 +43 15 53 25 +51 81 53 82 +14 73 35 85 +10 51 33 56 +32 15 38 26 +26 3 43 49 +53 94 54 94 +13 62 46 91 +7 11 46 72 +52 2 53 5 +20 16 36 81 +17 49 26 66 +40 27 44 86 +39 35 53 82 +0 64 51 79 +29 9 35 68 +6 8 38 51 +48 32 53 35 +18 43 19 59 +30 63 46 87 +30 31 30 83 +25 93 35 94 +34 32 36 49 +40 8 42 33 +0 33 31 87 +40 53 40 88 +22 43 41 79 +14 67 17 87 +13 13 16 30 +23 38 28 87 +44 79 46 83 +12 45 26 61 +13 26 52 42 +6 8 43 75 +37 3 52 9 +38 51 45 59 +12 39 19 69 +53 49 54 52 +26 92 30 94 +50 51 54 65 +42 1 46 22 +53 43 54 52 +41 9 43 28 +50 52 51 73 +38 69 41 79 +9 78 28 88 +51 42 53 52 +6 74 33 92 +32 53 41 84 +23 74 25 74 +32 14 32 67 +41 59 44 77 +11 60 51 83 +50 5 54 34 +13 90 26 93 +2 19 21 68 +1 82 4 82 +54 57 54 87 +51 76 51 94 +0 3 42 50 +48 53 52 89 +53 38 53 80 +2 84 2 90 +7 29 36 62 +10 83 44 91 +41 79 51 81 +29 62 40 94 +42 21 51 85 +31 75 47 86 +45 48 52 75 +29 76 36 77 +54 77 54 88 +30 30 42 31 +16 64 25 77 +14 85 35 88 +37 30 43 53 +41 58 53 58 +32 25 48 46 +26 93 32 93 +33 7 33 23 +29 87 45 90 +16 89 32 92 +0 86 28 87 +18 75 36 83 +37 8 45 32 +46 21 54 83 +36 57 51 86 +14 58 50 89 +53 27 54 57 +13 60 18 69 +40 91 40 91 +4 37 46 44 +37 29 46 57 +4 8 12 85 +51 90 52 94 +27 55 44 63 +34 81 54 93 +20 36 35 59 +37 94 41 94 +48 45 49 69 +32 24 36 29 +53 12 54 58 +54 89 54 93 +51 33 54 80 +25 8 43 70 +17 8 22 88 +11 14 53 43 +20 54 26 83 +48 72 53 77 +7 86 25 86 +28 60 40 91 +3 75 29 88 +9 21 53 23 +21 3 34 28 +46 30 51 82 +7 77 32 85 +37 62 45 72 +46 59 49 85 +27 83 53 89 +45 13 48 68 +13 55 48 65 +34 0 34 44 +48 19 50 41 +27 65 29 73 +35 45 44 76 +46 54 51 55 +18 37 45 57 +16 18 52 55 +39 24 46 50 +37 5 41 76 +10 66 31 90 +31 3 39 75 +1 82 16 85 +27 62 36 88 +20 89 46 89 +28 79 31 89 +25 28 48 57 +37 85 43 92 +34 34 51 79 +14 11 27 94 +12 34 15 94 +7 9 49 57 +16 5 42 50 +26 63 28 70 +23 47 41 78 +35 31 46 42 +54 71 54 86 +8 56 53 77 +23 29 33 58 +44 58 46 64 +4 19 13 91 +31 54 45 85 +31 89 36 90 +2 79 20 81 +23 26 31 87 +39 61 47 69 +51 5 54 42 +22 18 40 22 +17 80 52 90 +31 74 46 76 +35 18 54 27 +44 13 48 19 +7 26 23 79 +17 60 48 94 +27 62 31 67 +43 34 47 81 +3 24 27 68 +43 6 49 92 +41 85 54 85 +54 30 54 89 +21 11 37 41 +7 60 30 76 +54 36 54 52 +2 3 3 44 +39 63 42 63 +48 41 49 90 +28 76 28 87 +33 16 42 75 +26 79 53 89 +34 80 50 82 +47 15 54 82 +47 35 51 52 +13 15 14 82 +39 48 50 76 +21 17 26 91 +34 45 38 46 +26 50 36 59 +41 88 51 93 +28 94 29 94 +49 23 51 34 +9 78 45 92 +18 17 29 55 +20 46 52 63 +6 72 11 94 +20 22 33 44 +51 15 54 67 +29 55 46 56 +27 56 52 71 +44 49 54 79 +40 73 54 82 +14 8 35 73 +37 71 37 82 +32 72 37 74 +11 86 22 94 +39 75 45 80 +37 94 38 94 +1 6 14 89 +14 86 33 86 +20 1 34 75 +41 64 52 73 +35 2 53 62 +31 24 48 57 +8 18 12 42 +7 31 28 56 +14 24 36 42 +3 86 36 89 +23 39 34 60 +27 19 33 75 +5 50 45 57 +22 39 30 45 +19 33 23 47 +12 86 19 94 +41 72 41 86 +45 17 51 90 +4 38 26 60 +14 26 36 40 +22 7 52 94 +22 19 23 44 +29 67 53 74 +42 51 49 83 +13 10 21 24 +46 67 48 70 +22 66 53 88 +19 32 36 81 +26 2 39 80 +41 72 49 87 +11 60 19 62 +27 23 54 41 +49 64 53 92 +49 85 50 91 +11 25 37 26 +34 27 44 36 +28 76 32 79 +11 65 23 80 +16 40 36 60 +17 59 33 72 +1 94 43 94 +3 41 30 82 +47 66 51 89 +43 27 54 62 +7 83 17 89 +38 81 48 88 +34 21 52 26 +16 52 17 72 +7 23 32 86 +47 43 50 91 +28 72 36 84 +21 1 24 52 +48 29 53 83 +11 68 36 84 +26 6 42 35 +41 40 54 57 +24 55 34 55 +48 71 48 87 +39 78 42 83 +48 39 49 87 +51 25 54 48 +17 88 45 90 +43 90 53 93 +45 6 54 55 +44 14 47 35 +43 6 53 16 +52 49 54 58 +52 11 53 62 +42 79 46 86 +8 78 39 84 +24 79 54 93 +53 48 54 80 +44 83 51 85 +16 78 54 93 +47 94 52 94 +10 88 31 92 +48 86 53 86 +4 93 38 94 +16 42 25 75 +25 34 50 88 +21 65 29 69 +35 85 47 86 +4 57 41 92 +34 10 53 65 +4 40 20 88 +51 28 53 66 +28 52 43 52 +29 62 37 70 +38 44 38 91 +37 45 47 87 +32 49 53 52 +11 25 44 38 +1 94 28 94 +33 22 48 87 +5 66 36 84 +33 69 44 71 +34 79 35 88 +51 13 52 58 +33 69 40 83 +3 55 16 69 +48 46 53 54 +3 50 17 57 +44 44 45 49 +43 32 52 35 +24 39 44 88 +12 91 23 91 +11 32 35 32 +2 45 20 87 +21 28 38 53 +19 50 51 78 +29 20 41 89 +47 64 52 76 +43 71 50 73 +23 21 46 24 +28 4 35 53 +18 79 18 85 +5 90 41 90 +0 71 4 78 +22 32 36 57 +14 34 46 62 +48 30 51 64 +48 82 52 83 +12 72 21 84 +23 7 28 41 +3 81 42 93 +9 30 31 39 +46 1 47 68 +51 41 51 47 +24 31 54 67 +21 9 45 11 +29 10 33 63 +47 78 54 93 +40 30 54 73 +28 53 48 70 +6 34 12 41 +49 24 51 88 +14 17 21 82 +35 49 52 69 +15 67 18 67 +26 12 45 92 +42 44 44 55 +30 29 35 79 +30 45 32 71 +8 68 20 82 +12 82 34 88 +0 18 31 77 +12 93 22 94 +52 58 54 89 +53 43 54 51 +13 91 52 91 +30 33 40 36 +35 84 49 92 +1 56 15 82 +4 54 45 73 +18 47 20 57 +38 13 41 93 +35 27 50 60 +15 0 46 18 +25 67 53 90 +53 50 54 75 +16 19 41 59 +20 42 42 87 +16 43 49 50 +13 10 30 62 +20 80 23 94 +41 53 45 90 +29 47 36 53 +22 62 32 83 +5 58 35 83 +43 20 54 89 +1 12 13 62 +34 15 47 31 +47 93 51 94 +48 11 51 80 +4 21 42 64 +38 63 54 71 +41 59 43 65 +22 49 26 54 +52 50 52 69 +3 55 27 80 +31 42 35 94 +49 49 50 65 +50 58 54 60 +54 48 54 63 +24 80 50 92 +17 30 53 41 +6 81 6 88 +6 74 39 91 +16 76 45 90 +51 3 52 62 +24 92 35 92 +45 28 49 62 +28 84 30 93 +36 20 42 92 +26 86 26 93 +44 74 50 81 +6 62 52 85 +0 41 54 56 +3 85 28 90 +26 71 52 75 +0 27 26 59 +37 1 52 79 +24 56 47 82 +9 87 40 91 +52 35 53 77 +8 61 43 94 +16 45 18 46 +22 91 54 94 +12 41 24 42 +48 3 53 85 +48 62 53 84 +31 94 44 94 +53 33 54 84 +40 29 52 81 +25 8 28 74 +25 39 51 90 +54 57 54 68 +0 89 28 94 +29 77 44 80 +34 14 50 72 +49 84 52 87 +19 26 19 47 +23 73 23 78 +21 87 31 91 +38 90 51 90 +29 87 37 91 +4 46 37 58 +0 3 53 37 +32 8 49 59 +3 79 37 80 +3 51 50 75 +0 78 39 92 +5 67 38 82 +18 41 36 63 +26 19 27 23 +25 50 37 92 +49 12 50 26 +45 72 50 77 +21 28 34 74 +22 75 40 93 +8 77 9 88 +22 43 36 86 +22 39 48 84 +22 12 38 93 +37 78 42 90 +12 6 54 23 +8 86 34 86 +51 85 52 94 +52 26 53 44 +54 22 54 92 +0 30 46 63 +29 61 50 94 +26 12 46 28 +20 38 26 51 +9 7 15 64 +45 64 54 88 +8 80 52 85 +54 49 54 83 +44 10 48 77 +10 15 25 94 +3 84 24 92 +53 60 53 63 +17 51 40 86 +18 5 51 26 +35 36 52 44 +54 41 54 41 +29 88 36 93 +22 39 40 81 +53 64 54 69 +38 12 52 78 +17 60 32 77 +2 33 3 66 +21 39 47 54 +1 50 19 56 +3 71 15 72 +48 32 50 56 +6 21 46 87 +9 57 44 94 +21 3 43 91 +42 21 52 42 +53 51 53 64 +13 81 34 91 +13 47 30 82 +31 39 37 88 +50 3 54 83 +10 21 37 27 +45 0 54 32 +1 87 19 92 +53 20 53 70 +2 57 4 74 +48 83 54 88 +25 47 54 75 +35 37 46 56 +9 49 53 53 +54 75 54 90 +8 76 51 90 +26 77 44 87 +24 64 33 73 +30 77 51 81 +7 66 10 77 +15 65 30 84 +43 52 54 93 +2 58 15 76 +43 0 47 19 +43 57 50 62 +53 14 54 86 +1 68 18 88 +50 79 52 90 +43 19 46 80 +33 55 50 89 +50 47 53 85 +25 70 32 92 +31 69 50 91 +14 60 51 92 +24 23 42 45 +45 74 50 92 +39 3 39 39 +47 39 47 54 +20 42 47 67 +17 73 28 83 +10 39 38 61 +50 12 50 44 +24 78 43 80 +54 16 54 22 +32 18 47 93 +13 26 53 40 +1 40 32 87 +44 33 49 88 +39 48 47 78 +39 93 46 94 +17 71 41 72 +42 69 51 76 +24 61 35 91 +6 74 43 92 +40 13 42 73 +11 88 16 94 +47 89 49 91 +2 91 49 94 +38 34 50 72 +23 75 47 75 +42 17 51 48 +40 77 44 92 +7 27 40 81 +29 54 53 85 +19 56 23 68 +20 35 44 40 +31 65 45 67 +25 4 27 35 +29 67 37 80 +20 79 26 87 +43 49 45 76 +35 62 50 90 +50 1 52 89 +24 65 33 80 +27 82 43 92 +24 49 44 79 +31 76 37 82 +35 70 44 76 +35 36 38 94 +11 83 12 92 +22 4 42 59 +14 6 51 58 +23 87 23 91 +24 74 33 88 +53 88 53 90 +7 52 13 56 +33 22 46 79 +12 47 29 49 +13 1 48 9 +27 75 28 87 +45 61 46 66 +42 61 46 65 +50 72 50 81 +20 10 32 94 +44 41 51 53 +8 13 32 41 +46 37 52 93 +15 75 36 75 +45 73 50 80 +43 36 53 49 +46 53 50 74 +54 22 54 38 +24 18 38 25 +49 66 54 93 +10 58 37 83 +3 22 29 47 +10 16 47 75 +21 79 52 82 +34 60 44 68 +8 52 25 54 +43 61 44 89 +14 63 21 83 +33 81 42 88 +48 71 50 92 +22 22 32 90 +46 5 50 64 +51 24 52 36 +23 70 37 74 +33 91 35 94 +39 85 53 89 +12 17 35 71 +17 34 44 52 +32 58 38 76 +33 49 51 56 +16 41 46 82 +54 12 54 48 +4 85 37 92 +53 53 53 76 +49 76 51 84 +53 62 54 79 +7 59 52 60 +17 15 37 67 +16 16 18 88 +27 41 27 75 +17 41 37 60 +22 23 52 89 +49 60 52 86 +18 27 39 51 +27 55 34 87 +15 36 27 66 +16 40 47 65 +45 51 54 76 +34 31 34 38 +28 7 45 75 +11 49 25 85 +32 66 45 80 +35 69 51 86 +29 78 33 85 +52 92 54 92 +24 1 44 36 +38 25 44 67 +45 37 47 48 +36 17 42 25 +17 46 41 59 +52 22 53 93 +28 72 33 85 +54 60 54 83 +19 72 53 85 +8 77 24 78 +7 12 15 85 +20 29 20 41 +2 65 25 66 +38 7 43 10 +31 53 31 76 +11 86 36 91 +6 0 30 83 +9 34 9 56 +6 54 40 86 +16 62 29 93 +41 82 47 92 +34 18 43 65 +39 33 39 84 +10 44 53 93 +5 47 29 49 +20 45 32 93 +38 20 52 92 +38 44 53 63 +34 75 38 94 +50 42 52 77 +11 41 39 59 +31 64 33 65 +54 23 54 66 +3 27 5 85 +49 33 51 75 +3 33 28 90 +9 80 9 82 +5 59 19 81 +10 55 15 77 +15 89 45 91 +39 70 54 70 +42 6 50 34 +43 24 43 76 +42 41 44 60 +10 72 13 88 +26 28 27 85 +27 89 45 94 +21 45 43 73 +49 86 50 87 +20 89 43 94 +6 83 12 86 +14 9 17 22 +5 48 19 51 +27 6 50 66 +32 10 46 81 +34 37 51 37 +42 10 46 29 +40 87 48 93 +38 48 47 94 +50 33 54 34 +43 73 50 78 +33 40 35 73 +11 8 34 42 +34 82 40 90 +4 4 5 60 +36 85 48 90 +34 83 53 84 +45 19 53 30 +25 28 33 83 +11 64 27 65 +54 22 54 73 +44 81 50 84 +49 76 52 89 +18 72 54 73 +13 94 25 94 +41 63 48 69 +52 53 52 65 +24 18 36 51 +10 41 26 76 +20 16 42 30 +45 84 50 93 +49 20 50 47 +19 42 25 78 +5 53 48 62 +20 15 31 85 +6 14 7 23 +44 80 49 83 +35 69 51 86 +35 22 42 67 +39 78 52 81 +4 16 45 35 +41 57 54 70 +28 36 40 63 +36 52 46 74 +12 5 43 71 +10 10 25 79 +9 27 34 85 +36 22 48 72 +19 32 40 47 +39 37 51 42 +12 57 44 77 +44 48 48 71 +31 7 46 38 +4 91 29 92 +5 65 33 71 +32 84 52 84 +11 72 21 74 +31 50 39 54 +33 83 40 88 +0 84 1 86 +32 42 34 71 +31 68 39 68 +52 58 52 79 +52 14 52 55 +8 57 53 74 +46 51 47 58 +3 53 4 58 +34 48 43 83 +38 79 51 91 +7 84 49 91 +21 60 48 90 +50 16 53 27 +29 36 39 62 +26 69 35 71 +23 32 54 66 +4 3 24 86 +33 58 53 86 +30 74 48 78 +46 67 50 70 +3 30 3 30 +54 0 54 16 +19 27 40 34 +48 45 48 72 +40 8 47 29 +16 29 26 46 +52 58 54 77 +19 19 51 19 +51 45 54 45 +45 79 45 87 +17 55 50 55 +19 44 43 77 +48 31 50 64 +43 11 43 43 +40 52 43 56 +26 83 38 87 +13 75 50 89 +22 53 31 82 +21 51 36 75 +40 35 47 80 +1 9 39 43 +54 32 54 60 +20 50 38 66 +31 2 54 64 +46 0 46 37 +10 48 36 88 +8 22 38 89 +52 44 53 55 +1 65 25 75 +26 90 49 94 +18 56 26 56 +31 4 38 21 +44 93 49 93 +25 5 47 28 +44 49 49 79 +13 63 42 91 +16 43 37 85 +5 20 26 47 +27 50 40 73 +38 9 45 50 +6 47 13 86 +10 32 17 77 +46 26 53 65 +1 12 29 37 +14 54 14 60 +52 74 54 82 +13 9 40 81 +25 47 47 79 +53 10 53 86 +3 56 47 81 +54 12 54 35 +45 38 46 77 +25 90 51 91 +0 69 17 79 +10 2 35 8 +25 15 26 28 +51 27 53 62 +9 69 28 69 +48 66 50 80 +6 54 35 91 +25 66 42 80 +29 48 34 69 +47 80 54 83 +6 9 18 27 +16 47 34 86 +4 82 11 90 +20 50 26 88 +18 94 23 94 +6 62 52 74 +15 4 27 84 +31 8 53 13 +18 15 20 19 +29 5 51 84 +25 58 29 93 +24 9 37 19 +33 49 54 58 +6 49 50 66 +52 69 52 77 +46 1 51 60 +49 21 51 49 +30 12 38 91 +24 4 51 79 +16 65 52 87 +21 44 43 89 +51 12 54 21 +48 11 51 66 +50 0 50 53 +46 72 48 74 +6 94 48 94 +21 38 27 90 +27 59 50 88 +39 30 40 64 +18 91 23 93 +18 38 47 70 +10 24 10 68 +40 66 44 78 +15 63 46 90 +42 65 53 78 +49 85 54 93 +9 23 22 35 +51 55 54 85 +30 8 31 75 +37 74 46 75 +4 13 44 64 +52 6 52 40 +28 2 49 4 +10 61 28 62 +32 58 39 65 +47 32 48 40 +52 13 53 49 +53 69 54 85 +43 80 44 94 +26 94 54 94 +12 4 29 70 +3 88 4 91 +11 28 16 84 +32 55 44 75 +28 80 51 92 +20 86 20 88 +21 76 43 77 +21 30 35 90 +10 70 43 71 +15 42 49 50 +11 49 27 82 +4 55 5 77 +31 86 45 89 +21 16 51 59 +12 47 46 53 +39 59 44 71 +36 63 48 69 +25 6 47 74 +12 10 18 39 +51 33 53 81 +2 58 25 88 +37 25 39 72 +10 73 22 86 +40 53 47 88 +39 65 39 80 +52 45 52 91 +40 94 40 94 +54 1 54 19 +14 36 20 52 +5 79 43 83 +22 3 36 43 +10 55 32 81 +0 82 42 90 +36 20 49 24 +28 60 42 92 +35 42 44 53 +44 19 47 90 +36 31 40 60 +25 75 38 83 +50 6 54 56 +13 6 36 61 +6 70 28 71 +9 93 32 93 +23 45 45 70 +20 35 45 35 +28 25 33 53 +2 29 12 45 +12 30 23 68 +48 20 48 40 +19 56 22 79 +2 35 46 64 +16 89 18 91 +6 78 23 87 +23 92 52 93 +47 89 49 93 +23 54 49 78 +42 83 42 83 +54 92 54 94 +4 43 16 73 +7 42 35 64 +21 60 24 80 +17 70 28 78 +28 57 35 70 +45 89 48 92 +25 88 48 90 +35 10 48 17 +17 27 45 62 +44 56 47 82 +7 36 7 90 +2 64 36 88 +40 64 48 70 +35 34 41 77 +51 49 54 59 +15 8 18 19 +3 43 19 58 +30 71 37 77 +47 6 51 17 +25 84 32 89 +42 81 53 94 +17 77 47 94 +18 49 32 93 +11 94 29 94 +5 81 22 81 +42 42 51 63 +23 7 26 15 +11 38 12 72 +38 22 47 68 +35 15 39 73 +54 89 54 94 +9 65 24 79 +36 72 50 74 +45 76 48 79 +4 18 33 42 +15 3 33 50 +21 35 32 77 +8 10 26 88 +38 27 54 46 +45 6 52 80 +36 94 47 94 +16 8 49 43 +21 62 28 74 +22 52 26 58 +42 13 53 36 +43 23 51 61 +20 50 39 69 +33 87 54 94 +49 62 54 71 +34 35 35 80 +9 11 35 57 +39 64 52 85 +47 92 51 94 +23 12 35 56 +8 83 46 83 +41 66 51 76 +10 22 29 61 +41 73 44 86 +18 52 38 74 +5 6 46 23 +9 51 50 59 +7 27 14 42 +5 14 28 21 +43 21 50 30 +37 74 50 88 +38 94 48 94 +46 36 50 48 +25 14 44 41 +0 5 22 42 +20 5 52 76 +48 41 50 89 +17 69 27 78 +42 52 51 85 +2 91 50 94 +38 41 53 67 +43 41 44 54 +46 92 49 92 +15 58 35 67 +13 26 39 54 +11 70 15 90 +26 38 35 94 +35 43 52 84 +11 90 12 93 +50 15 51 53 +18 36 50 38 +15 23 53 41 +25 51 48 53 +22 35 23 56 +30 35 52 44 +54 91 54 91 +41 50 54 72 +9 51 42 82 +14 56 27 75 +16 93 39 93 +34 66 44 73 +38 94 45 94 +10 16 46 49 +13 6 44 73 +42 33 42 89 +40 70 44 89 +35 38 53 51 +22 78 44 91 +48 40 54 78 +8 50 46 91 +35 68 52 75 +26 23 30 30 +9 75 35 94 +16 80 48 81 +9 88 11 90 +18 63 44 90 +6 92 23 94 +19 5 43 55 +2 34 2 85 +18 78 50 94 +5 65 10 78 +7 71 53 79 +11 85 11 85 +15 20 16 78 +10 76 53 89 +25 47 47 59 +0 2 29 77 +48 5 51 32 +45 34 54 34 +15 23 43 58 +0 12 46 20 +36 29 41 48 +27 83 38 84 +53 49 54 84 +9 72 33 75 +48 4 53 69 +13 40 14 69 +9 22 41 90 +47 22 52 44 +37 43 50 45 +4 65 39 92 +23 3 29 67 +6 21 16 37 +17 88 36 93 +41 6 52 72 +10 28 33 54 +30 76 40 79 +37 19 38 55 +37 92 38 93 +48 49 52 56 +45 39 51 70 +16 62 38 69 +53 64 53 94 +47 92 51 92 +27 17 35 72 +9 5 13 84 +35 80 49 84 +53 42 54 76 +53 79 53 82 +9 2 39 88 +35 23 50 33 +40 81 44 91 +12 3 39 37 +34 21 50 76 +23 2 51 40 +50 41 50 89 +49 19 54 30 +31 93 45 93 +19 92 30 92 +47 13 53 65 +17 18 32 68 +52 87 54 87 +20 38 34 47 +24 66 31 72 +22 83 48 93 +30 3 30 9 +18 56 45 81 +7 33 23 57 +0 33 9 71 +38 40 46 87 +46 43 46 81 +6 46 40 82 +34 28 53 37 +17 82 26 85 +40 18 43 87 +30 44 33 63 +0 10 33 63 +7 65 32 80 +29 3 43 67 +2 89 18 93 +2 67 20 81 +14 93 18 94 +7 37 32 82 +19 68 21 77 +18 85 29 86 +20 65 51 77 +51 25 52 76 +7 11 18 12 +7 42 10 85 +27 73 29 93 +45 2 47 41 +46 3 49 20 +34 23 47 48 +8 31 11 53 +47 81 48 89 +44 1 54 45 +40 39 49 82 +42 52 45 67 +26 49 29 67 +21 42 45 92 +53 27 53 41 +33 21 52 46 +9 74 30 82 +49 51 49 89 +25 72 37 72 +30 53 40 64 +28 48 47 82 +50 62 51 81 +22 41 48 71 +19 26 54 83 +54 53 54 56 +52 33 54 43 +37 34 37 77 +49 85 50 91 +35 19 47 60 +24 39 38 52 +20 57 22 88 +35 79 51 92 +40 90 44 92 +8 12 28 13 +51 9 53 13 +23 51 30 76 +41 9 44 44 +23 41 38 86 +54 93 54 93 +38 55 39 81 +15 30 48 85 +46 60 48 70 +8 54 23 81 +29 54 48 61 +47 17 52 50 +15 9 44 41 +15 35 25 90 +49 68 53 80 +31 15 41 34 +3 17 29 41 +31 56 54 73 +53 67 54 73 +36 78 48 82 +20 94 49 94 +15 77 52 85 +42 63 51 84 +19 65 34 66 +18 22 28 40 +49 51 53 93 +14 70 42 71 +48 77 53 81 +47 42 51 56 +8 77 46 80 +35 59 40 63 +10 33 11 40 +2 6 32 14 +39 3 49 64 +39 29 40 91 +28 28 53 38 +14 71 19 73 +37 28 39 42 +31 68 47 83 +9 94 50 94 +32 86 43 87 +24 15 35 19 +54 1 54 15 +35 81 37 81 +23 89 44 89 +51 44 54 89 +12 84 45 84 +39 87 49 92 +8 87 52 90 +10 51 36 93 +28 26 46 29 +35 46 39 50 +35 18 45 85 +47 19 48 50 +21 2 26 9 +29 74 46 93 +14 3 41 19 +28 94 52 94 +17 52 28 80 +51 54 53 76 +49 37 49 58 +48 46 49 83 +28 9 51 9 +9 70 31 84 +24 32 50 34 +5 86 44 90 +19 5 27 42 +42 86 48 88 +33 47 40 63 +25 79 31 85 +38 74 47 83 +23 21 37 41 +7 41 14 75 +46 94 52 94 +19 93 28 93 +51 69 51 84 +5 33 13 43 +52 31 54 78 +5 64 21 74 +11 25 26 27 +0 31 10 50 +49 32 52 83 +34 35 38 59 +1 59 45 59 +7 50 48 70 +10 17 27 84 +32 32 49 34 +36 2 50 20 +13 38 49 55 +52 55 54 57 +25 35 28 86 +9 65 53 78 +22 65 29 90 +32 13 50 25 +13 20 25 67 +46 29 51 55 +35 45 38 52 +27 52 48 68 +4 72 35 84 +49 20 51 85 +30 31 53 74 +21 46 42 63 +15 70 24 78 +54 27 54 40 +19 74 42 84 +19 69 33 75 +30 34 49 81 +47 16 54 28 +34 84 39 85 +31 57 52 70 +6 13 26 49 +39 39 44 47 +37 80 51 80 +8 76 17 93 +1 93 40 93 +40 69 50 76 +21 64 33 67 +13 55 50 71 +6 53 42 94 +36 67 37 84 +7 81 40 90 +1 94 42 94 +24 16 46 85 +15 46 39 83 +25 86 41 93 +29 69 37 78 +0 10 3 23 +4 40 10 63 +40 91 40 92 +52 72 54 72 +29 42 30 83 +54 51 54 91 +52 71 54 83 +49 81 54 84 +4 67 23 81 +10 36 50 43 +39 36 48 64 +1 17 2 69 +44 34 49 49 +17 35 50 38 +21 13 42 60 +1 18 3 35 +3 30 30 76 +32 72 46 83 +15 4 43 73 +53 63 54 85 +49 6 52 23 +47 81 47 93 +13 12 32 21 +3 19 17 37 +51 70 53 76 +34 9 53 76 +43 76 50 76 +41 89 50 94 +24 94 45 94 +46 17 50 31 +19 52 54 89 +26 94 47 94 +30 63 50 82 +1 26 4 81 +41 44 46 65 +15 25 28 88 +23 22 26 88 +42 10 46 51 +18 11 22 84 +30 83 52 84 +37 62 42 79 +38 81 40 89 +49 77 53 91 +4 15 35 50 +2 81 45 90 +13 64 23 79 +8 52 42 54 +48 70 49 73 +47 24 52 39 +28 42 36 83 +47 34 52 59 +7 71 31 77 +10 70 36 70 +18 33 33 76 +54 36 54 45 +5 74 50 93 +24 81 27 91 +26 36 28 58 +27 72 34 93 +20 30 29 83 +23 83 46 94 +16 4 42 35 +51 6 51 16 +37 56 40 85 +15 87 16 90 +2 20 7 68 +43 31 52 78 +37 78 47 93 +52 3 54 26 +30 9 44 56 +16 8 53 69 +46 21 54 82 +34 51 34 59 +49 79 52 87 +51 47 51 60 +28 37 28 46 +13 79 35 90 +53 19 54 38 +28 57 49 74 +22 7 29 27 +52 80 53 92 +3 78 28 82 +14 42 44 94 +7 66 24 85 +6 92 53 92 +15 46 46 87 +14 84 23 87 +51 5 53 48 +33 0 53 18 +43 88 50 94 +6 30 17 85 +38 76 52 81 +19 75 35 87 +0 40 46 68 +15 9 36 62 +52 39 53 85 +51 88 51 88 +43 34 44 47 +50 14 52 41 +11 15 35 21 +47 82 49 93 +27 90 51 94 +51 8 54 15 +29 67 33 88 +18 40 51 79 +36 71 45 90 +8 3 17 56 +9 60 50 91 +33 44 46 78 +34 37 38 87 +44 85 46 89 +45 94 46 94 +3 27 30 43 +50 14 52 33 +1 62 53 79 +29 38 37 92 +46 68 49 69 +33 44 45 66 +30 26 50 83 +44 85 54 91 +20 16 25 35 +1 94 49 94 +51 91 51 93 +8 24 13 38 +34 74 54 87 +5 43 6 64 +25 0 50 48 +39 11 47 63 +7 69 31 89 +23 13 38 30 +11 46 34 84 +3 14 38 42 +42 74 48 88 +14 73 54 88 +42 67 44 85 +49 0 53 69 +40 32 40 48 +20 74 54 94 +32 87 52 88 +26 58 47 63 +15 56 33 92 +5 34 49 70 +3 87 11 90 +8 23 26 48 +19 43 34 68 +11 60 33 92 +42 61 45 87 +43 57 46 62 +17 4 48 9 +48 67 54 86 +29 0 46 84 +40 87 44 87 +40 29 49 56 +29 75 52 89 +44 19 45 81 +30 27 33 58 +11 85 14 89 +39 44 46 78 +30 41 43 43 +43 49 44 90 +10 19 45 84 +14 63 15 77 +28 75 44 88 +4 45 41 64 +12 79 36 86 +24 81 30 82 +22 41 45 84 +50 92 51 94 +45 24 48 51 +38 20 41 61 +6 55 40 58 +12 20 49 71 +2 36 38 93 +18 49 30 67 +9 10 23 36 +22 53 52 86 +2 38 30 87 +3 60 29 78 +42 80 48 91 +50 91 51 93 +17 93 33 94 +31 32 52 60 +38 60 45 60 +52 94 52 94 +4 52 9 58 +24 56 29 86 +0 52 4 73 +50 72 51 84 +46 8 50 37 +28 70 43 74 +34 85 36 87 +22 40 32 50 +39 53 42 93 +0 29 14 40 +8 52 36 65 +25 89 25 93 +32 92 40 93 +38 50 50 68 +51 74 51 79 +35 34 52 94 +41 20 51 89 +41 23 54 88 +2 70 54 74 +37 9 39 39 +14 71 16 84 +36 1 48 21 +9 12 30 36 +33 70 36 74 +46 9 51 11 +32 24 38 82 +7 79 24 86 +51 41 53 84 +24 54 48 55 +1 60 52 86 +49 56 53 93 +26 81 40 90 +8 73 31 77 +37 69 43 89 +35 49 45 54 +26 47 53 59 +8 38 9 70 +4 52 36 56 +41 78 50 87 +21 54 43 55 +38 72 52 91 +44 31 50 59 +8 27 32 72 +14 25 24 45 +34 16 47 94 +10 8 38 37 +35 24 54 77 +4 87 30 92 +27 24 34 34 +50 21 51 65 +10 66 22 68 +34 0 53 82 +51 69 53 81 +54 10 54 36 +21 37 32 52 +41 44 45 47 +10 62 13 87 +40 88 45 89 +38 4 44 89 +35 58 39 94 +12 67 45 90 +20 89 44 90 +10 45 24 69 +6 30 50 81 +7 10 16 16 +18 40 36 55 +18 56 18 80 +15 16 53 93 +35 77 51 80 +48 10 48 22 +0 75 22 84 +8 59 21 74 +3 65 53 78 +53 0 54 13 +21 60 26 77 +25 20 54 63 +40 53 42 68 +0 67 33 81 +22 41 44 94 +24 34 36 91 +14 33 48 56 +47 40 47 60 +48 9 51 19 +16 77 17 78 +54 33 54 85 +23 14 40 35 +47 39 53 82 +6 64 35 82 +1 5 48 91 +33 82 43 90 +40 5 53 5 +27 30 51 63 +2 55 18 83 +28 43 50 47 +25 74 53 78 +17 3 36 78 +11 48 46 53 +18 88 18 92 +44 41 49 48 +4 54 23 56 +41 41 45 57 +27 63 50 87 +25 21 47 50 +16 51 34 85 +43 45 54 75 +23 50 26 50 +8 92 41 94 +5 62 20 82 +49 8 51 63 +17 65 48 77 +26 64 34 83 +31 55 54 88 +53 51 53 65 +50 4 50 91 +39 35 49 79 +50 25 53 85 +35 57 52 66 +50 38 53 40 +14 74 42 76 +26 93 36 93 +28 23 34 43 +6 30 16 32 +19 35 32 40 +16 32 36 34 +49 0 51 70 +32 43 32 56 +11 88 13 93 +48 79 52 85 +6 2 48 80 +1 44 43 62 +26 38 27 81 +31 43 49 65 +11 15 20 47 +44 55 54 65 +10 75 17 77 +16 86 34 89 +15 15 43 39 +5 17 28 54 +28 81 40 92 +23 23 53 80 +2 76 44 87 +54 26 54 45 +40 67 45 91 +36 23 47 86 +45 82 49 89 +1 41 3 76 +12 15 41 86 +5 2 34 61 +33 55 40 78 +43 8 47 89 +16 86 26 88 +16 16 39 32 +24 33 25 43 +33 55 48 86 +21 47 52 56 +15 47 17 58 +52 17 53 61 +39 13 43 16 +3 56 4 59 +45 49 52 59 +13 60 35 77 +29 42 48 60 +35 1 40 11 +6 51 47 87 +22 3 25 19 +52 5 53 82 +14 87 36 87 +50 58 50 68 +15 66 18 77 +4 29 39 86 +18 77 39 90 +23 77 35 92 +20 57 49 94 +10 66 16 79 +14 84 31 90 +54 9 54 81 +44 28 49 30 +15 68 43 68 +15 80 49 91 +27 92 34 93 +29 19 44 49 +40 44 50 94 +20 37 48 42 +8 0 40 73 +52 32 53 70 +11 79 14 87 +49 89 49 91 +25 36 53 39 +9 0 25 13 +44 88 48 91 +17 17 42 94 +21 78 32 85 +32 34 37 55 +18 93 35 94 +32 85 40 89 +9 68 30 83 +17 16 41 50 +47 41 53 42 +29 10 49 87 +22 37 42 41 +41 7 46 31 +29 9 52 48 +38 38 54 58 +51 8 54 31 +46 65 54 83 +0 33 38 54 +5 76 47 92 +5 0 6 47 +3 83 35 88 +46 30 47 49 +7 94 35 94 +37 80 47 90 +50 53 54 79 +17 76 28 87 +44 61 53 79 +26 32 41 53 +14 17 39 70 +33 41 35 74 +11 26 37 31 +47 90 47 94 +27 55 27 58 +54 2 54 65 +1 28 11 59 +33 45 54 58 +5 25 49 70 +11 42 33 43 +9 47 17 87 +42 70 47 94 +49 51 50 71 +34 81 49 93 +16 89 51 94 +44 93 49 93 +17 38 21 61 +30 73 47 80 +47 7 50 88 +20 75 39 83 +36 0 38 91 +21 43 40 54 +30 89 34 93 +38 67 48 69 +19 54 54 55 +33 41 51 93 +25 17 30 80 +50 35 51 38 +10 61 35 86 +54 37 54 55 +47 31 50 52 +6 82 9 93 +17 88 23 90 +51 56 53 67 +8 89 17 90 +27 82 35 92 +8 84 31 91 +21 59 37 81 +4 34 25 64 +25 29 50 45 +52 28 54 74 +34 1 36 8 +25 30 31 45 +49 23 54 85 +18 3 32 91 +9 61 42 88 +34 80 39 85 +5 11 25 33 +27 54 41 77 +15 70 38 81 +38 30 44 37 +31 79 35 86 +41 50 48 82 +36 18 49 80 +27 70 48 86 +7 84 29 85 +5 47 52 78 +37 33 50 65 +40 79 47 83 +11 29 41 72 +15 39 33 57 +19 40 48 94 +23 84 27 94 +27 35 51 83 +3 57 34 92 +28 60 48 72 +0 41 28 68 +33 83 51 85 +4 83 46 88 +7 7 53 51 +41 82 46 92 +11 11 39 19 +6 56 30 94 +9 93 17 94 +29 90 47 93 +44 6 49 93 +32 80 47 85 +46 8 46 35 +20 38 52 70 +29 66 30 90 +26 72 28 72 +23 19 36 44 +15 69 54 92 +40 75 48 86 +5 23 24 55 +27 80 40 82 +53 88 53 91 +3 31 26 85 +12 52 41 73 +12 23 32 90 +34 45 36 67 +42 43 43 71 +10 92 19 93 +4 30 43 43 +29 76 45 82 +11 58 51 77 +51 24 53 79 +4 73 51 73 +24 32 49 32 +54 80 54 93 +24 58 35 86 +7 55 26 85 +6 46 39 61 +35 47 36 48 +42 90 51 91 +27 65 43 65 +25 76 40 79 +16 94 47 94 +46 82 54 84 +31 36 36 85 +45 11 45 23 +51 34 52 76 +25 77 48 90 +28 34 45 67 +49 75 50 76 +38 58 53 66 +48 30 52 40 +15 73 50 73 +3 75 48 77 +17 88 29 91 +39 80 49 87 +7 45 9 74 +33 64 38 84 +24 59 31 93 +3 22 27 24 +28 18 31 59 +16 63 46 65 +26 36 49 87 +35 74 53 90 +9 27 17 58 +52 22 54 37 +48 35 48 71 +13 12 37 20 +16 46 37 91 +1 61 22 91 +43 38 47 65 +48 54 48 94 +41 30 54 43 +17 37 32 80 +21 73 39 92 +3 20 46 70 +24 84 24 85 +46 46 51 57 +27 81 53 92 +32 86 42 92 +3 53 46 61 +22 3 37 4 +36 86 37 86 +15 55 43 66 +48 14 51 39 +46 5 47 12 +48 26 49 82 +54 33 54 48 +28 30 40 36 +18 82 37 94 +24 45 30 79 +6 35 50 61 +42 32 43 49 +41 87 53 87 +30 41 53 47 +22 35 52 76 +14 48 42 60 +20 45 34 47 +16 39 27 52 +35 44 53 94 +53 94 53 94 +29 72 30 86 +5 46 41 87 +21 41 44 92 +15 16 15 50 +8 35 54 38 +30 14 36 61 +11 74 18 87 +33 81 52 86 +40 3 52 40 +14 6 24 68 +34 88 36 92 +32 94 38 94 +49 89 50 92 +48 52 53 61 +15 15 18 63 +25 33 34 44 +22 0 25 1 +1 25 28 72 +29 3 53 10 +29 4 49 21 +18 65 53 90 +42 78 46 91 +3 21 44 67 +31 9 46 15 +0 11 5 54 +11 39 11 40 +21 81 53 93 +50 54 53 85 +1 61 44 87 +26 60 46 86 +33 56 37 77 +15 27 15 36 +53 48 53 51 +8 48 17 91 +28 53 45 92 +42 47 46 83 +4 10 32 64 +18 94 20 94 +25 65 26 76 +41 47 42 75 +17 24 50 49 +2 62 47 69 +41 89 52 92 +1 2 7 38 +22 10 32 85 +9 25 25 82 +44 7 52 17 +49 45 53 52 +31 34 36 69 +28 58 47 83 +43 0 50 49 +16 74 54 74 +11 49 27 78 +26 45 46 56 +18 84 24 86 +1 62 45 71 +5 75 26 87 +39 28 42 55 +17 38 33 54 +45 79 50 91 +29 30 53 33 +12 73 45 92 +16 52 44 70 +50 77 52 80 +9 28 37 80 +22 32 41 44 +23 82 34 85 +19 56 54 67 +51 22 51 86 +11 86 48 89 +0 93 43 93 +25 8 31 41 +49 69 54 85 +26 41 42 44 +8 92 12 92 +16 80 42 80 +1 83 12 92 +40 84 52 88 +3 29 3 50 +31 85 50 90 +47 54 48 63 +34 6 54 15 +37 23 38 80 +38 90 48 91 +15 0 53 38 +31 16 42 86 +35 40 42 93 +26 36 50 55 +50 40 50 91 +4 70 38 85 +22 94 41 94 +18 52 42 76 +9 88 51 92 +41 68 45 88 +39 28 47 85 +24 72 38 88 +23 69 26 73 +48 61 50 84 +4 49 27 91 +20 61 37 89 +12 18 40 51 +53 72 54 72 +44 51 48 76 +21 85 54 86 +18 84 22 92 +9 20 34 22 +31 5 31 26 +39 69 49 73 +45 94 48 94 +22 5 22 29 +0 79 15 91 +31 89 33 94 +51 11 54 17 +31 34 34 36 +22 68 37 93 +49 71 49 92 +20 54 22 57 +15 61 32 85 +11 74 26 74 +45 37 45 65 +52 50 54 80 +17 44 42 55 +1 49 15 61 +19 88 36 93 +2 5 22 79 +49 11 49 39 +44 85 50 89 +18 38 46 39 +32 28 43 89 +20 22 50 90 +24 41 26 84 +29 94 45 94 +32 46 52 65 +47 29 48 55 +45 39 52 64 +49 20 53 50 +38 29 47 68 +8 62 26 69 +34 17 43 32 +11 2 54 50 +48 75 50 90 +21 57 33 74 +46 71 49 84 +22 71 25 83 +14 49 20 93 +7 37 18 65 +52 51 53 78 +54 43 54 86 +0 68 6 88 +33 67 45 84 +9 2 27 52 +0 10 49 72 +45 59 48 70 +24 29 50 81 +40 16 52 91 +0 31 2 50 +23 19 32 71 +5 68 27 78 +41 36 47 81 +8 89 21 91 +39 40 39 42 +6 79 13 91 +38 60 38 64 +8 81 39 87 +5 67 5 70 +49 25 52 32 +1 68 49 80 +49 27 49 77 +3 47 22 76 +46 54 52 69 +46 29 53 93 +38 81 41 89 +14 76 40 87 +52 24 53 42 +27 3 44 78 +45 55 53 67 +27 26 40 56 +20 76 34 77 +25 57 31 74 +50 32 53 60 +46 4 48 88 +33 2 41 71 +29 10 50 76 +19 61 54 67 +47 25 48 94 +50 5 51 53 +50 80 51 87 +10 88 47 89 +51 76 51 88 +8 38 42 83 +27 68 34 68 +44 68 47 84 +7 67 51 89 +7 19 14 28 +43 10 51 27 +8 53 20 54 +14 25 17 93 +6 43 51 89 +44 33 54 84 +17 38 45 91 +39 91 48 91 +3 73 35 93 +22 51 31 91 +27 54 42 62 +3 62 22 70 +47 77 52 88 +52 70 53 85 +18 76 29 84 +39 92 45 94 +26 39 34 81 +38 9 48 14 +43 65 54 81 +50 4 51 17 +15 44 49 86 +12 6 47 77 +42 35 48 41 +48 85 54 92 +4 37 30 64 +40 56 50 61 +15 8 50 63 +49 41 49 60 +4 79 6 83 +26 90 47 90 +11 89 13 89 +25 68 39 92 +36 20 49 53 +39 90 53 93 +36 31 37 79 +39 71 44 76 +27 59 39 90 +7 40 40 88 +25 79 25 94 +28 11 47 62 +46 94 52 94 +39 82 44 85 +18 41 19 43 +5 76 30 92 +9 10 50 88 +33 70 47 85 +25 63 43 67 +12 10 15 35 +28 92 39 93 +4 80 44 85 +39 64 48 65 +42 21 42 81 +34 75 47 78 +24 91 32 93 +20 52 20 88 +11 10 26 65 +35 10 44 88 +41 48 48 51 +52 89 54 93 +20 64 26 70 +6 78 18 89 +23 10 42 46 +26 90 46 94 +11 76 27 91 +28 50 41 85 +47 13 49 18 +44 40 53 59 +29 63 44 68 +16 53 37 70 +53 86 53 88 +14 75 40 88 +29 68 38 69 +21 92 28 92 +17 23 28 27 +40 63 52 80 +49 69 54 76 +4 75 8 79 +12 22 49 78 +51 30 53 56 +3 11 17 33 +25 25 31 77 +29 91 32 93 +47 63 47 63 +43 0 53 20 +7 76 38 82 +21 77 27 92 +17 36 17 92 +48 36 54 80 +21 3 46 26 +30 40 37 71 +30 84 30 89 +10 91 50 93 +15 17 49 67 +15 17 21 64 +41 90 44 90 +12 60 35 68 +49 90 50 94 +10 69 14 92 +27 10 47 67 +0 57 8 79 +17 90 47 92 +27 73 47 80 +46 50 47 58 +34 3 40 77 +40 42 42 66 +43 75 53 84 +22 57 41 78 +5 91 30 93 +46 63 46 63 +9 19 21 43 +46 15 51 54 +17 55 41 80 +20 4 28 44 +2 46 52 46 +49 88 54 92 +28 5 45 52 +8 8 43 57 +54 51 54 87 +15 12 27 33 +43 23 45 74 +30 77 47 88 +7 50 32 62 +11 13 17 54 +37 75 39 86 +32 55 38 67 +26 12 38 78 +8 20 46 91 +19 66 30 80 +46 29 52 71 +36 63 39 77 +47 64 52 86 +54 85 54 94 +43 62 54 81 +25 12 47 68 +7 38 26 70 +16 75 20 92 +38 28 54 77 +37 44 45 93 +39 42 46 93 +42 5 53 74 +3 53 30 58 +54 49 54 58 +19 39 19 48 +35 8 45 20 +25 4 48 34 +44 37 54 41 +20 63 22 74 +54 76 54 83 +18 57 42 62 +1 22 54 73 +45 15 45 57 +10 10 54 19 +51 33 54 47 +12 75 19 89 +33 93 34 93 +49 71 51 72 +15 77 31 88 +41 13 54 19 +44 1 49 72 +7 42 7 56 +20 24 30 53 +13 1 32 67 +1 36 53 88 +42 20 47 91 +53 40 54 94 +26 90 44 91 +24 65 54 90 +22 26 34 48 +38 18 40 80 +33 24 48 77 +17 51 19 92 +23 44 26 78 +8 12 44 25 +16 36 49 87 +30 31 47 94 +40 92 54 94 +40 8 54 25 +53 61 53 92 +0 14 25 91 +4 78 53 81 +28 8 45 81 +4 84 54 87 +34 63 42 85 +53 67 54 90 +41 27 43 77 +54 18 54 33 +17 56 52 82 +49 32 54 37 +8 66 39 81 +15 10 30 62 +22 59 29 77 +10 42 35 58 +27 50 52 76 +6 75 44 94 +50 49 50 55 +10 93 38 93 +34 0 45 22 +4 19 8 64 +26 48 29 58 +1 20 31 29 +30 89 47 94 +5 25 32 91 +32 8 49 84 +39 71 52 94 +9 23 49 61 +46 65 50 77 +21 19 43 93 +1 85 16 90 +13 84 48 86 +16 34 49 79 +50 62 50 91 +48 51 53 79 +50 19 50 93 +51 50 54 51 +46 86 52 87 +21 32 33 37 +3 50 38 70 +47 71 48 77 +1 31 19 31 +31 94 44 94 +24 92 26 94 +12 94 45 94 +16 23 32 23 +1 18 4 54 +25 8 47 68 +24 87 40 94 +46 26 46 86 +31 75 47 85 +43 10 50 74 +24 0 26 76 +44 21 54 51 +0 3 26 43 +28 26 52 74 +30 36 37 53 +22 26 36 54 +37 48 48 50 +48 56 48 79 +33 46 33 54 +9 27 52 41 +1 35 41 35 +41 25 43 30 +54 48 54 73 +23 50 47 65 +35 52 42 61 +18 72 50 92 +28 18 51 30 +32 17 34 47 +6 60 27 87 +47 68 49 87 +18 49 20 65 +47 38 51 57 +53 34 53 83 +52 35 54 43 +32 88 51 93 +21 28 23 86 +14 20 49 77 +3 41 23 85 +0 53 39 65 +28 94 51 94 +29 12 42 83 +38 54 49 56 +53 23 53 78 +50 8 53 68 +47 23 47 46 +31 89 34 89 +51 70 51 92 +50 52 54 81 +34 7 50 56 +30 92 43 94 +52 76 54 82 +34 75 37 83 +33 78 34 92 +53 92 53 94 +10 12 51 82 +14 85 15 88 +2 33 54 78 +54 54 54 85 +14 82 34 92 +11 71 45 77 +46 10 49 37 +9 58 15 86 +3 44 16 89 +39 13 54 64 +20 76 35 83 +7 60 47 82 +29 83 52 87 +1 86 7 87 +12 0 40 51 +41 59 41 59 +10 60 54 77 +15 84 48 86 +32 41 46 50 +20 10 52 81 +22 4 37 74 +18 43 37 74 +12 33 48 94 +29 77 53 83 +11 35 52 40 +14 9 29 72 +34 5 45 93 +21 10 32 94 +47 58 52 82 +3 7 26 89 +1 79 43 84 +12 68 35 91 +48 18 49 21 +28 10 37 33 +30 35 50 58 +51 28 53 62 +48 54 49 72 +8 84 35 94 +1 26 1 63 +12 7 38 66 +30 60 36 83 +10 71 14 74 +36 92 47 92 +43 62 44 84 +44 83 53 89 +49 33 53 42 +53 12 54 21 +18 15 51 26 +52 15 54 28 +2 27 29 37 +32 34 34 68 +46 51 53 73 +39 35 39 37 +54 36 54 78 +9 80 53 92 +48 53 49 79 +30 15 54 88 +17 11 53 17 +29 0 50 63 +12 86 40 94 +16 92 26 93 +23 30 33 42 +8 86 24 91 +12 31 29 47 +2 70 40 83 +31 42 48 84 +2 24 27 83 +9 78 45 82 +32 28 37 92 +1 74 29 90 +51 52 54 80 +2 82 42 88 +22 7 32 66 +52 56 53 81 +6 28 52 80 +51 7 53 40 +43 85 50 94 +19 92 49 92 +19 4 51 79 +45 0 52 47 +14 18 49 82 +51 32 53 75 +33 33 36 68 +5 58 10 91 +16 25 32 67 +44 35 51 39 +11 31 28 40 +20 94 51 94 +8 16 16 44 +24 91 48 91 +23 42 26 45 +14 90 23 93 +13 85 31 88 +32 77 50 82 +47 53 54 58 +29 51 47 62 +45 69 45 90 +5 15 26 85 +33 43 39 72 +38 83 46 93 +29 6 31 40 +27 76 46 88 +46 57 52 87 +34 60 50 86 +10 70 40 77 +50 73 52 75 +31 34 33 65 +1 68 46 68 +26 93 29 93 +28 92 47 93 +36 22 49 45 +13 76 17 78 +16 74 47 74 +47 43 49 63 +39 84 47 90 +21 11 24 67 +49 74 50 90 +48 43 54 71 +53 28 54 29 +14 80 14 80 +42 41 52 50 +19 85 53 89 +21 75 40 92 +18 10 35 78 +3 42 32 43 +8 84 47 94 +34 26 53 63 +32 9 51 69 +24 28 28 76 +23 37 25 37 +27 51 49 61 +0 20 38 59 +27 89 51 89 +7 13 42 79 +35 80 39 90 +1 24 1 70 +15 64 52 77 +35 68 44 75 +19 63 25 76 +35 30 47 62 +45 15 54 62 +4 59 6 86 +52 35 54 50 +2 30 26 69 +44 76 46 83 +10 71 31 73 +11 53 13 93 +40 70 49 89 +50 75 51 89 +19 13 33 50 +41 17 48 83 +31 88 37 94 +42 5 50 51 +19 12 29 24 +37 54 40 62 +47 13 54 21 +28 49 31 55 +42 72 47 73 +17 61 40 73 +12 82 12 85 +45 38 52 88 +27 60 47 72 +21 89 24 89 +36 60 37 88 +46 90 52 91 +22 12 35 47 +20 75 32 81 +25 39 40 91 +34 81 46 92 +45 54 48 55 +4 61 15 65 +1 65 54 78 +43 40 47 53 +21 26 27 32 +6 76 21 91 +44 40 48 89 +21 44 21 50 +0 63 11 88 +39 83 52 93 +51 32 53 53 +5 40 35 77 +19 45 19 94 +22 60 24 66 +6 86 24 92 +50 83 50 87 +21 87 45 93 +9 39 22 46 +36 73 44 90 +43 20 53 70 +21 65 34 77 +0 9 50 37 +35 42 53 66 +52 1 53 5 +23 89 37 92 +29 21 39 23 +48 76 52 82 +31 93 44 94 +35 94 37 94 +50 3 50 60 +40 92 53 92 +12 37 16 63 +20 62 48 88 +13 90 34 94 +22 53 31 90 +41 76 42 93 +19 5 19 22 +23 16 49 40 +54 74 54 90 +33 54 48 94 +44 29 50 29 +29 26 45 62 +25 56 49 94 +46 68 53 87 +44 84 45 85 +12 1 36 62 +17 63 31 69 +33 7 44 52 +30 60 38 94 +51 73 54 83 +42 76 50 77 +46 55 48 71 +29 84 32 94 +43 20 50 54 +37 76 54 78 +1 16 40 94 +17 69 39 73 +2 80 36 89 +39 57 44 73 +33 16 39 91 +0 94 14 94 +41 5 41 51 +4 58 51 61 +12 18 15 30 +46 25 49 40 +40 89 51 90 +31 65 40 66 +39 32 47 67 +17 29 48 33 +40 88 40 90 +22 19 45 25 +46 31 48 31 +20 92 54 93 +40 30 41 36 +4 30 18 66 +49 54 53 72 +44 48 44 56 +3 92 46 94 +11 89 49 92 +32 51 44 71 +54 37 54 66 +2 12 21 64 +21 94 37 94 +48 50 53 53 +51 72 52 80 +38 40 38 70 +29 48 40 94 +53 87 54 87 +6 19 34 43 +52 42 53 46 +21 66 23 92 +9 51 22 78 +21 31 37 93 +42 28 42 67 +27 12 53 94 +46 33 54 60 +50 55 51 89 +33 25 33 26 +43 81 43 91 +22 0 33 88 +53 22 54 89 +6 54 51 66 +2 46 8 89 +3 58 36 91 +9 5 37 78 +9 49 18 90 +45 22 47 26 +12 9 34 20 +27 70 45 91 +54 89 54 91 +33 37 48 53 +14 38 32 67 +34 58 40 85 +31 1 38 87 +19 6 25 28 +2 14 18 69 +37 43 41 87 +45 36 48 80 +26 43 36 86 +42 28 48 48 +51 60 51 91 +7 43 9 48 +38 92 51 93 +10 0 44 44 +7 39 36 84 +43 33 44 61 +2 33 31 86 +44 80 51 85 +53 84 54 86 +50 34 53 39 +3 77 12 88 +11 78 23 85 +24 24 26 37 +46 56 46 77 +20 30 54 70 +24 45 30 81 +42 60 53 74 +18 36 45 74 +8 23 48 58 +24 32 41 42 +43 68 50 83 +16 46 17 52 +39 93 40 93 +8 52 8 61 +30 40 45 49 +45 93 50 94 +4 85 4 90 +5 40 33 79 +51 21 54 40 +14 42 25 52 +16 36 38 57 +46 19 54 89 +36 28 48 29 +6 35 49 86 +4 8 5 71 +36 62 45 71 +50 44 52 44 +19 73 21 90 +51 87 52 87 +27 68 40 79 +37 51 43 66 +42 76 53 94 +22 35 45 59 +6 75 21 79 +4 47 29 81 +44 56 53 91 +53 47 53 86 +40 92 44 94 +47 11 51 48 +49 47 52 70 +35 87 42 93 +4 18 23 34 +45 75 54 75 +47 13 47 67 +31 28 47 65 +48 9 48 21 +51 16 51 23 +22 46 35 66 +22 9 47 26 +24 31 53 49 +31 41 47 68 +45 26 47 67 +54 3 54 14 +6 78 34 88 +37 37 48 84 +27 68 53 72 +8 74 52 75 +52 53 54 60 +49 64 49 89 +3 1 19 30 +53 63 54 71 +38 89 49 90 +21 68 25 80 +12 9 23 22 +3 25 16 52 +16 89 24 91 +43 22 50 77 +15 5 32 16 +16 72 16 82 +18 11 21 16 +32 66 39 83 +7 26 45 53 +42 15 54 37 +17 73 30 79 +38 23 42 51 +39 30 49 73 +11 14 23 67 +10 0 25 67 +47 11 53 82 +34 8 48 76 +29 51 39 55 +46 3 47 27 +53 25 54 77 +45 27 47 87 +2 12 10 15 +19 5 41 53 +4 25 32 62 +33 6 33 7 +19 89 48 94 +46 56 50 78 +22 30 38 34 +13 53 52 62 +21 36 34 66 +42 52 51 88 +0 74 12 74 +18 64 51 83 +45 22 54 26 +39 36 48 92 +26 70 45 70 +49 48 49 68 +51 94 51 94 +53 86 53 89 +2 63 54 72 +6 29 11 57 +4 65 39 91 +18 4 26 91 +18 24 41 58 +9 57 37 82 +33 41 44 82 +27 31 49 53 +2 53 22 70 +30 29 40 55 +16 2 49 9 +24 35 24 47 +43 8 51 85 +19 94 33 94 +0 53 22 74 +53 82 54 83 +32 12 44 43 +14 87 16 93 +25 27 27 44 +38 77 42 89 +7 76 49 92 +40 88 50 90 +23 78 42 80 +27 57 29 86 +36 82 54 90 +54 11 54 51 +51 8 52 79 +17 89 25 89 +27 34 36 88 +9 42 15 63 +30 73 46 84 +4 34 22 80 +20 26 26 67 +38 9 47 82 +14 23 30 43 +17 5 27 69 +4 17 26 72 +4 47 21 83 +13 68 52 72 +16 10 38 74 +46 58 49 69 +14 60 14 65 +49 22 50 63 +24 43 53 64 +34 7 42 93 +12 92 46 93 +20 0 24 56 +49 42 54 80 +29 29 41 61 +42 66 49 66 +41 55 46 64 +4 31 13 43 +22 19 44 21 +44 67 54 79 +35 67 48 80 +2 4 4 53 +26 28 53 35 +37 88 46 93 +10 54 21 86 +5 76 43 91 +29 21 38 34 +51 34 54 59 +40 7 52 40 +21 51 53 85 +26 78 52 79 +9 8 35 62 +49 62 51 86 +0 80 30 80 +47 21 52 91 +16 55 33 77 +39 78 45 94 +0 21 40 44 +19 66 26 91 +45 56 46 63 +20 85 47 86 +44 32 44 90 +50 43 53 89 +41 69 45 81 +37 23 47 70 +18 58 40 92 +32 8 46 79 +0 0 5 33 +0 52 9 84 +31 9 33 64 +21 88 42 88 +31 36 48 40 +29 75 49 92 +31 88 31 92 +32 34 34 60 +1 65 11 84 +2 38 50 65 +24 81 51 89 +51 71 53 93 +16 81 49 91 +51 46 53 78 +4 30 43 38 +39 54 42 58 +21 79 42 91 +12 67 49 81 +32 29 49 68 +30 62 52 66 +18 20 54 74 +12 60 34 77 +44 84 49 91 +39 8 49 39 +6 70 51 93 +41 84 41 88 +40 85 53 87 +14 59 51 90 +0 73 24 77 +35 3 53 14 +2 53 16 93 +19 56 39 70 +12 38 42 44 +36 0 38 13 +52 10 52 36 +41 16 52 27 +46 44 52 58 +5 89 20 93 +4 28 15 88 +37 25 39 66 +19 78 39 85 +28 45 51 65 +17 22 47 57 +45 6 53 14 +17 26 29 29 +40 84 45 90 +18 79 19 84 +42 67 50 79 +35 88 38 88 +15 1 21 64 +13 53 27 74 +28 72 48 80 +2 11 49 68 +44 77 46 93 +24 86 29 91 +35 86 36 87 +21 50 34 63 +13 84 39 84 +51 24 53 82 +17 68 33 93 +47 57 49 73 +45 17 45 34 +21 17 50 59 +39 16 53 86 +29 31 31 78 +30 64 51 75 +20 36 41 94 +46 14 49 45 +52 45 52 80 +7 79 9 79 +27 11 53 15 +4 32 33 41 +39 87 44 89 +10 43 54 65 +36 85 48 92 +6 56 33 89 +3 32 14 32 +32 88 50 91 +6 10 53 30 +54 57 54 83 +43 76 45 85 +14 48 50 53 +51 61 52 82 +24 75 36 84 +27 61 40 69 +39 9 43 32 +17 44 31 58 +24 55 45 67 +40 49 43 64 +37 73 44 89 +45 44 50 81 +25 9 27 22 +31 69 44 79 +36 41 39 74 +7 56 31 69 +31 16 36 73 +41 26 54 81 +37 36 43 71 +44 93 54 93 +42 26 50 48 +39 85 52 89 +5 26 52 49 +2 35 53 38 +52 82 53 87 +52 38 52 39 +40 7 47 87 +26 84 43 86 +39 36 50 61 +20 40 31 60 +28 49 44 93 +33 4 40 70 +15 48 49 70 +49 4 52 33 +54 82 54 91 +34 51 48 86 +50 91 50 91 +42 30 46 52 +51 35 54 91 +9 52 26 61 +3 21 50 40 +0 15 53 53 +26 11 39 61 +20 45 25 61 +31 1 47 38 +0 63 29 88 +42 48 50 56 +38 65 41 77 +4 68 54 88 +54 80 54 84 +14 81 46 94 +25 81 52 89 +14 64 32 93 +13 31 24 55 +43 94 47 94 +48 21 54 77 +10 5 15 47 +21 81 49 84 +52 21 54 43 +8 9 13 84 +53 88 53 91 +43 8 53 17 +17 29 52 34 +41 80 42 83 +43 54 45 62 +14 6 37 15 +38 79 40 86 +39 18 49 39 +20 65 54 77 +39 74 40 80 +15 28 18 33 +10 11 47 51 +32 19 41 79 +27 1 54 30 +14 86 46 94 +29 25 41 36 +44 65 54 71 +14 92 39 92 +31 21 32 34 +43 47 46 70 +7 15 12 67 +15 43 29 81 +19 79 30 82 +14 13 26 83 +35 72 43 75 +43 17 49 63 +11 77 19 78 +40 48 50 77 +50 15 52 60 +4 74 52 93 +35 54 40 64 +22 67 40 83 +0 26 52 78 +8 88 47 90 +24 10 44 80 +30 29 37 70 +21 19 32 23 +40 36 44 42 +22 26 45 48 +40 69 49 87 +21 10 33 92 +46 44 46 67 +0 58 43 59 +30 19 37 26 +9 74 38 85 +15 64 26 74 +24 75 37 92 +28 84 47 87 +2 35 48 79 +20 8 20 72 +6 31 51 71 +46 15 53 39 +3 73 22 88 +51 65 52 69 +52 12 53 42 +11 68 16 94 +2 57 23 80 +25 4 49 50 +34 43 53 60 +45 32 48 72 +14 44 33 73 +35 65 54 67 +26 79 45 93 +25 60 45 72 +28 82 36 85 +17 28 28 53 +27 69 32 75 +52 61 54 69 +24 56 50 61 +20 61 21 88 +8 83 52 92 +16 11 27 30 +48 52 48 87 +43 83 52 90 +17 19 31 61 +0 75 45 78 +52 15 54 79 +0 46 44 90 +47 47 48 63 +13 34 48 47 +36 34 51 82 +35 56 40 86 +9 51 41 80 +31 60 33 69 +1 71 11 74 +45 3 53 10 +16 45 17 89 +36 59 48 68 +19 58 50 93 +47 34 50 39 +2 64 27 94 +16 72 47 85 +7 24 28 82 +46 7 54 7 +45 93 52 94 +26 86 51 90 +46 84 47 93 +31 79 35 88 +49 78 49 81 +19 69 43 81 +47 3 47 86 +15 28 41 35 +7 40 29 56 +7 31 51 47 +54 21 54 87 +46 49 52 60 +1 76 42 81 +53 94 53 94 +44 65 47 81 +20 11 26 89 +39 81 42 85 +50 70 53 92 +17 93 28 93 +51 6 52 80 +12 71 20 71 +9 84 39 91 +37 43 44 92 +54 9 54 75 +9 65 48 78 +22 87 40 87 +40 5 48 46 +29 72 51 91 +26 25 49 43 +20 71 31 94 +36 74 53 88 +4 50 42 77 +19 50 40 61 +11 61 36 75 +49 58 49 81 +53 94 53 94 +37 21 54 40 +39 59 40 90 +30 67 48 80 +40 71 47 73 +9 63 42 71 +25 45 28 64 +20 38 43 48 +47 92 52 92 +21 7 24 72 +20 66 23 66 +49 53 51 93 +44 93 51 93 +2 63 9 76 +27 0 27 55 +33 43 39 92 +18 82 32 82 +3 59 27 94 +34 91 39 94 +22 6 27 46 +29 21 46 54 +34 39 34 52 +32 59 49 83 +16 14 44 41 +4 58 39 74 +52 93 53 93 +42 24 52 90 +53 31 53 51 +46 45 50 74 +47 41 48 76 +1 63 41 67 +44 37 50 57 +22 32 32 79 +35 69 41 92 +0 33 2 76 +47 5 49 62 +32 70 51 76 +27 40 32 72 +0 43 35 47 +33 41 44 72 +7 63 35 91 +21 86 29 86 +22 8 42 89 +5 4 20 17 +45 64 52 64 +48 55 51 82 +53 9 53 93 +53 91 54 94 +5 54 24 74 +37 93 38 93 +16 85 46 85 +5 82 31 93 +27 6 37 82 +5 53 20 72 +23 69 31 70 +40 8 53 61 +2 55 53 75 +37 58 54 93 +36 38 45 45 +53 17 53 45 +13 47 32 53 +8 34 46 40 +51 14 52 69 +38 33 48 83 +8 28 8 64 +13 7 53 71 +21 91 35 91 +38 18 43 86 +38 52 47 73 +7 39 46 53 +21 36 47 60 +21 43 31 88 +40 23 49 44 +3 3 46 64 +45 0 50 23 +30 48 31 72 +15 58 36 58 +11 48 18 73 +38 21 51 60 +0 89 27 92 +48 65 50 74 +19 44 54 86 +52 63 54 68 +47 12 54 16 +53 4 54 20 +8 81 20 84 +46 24 53 33 +32 27 54 49 +14 7 30 54 +27 80 51 90 +2 8 34 61 +54 49 54 58 +49 9 54 27 +48 12 48 63 +48 8 54 66 +26 72 43 81 +15 44 42 51 +15 94 33 94 +47 41 52 69 +11 36 50 71 +31 80 36 89 +6 37 31 40 +19 28 21 71 +47 82 54 90 +40 8 50 26 +24 18 51 54 +44 52 52 77 +34 6 50 12 +25 44 54 84 +16 9 28 29 +24 20 43 48 +32 47 53 94 +11 76 29 76 +46 92 54 94 +43 29 45 75 +47 12 53 65 +2 72 30 90 +15 3 27 93 +46 18 52 92 +44 89 50 90 +43 59 49 75 +34 51 44 72 +3 47 10 87 +41 59 46 60 +16 67 48 94 +24 50 39 92 +45 41 52 41 +27 4 44 19 +35 38 42 55 +42 29 50 88 +32 75 52 76 +14 94 25 94 +46 10 53 37 +35 14 51 82 +47 9 51 27 +18 76 38 77 +42 72 46 87 +40 11 54 36 +29 72 53 75 +53 13 54 76 +1 54 26 88 +50 14 54 50 +9 15 15 77 +36 88 42 90 +37 38 45 81 +35 30 41 61 +40 82 47 84 +54 13 54 22 +41 67 51 67 +14 79 52 87 +19 54 34 70 +3 32 54 35 +40 81 52 90 +16 43 33 81 +51 50 54 73 +32 81 35 81 +18 93 36 94 +27 22 32 47 +8 22 22 40 +24 31 53 88 +16 46 34 60 +52 71 53 94 +17 2 26 12 +12 26 28 76 +1 81 27 90 +29 48 53 62 +5 78 41 91 +28 65 46 76 +31 73 43 81 +41 59 52 67 +53 52 54 76 +52 81 52 87 +24 57 44 77 +18 40 22 85 +28 4 31 10 +17 53 18 73 +33 88 47 91 +28 7 28 47 +42 29 51 76 +19 41 20 79 +11 37 30 53 +17 6 51 20 +44 40 52 77 +50 64 53 94 +7 6 36 32 +5 29 16 60 +33 15 46 85 +22 37 26 73 +3 33 42 71 +34 93 34 94 +47 50 48 78 +36 84 38 88 +31 34 53 41 +46 5 51 43 +24 14 38 82 +0 36 11 73 +41 56 48 72 +1 13 51 62 +13 56 34 81 +42 54 50 78 +30 66 52 79 +53 49 54 49 +16 9 49 48 +27 46 40 94 +32 85 48 93 +41 67 46 82 +53 87 53 89 +39 65 44 67 +15 91 33 92 +28 13 51 81 +17 57 45 82 +6 27 26 72 +12 22 17 25 +27 51 46 90 +7 77 24 92 +15 27 29 89 +5 94 54 94 +26 81 41 89 +1 46 34 74 +18 49 22 52 +29 30 40 44 +15 69 18 90 +37 27 37 52 +3 94 33 94 +28 42 39 90 +25 10 32 43 +51 22 52 27 +28 68 54 83 +17 79 33 89 +7 79 31 92 +14 28 31 77 +53 91 53 93 +12 92 23 92 +51 44 51 52 +14 20 33 94 +38 43 44 82 +29 19 36 25 +43 72 50 88 +40 76 44 89 +52 46 53 66 +19 7 29 36 +47 23 54 23 +16 89 22 92 +9 85 12 91 +18 86 54 94 +1 87 53 92 +18 65 41 77 +14 37 36 76 +24 4 45 78 +24 91 48 93 +22 53 41 56 +27 56 50 75 +47 44 51 82 +26 6 40 16 +54 51 54 56 +42 94 44 94 +42 32 53 73 +45 46 48 93 +41 21 48 31 +5 45 15 53 +43 6 44 35 +49 33 54 52 +6 5 41 63 +14 91 32 93 +36 16 49 76 +6 33 14 87 +26 10 44 53 +27 83 40 84 +19 74 54 84 +4 29 42 73 +54 71 54 74 +53 17 54 92 +4 60 27 91 +30 20 34 30 +38 13 50 72 +46 51 52 55 +10 86 31 90 +26 1 37 60 +18 3 20 80 +32 31 51 53 +39 71 41 76 +2 22 9 72 +37 26 48 69 +44 68 47 88 +5 28 15 73 +44 77 46 80 +43 26 54 38 +50 8 53 8 +46 51 54 66 +52 16 53 23 +15 17 29 75 +24 83 43 93 +0 76 6 92 +28 45 34 91 +54 72 54 85 +30 81 50 86 +27 76 34 76 +18 79 27 82 +27 70 38 78 +54 4 54 70 +49 36 52 41 +12 21 23 25 +50 62 53 71 +48 16 52 60 +18 20 24 72 +35 65 47 93 +27 37 41 76 +47 53 48 82 +2 63 23 82 +16 60 38 93 +19 90 30 91 +44 28 54 28 +28 63 32 90 +15 59 32 92 +3 64 24 76 +21 25 31 36 +16 23 26 33 +51 72 53 79 +1 57 28 88 +22 52 54 91 +31 44 47 91 +4 70 28 80 +4 12 31 73 +6 23 27 68 +28 59 28 71 +44 91 44 94 +46 57 49 89 +11 87 42 92 +13 27 42 39 +43 69 54 94 +37 94 42 94 +29 21 54 23 +38 32 48 86 +26 11 36 24 +15 54 37 70 +43 63 52 80 +35 44 54 50 +6 53 46 81 +3 56 46 62 +41 16 47 68 +43 64 50 69 +29 42 41 93 +41 33 45 83 +33 53 40 71 +9 15 48 29 +9 67 40 90 +27 84 38 91 +19 46 38 89 +31 84 46 85 +36 55 43 86 +5 46 6 60 +20 62 50 78 +15 75 31 82 +12 7 42 35 +29 4 39 64 +45 83 48 85 +39 4 42 33 +0 59 20 65 +47 39 47 84 +5 41 26 41 +42 28 44 40 +28 73 35 92 +43 7 47 12 +46 72 47 78 +19 31 46 69 +45 82 52 93 +12 56 42 61 +35 90 49 91 +33 65 47 70 +13 48 22 88 +8 74 31 87 +1 59 11 85 +37 58 41 76 +53 30 54 66 +48 38 48 64 +5 39 29 82 +27 92 40 92 +52 37 53 72 +51 81 53 85 +35 56 52 62 +53 69 53 86 +0 22 20 59 +28 85 39 93 +51 57 53 72 +32 82 51 88 +23 80 52 91 +45 5 53 45 +36 3 48 94 +18 52 31 66 +19 10 37 11 +0 34 54 53 +8 62 30 90 +6 17 19 28 +29 73 40 88 +12 83 37 90 +0 81 52 89 +21 65 32 85 +17 25 45 31 +52 66 53 93 +29 19 36 49 +17 48 46 51 +43 37 50 45 +53 87 53 94 +12 19 40 81 +45 78 49 80 +2 1 41 93 +29 90 45 91 +36 11 47 33 +45 41 51 47 +23 37 34 79 +44 53 51 71 +32 82 51 94 +18 33 40 40 +54 22 54 84 +51 89 54 93 +0 70 0 74 +43 31 48 78 +48 87 53 91 +38 91 53 93 +30 86 41 94 +0 62 2 78 +24 30 32 77 +25 33 52 82 +39 89 52 94 +20 56 39 75 +48 37 52 81 +52 47 54 61 +10 67 41 84 +24 8 38 11 +8 88 12 88 +11 82 12 92 +34 75 35 79 +4 49 5 71 +1 77 32 87 +24 13 24 44 +1 17 23 58 +2 84 34 85 +32 17 43 20 +15 16 17 49 +53 90 54 92 +10 13 50 48 +1 44 53 60 +45 4 49 72 +48 67 54 80 +54 10 54 52 +46 51 49 84 +47 50 48 66 +39 32 50 52 +9 67 30 86 +22 93 44 94 +18 92 23 92 +3 75 12 88 +44 82 53 88 +38 92 53 92 +53 40 54 54 +39 39 45 46 +45 3 50 65 +41 56 45 65 +39 81 53 90 +38 62 49 69 +32 89 32 89 +21 76 42 76 +22 18 26 54 +0 85 15 85 +51 7 54 54 +9 69 50 75 +43 38 48 77 +32 79 41 87 +35 35 43 58 +45 67 48 80 +26 83 37 89 +20 9 29 27 +26 57 50 81 +20 38 38 81 +11 26 26 30 +4 17 30 83 +54 62 54 91 +32 84 37 93 +38 73 43 78 +22 57 35 86 +19 32 33 64 +1 86 1 93 +50 3 50 92 +48 1 48 22 +1 66 47 85 +51 78 53 86 +8 66 48 69 +13 33 36 33 +6 89 40 94 +53 91 54 91 +7 5 16 85 +1 94 54 94 +18 80 50 88 +43 51 46 58 +26 55 44 74 +22 84 46 91 +41 72 46 75 +43 77 47 80 +51 71 53 78 +13 41 18 56 +27 62 32 81 +29 31 37 57 +50 33 54 78 +41 88 42 89 +41 36 41 76 +49 84 53 93 +49 36 53 92 +36 61 39 83 +9 47 43 68 +13 90 25 94 +33 53 48 83 +42 76 48 92 +48 92 51 94 +10 27 16 47 +21 13 33 27 +50 68 52 81 +28 60 31 91 +33 56 52 57 +29 94 51 94 +12 10 52 89 +29 84 44 87 +0 29 22 35 +52 6 54 16 +41 93 42 93 +18 27 20 65 +46 85 46 85 +34 15 42 69 +19 89 43 92 +45 14 49 73 +20 74 38 91 +4 14 4 43 +48 17 52 56 +35 43 46 54 +54 67 54 71 +52 37 52 64 +3 67 6 93 +15 81 44 89 +34 81 48 90 +3 29 26 80 +53 40 53 56 +47 13 47 22 +45 56 52 84 +20 8 52 27 +51 27 53 54 +20 90 31 91 +26 6 48 27 +41 29 52 53 +40 30 52 42 +19 25 48 91 +16 16 46 27 +28 47 50 72 +43 89 43 92 +8 29 32 49 +22 42 46 57 +7 87 17 92 +29 78 39 93 +34 68 46 79 +17 64 25 90 +32 76 39 88 +31 33 33 76 +44 64 50 67 +49 43 52 84 +11 61 47 76 +24 33 36 93 +22 12 53 62 +22 76 25 80 +19 6 28 46 +34 59 51 64 +52 62 52 68 +19 80 35 83 +50 10 50 65 +19 62 29 74 +6 8 45 50 +31 46 41 91 +8 23 14 26 +1 17 12 75 +6 87 15 90 +19 81 31 92 +9 57 40 74 +45 0 48 71 +45 9 49 9 +26 15 40 48 +3 17 4 78 +4 5 40 12 +2 80 5 93 +35 10 45 14 +48 57 54 91 +40 82 49 91 +40 66 50 85 +26 64 53 86 +42 60 50 66 +20 35 34 85 +21 80 27 87 +23 62 44 92 +25 26 37 59 +1 27 7 73 +21 16 24 47 +32 19 49 39 +29 37 35 89 +31 92 33 92 +1 28 37 72 +16 82 45 83 +9 64 43 82 +15 66 17 91 +42 73 44 82 +15 42 26 77 +6 6 31 36 +9 86 22 87 +9 24 30 87 +33 57 40 64 +45 4 54 36 +39 94 42 94 +43 61 44 90 +50 40 51 81 +7 1 41 76 +10 69 32 71 +3 90 51 93 +41 10 44 48 +18 14 51 16 +27 22 37 69 +4 78 30 90 +5 55 28 59 +51 67 53 87 +38 28 42 75 +0 30 39 75 +51 2 53 35 +45 89 48 94 +43 18 45 94 +6 24 46 27 +29 75 38 80 +11 48 40 62 +31 1 44 80 +21 21 37 61 +28 43 51 85 +14 19 34 50 +16 76 51 88 +8 80 23 92 +10 26 24 79 +2 51 19 54 +15 56 25 84 +35 57 48 73 +26 85 28 87 +25 51 54 63 +18 58 34 67 +17 30 37 85 +35 68 35 75 +50 3 52 14 +14 23 21 83 +39 11 45 51 +27 11 48 88 +14 56 46 85 +26 33 26 82 +9 41 17 85 +23 25 43 76 +24 92 50 93 +23 36 39 76 +10 41 31 51 +26 43 35 63 +27 78 42 90 +46 33 54 54 +37 69 53 76 +28 29 35 88 +32 21 50 93 +0 9 50 57 +4 6 41 77 +0 52 32 70 +50 56 50 73 +7 24 38 27 +5 70 25 91 +17 68 52 75 +17 73 52 83 +26 62 27 63 +32 36 32 44 +54 52 54 68 +26 20 40 56 +32 8 48 29 +25 74 45 85 +6 79 52 87 +32 27 40 32 +54 81 54 88 +35 88 40 93 +7 88 13 93 +15 87 47 91 +3 38 39 56 +4 19 31 81 +39 36 43 88 +3 38 16 79 +51 87 54 89 +41 74 49 78 +3 58 7 68 +22 78 22 81 +16 1 19 30 +37 23 50 29 +29 39 45 89 +33 68 51 78 +54 32 54 63 +11 18 41 41 +12 79 53 79 +16 89 39 93 +6 25 40 43 +36 3 42 28 +48 49 52 93 +49 69 51 90 +49 21 52 60 +47 18 47 38 +8 41 46 64 +34 8 37 77 +33 71 37 91 +30 44 46 91 +7 49 40 71 +49 70 53 71 +40 80 50 87 +50 77 53 84 diff --git a/2018/republic/10-12_d1/arta/tests/14_pattern.txt b/2018/republic/10-12_d1/arta/tests/14_pattern.txt new file mode 100644 index 0000000..b44167b --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/14_pattern.txt @@ -0,0 +1 @@ +149 diff --git a/2018/republic/10-12_d1/arta/tests/15_input.txt b/2018/republic/10-12_d1/arta/tests/15_input.txt new file mode 100644 index 0000000..8d8e42f --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/15_input.txt @@ -0,0 +1,3 @@ +4 4 +1 +0 0 4 4 diff --git a/2018/republic/10-12_d1/arta/tests/15_pattern.txt b/2018/republic/10-12_d1/arta/tests/15_pattern.txt new file mode 100644 index 0000000..1874828 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/15_pattern.txt @@ -0,0 +1 @@ +0 diff --git a/2018/republic/10-12_d1/arta/tests/16_input.txt b/2018/republic/10-12_d1/arta/tests/16_input.txt new file mode 100644 index 0000000..626a29e --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/16_input.txt @@ -0,0 +1,4 @@ +4 4 +2 +0 0 2 4 +2 0 4 4 diff --git a/2018/republic/10-12_d1/arta/tests/16_pattern.txt b/2018/republic/10-12_d1/arta/tests/16_pattern.txt new file mode 100644 index 0000000..1874828 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/16_pattern.txt @@ -0,0 +1 @@ +0 diff --git a/2018/republic/10-12_d1/arta/tests/17_input.txt b/2018/republic/10-12_d1/arta/tests/17_input.txt new file mode 100644 index 0000000..34413f4 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/17_input.txt @@ -0,0 +1,3 @@ +1 1 +1 +0 0 1 1 diff --git a/2018/republic/10-12_d1/arta/tests/17_pattern.txt b/2018/republic/10-12_d1/arta/tests/17_pattern.txt new file mode 100644 index 0000000..1874828 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/17_pattern.txt @@ -0,0 +1 @@ +0 diff --git a/2018/republic/10-12_d1/arta/tests/18_input.txt b/2018/republic/10-12_d1/arta/tests/18_input.txt new file mode 100644 index 0000000..5d03463 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/18_input.txt @@ -0,0 +1,5002 @@ +100 100 +5000 +85 56 85 94 +91 37 98 76 +38 46 97 57 +73 65 92 95 +27 18 53 57 +41 19 79 68 +52 35 82 37 +92 81 93 96 +98 30 99 37 +28 25 58 99 +59 15 74 64 +68 27 91 49 +5 26 40 87 +57 54 73 54 +94 3 96 98 +63 14 96 47 +3 26 24 39 +61 32 92 53 +61 76 74 98 +1 52 92 80 +7 71 54 75 +58 47 95 57 +78 90 81 98 +1 75 49 76 +68 23 92 52 +23 46 85 79 +64 55 78 96 +69 39 99 77 +28 50 49 63 +35 26 71 34 +72 88 81 88 +6 16 40 37 +88 1 98 17 +21 69 42 98 +13 78 50 85 +80 61 86 85 +93 22 93 28 +12 32 19 41 +31 82 62 91 +53 2 54 38 +12 65 15 82 +40 47 99 98 +12 92 95 92 +45 40 51 59 +13 7 64 51 +94 48 95 82 +71 55 96 91 +26 8 75 33 +83 50 96 95 +0 3 47 43 +89 10 92 33 +85 71 93 78 +61 18 76 34 +25 38 48 42 +29 15 93 53 +82 86 91 88 +97 84 97 89 +32 74 88 74 +22 7 23 35 +59 98 97 98 +61 34 77 86 +20 11 27 78 +37 66 88 99 +53 68 74 93 +48 92 76 98 +72 39 82 61 +26 15 83 22 +72 74 78 92 +32 23 57 77 +36 86 91 95 +78 41 92 52 +10 99 42 99 +78 56 96 79 +33 90 67 92 +95 66 98 68 +96 66 99 77 +50 85 93 87 +73 91 82 98 +65 67 75 94 +66 98 95 99 +27 27 32 53 +31 63 58 95 +85 49 85 61 +82 82 86 82 +81 17 93 29 +34 39 75 66 +65 33 89 51 +40 98 81 99 +88 42 98 55 +93 75 95 79 +78 19 95 88 +87 46 95 65 +46 70 83 70 +99 81 99 85 +3 54 73 76 +93 77 93 87 +49 7 92 24 +20 49 57 49 +75 89 75 96 +6 23 51 61 +96 97 96 98 +89 49 92 98 +95 42 99 59 +25 57 91 85 +49 85 69 97 +83 25 88 71 +6 65 96 72 +80 25 80 69 +33 9 94 55 +32 87 37 92 +80 37 95 44 +11 6 60 95 +88 1 88 80 +31 84 90 94 +55 90 57 93 +52 74 88 74 +85 46 97 74 +59 84 96 94 +54 40 78 90 +68 66 81 88 +60 9 66 76 +52 53 66 70 +30 89 57 98 +75 72 87 84 +5 8 21 63 +83 71 89 76 +6 46 18 99 +51 63 78 67 +42 59 98 69 +41 4 92 75 +98 60 99 60 +76 30 85 90 +37 92 72 97 +15 61 62 79 +48 79 79 84 +56 65 59 91 +41 95 86 99 +35 22 54 31 +83 54 84 94 +56 5 62 91 +80 21 94 27 +16 41 23 76 +15 92 97 93 +89 50 94 66 +87 52 96 77 +77 34 79 35 +98 23 98 52 +55 67 67 86 +91 83 99 98 +14 79 21 94 +32 64 38 86 +60 44 89 56 +96 98 99 98 +15 12 36 96 +15 11 20 38 +88 94 93 94 +53 23 94 63 +12 55 20 68 +83 71 89 89 +53 15 58 36 +81 61 98 92 +79 9 84 96 +29 55 69 89 +44 14 68 35 +39 84 80 98 +58 90 87 93 +75 82 88 98 +97 9 98 80 +42 98 54 98 +31 20 92 85 +93 59 99 98 +18 25 75 36 +8 2 96 32 +1 55 12 82 +40 27 64 85 +24 20 48 96 +70 24 79 85 +43 85 43 95 +82 81 88 95 +83 13 97 95 +85 42 88 80 +5 94 18 99 +99 1 99 19 +73 51 92 90 +82 19 98 52 +96 56 97 90 +33 47 92 72 +82 2 85 45 +10 63 94 91 +65 0 85 53 +32 57 92 66 +60 51 85 70 +49 23 84 47 +78 98 92 99 +1 40 73 61 +32 94 84 98 +54 53 85 90 +26 8 92 13 +42 77 53 94 +75 10 84 24 +68 5 83 34 +48 86 72 87 +3 9 17 66 +61 7 96 75 +5 29 47 36 +0 98 78 99 +22 72 88 96 +43 3 45 43 +26 29 32 71 +74 73 93 74 +43 92 89 97 +32 69 78 80 +16 34 93 44 +10 31 37 84 +91 47 98 82 +71 75 71 78 +68 85 81 91 +2 21 27 33 +20 60 73 62 +85 14 92 27 +59 72 78 95 +52 10 93 21 +90 0 99 84 +33 24 48 96 +98 59 98 95 +46 44 94 84 +51 42 82 53 +38 28 80 67 +66 11 93 69 +63 83 90 85 +51 61 72 78 +81 21 97 31 +71 98 81 98 +94 26 99 46 +83 0 99 22 +8 38 86 84 +87 48 90 52 +19 10 53 55 +65 54 81 89 +40 82 77 90 +72 47 98 65 +15 2 67 12 +17 17 53 56 +26 85 45 94 +73 70 90 76 +39 96 94 99 +76 61 95 79 +10 36 67 56 +76 40 77 77 +76 80 91 87 +76 77 90 82 +26 84 45 94 +22 62 53 68 +48 56 58 65 +58 28 92 46 +62 90 65 95 +12 11 28 92 +26 16 94 83 +81 89 83 92 +52 99 86 99 +95 70 95 71 +45 87 57 88 +4 31 20 63 +45 96 80 96 +3 88 98 90 +49 11 76 87 +68 92 71 98 +21 70 61 99 +75 37 79 49 +3 60 67 61 +1 36 75 55 +10 15 22 63 +94 22 97 48 +72 7 85 35 +36 18 85 78 +25 82 62 84 +70 96 78 98 +70 91 75 93 +22 41 45 93 +86 22 97 96 +21 65 86 90 +64 99 91 99 +5 28 66 39 +95 66 96 76 +46 45 99 61 +65 76 96 99 +38 6 93 10 +76 69 92 97 +11 61 80 85 +64 16 75 39 +57 77 94 83 +35 63 75 73 +56 43 99 49 +84 24 94 74 +3 13 54 59 +89 20 90 23 +48 51 58 96 +21 8 28 22 +25 17 50 92 +27 91 68 98 +83 42 99 75 +28 50 85 85 +65 80 91 92 +9 52 34 75 +41 66 84 86 +59 30 83 43 +36 24 64 24 +56 16 73 86 +61 59 73 73 +77 86 97 95 +65 82 96 91 +59 84 74 94 +54 70 65 96 +73 51 89 87 +8 7 12 29 +85 14 96 91 +18 0 19 48 +10 73 13 76 +63 24 81 92 +36 13 46 18 +78 19 83 21 +67 18 86 49 +49 33 59 73 +80 71 93 72 +39 40 57 70 +20 30 94 78 +14 37 82 89 +79 18 88 71 +58 34 80 38 +86 91 94 99 +56 67 82 98 +17 53 98 84 +32 8 77 12 +39 53 95 80 +27 49 83 86 +33 83 76 97 +34 59 40 80 +50 70 90 72 +53 64 56 70 +13 72 31 91 +64 34 80 34 +38 87 91 96 +5 80 13 98 +53 44 69 68 +97 68 97 98 +14 72 87 91 +19 12 74 68 +92 14 98 29 +56 5 63 31 +29 83 87 85 +37 15 95 24 +32 78 85 99 +67 99 88 99 +47 24 56 93 +90 55 97 88 +81 13 90 17 +91 6 93 85 +33 9 75 27 +75 65 79 71 +69 72 74 84 +53 83 89 87 +56 94 81 95 +64 6 95 87 +21 12 64 16 +6 48 57 51 +10 5 48 85 +22 2 83 87 +41 94 72 95 +55 45 96 91 +54 99 75 99 +55 0 87 93 +23 4 38 89 +97 3 99 8 +95 28 96 88 +11 95 27 95 +64 89 73 89 +64 3 88 84 +97 34 97 42 +39 1 89 8 +40 20 40 36 +47 7 48 8 +97 78 99 89 +61 39 81 42 +25 48 56 80 +93 11 95 79 +80 35 80 95 +85 70 88 71 +64 40 80 87 +0 21 2 53 +63 97 69 99 +84 59 85 93 +89 71 97 96 +82 9 87 63 +40 55 85 88 +80 62 85 70 +30 88 43 92 +58 72 72 90 +86 43 90 69 +18 37 47 96 +27 71 39 99 +25 36 87 56 +84 21 88 62 +41 93 49 98 +78 65 85 93 +10 76 57 98 +94 15 95 67 +85 23 93 40 +16 7 69 18 +9 24 56 45 +32 5 80 71 +4 72 96 97 +57 86 73 86 +39 82 56 98 +58 93 88 95 +69 92 76 92 +75 79 76 95 +44 1 66 38 +42 60 78 63 +32 74 35 83 +55 7 59 87 +82 97 92 97 +90 66 98 79 +47 45 84 56 +65 36 76 37 +31 24 54 79 +12 13 98 56 +10 31 48 98 +3 33 44 65 +38 93 58 94 +75 37 85 72 +14 49 68 81 +50 37 72 86 +61 43 81 50 +14 72 55 89 +49 72 65 89 +38 11 79 14 +57 67 77 96 +41 50 79 76 +60 60 67 76 +5 50 34 64 +51 5 52 47 +29 57 83 78 +82 87 97 99 +36 65 66 77 +51 10 79 59 +87 66 97 74 +30 3 56 45 +11 91 15 92 +4 47 93 79 +77 97 82 98 +69 95 99 99 +16 68 31 98 +57 46 99 50 +54 52 70 91 +94 56 97 69 +23 53 81 55 +85 7 98 88 +85 35 92 84 +21 41 27 47 +2 35 28 89 +63 24 73 55 +90 56 98 74 +80 65 88 68 +70 75 92 89 +81 80 94 85 +89 24 92 24 +46 67 57 81 +63 26 84 64 +88 19 98 82 +49 39 71 42 +40 2 75 98 +55 38 59 54 +5 59 61 86 +31 27 74 42 +41 8 65 74 +3 46 54 68 +37 71 85 81 +30 68 78 80 +12 66 81 79 +23 36 94 74 +57 95 57 95 +61 88 89 97 +94 28 97 35 +37 10 87 70 +41 80 88 87 +67 59 86 79 +31 85 59 89 +90 43 93 80 +96 4 97 19 +35 27 83 77 +80 20 96 45 +54 82 99 87 +21 75 25 95 +5 41 39 58 +19 15 28 27 +47 75 80 99 +38 26 90 69 +18 45 25 71 +68 71 88 71 +13 99 14 99 +89 11 89 28 +95 48 98 88 +25 9 48 34 +94 58 97 92 +25 66 40 74 +81 17 95 63 +17 61 96 65 +19 79 81 98 +80 41 99 90 +62 35 90 66 +16 10 90 34 +4 70 77 85 +54 91 61 96 +69 99 85 99 +44 3 61 78 +47 53 84 68 +54 43 69 60 +37 91 47 99 +56 26 74 82 +25 59 56 99 +80 26 86 97 +38 92 97 98 +89 32 96 58 +82 26 96 30 +28 59 59 99 +97 58 97 88 +99 94 99 94 +8 55 88 74 +49 25 69 62 +43 7 76 16 +15 48 33 49 +48 16 85 25 +78 57 78 77 +85 19 95 35 +83 77 88 84 +82 0 83 36 +29 38 35 94 +89 32 90 34 +11 12 29 51 +76 22 91 43 +99 67 99 82 +59 2 84 77 +12 31 13 39 +51 45 96 85 +81 13 91 21 +15 3 55 68 +88 47 95 83 +39 16 62 23 +48 15 57 53 +76 84 82 99 +7 45 72 60 +22 55 34 88 +57 84 75 88 +70 33 76 86 +83 69 93 94 +16 87 93 91 +5 89 70 99 +42 12 54 36 +52 98 90 99 +79 5 91 86 +64 21 97 70 +10 45 26 88 +55 59 79 66 +60 98 92 99 +73 67 94 79 +33 18 85 41 +18 34 60 46 +79 15 96 87 +35 88 67 91 +66 76 83 91 +89 88 96 91 +34 25 55 77 +44 27 67 59 +64 11 78 24 +65 57 70 63 +54 50 66 91 +57 71 88 73 +38 37 53 81 +92 24 99 65 +71 21 88 77 +39 9 55 97 +60 42 82 73 +51 0 77 95 +7 84 35 99 +79 92 93 93 +75 88 78 97 +97 63 99 98 +47 21 93 44 +66 75 86 81 +53 75 98 91 +81 54 87 81 +87 43 92 47 +4 30 93 30 +93 65 94 95 +92 66 97 78 +45 65 86 92 +24 87 41 95 +13 19 32 75 +62 44 78 45 +77 23 86 63 +93 58 98 59 +19 17 84 70 +56 16 67 32 +54 10 75 70 +2 68 96 98 +55 29 94 35 +80 84 88 85 +6 35 63 78 +66 15 78 71 +18 3 60 24 +94 94 95 97 +5 55 20 89 +47 67 90 88 +65 69 83 92 +87 20 94 98 +42 35 49 71 +30 29 84 80 +97 60 99 73 +33 42 80 69 +70 12 70 65 +32 63 76 94 +36 16 60 20 +56 60 87 78 +24 23 43 81 +54 60 55 76 +37 70 91 73 +58 98 92 98 +27 69 44 98 +84 96 97 96 +3 56 56 89 +51 35 69 93 +36 12 81 88 +25 29 84 52 +94 95 96 99 +44 26 88 52 +62 63 69 90 +57 66 82 81 +75 60 93 82 +91 41 99 41 +36 57 55 86 +60 51 73 51 +95 39 99 54 +92 52 93 87 +67 37 71 73 +24 70 40 93 +67 1 87 12 +21 70 99 91 +17 26 73 40 +62 71 83 81 +44 52 70 99 +58 66 70 77 +11 16 47 97 +55 99 72 99 +36 37 90 94 +44 75 89 82 +86 0 99 26 +96 91 98 98 +19 64 65 92 +89 84 90 94 +34 35 80 67 +6 5 46 74 +45 35 57 99 +53 66 97 85 +84 2 90 82 +46 13 58 19 +33 78 94 87 +57 80 98 92 +51 6 69 35 +92 1 96 84 +99 7 99 67 +31 22 32 79 +2 68 5 77 +23 97 83 97 +49 15 71 40 +23 96 29 97 +51 89 99 91 +54 30 95 34 +10 10 66 24 +51 76 52 97 +94 78 98 81 +27 65 57 82 +29 70 90 92 +75 99 85 99 +29 53 52 76 +51 28 63 80 +29 11 80 42 +13 62 67 65 +96 25 96 50 +83 35 95 68 +45 83 51 94 +21 18 25 51 +58 45 64 50 +72 60 76 74 +17 59 70 85 +4 3 49 54 +82 12 99 69 +75 55 81 76 +14 39 48 51 +95 40 99 92 +13 57 18 94 +29 85 78 95 +73 8 75 55 +36 56 80 68 +97 88 99 98 +7 27 90 74 +20 68 85 79 +56 53 95 89 +47 30 75 73 +21 91 71 95 +38 32 52 80 +15 68 96 92 +99 12 99 53 +41 57 86 92 +58 49 95 93 +18 69 60 91 +52 75 95 80 +41 95 52 98 +27 74 72 98 +30 83 42 90 +16 88 78 95 +68 72 99 76 +96 63 98 64 +53 29 78 42 +27 20 79 87 +4 39 28 40 +61 63 89 86 +4 73 49 88 +52 32 94 68 +30 65 70 70 +12 12 32 36 +27 68 95 69 +44 6 56 38 +51 30 80 37 +72 34 92 99 +43 39 47 58 +50 73 76 83 +63 23 82 93 +19 3 43 27 +57 19 81 85 +52 79 59 93 +77 33 88 39 +59 3 67 59 +11 40 83 52 +26 14 35 54 +92 90 92 90 +76 92 92 94 +22 4 39 13 +39 70 78 91 +7 46 35 84 +71 31 85 51 +33 69 65 99 +73 7 84 68 +1 78 29 90 +81 44 95 81 +23 13 99 13 +33 16 93 65 +16 56 68 68 +55 53 83 63 +89 72 96 82 +91 81 98 81 +97 24 99 39 +2 2 30 68 +87 26 91 69 +68 71 93 95 +41 48 86 64 +72 21 73 92 +50 99 90 99 +51 7 85 38 +77 27 95 96 +56 22 83 62 +96 54 97 69 +91 26 99 99 +42 68 62 91 +85 95 91 96 +77 90 77 91 +34 5 69 99 +97 12 99 24 +27 5 35 73 +22 0 33 93 +84 26 91 91 +2 58 13 71 +71 16 99 31 +21 11 59 55 +59 4 78 49 +67 1 77 68 +74 94 80 96 +98 99 99 99 +35 53 56 67 +62 54 99 78 +73 31 94 40 +27 28 70 94 +91 11 94 52 +26 44 75 89 +66 13 76 97 +44 76 58 86 +82 5 86 7 +21 50 44 61 +48 72 76 86 +94 64 94 89 +61 46 93 66 +0 53 7 69 +42 63 64 91 +39 21 66 52 +90 58 91 82 +32 40 42 88 +92 44 93 48 +79 76 81 90 +82 6 98 59 +6 66 54 95 +19 22 70 49 +20 86 48 97 +46 95 84 95 +78 12 81 83 +4 34 48 36 +30 7 44 59 +2 98 83 99 +19 17 23 59 +21 17 98 98 +78 81 92 84 +63 84 92 88 +60 44 87 82 +61 3 91 90 +86 69 86 91 +12 78 43 85 +4 70 21 72 +75 13 85 86 +66 80 72 90 +8 97 36 97 +6 82 30 98 +14 25 16 29 +76 99 80 99 +8 42 94 79 +84 47 89 63 +85 28 97 92 +23 50 71 55 +11 59 63 88 +67 29 79 36 +88 22 97 63 +87 95 89 97 +32 35 88 65 +40 66 45 74 +64 49 71 50 +50 24 86 93 +84 65 90 73 +20 18 75 86 +46 90 68 97 +28 52 66 79 +93 76 93 98 +7 74 87 85 +64 17 97 24 +67 88 96 89 +8 27 92 83 +28 76 82 90 +61 3 63 18 +34 91 64 93 +46 34 62 70 +14 80 19 80 +8 42 29 50 +21 32 83 79 +7 33 83 46 +15 91 31 99 +45 51 45 92 +98 62 98 77 +85 83 91 94 +81 19 91 35 +97 54 98 73 +17 36 86 51 +12 84 16 96 +31 80 90 89 +85 97 91 97 +67 44 75 85 +42 81 91 86 +47 23 99 44 +38 57 58 79 +14 75 15 76 +60 23 83 87 +78 89 97 98 +42 18 75 34 +82 41 99 77 +94 60 97 82 +49 16 91 51 +12 97 65 99 +65 17 84 71 +62 39 99 79 +16 25 46 87 +83 37 95 53 +7 90 8 92 +89 66 89 89 +42 19 43 23 +75 36 91 83 +45 30 47 97 +7 35 49 52 +2 53 78 98 +17 18 40 86 +61 18 95 55 +50 89 71 91 +7 15 51 29 +86 82 99 86 +87 7 93 93 +19 87 42 90 +76 71 97 90 +59 73 76 88 +57 49 66 77 +6 97 67 99 +15 49 73 71 +17 13 97 70 +15 67 17 76 +33 55 79 70 +37 70 77 70 +66 91 91 97 +62 4 65 19 +96 68 97 87 +31 87 37 88 +78 95 99 96 +8 94 37 96 +21 72 53 85 +46 2 62 18 +69 7 87 24 +5 94 36 95 +65 96 79 96 +38 67 80 79 +18 0 63 55 +38 1 54 35 +68 53 89 81 +82 48 91 78 +5 98 33 98 +33 27 34 89 +96 80 97 95 +81 49 90 78 +64 10 77 63 +3 91 64 91 +94 23 97 56 +18 15 19 42 +86 54 91 73 +55 8 62 24 +18 37 80 86 +28 87 63 97 +46 91 61 97 +84 64 85 74 +62 16 92 70 +17 7 47 28 +31 13 71 86 +3 68 64 96 +95 90 98 94 +70 35 96 48 +36 14 98 52 +96 16 96 68 +77 14 81 31 +32 89 50 94 +65 51 96 88 +64 31 83 53 +2 75 53 86 +56 69 85 92 +15 68 59 80 +37 72 75 80 +15 45 40 59 +75 88 94 97 +55 94 74 96 +51 85 69 86 +20 77 83 93 +57 63 74 98 +71 80 81 92 +31 83 35 98 +94 43 99 97 +45 56 97 76 +10 12 55 77 +67 47 89 65 +4 86 46 95 +38 87 44 96 +31 26 86 66 +27 94 68 95 +9 58 31 98 +2 77 37 96 +77 85 99 96 +73 60 74 66 +83 8 93 33 +87 36 88 83 +95 58 97 65 +65 12 67 46 +22 86 27 96 +96 96 97 98 +45 39 94 83 +52 97 55 99 +60 27 62 79 +79 3 83 16 +9 77 43 77 +8 9 77 46 +10 61 33 80 +32 17 45 50 +10 44 93 46 +81 88 97 98 +12 34 26 69 +18 39 69 87 +86 58 92 65 +40 13 97 76 +16 69 18 93 +41 6 68 19 +7 15 87 82 +23 64 52 90 +90 69 99 80 +29 92 53 93 +85 53 88 83 +43 85 52 87 +33 37 67 63 +45 61 87 68 +17 13 20 70 +71 46 98 67 +19 48 56 57 +96 38 99 53 +36 31 48 86 +83 76 95 93 +84 38 85 42 +20 69 49 86 +87 9 93 9 +37 20 97 57 +31 68 55 71 +58 14 82 40 +75 67 91 73 +52 70 71 71 +10 23 41 44 +71 14 99 22 +78 51 95 71 +24 97 58 98 +65 36 82 40 +48 19 69 27 +19 17 42 47 +67 76 87 99 +18 20 76 44 +90 45 92 67 +21 67 67 89 +29 85 83 91 +70 0 77 56 +53 14 96 19 +84 14 85 66 +67 65 98 98 +25 37 87 82 +28 1 98 60 +25 66 46 75 +35 53 46 54 +97 61 97 95 +18 17 46 72 +97 69 99 87 +85 37 94 69 +23 27 81 53 +57 19 76 49 +33 95 46 99 +87 96 90 96 +43 22 51 90 +47 14 81 48 +59 6 68 38 +73 53 90 88 +11 17 41 53 +11 93 59 99 +70 51 92 54 +84 74 84 80 +76 71 82 85 +67 17 96 19 +45 94 92 95 +78 68 89 77 +26 52 86 85 +44 85 95 97 +28 40 73 70 +83 7 98 40 +71 4 72 27 +94 96 99 98 +4 76 34 97 +69 98 77 98 +15 14 59 86 +36 47 76 71 +78 48 95 63 +0 8 38 18 +44 66 53 67 +38 53 62 68 +23 76 23 76 +73 91 93 93 +99 5 99 37 +92 25 92 98 +61 71 84 85 +38 20 98 45 +88 40 91 89 +96 83 96 90 +35 66 75 80 +39 52 67 98 +37 33 92 84 +35 65 56 99 +96 15 97 60 +94 16 98 77 +99 27 99 34 +59 11 87 16 +76 23 89 66 +43 49 56 73 +66 16 92 47 +55 70 97 72 +72 2 93 52 +55 91 92 95 +84 34 96 67 +72 20 99 79 +89 74 99 97 +16 12 62 81 +94 88 95 92 +57 73 91 99 +20 96 42 96 +98 9 98 86 +20 85 31 89 +6 58 33 80 +27 56 70 63 +14 99 91 99 +4 60 47 63 +75 33 83 60 +13 71 70 89 +90 22 98 82 +26 44 38 76 +91 34 95 37 +81 15 82 56 +50 29 79 51 +84 53 93 92 +65 74 91 88 +99 81 99 92 +24 15 76 20 +99 56 99 74 +75 47 97 86 +20 45 51 62 +28 82 65 90 +0 34 35 93 +75 12 93 29 +61 25 95 93 +47 67 64 74 +71 76 78 80 +4 65 79 85 +47 50 68 84 +75 35 75 38 +89 79 91 88 +7 92 44 97 +28 48 79 59 +1 83 91 89 +17 4 60 16 +75 44 78 50 +47 13 75 57 +44 91 48 93 +98 13 98 36 +60 21 76 65 +67 1 94 70 +79 29 96 77 +85 53 94 87 +14 41 37 64 +40 26 89 95 +43 46 97 99 +77 34 89 67 +16 0 97 59 +55 52 69 65 +39 3 57 23 +32 46 35 79 +1 3 9 98 +21 29 48 43 +2 97 91 97 +54 25 97 39 +19 92 80 97 +39 13 41 80 +93 29 99 37 +90 83 95 92 +8 6 72 90 +58 39 85 66 +16 63 69 74 +94 39 98 47 +39 53 66 54 +44 5 45 52 +72 57 81 93 +95 45 96 81 +30 23 66 57 +97 82 97 82 +63 60 66 81 +9 82 76 94 +29 35 88 84 +65 63 90 97 +73 37 86 66 +89 23 93 31 +87 53 96 78 +87 1 96 61 +16 33 20 33 +42 97 94 99 +40 55 62 98 +75 32 94 71 +12 41 88 50 +63 17 68 87 +56 25 63 32 +55 77 99 83 +2 21 85 93 +53 76 93 76 +77 52 87 66 +18 34 73 50 +28 39 33 92 +71 44 96 49 +37 25 86 42 +62 8 84 94 +74 24 88 98 +36 92 45 95 +35 30 52 48 +45 39 69 57 +85 97 96 98 +81 95 92 97 +89 7 94 65 +19 1 74 46 +75 71 99 77 +29 88 51 88 +36 54 87 66 +17 95 56 97 +8 74 89 88 +34 38 41 89 +93 14 98 63 +68 9 87 49 +74 85 90 95 +8 60 33 60 +56 83 57 85 +1 56 32 74 +73 23 86 78 +46 57 81 93 +56 23 58 80 +65 95 65 96 +26 50 87 95 +58 77 84 82 +96 5 99 74 +38 60 45 90 +19 27 29 28 +36 77 66 91 +7 33 68 74 +72 99 74 99 +16 14 80 88 +6 54 18 66 +16 36 56 73 +7 23 96 46 +39 30 93 52 +69 37 92 54 +1 40 28 86 +54 9 83 40 +80 50 97 85 +17 19 50 19 +31 21 87 69 +33 99 38 99 +16 36 33 73 +12 54 62 65 +83 5 93 37 +58 90 85 99 +17 61 84 96 +31 77 94 86 +82 63 92 63 +12 30 91 50 +27 46 74 60 +78 18 94 39 +53 79 97 79 +29 17 51 81 +12 11 45 62 +63 11 85 84 +64 31 74 79 +11 95 79 97 +4 87 25 87 +83 71 93 89 +38 42 84 84 +62 46 99 65 +44 93 89 94 +66 49 71 66 +66 20 80 52 +43 55 97 82 +2 83 99 97 +18 97 68 97 +55 70 72 90 +83 74 99 89 +14 94 36 96 +35 95 98 96 +68 50 86 78 +91 81 95 86 +1 51 34 59 +84 22 89 77 +43 68 47 73 +0 12 77 40 +13 27 30 40 +75 70 85 75 +69 9 82 37 +48 57 61 93 +74 70 98 80 +84 20 84 82 +67 67 81 79 +90 16 97 92 +26 2 61 76 +26 33 31 56 +65 42 65 81 +13 75 30 82 +81 48 88 62 +34 79 41 89 +82 95 87 96 +41 87 84 99 +93 93 98 95 +75 61 95 84 +37 56 40 59 +59 76 92 98 +41 86 79 99 +88 57 98 93 +33 73 91 76 +12 0 63 10 +77 64 81 98 +42 37 82 83 +29 19 36 80 +65 43 76 65 +31 15 97 17 +40 64 62 75 +91 16 91 27 +4 47 10 88 +98 9 98 75 +97 25 97 85 +36 64 54 69 +20 73 23 80 +83 59 83 75 +58 19 74 98 +81 4 86 55 +24 29 53 94 +5 18 29 81 +9 65 83 95 +83 14 88 64 +20 4 29 59 +88 39 94 88 +19 87 89 99 +55 74 59 95 +89 25 98 70 +98 6 99 36 +92 46 92 61 +14 57 47 89 +32 23 39 64 +94 2 96 88 +7 7 72 49 +88 29 98 88 +86 91 86 98 +5 22 34 65 +66 31 79 47 +0 74 30 96 +33 23 73 87 +6 56 42 59 +77 35 99 95 +45 29 53 50 +80 31 99 74 +40 37 83 40 +59 28 60 42 +1 8 32 40 +6 50 53 81 +88 41 95 87 +93 67 96 84 +81 99 85 99 +75 58 91 94 +82 19 87 92 +38 26 91 28 +70 95 95 98 +76 19 85 77 +91 54 99 66 +97 16 99 23 +77 90 92 96 +46 63 84 86 +61 64 71 92 +11 24 89 73 +47 4 81 32 +74 30 99 88 +60 90 98 92 +98 33 98 67 +5 82 39 85 +82 51 84 94 +97 97 98 99 +31 30 31 96 +99 26 99 32 +5 91 92 95 +30 70 50 92 +19 87 24 89 +24 52 77 70 +6 69 70 90 +8 5 76 42 +18 1 64 65 +83 85 83 86 +49 55 79 95 +58 45 80 61 +50 53 85 91 +18 98 21 99 +51 41 60 67 +59 1 97 45 +71 36 85 45 +78 97 83 97 +25 90 56 98 +60 91 86 99 +27 87 95 88 +0 55 37 61 +24 7 63 46 +49 59 89 73 +27 47 30 98 +89 7 94 17 +94 70 98 84 +43 48 99 71 +91 57 92 75 +34 80 66 93 +42 84 82 99 +59 85 82 86 +65 22 97 30 +12 54 73 58 +91 17 98 95 +35 85 70 94 +26 40 71 43 +43 95 95 98 +89 95 91 99 +68 43 85 60 +70 62 76 71 +66 75 96 75 +57 30 73 42 +93 65 98 89 +87 27 90 77 +44 47 66 57 +64 48 98 68 +6 59 29 94 +69 82 94 90 +91 96 95 97 +75 54 98 84 +61 8 79 75 +3 86 76 95 +40 80 78 91 +99 60 99 98 +97 55 99 67 +64 3 79 13 +24 12 47 50 +2 11 13 24 +74 71 91 72 +45 30 93 67 +60 99 67 99 +76 58 90 70 +90 47 95 65 +60 59 98 95 +89 4 96 90 +33 3 35 76 +25 97 77 99 +26 81 46 97 +92 71 99 96 +8 82 78 98 +89 45 90 94 +7 69 83 71 +33 22 42 96 +41 42 90 50 +98 30 98 50 +97 78 98 88 +11 56 81 62 +22 16 59 68 +89 23 89 40 +61 18 90 37 +29 41 90 97 +70 83 72 92 +32 70 35 85 +83 66 93 96 +17 11 33 63 +15 57 90 61 +75 81 85 86 +17 12 55 39 +73 97 94 97 +39 94 78 96 +59 86 89 91 +20 39 66 40 +4 19 5 60 +94 44 95 58 +26 45 28 94 +12 66 25 93 +84 87 92 92 +9 23 27 45 +68 34 74 48 +79 32 99 69 +85 92 90 96 +5 66 93 79 +7 9 87 53 +57 4 65 89 +6 5 6 88 +11 95 43 96 +71 36 86 58 +9 94 78 99 +3 39 42 76 +36 82 76 90 +9 88 65 96 +37 31 97 74 +8 74 76 80 +54 77 70 84 +71 74 75 99 +97 84 98 96 +15 27 38 65 +81 36 82 84 +49 31 82 37 +44 62 87 95 +50 7 98 10 +85 85 87 97 +97 23 97 32 +8 74 9 84 +48 84 68 89 +73 48 76 57 +67 8 69 53 +45 57 88 60 +11 82 81 92 +61 11 78 12 +64 92 79 96 +77 12 83 71 +44 39 65 65 +91 83 96 91 +22 93 53 96 +45 56 54 57 +68 38 84 47 +10 92 51 93 +81 11 99 49 +81 27 81 89 +3 74 6 92 +16 16 39 78 +71 82 85 87 +91 40 94 89 +48 76 76 95 +3 44 32 67 +16 10 27 11 +3 90 44 91 +55 72 65 76 +39 36 74 77 +57 66 85 75 +40 73 64 84 +8 55 24 56 +49 57 87 90 +56 45 92 70 +36 85 96 89 +45 42 88 87 +90 5 99 23 +81 33 91 43 +19 57 23 76 +59 35 65 44 +67 73 95 78 +49 98 67 98 +80 41 89 83 +84 54 93 54 +41 5 89 72 +70 63 76 76 +97 46 99 84 +70 64 76 78 +82 39 84 78 +33 51 36 88 +6 97 82 97 +33 39 76 54 +5 56 21 96 +73 1 92 25 +17 35 41 39 +33 23 50 31 +93 84 95 99 +33 44 34 64 +27 5 85 29 +51 93 94 93 +34 56 52 79 +30 50 47 92 +64 97 90 99 +67 87 88 96 +73 46 99 85 +40 11 98 86 +66 62 84 78 +80 69 81 82 +87 87 93 92 +72 78 89 79 +62 50 69 86 +45 56 83 74 +1 43 23 70 +91 50 98 87 +48 7 86 16 +24 50 54 72 +33 68 36 75 +19 78 93 93 +74 60 87 60 +98 95 99 95 +2 71 55 93 +57 53 64 89 +44 60 87 99 +76 80 92 90 +79 4 82 16 +53 72 64 92 +9 67 87 92 +15 63 58 93 +0 69 20 94 +92 70 96 70 +63 18 64 30 +56 68 85 76 +42 38 47 60 +39 11 56 88 +10 90 63 96 +43 12 96 45 +34 89 37 94 +80 19 85 29 +21 23 84 29 +3 77 56 84 +41 62 93 77 +40 40 64 84 +66 93 84 96 +19 59 33 82 +77 27 84 46 +58 75 59 80 +9 62 90 79 +50 39 50 42 +9 45 87 59 +38 1 50 50 +36 52 95 55 +3 11 77 88 +48 92 49 99 +90 75 99 83 +24 0 24 8 +52 43 82 82 +50 65 58 81 +9 25 31 84 +57 24 79 65 +46 40 61 98 +4 3 16 72 +27 18 79 23 +5 47 26 95 +90 8 92 93 +39 17 42 59 +18 45 94 69 +37 3 76 43 +57 79 71 98 +8 56 21 63 +14 64 73 69 +65 90 74 95 +67 46 72 84 +97 2 98 96 +53 84 63 98 +91 36 99 61 +35 55 62 68 +1 96 54 96 +18 1 62 26 +55 61 92 78 +12 34 24 39 +47 2 89 92 +61 94 87 98 +43 76 66 95 +37 24 51 62 +63 73 98 91 +0 14 64 59 +4 73 59 81 +9 38 29 78 +58 76 83 78 +78 23 81 46 +91 25 92 63 +42 66 46 95 +77 22 89 30 +72 14 80 19 +12 13 39 79 +69 93 74 94 +69 28 82 58 +2 80 59 83 +4 58 66 58 +91 98 93 99 +40 84 82 89 +77 5 98 59 +54 50 55 80 +57 88 81 96 +61 43 70 97 +47 68 90 92 +65 68 94 71 +75 23 79 37 +19 17 75 55 +76 92 83 97 +78 58 79 97 +96 13 96 82 +90 44 94 70 +89 19 92 22 +87 86 87 86 +83 10 93 61 +23 16 34 27 +56 66 61 70 +9 99 82 99 +35 47 39 69 +83 39 92 50 +97 26 99 27 +69 92 94 93 +91 21 97 94 +99 30 99 32 +97 55 99 84 +43 5 60 28 +45 34 89 76 +76 45 88 65 +58 44 75 59 +41 10 55 42 +30 14 94 86 +72 45 88 49 +1 8 3 68 +15 54 61 91 +23 15 83 86 +46 89 53 96 +21 89 25 95 +12 9 17 67 +61 9 88 37 +5 96 30 97 +94 8 99 9 +74 40 98 71 +52 53 65 62 +13 43 30 70 +58 38 96 95 +97 68 98 70 +95 16 96 44 +3 28 44 29 +92 27 96 49 +36 30 52 82 +13 44 96 93 +65 28 75 56 +96 30 99 99 +84 12 86 18 +9 49 33 50 +78 31 94 49 +36 70 45 93 +92 73 96 82 +38 45 78 49 +68 2 89 61 +56 33 98 53 +71 11 89 36 +94 40 94 64 +81 8 85 37 +57 0 81 97 +78 92 98 99 +18 71 39 71 +29 44 79 79 +13 75 72 92 +27 79 82 97 +7 23 38 26 +5 3 25 46 +45 45 51 78 +67 59 98 99 +2 2 90 71 +94 35 98 86 +68 45 97 45 +63 76 63 93 +92 56 99 67 +17 9 21 72 +77 57 89 61 +7 54 97 83 +29 11 60 17 +15 41 76 85 +81 30 93 52 +65 4 81 36 +48 95 49 99 +58 29 80 67 +23 53 45 78 +53 6 78 56 +64 69 73 70 +90 37 97 79 +31 43 44 53 +89 81 92 81 +67 54 72 67 +43 75 53 95 +79 76 99 87 +34 50 37 64 +27 68 65 68 +84 44 84 86 +90 55 99 58 +36 99 88 99 +35 79 84 90 +93 8 95 93 +29 99 77 99 +85 3 89 20 +61 36 69 62 +75 56 90 73 +23 6 56 9 +14 96 44 97 +21 73 97 80 +72 31 86 92 +12 53 64 92 +19 60 56 75 +2 26 8 93 +11 87 18 99 +50 56 77 94 +2 90 71 98 +60 5 89 71 +83 92 90 96 +96 34 97 52 +52 25 93 69 +43 17 58 75 +84 89 94 89 +82 34 96 41 +21 40 26 92 +2 2 95 60 +35 19 64 24 +2 98 80 98 +75 82 75 94 +0 54 8 72 +57 92 65 98 +20 91 40 98 +34 55 52 96 +27 88 54 92 +15 81 75 86 +14 30 96 85 +88 60 89 78 +80 4 91 67 +34 78 54 97 +24 11 71 49 +42 50 64 73 +72 79 87 96 +12 97 80 98 +99 9 99 15 +97 98 97 99 +48 35 70 96 +28 67 30 91 +40 35 93 79 +57 89 97 89 +29 24 92 35 +61 60 88 64 +86 7 89 68 +15 48 49 71 +91 71 99 72 +27 57 62 67 +47 70 94 71 +94 76 97 88 +81 62 95 81 +67 9 96 51 +62 29 86 71 +97 7 98 27 +90 37 91 63 +22 62 72 83 +71 12 72 21 +45 68 62 91 +37 61 67 97 +77 28 82 77 +68 70 76 88 +69 81 83 84 +13 48 16 69 +14 38 97 81 +37 26 74 90 +75 24 81 25 +28 54 29 99 +80 45 98 72 +71 54 94 87 +35 57 94 83 +87 80 94 81 +10 51 27 91 +20 31 43 79 +56 20 56 33 +75 64 82 84 +36 69 36 69 +96 70 97 86 +36 64 54 66 +96 42 96 89 +95 15 97 97 +93 79 96 99 +67 77 93 98 +25 79 65 82 +48 15 98 89 +91 96 95 99 +23 80 76 98 +82 65 83 99 +56 21 69 51 +79 15 80 23 +97 58 99 67 +15 80 32 82 +93 83 97 88 +27 11 43 32 +54 88 65 96 +10 81 25 99 +90 38 96 94 +99 78 99 90 +38 71 98 93 +73 42 92 42 +86 78 88 78 +32 84 75 91 +58 57 78 82 +3 11 27 74 +1 45 83 83 +24 4 63 69 +93 73 98 82 +82 37 84 57 +52 55 68 80 +96 81 97 84 +41 94 66 96 +75 74 98 86 +32 34 45 82 +87 89 97 95 +2 95 80 99 +50 66 97 82 +22 42 56 74 +92 29 97 46 +83 87 83 88 +94 50 98 79 +4 41 72 58 +12 90 17 95 +50 45 58 83 +47 19 99 67 +69 84 76 90 +59 17 95 82 +36 36 66 91 +57 47 97 78 +40 15 87 92 +10 62 33 81 +25 48 63 84 +58 55 69 71 +73 0 94 90 +51 59 59 84 +27 18 59 84 +48 2 66 91 +9 83 12 89 +86 49 98 69 +26 67 64 97 +34 23 78 76 +85 22 89 91 +52 37 58 43 +24 56 64 83 +10 46 92 97 +82 13 95 60 +99 96 99 99 +90 50 93 57 +77 33 82 55 +34 26 68 75 +35 23 69 65 +68 82 69 97 +43 36 58 51 +8 58 35 64 +70 38 78 52 +96 18 97 97 +15 28 19 32 +19 1 71 26 +64 48 69 84 +43 77 56 91 +37 95 99 98 +75 41 87 76 +6 8 13 87 +29 37 73 47 +37 73 79 74 +85 46 87 67 +26 12 65 81 +36 28 65 58 +73 3 86 90 +78 70 97 75 +8 96 93 98 +16 90 54 93 +83 98 90 99 +11 74 41 97 +66 35 94 99 +12 71 44 72 +90 4 97 53 +53 94 86 94 +64 28 78 51 +58 30 67 48 +88 61 90 81 +90 4 98 40 +87 5 99 54 +6 87 71 87 +82 3 95 41 +77 8 96 29 +57 84 92 86 +95 27 96 43 +8 82 73 82 +17 72 80 78 +46 35 91 53 +67 31 69 67 +37 67 89 80 +2 52 57 52 +55 42 99 54 +10 96 11 99 +93 39 95 53 +97 90 97 91 +94 33 96 38 +42 39 50 70 +64 56 72 60 +83 11 93 78 +91 8 99 8 +24 25 45 79 +81 42 90 98 +74 15 94 18 +40 1 42 14 +28 28 69 60 +31 59 81 93 +89 12 95 77 +49 81 59 81 +0 55 5 68 +68 95 87 98 +35 14 88 94 +48 73 63 93 +57 52 97 89 +29 95 61 96 +56 31 81 31 +5 58 44 66 +75 29 93 91 +75 28 91 66 +73 67 89 94 +5 72 19 75 +68 86 99 86 +75 76 84 90 +99 52 99 57 +93 62 98 72 +60 75 73 85 +45 67 74 72 +87 99 91 99 +91 87 97 94 +9 7 89 30 +72 7 87 70 +38 40 96 73 +72 45 79 49 +40 98 53 99 +80 67 91 89 +18 81 52 84 +76 33 78 87 +70 77 87 92 +85 59 88 75 +66 2 68 47 +56 51 64 77 +75 45 77 97 +5 13 33 46 +81 57 96 59 +21 54 27 84 +12 67 61 93 +69 92 85 95 +55 27 96 29 +17 89 26 96 +28 76 55 85 +2 44 2 70 +97 56 98 82 +9 54 91 87 +6 93 24 95 +33 66 49 93 +76 77 99 86 +21 62 74 87 +75 64 78 90 +11 36 27 61 +98 13 98 82 +50 2 96 58 +94 16 98 56 +81 2 91 84 +82 62 88 72 +17 35 46 59 +62 92 62 98 +63 54 86 99 +51 76 59 85 +8 57 59 77 +28 75 82 78 +4 11 31 32 +97 38 98 74 +20 98 33 98 +10 20 12 65 +47 92 53 94 +68 73 94 84 +40 44 92 67 +33 19 89 42 +19 38 48 45 +16 36 18 62 +63 5 78 62 +82 56 99 79 +7 77 97 79 +67 41 96 70 +94 45 96 55 +41 10 83 98 +33 86 93 88 +11 32 69 35 +5 40 21 73 +80 49 91 62 +10 22 31 44 +5 31 82 54 +73 74 75 91 +91 22 99 87 +11 19 91 69 +95 50 99 55 +96 41 98 62 +12 62 52 75 +84 77 91 93 +17 4 28 30 +38 71 67 93 +64 7 90 42 +72 65 72 76 +88 54 95 76 +76 18 91 33 +31 36 32 41 +15 81 51 81 +41 31 63 98 +76 38 86 89 +79 59 99 84 +65 13 79 29 +81 93 99 93 +42 3 87 75 +29 22 34 94 +40 2 68 14 +57 96 82 99 +28 5 90 27 +33 88 62 99 +25 10 35 50 +11 87 57 99 +82 86 92 96 +33 16 78 69 +26 73 54 84 +54 95 92 99 +61 63 85 64 +93 45 96 86 +78 36 82 84 +85 70 85 74 +43 61 51 99 +20 94 39 98 +94 17 97 46 +60 69 71 89 +68 1 75 61 +36 27 67 46 +9 64 20 86 +16 56 72 58 +58 75 72 97 +33 77 56 79 +59 22 65 79 +10 1 74 29 +61 98 91 98 +78 77 93 98 +92 61 95 83 +63 36 83 93 +90 41 90 61 +61 60 76 70 +55 69 55 88 +13 55 15 89 +79 30 83 85 +42 15 69 87 +27 87 38 87 +87 11 87 25 +20 34 72 58 +31 19 40 39 +10 33 42 46 +20 40 56 41 +51 2 62 95 +61 37 93 61 +69 35 91 72 +28 96 75 97 +91 86 95 94 +76 11 83 81 +77 54 77 64 +56 7 91 44 +32 44 55 46 +6 56 9 86 +31 88 52 99 +93 47 95 86 +36 62 66 67 +8 31 23 54 +64 28 80 90 +84 20 96 53 +31 19 36 30 +22 91 68 91 +85 94 93 94 +71 68 86 96 +75 52 91 69 +74 91 95 91 +2 52 71 90 +9 24 38 63 +15 48 46 56 +28 43 42 85 +58 93 82 97 +17 76 50 79 +55 42 86 93 +30 80 94 93 +48 82 74 92 +47 2 65 13 +77 81 80 85 +21 55 76 64 +34 90 50 90 +68 94 94 96 +13 80 59 90 +9 96 34 98 +85 64 92 85 +81 22 99 92 +64 61 88 64 +64 15 76 93 +58 80 58 94 +95 62 98 79 +44 41 63 61 +15 86 75 96 +14 80 84 89 +39 60 68 72 +85 64 91 69 +3 23 11 76 +62 92 83 94 +79 61 98 95 +65 29 65 45 +60 3 64 12 +67 1 90 12 +91 37 95 83 +4 55 38 81 +51 28 68 78 +1 9 85 97 +44 18 55 22 +19 8 37 47 +94 17 95 18 +59 95 63 98 +10 52 76 62 +72 97 81 99 +98 49 99 68 +60 83 83 83 +49 5 82 15 +39 39 82 45 +80 39 81 63 +2 27 84 34 +79 18 91 44 +2 82 59 84 +40 22 84 41 +74 22 87 74 +30 7 35 21 +49 9 71 55 +16 94 91 97 +29 52 87 84 +88 90 99 97 +29 27 36 33 +16 59 95 89 +40 99 44 99 +0 83 66 87 +96 34 97 49 +10 16 27 47 +32 91 94 96 +33 0 51 59 +14 79 55 85 +3 53 48 92 +10 45 62 72 +75 41 78 68 +16 59 52 78 +80 52 82 96 +26 22 50 76 +19 28 64 28 +72 14 91 26 +21 40 47 68 +63 24 65 51 +78 98 94 99 +7 22 57 82 +11 27 35 98 +48 55 89 95 +26 99 37 99 +44 1 72 98 +93 98 98 98 +64 89 79 94 +10 85 82 98 +54 26 73 36 +2 11 30 84 +62 94 77 96 +37 12 53 84 +30 71 81 75 +87 53 98 97 +72 27 86 84 +43 6 83 39 +68 96 96 96 +22 83 40 84 +87 1 95 69 +13 15 24 95 +81 84 86 90 +12 44 27 60 +35 14 71 31 +56 49 57 99 +47 58 59 86 +82 71 94 97 +67 6 67 41 +53 33 58 88 +14 92 35 92 +48 16 94 80 +95 59 96 82 +69 43 88 52 +51 95 52 95 +0 12 72 90 +39 60 86 72 +66 1 69 73 +28 80 88 87 +82 32 89 76 +46 96 96 96 +11 31 39 77 +61 56 89 86 +68 21 78 29 +27 48 31 77 +31 99 80 99 +20 23 31 73 +11 60 57 70 +76 56 93 66 +18 66 39 68 +17 12 37 30 +19 58 25 60 +46 45 66 63 +73 88 84 92 +73 62 93 81 +70 16 76 95 +62 28 80 72 +29 79 51 83 +46 67 50 82 +93 27 95 46 +37 59 84 82 +20 3 89 8 +96 27 99 30 +72 65 92 97 +8 34 51 67 +97 78 97 85 +4 85 9 93 +37 81 62 92 +95 54 95 83 +75 28 81 67 +20 49 49 73 +33 74 52 89 +5 53 41 63 +10 19 67 22 +37 59 73 86 +72 12 95 18 +45 27 50 53 +14 88 92 88 +70 81 74 90 +12 63 82 99 +69 30 75 34 +66 67 81 83 +43 8 50 72 +61 94 86 98 +63 33 83 53 +59 53 71 71 +58 77 61 80 +5 93 95 99 +10 31 24 48 +72 33 95 58 +82 80 87 96 +73 9 99 10 +84 93 98 98 +63 10 95 90 +55 48 79 82 +22 71 34 90 +53 27 88 91 +70 5 73 40 +39 20 53 46 +84 56 95 81 +68 82 68 89 +29 16 32 35 +90 34 92 76 +40 81 86 96 +93 7 96 41 +49 16 75 50 +17 31 39 93 +77 39 89 64 +0 44 3 51 +63 13 72 22 +14 72 58 99 +50 20 56 51 +72 61 74 98 +68 13 81 59 +49 13 61 68 +76 11 90 37 +20 79 77 88 +77 16 99 44 +4 25 88 64 +9 95 69 99 +26 72 83 91 +60 16 60 74 +91 27 94 90 +82 3 95 50 +59 20 74 45 +92 89 94 97 +59 49 97 84 +56 90 65 99 +84 16 93 19 +68 61 68 74 +18 28 75 81 +99 56 99 95 +74 90 86 98 +40 37 91 52 +72 0 89 5 +65 6 72 58 +62 2 82 15 +5 61 61 94 +3 68 47 80 +6 88 78 94 +45 9 71 26 +52 47 97 62 +55 91 67 95 +52 81 92 83 +67 29 78 45 +30 39 36 78 +37 23 53 63 +24 65 54 76 +38 94 97 98 +73 79 99 99 +47 65 54 89 +42 6 76 64 +0 25 79 41 +36 32 41 75 +5 2 94 41 +80 63 82 69 +84 52 86 80 +86 78 89 86 +45 27 75 40 +67 42 70 45 +16 15 35 60 +31 19 96 86 +15 72 73 76 +43 0 55 65 +33 55 93 99 +48 95 91 97 +0 8 33 84 +98 35 99 79 +28 49 83 51 +22 24 27 80 +98 98 99 98 +21 46 44 56 +62 35 81 40 +58 26 92 75 +25 68 78 74 +80 4 86 61 +7 10 55 93 +30 51 89 54 +42 35 97 48 +97 41 99 41 +34 21 94 92 +21 48 90 52 +87 63 95 78 +33 49 44 53 +14 3 27 81 +46 17 54 32 +28 3 59 12 +28 7 83 86 +42 0 79 52 +85 48 94 72 +43 10 89 66 +83 47 94 74 +69 66 96 83 +3 45 61 97 +28 82 85 98 +77 46 89 94 +97 57 97 65 +33 58 67 85 +44 52 94 68 +33 21 62 58 +79 30 94 49 +76 8 86 73 +33 49 48 60 +49 33 70 98 +72 3 99 14 +93 87 93 94 +28 98 94 98 +57 72 93 77 +45 52 95 89 +78 20 80 20 +64 7 64 27 +55 93 72 97 +26 10 98 94 +35 57 93 90 +92 78 92 97 +72 10 86 12 +22 54 87 55 +96 75 96 76 +29 88 57 90 +16 93 28 96 +16 46 74 87 +32 35 84 52 +58 58 73 82 +97 25 99 64 +27 19 55 53 +96 81 96 81 +58 85 95 93 +91 77 91 79 +82 8 91 25 +35 98 57 98 +70 62 79 83 +64 21 88 37 +31 88 99 91 +43 16 76 59 +46 85 53 94 +81 37 84 88 +91 87 99 87 +66 68 85 71 +31 40 33 54 +47 40 97 42 +95 67 95 85 +83 14 86 29 +39 72 39 89 +26 74 42 88 +68 35 92 84 +21 12 86 76 +66 74 69 88 +52 76 98 94 +7 55 34 87 +32 10 68 51 +6 23 63 33 +41 3 75 79 +60 65 75 79 +73 10 75 65 +59 3 83 97 +67 64 74 66 +10 48 35 66 +49 93 68 93 +78 9 91 96 +15 81 81 94 +8 20 31 94 +66 51 83 68 +49 0 68 35 +85 85 99 98 +36 35 61 85 +67 54 75 56 +72 66 90 79 +79 10 80 49 +39 36 87 74 +19 38 81 89 +36 60 51 91 +6 62 51 88 +46 31 66 60 +90 37 90 53 +67 23 77 42 +34 40 39 46 +42 78 60 98 +25 16 68 28 +41 11 94 41 +69 35 81 44 +20 84 31 93 +97 27 97 40 +96 66 98 83 +27 95 49 95 +93 5 95 32 +83 43 92 57 +44 6 79 94 +22 16 82 74 +65 34 78 75 +44 86 47 95 +50 18 85 73 +7 45 66 94 +59 5 90 33 +2 89 15 89 +80 27 86 32 +55 34 61 63 +46 82 68 95 +24 24 73 98 +78 56 78 74 +2 8 11 72 +1 27 31 91 +29 33 30 54 +78 53 85 71 +61 92 94 99 +47 92 86 93 +73 93 88 98 +52 54 77 91 +75 75 76 92 +34 82 43 98 +21 4 41 17 +21 85 42 94 +47 39 81 74 +15 54 29 87 +66 60 74 96 +35 83 91 94 +34 19 55 45 +31 42 76 67 +6 37 35 39 +18 61 73 73 +87 69 94 99 +50 22 83 36 +20 65 78 78 +80 39 94 46 +61 23 85 24 +55 7 82 19 +87 80 94 88 +1 40 11 49 +33 57 48 62 +45 43 49 51 +58 96 58 98 +66 47 83 89 +9 15 21 93 +95 6 99 34 +8 94 14 97 +25 10 80 84 +42 16 50 28 +84 94 93 99 +77 54 82 59 +94 30 94 94 +41 68 74 88 +94 94 99 94 +55 50 71 60 +6 92 49 96 +14 76 50 94 +74 9 92 49 +17 14 27 84 +23 33 96 58 +91 65 97 99 +25 24 80 62 +17 64 17 75 +13 97 99 97 +56 12 58 35 +12 90 79 93 +89 32 89 73 +2 34 85 56 +3 70 64 94 +12 6 38 33 +29 96 52 96 +42 65 90 87 +13 72 40 74 +53 97 89 97 +46 41 94 75 +71 71 93 99 +62 87 80 97 +70 51 90 62 +97 87 98 99 +12 65 94 91 +72 20 80 97 +42 49 48 63 +47 88 99 92 +29 12 90 25 +24 5 81 7 +44 92 90 94 +1 88 81 97 +64 28 65 83 +30 33 44 36 +51 30 92 58 +93 93 96 97 +28 79 98 95 +88 19 88 55 +29 27 51 37 +94 91 95 99 +34 10 93 45 +54 27 99 76 +71 52 80 66 +27 25 84 57 +49 66 89 76 +26 69 79 70 +82 15 99 93 +40 73 47 75 +77 0 84 96 +21 0 97 37 +87 20 99 48 +62 62 69 63 +60 56 84 67 +20 44 69 95 +14 40 26 97 +6 85 43 90 +41 77 97 78 +47 94 68 99 +74 69 96 83 +89 99 94 99 +57 26 85 78 +20 7 85 36 +98 55 98 80 +37 56 66 93 +31 85 96 88 +55 96 96 96 +96 27 98 42 +37 33 70 67 +86 51 93 63 +54 66 95 70 +26 30 59 42 +80 92 99 96 +79 28 87 36 +78 39 93 41 +11 50 36 74 +10 14 86 29 +58 31 71 59 +59 78 72 82 +17 76 28 86 +96 83 98 90 +36 71 43 82 +19 30 39 49 +65 59 78 73 +19 65 97 94 +71 62 76 90 +74 6 75 24 +11 54 71 84 +80 56 87 88 +79 9 81 79 +91 57 93 65 +94 34 97 80 +49 91 53 96 +13 37 54 69 +52 26 73 98 +78 26 94 88 +5 24 40 53 +75 95 82 96 +81 20 82 82 +95 45 95 59 +59 38 63 85 +98 75 98 80 +81 63 91 84 +35 15 45 44 +19 70 82 80 +85 48 88 57 +50 32 77 65 +52 34 75 48 +82 68 95 87 +63 89 73 91 +24 48 30 79 +69 70 71 97 +5 94 80 95 +57 44 74 63 +97 12 98 54 +72 60 97 64 +57 17 99 84 +3 53 94 96 +22 25 95 82 +14 70 51 81 +59 41 60 66 +62 55 78 83 +31 28 47 75 +91 20 96 92 +1 67 24 71 +67 73 84 99 +50 18 85 90 +98 87 98 93 +51 30 86 39 +64 86 82 91 +36 25 82 95 +99 64 99 96 +1 80 14 87 +66 81 73 91 +29 28 93 47 +42 57 83 68 +18 61 21 96 +21 96 27 98 +99 94 99 96 +9 10 9 56 +18 60 67 70 +66 35 88 40 +19 66 23 88 +22 9 90 31 +79 78 87 93 +6 9 15 89 +17 35 90 93 +60 34 78 36 +56 57 94 77 +23 57 26 70 +87 25 92 27 +5 66 83 98 +24 6 59 88 +58 46 90 60 +29 29 60 81 +82 75 82 86 +58 33 97 42 +86 31 95 35 +5 4 60 41 +80 48 81 66 +81 76 84 94 +34 86 92 95 +12 31 66 86 +59 97 98 98 +41 28 97 55 +91 31 98 76 +58 83 98 87 +98 36 98 88 +23 1 26 19 +53 69 80 76 +18 13 92 82 +36 28 61 49 +96 92 96 97 +1 67 11 94 +34 22 50 27 +96 37 96 61 +62 71 68 86 +53 99 71 99 +6 19 99 61 +81 61 98 66 +24 55 43 84 +69 2 96 59 +28 22 36 91 +69 55 91 85 +81 56 91 78 +34 41 75 96 +76 78 81 96 +17 75 71 80 +29 24 61 96 +38 69 84 94 +45 66 93 74 +74 23 79 32 +9 0 55 5 +17 23 33 52 +69 58 81 72 +61 86 88 90 +90 52 98 68 +41 55 74 62 +29 46 69 86 +19 64 44 91 +77 29 95 61 +50 95 71 96 +33 41 71 68 +52 98 72 98 +27 34 68 44 +37 44 51 60 +31 99 55 99 +7 34 93 72 +94 45 98 55 +32 75 68 97 +55 53 96 95 +19 16 24 34 +37 14 76 60 +7 53 95 87 +75 40 77 61 +94 50 94 67 +75 96 90 96 +28 6 47 23 +0 65 39 66 +49 67 52 84 +88 76 95 87 +59 84 93 97 +30 29 97 50 +65 55 92 80 +41 72 47 86 +85 92 98 96 +35 93 97 96 +23 12 47 82 +87 21 92 51 +52 11 77 61 +0 39 60 41 +92 53 96 86 +56 47 80 82 +80 2 95 47 +5 66 61 82 +73 34 80 55 +19 24 60 99 +43 98 43 98 +68 53 99 73 +7 12 54 91 +55 0 89 17 +13 63 27 92 +94 87 94 88 +26 81 88 81 +7 37 30 97 +75 0 79 85 +19 31 31 93 +28 61 32 77 +14 60 65 74 +71 32 93 76 +93 9 97 13 +31 97 60 99 +48 29 86 75 +49 41 52 50 +84 45 94 96 +38 23 56 50 +23 30 74 74 +70 91 81 93 +34 58 62 66 +63 19 71 98 +14 75 90 82 +92 33 95 55 +32 16 82 22 +35 15 78 67 +35 94 52 98 +80 54 89 81 +26 8 44 80 +51 78 64 88 +16 31 72 43 +85 21 86 23 +38 3 47 10 +48 15 71 64 +85 44 85 69 +94 29 94 93 +45 10 95 90 +86 35 91 80 +43 30 46 32 +4 76 4 85 +88 15 99 24 +60 1 97 24 +79 89 96 94 +35 50 42 78 +82 29 96 97 +45 76 98 81 +18 51 24 72 +44 30 45 31 +3 3 5 88 +11 73 38 80 +97 76 98 82 +40 47 63 94 +62 4 68 74 +32 87 62 97 +78 82 87 96 +61 12 91 82 +85 63 88 67 +67 62 72 77 +60 38 65 90 +48 80 83 89 +57 87 82 89 +6 44 61 73 +62 60 85 89 +1 76 16 92 +70 3 92 70 +50 23 63 95 +96 45 98 96 +81 99 90 99 +6 11 99 71 +51 53 92 85 +87 96 93 97 +97 41 98 47 +73 12 98 48 +4 83 51 90 +8 83 37 95 +51 54 68 77 +93 15 96 61 +44 16 60 81 +40 46 84 62 +12 16 96 36 +47 85 73 95 +2 83 16 88 +73 16 80 62 +99 88 99 98 +11 87 77 94 +49 61 66 78 +54 14 71 39 +96 11 96 37 +51 66 82 87 +3 37 10 83 +6 50 86 89 +89 38 92 41 +56 91 59 96 +53 10 60 31 +65 81 83 86 +89 93 94 93 +22 8 68 95 +60 49 83 74 +32 39 58 49 +4 3 76 69 +67 72 96 77 +41 85 99 92 +16 70 60 97 +56 91 70 97 +36 78 51 81 +81 49 94 69 +14 15 79 86 +57 75 84 86 +89 17 97 79 +13 29 73 49 +59 18 82 47 +89 96 92 97 +40 16 40 55 +97 67 98 86 +61 84 79 95 +16 78 27 80 +41 59 71 99 +32 19 39 23 +88 7 93 31 +31 28 35 63 +59 15 98 57 +33 22 98 88 +17 68 20 95 +35 93 68 97 +52 72 61 75 +14 90 43 91 +69 63 82 96 +86 99 95 99 +56 37 81 39 +68 35 79 96 +1 66 5 70 +69 67 89 94 +22 50 66 92 +72 6 75 51 +74 90 81 98 +84 54 95 65 +36 97 36 98 +7 81 73 86 +73 87 89 91 +20 72 78 95 +26 25 35 49 +70 27 88 97 +84 71 93 71 +7 28 49 44 +10 48 48 69 +14 68 87 96 +71 86 84 90 +21 9 26 19 +44 40 58 69 +31 6 58 11 +22 66 45 99 +67 53 82 94 +99 60 99 68 +4 96 44 97 +0 95 95 97 +91 41 93 64 +70 87 97 94 +72 26 72 51 +17 79 88 95 +61 90 90 96 +62 44 63 46 +89 62 92 73 +79 26 83 60 +74 56 79 70 +97 66 99 92 +97 64 97 73 +37 94 79 99 +12 26 93 83 +32 57 74 69 +3 89 10 92 +62 36 62 69 +76 43 92 58 +32 57 37 59 +32 22 37 28 +25 40 35 74 +37 77 86 89 +85 1 97 38 +3 97 46 98 +13 24 36 63 +19 13 34 86 +17 85 35 96 +68 2 89 51 +34 25 43 74 +72 20 72 24 +0 90 53 94 +4 67 66 92 +37 35 55 52 +55 42 57 70 +4 86 6 93 +79 32 91 56 +19 63 87 94 +12 62 99 74 +2 16 90 36 +43 74 60 82 +78 59 94 85 +57 99 66 99 +54 38 59 43 +66 34 90 75 +49 52 59 70 +78 3 88 42 +86 46 91 56 +19 86 60 96 +23 66 97 74 +24 15 63 52 +67 35 97 91 +20 26 47 98 +60 99 87 99 +13 3 73 56 +89 64 94 79 +50 4 82 50 +97 36 99 47 +78 50 87 67 +82 48 84 95 +58 52 87 55 +99 89 99 98 +82 55 86 77 +22 26 27 33 +48 51 52 77 +67 91 78 91 +96 92 98 93 +47 90 55 94 +19 86 93 95 +54 21 68 44 +13 42 62 82 +2 73 87 81 +46 83 74 98 +74 1 76 38 +84 22 85 99 +52 87 79 87 +32 98 65 99 +18 67 34 77 +17 45 99 59 +57 83 99 90 +72 85 80 87 +33 50 51 89 +2 83 50 85 +90 46 93 47 +84 83 98 90 +95 15 98 75 +2 3 41 4 +50 87 76 90 +73 95 94 98 +65 92 86 99 +66 84 70 95 +68 48 70 58 +20 34 95 97 +60 30 85 37 +65 20 79 61 +89 54 98 93 +90 92 96 93 +2 33 60 54 +19 20 51 86 +92 87 99 92 +44 2 84 68 +62 55 89 98 +26 60 81 82 +56 2 58 13 +86 37 92 79 +43 56 82 71 +25 55 67 83 +82 2 92 34 +79 35 89 68 +56 42 69 63 +28 48 93 80 +36 90 82 90 +82 28 94 38 +68 86 85 97 +9 45 82 65 +63 9 78 45 +41 41 90 83 +11 60 60 79 +8 71 48 84 +28 27 61 71 +58 20 94 24 +63 62 70 89 +51 7 70 18 +67 5 97 56 +40 93 51 96 +95 84 97 84 +90 77 99 91 +97 28 97 74 +81 34 91 66 +49 0 51 69 +54 88 92 91 +33 29 38 62 +6 22 90 89 +87 2 88 4 +56 11 73 43 +90 57 96 78 +79 44 81 79 +29 60 82 91 +47 60 91 71 +74 33 78 65 +59 21 93 50 +40 83 45 84 +49 76 71 93 +21 86 49 96 +1 96 94 97 +41 15 44 40 +81 60 99 81 +45 46 72 48 +12 44 91 76 +49 70 79 70 +31 4 64 28 +83 68 98 81 +55 90 98 90 +97 84 98 84 +1 51 43 84 +7 75 79 83 +68 9 72 20 +78 19 98 33 +91 24 92 26 +39 34 81 97 +40 56 85 83 +22 60 66 95 +38 57 85 65 +27 72 48 90 +88 60 94 88 +73 67 96 73 +72 91 87 93 +29 25 72 44 +77 52 83 76 +8 17 38 92 +85 99 89 99 +18 69 23 96 +56 35 83 94 +12 25 62 47 +47 21 61 96 +35 91 66 95 +46 2 46 11 +58 74 86 79 +54 23 66 80 +28 75 54 77 +79 36 91 60 +51 49 79 79 +39 95 75 98 +6 34 39 99 +50 48 83 50 +81 60 92 63 +52 76 84 89 +80 41 88 61 +90 27 92 79 +23 43 91 76 +1 51 89 92 +73 94 75 94 +17 4 36 62 +28 85 78 86 +7 23 61 51 +39 68 65 83 +12 94 44 98 +96 20 97 46 +40 60 71 88 +70 25 79 56 +64 74 85 80 +56 31 86 68 +73 66 89 90 +44 31 89 71 +90 91 94 93 +81 71 98 92 +21 47 29 66 +37 93 74 93 +35 88 61 98 +96 65 98 85 +27 32 78 72 +40 18 72 76 +95 65 95 90 +30 1 71 14 +68 74 97 91 +59 10 62 61 +61 76 67 98 +21 28 65 40 +4 10 17 66 +46 61 54 89 +24 57 82 89 +37 57 65 74 +92 92 95 99 +60 26 86 52 +31 25 78 62 +11 42 40 56 +62 14 87 94 +91 5 94 11 +93 70 99 96 +32 31 32 38 +30 81 78 95 +35 79 73 79 +28 52 88 77 +17 39 76 45 +81 58 84 68 +74 5 74 94 +45 0 51 66 +91 27 92 83 +77 50 81 54 +57 12 86 97 +21 35 74 81 +67 93 92 96 +70 82 91 91 +72 61 79 80 +13 7 21 8 +27 30 77 55 +18 70 62 82 +69 14 73 99 +6 17 58 70 +30 26 81 26 +93 16 99 60 +33 54 88 89 +88 80 98 82 +95 31 97 41 +96 6 97 23 +60 20 96 49 +34 95 44 95 +14 73 82 93 +69 94 83 99 +12 3 91 9 +83 98 85 98 +92 2 92 56 +8 16 97 54 +54 74 90 97 +17 67 35 69 +67 11 69 20 +11 72 27 92 +6 12 8 96 +5 74 46 82 +86 96 95 98 +14 90 74 97 +86 68 93 76 +20 56 26 64 +48 26 86 82 +18 32 97 87 +54 94 76 97 +15 42 80 73 +52 72 64 94 +93 44 96 85 +96 3 99 73 +35 82 93 86 +17 56 93 92 +87 24 95 40 +33 72 62 98 +33 40 91 64 +11 2 53 29 +49 88 64 96 +33 94 48 95 +77 26 79 34 +47 45 82 81 +65 24 78 70 +94 82 94 95 +2 60 20 87 +18 6 59 84 +11 28 57 28 +85 29 88 59 +51 95 62 98 +18 16 73 18 +61 98 97 98 +30 5 99 15 +90 56 94 90 +74 13 99 41 +67 31 93 77 +83 81 90 89 +52 61 56 93 +45 5 83 17 +39 80 65 92 +77 0 93 30 +55 82 85 93 +51 62 97 98 +25 26 58 48 +64 97 82 97 +69 53 74 78 +24 56 47 96 +54 29 71 64 +38 3 64 31 +78 50 84 90 +60 42 75 55 +19 68 71 80 +72 2 82 4 +78 98 89 99 +21 30 99 46 +18 98 80 98 +98 62 98 76 +34 98 70 98 +89 12 93 26 +8 45 75 70 +90 66 95 73 +14 52 55 80 +10 94 79 95 +37 70 73 77 +76 38 91 41 +16 96 47 96 +67 84 85 84 +38 33 49 46 +78 39 78 58 +70 96 81 97 +71 96 88 98 +0 21 94 23 +1 34 10 75 +83 39 84 97 +62 42 90 93 +17 9 69 49 +69 48 90 63 +25 72 66 94 +29 28 35 61 +30 91 43 93 +44 67 94 71 +41 88 45 92 +17 19 36 31 +75 8 84 69 +3 98 22 98 +24 23 35 73 +44 63 48 93 +65 45 83 51 +82 31 89 55 +62 26 74 53 +13 58 27 90 +97 95 99 95 +27 4 88 36 +26 46 43 79 +55 13 77 78 +37 46 78 75 +67 64 84 80 +4 69 75 76 +41 12 83 37 +62 92 79 96 +62 62 73 69 +88 71 95 75 +2 72 56 81 +71 82 81 87 +54 50 60 95 +16 25 54 99 +66 79 87 97 +71 57 87 80 +3 45 32 61 +21 21 29 69 +74 78 77 78 +15 6 52 68 +43 51 91 67 +40 99 89 99 +60 5 82 70 +51 70 67 70 +87 35 92 38 +62 12 99 40 +27 82 67 85 +36 29 96 37 +75 41 84 97 +40 22 84 54 +66 46 99 72 +16 5 58 11 +89 31 95 74 +3 25 16 47 +61 77 95 81 +99 91 99 95 +30 4 36 42 +4 55 72 75 +72 32 94 87 +74 4 99 28 +94 70 97 81 +27 35 38 96 +83 69 99 93 +87 61 89 98 +59 2 78 88 +43 84 58 95 +72 77 83 90 +22 99 33 99 +26 6 69 32 +43 43 63 50 +37 8 73 73 +77 70 93 77 +95 77 99 93 +61 95 84 97 +31 4 90 7 +48 48 71 61 +16 2 43 51 +82 11 89 53 +80 58 88 73 +36 42 59 98 +70 81 95 94 +19 32 71 39 +60 14 94 96 +31 41 37 79 +5 98 76 98 +65 1 72 47 +8 58 29 91 +21 98 84 99 +59 44 96 61 +33 65 83 88 +5 18 52 32 +8 97 28 98 +36 83 45 98 +39 65 67 79 +20 92 40 92 +48 85 72 86 +14 76 28 80 +46 64 97 71 +22 8 31 86 +70 61 76 68 +98 52 98 83 +41 49 90 59 +60 56 95 85 +20 79 50 87 +92 96 92 99 +55 57 57 60 +76 53 92 78 +2 72 92 85 +18 49 40 97 +99 99 99 99 +46 27 84 65 +34 17 38 50 +57 37 94 76 +83 66 83 85 +3 31 51 61 +79 30 85 86 +65 95 72 95 +96 50 98 68 +36 24 41 63 +9 97 33 98 +48 73 61 84 +79 45 94 80 +46 36 73 69 +66 68 68 92 +79 21 83 56 +9 71 31 77 +58 75 78 94 +90 49 92 63 +10 27 50 76 +10 41 66 72 +93 72 98 81 +51 40 86 88 +79 71 85 83 +1 21 63 77 +21 25 52 96 +76 93 94 95 +62 64 76 65 +73 27 85 95 +2 86 30 96 +81 36 97 94 +85 34 88 54 +33 20 64 88 +68 60 92 85 +28 12 35 34 +33 62 95 76 +52 6 76 7 +70 70 89 94 +61 0 71 18 +31 9 58 44 +48 21 90 80 +89 79 99 92 +93 18 94 52 +23 76 30 82 +90 42 94 69 +76 28 96 58 +50 43 95 65 +18 40 96 69 +19 34 70 99 +41 91 58 95 +12 15 77 30 +39 74 68 92 +88 27 96 29 +62 77 66 87 +1 33 80 89 +61 83 62 95 +41 1 42 87 +94 18 99 53 +49 8 81 75 +65 33 92 38 +33 18 95 59 +52 76 58 81 +21 70 77 90 +78 7 93 46 +99 54 99 95 +56 27 70 43 +55 24 60 76 +23 44 70 61 +10 26 77 97 +43 65 86 83 +11 47 72 63 +61 91 82 96 +5 24 95 61 +11 95 95 97 +79 19 97 27 +42 75 44 84 +54 31 95 31 +35 61 66 76 +95 51 95 85 +79 24 92 49 +90 67 92 76 +45 76 65 92 +20 14 35 96 +29 71 82 72 +62 70 87 88 +39 23 57 83 +52 66 65 93 +40 9 78 85 +79 3 89 17 +25 41 72 61 +39 20 65 70 +93 91 96 97 +53 42 72 55 +40 27 46 85 +54 68 90 79 +23 58 54 64 +87 45 97 55 +21 99 33 99 +51 81 65 91 +53 3 57 65 +40 76 86 95 +93 22 98 86 +99 98 99 99 +85 63 90 80 +19 36 44 62 +78 40 85 68 +65 66 70 97 +3 55 80 84 +87 94 93 99 +67 38 73 41 +68 56 81 98 +89 29 99 53 +6 12 79 98 +47 35 79 73 +13 38 36 93 +39 72 83 79 +53 46 70 64 +34 50 92 51 +8 68 28 91 +40 67 58 90 +33 38 52 70 +56 28 91 49 +14 25 29 84 +7 57 78 82 +87 79 96 95 +5 7 40 24 +85 28 92 67 +45 5 83 83 +12 73 47 93 +71 44 72 95 +17 79 99 83 +84 59 88 63 +96 66 97 79 +0 43 5 55 +23 51 86 74 +93 80 93 92 +42 5 67 20 +34 54 41 58 +89 17 95 40 +60 37 95 96 +41 74 65 81 +84 65 91 69 +39 18 50 22 +7 7 11 15 +51 50 91 75 +57 2 78 33 +59 50 94 89 +31 63 61 73 +46 35 70 56 +89 25 94 49 +37 35 44 55 +21 46 43 64 +89 85 92 96 +97 85 98 88 +10 83 29 88 +33 85 81 90 +18 6 59 11 +58 56 71 81 +80 9 90 11 +40 70 96 99 +25 49 69 99 +17 1 27 35 +19 46 84 77 +76 0 79 63 +29 74 58 80 +40 33 76 33 +88 65 89 92 +46 94 96 97 +26 75 52 92 +87 37 91 77 +49 37 75 91 +11 43 32 99 +36 51 77 81 +26 77 60 89 +75 33 99 33 +27 46 30 92 +46 26 54 60 +16 50 60 88 +93 80 96 86 +96 66 96 93 +23 49 30 59 +81 54 96 90 +39 64 49 76 +11 98 75 99 +29 90 77 94 +90 46 99 67 +95 90 99 98 +32 98 34 99 +97 69 97 90 +9 74 44 79 +40 74 43 94 +0 71 77 82 +12 19 55 90 +69 8 98 12 +94 79 94 90 +22 78 60 92 +23 78 82 95 +89 61 98 76 +95 72 95 86 +5 24 17 27 +55 26 74 51 +49 29 53 63 +51 55 85 55 +47 90 59 99 +88 36 94 91 +5 45 25 97 +43 97 99 99 +8 98 46 99 +73 18 93 55 +4 16 42 79 +17 55 70 61 +62 67 93 98 +5 32 57 90 +55 40 75 45 +49 81 85 83 +69 79 72 91 +75 63 87 95 +81 85 89 95 +37 73 58 94 +28 12 38 81 +78 13 97 39 +68 70 87 83 +69 85 91 99 +18 30 64 30 +92 94 96 94 +2 32 36 70 +42 4 48 79 +80 81 99 94 +98 60 98 86 +23 65 48 81 +78 32 93 40 +28 92 65 97 +81 34 89 50 +96 66 97 92 +25 65 79 85 +27 3 37 18 +17 43 65 51 +98 7 99 45 +81 38 88 71 +78 19 84 52 +85 71 85 96 +62 2 99 92 +66 38 70 39 +21 53 99 68 +77 64 77 74 +85 55 95 72 +5 47 34 74 +21 74 35 80 +77 86 84 94 +44 4 63 82 +4 98 32 98 +17 51 55 73 +75 18 91 37 +13 42 74 66 +99 4 99 85 +88 1 92 72 +49 54 87 88 +96 13 97 58 +68 18 86 74 +79 29 86 50 +70 62 83 82 +86 14 90 25 +39 72 47 75 +9 53 35 99 +88 47 91 72 +4 84 77 85 +77 29 81 58 +81 64 85 92 +39 15 46 82 +47 66 93 82 +56 84 63 84 +28 29 82 81 +66 98 98 99 +0 45 5 49 +76 91 84 97 +32 43 88 73 +89 89 96 89 +48 99 90 99 +6 95 35 97 +62 5 71 80 +52 34 69 76 +25 73 31 99 +32 92 92 99 +23 99 58 99 +78 61 84 88 +51 63 82 82 +34 93 81 94 +35 69 48 69 +34 43 80 73 +90 87 90 92 +70 17 94 17 +12 42 28 50 +58 97 76 99 +53 81 86 82 +80 90 93 96 +74 90 80 94 +28 9 67 37 +49 87 76 90 +6 9 43 31 +31 62 59 95 +75 32 75 84 +61 25 93 45 +35 31 39 79 +88 12 99 42 +68 77 68 97 +95 49 98 84 +47 9 74 25 +25 27 78 64 +26 87 39 95 +57 12 67 50 +20 83 80 83 +52 89 59 89 +21 54 76 72 +30 62 95 82 +21 83 22 88 +42 11 78 53 +1 20 8 36 +61 69 91 77 +43 14 71 14 +19 91 43 98 +1 41 40 47 +30 57 80 57 +17 61 42 92 +37 8 46 67 +16 78 65 88 +70 0 79 3 +34 81 89 87 +85 61 85 85 +53 33 61 44 +43 47 85 72 +47 67 82 75 +75 86 82 95 +75 37 89 72 +52 22 61 54 +88 75 97 88 +81 91 81 92 +44 22 97 42 +91 87 92 98 +46 19 99 37 +91 55 96 93 +73 70 97 91 +18 98 91 99 +15 8 82 16 +15 50 64 72 +98 92 98 98 +73 9 91 54 +39 99 84 99 +66 9 94 38 +98 76 98 90 +85 64 85 80 +24 29 29 98 +36 17 44 18 +65 92 91 97 +59 61 92 74 +46 46 96 53 +15 48 22 54 +59 15 89 92 +44 9 78 63 +6 73 80 96 +0 85 47 97 +14 29 39 61 +94 32 97 41 +70 65 99 88 +35 54 41 76 +24 12 41 64 +28 60 30 69 +82 76 92 85 +2 20 88 22 +44 75 63 97 +97 25 97 30 +43 87 99 91 +90 85 99 87 +16 50 48 77 +76 57 99 81 +95 67 98 79 +79 40 94 60 +73 59 85 76 +60 84 78 98 +90 36 95 81 +87 44 91 91 +20 73 30 76 +33 20 53 93 +46 32 66 83 +10 37 26 91 +45 75 80 95 +85 2 89 76 +55 69 59 72 +75 80 82 83 +39 90 44 90 +55 46 57 79 +26 62 81 74 +12 13 31 86 +97 78 99 82 +46 14 77 83 +73 32 96 50 +41 19 71 37 +6 68 58 98 +1 42 87 95 +84 98 92 99 +77 18 78 90 +53 49 55 68 +55 68 74 89 +41 72 98 75 +82 99 85 99 +72 71 99 98 +8 97 21 98 +60 18 61 55 +4 80 49 80 +60 66 60 72 +37 57 74 87 +74 90 97 90 +33 4 85 77 +18 56 72 62 +83 5 84 58 +13 89 40 89 +2 69 73 69 +95 36 98 91 +87 84 94 90 +81 56 91 91 +39 93 63 96 +76 77 93 96 +43 80 69 84 +68 75 94 82 +82 35 90 61 +53 24 73 83 +75 29 85 99 +62 97 94 97 +83 38 98 95 +41 49 81 74 +79 74 94 98 +0 69 49 97 +33 73 45 89 +55 57 71 88 +10 88 91 99 +72 1 75 27 +26 55 71 57 +94 45 97 93 +88 18 92 82 +10 58 52 73 +18 56 28 94 +81 95 85 99 +46 98 98 99 +59 89 78 92 +64 9 70 92 +10 71 60 83 +10 92 95 95 +25 91 87 93 +70 35 90 53 +98 86 98 88 +7 42 89 73 +92 4 96 45 +36 71 73 96 +54 58 89 84 +20 48 50 79 +62 42 69 76 +68 38 97 68 +66 11 78 72 +25 49 60 84 +35 54 71 81 +59 93 99 98 +13 34 22 58 +6 22 87 55 +93 17 95 85 +29 5 60 67 +71 77 77 87 +6 22 56 91 +39 40 71 78 +16 72 19 98 +32 52 88 85 +30 59 95 66 +49 83 79 92 +77 89 84 97 +50 20 91 94 +65 13 98 23 +13 61 59 88 +72 47 90 71 +82 63 89 82 +89 15 95 29 +18 1 90 39 +43 53 69 79 +38 37 41 96 +88 50 99 59 +25 41 65 83 +95 38 98 45 +56 11 91 33 +62 88 99 90 +45 58 70 74 +0 74 32 79 +56 87 66 90 +71 42 96 44 +30 33 60 33 +92 9 95 77 +6 69 34 82 +27 28 95 50 +34 6 86 23 +27 66 66 85 +83 22 93 77 +84 4 99 35 +44 84 68 95 +47 69 91 72 +71 4 93 21 +40 90 50 93 +45 90 68 96 +45 99 63 99 +89 91 97 96 +68 68 70 99 +72 70 74 94 +85 37 99 63 +52 44 65 44 +34 11 63 84 +92 49 96 79 +13 81 75 94 +2 69 88 87 +42 43 81 69 +10 95 54 99 +70 46 73 70 +4 14 45 95 +76 70 93 97 +86 19 92 89 +68 62 88 76 +39 96 65 98 +59 12 72 66 +45 60 79 87 +41 71 64 81 +40 33 97 56 +48 59 70 99 +25 28 62 51 +86 12 97 44 +44 69 99 78 +22 7 89 86 +54 24 82 90 +43 0 58 79 +32 45 85 95 +31 82 73 88 +97 37 99 48 +46 6 59 22 +80 51 90 67 +1 5 68 12 +4 76 98 82 +95 33 95 68 +39 27 66 47 +52 52 75 99 +84 29 84 94 +8 1 93 93 +40 94 45 98 +8 57 35 63 +20 30 98 47 +26 47 66 92 +13 13 48 52 +44 64 72 76 +19 53 74 77 +2 60 87 65 +35 50 63 65 +64 63 89 64 +18 1 21 44 +36 65 84 79 +99 70 99 77 +82 86 83 97 +33 15 49 44 +97 63 98 70 +38 64 43 79 +29 67 79 70 +5 26 18 27 +32 19 34 28 +29 87 96 95 +44 71 96 90 +43 21 67 46 +8 99 62 99 +77 43 91 51 +38 90 96 99 +9 75 91 94 +30 90 42 94 +58 22 95 43 +54 42 87 94 +92 71 97 93 +53 3 79 27 +71 88 85 93 +0 63 61 69 +88 7 88 73 +87 65 99 75 +71 86 93 91 +5 39 42 40 +46 87 60 92 +24 19 67 78 +28 61 41 62 +62 67 73 84 +15 82 52 90 +67 80 97 99 +35 59 40 94 +37 15 87 61 +93 27 95 77 +22 71 98 81 +17 20 21 54 +49 89 52 97 +97 85 99 99 +6 48 86 89 +15 10 25 26 +89 93 95 94 +50 39 59 54 +23 96 46 98 +30 17 62 52 +25 29 48 97 +91 95 92 96 +82 60 93 69 +31 74 51 85 +82 17 90 40 +21 1 29 80 +74 5 74 41 +78 99 95 99 +93 99 93 99 +48 88 58 96 +82 84 86 84 +26 79 93 91 +71 36 91 98 +33 19 38 50 +63 58 96 61 +70 42 93 92 +97 92 98 94 +74 32 91 86 +96 69 97 99 +32 46 63 59 +57 13 77 15 +7 92 44 93 +88 24 89 79 +34 14 46 46 +59 7 94 85 +33 60 46 94 +92 38 95 91 +11 26 37 60 +11 88 65 93 +86 85 92 87 +19 18 84 50 +57 15 78 28 +36 24 78 48 +50 31 89 61 +11 63 14 72 +8 31 69 63 +14 13 77 27 +71 85 89 95 +32 96 85 96 +83 70 94 83 +63 36 84 38 +69 66 87 67 +1 92 35 93 +98 70 99 89 +18 21 34 71 +17 44 91 48 +80 67 98 97 +13 3 16 42 +45 10 65 80 +25 80 79 97 +81 50 93 70 +43 42 92 53 +86 83 94 83 +9 74 65 87 +86 10 87 39 +39 92 58 92 +1 94 73 94 +15 17 80 97 +84 44 85 62 +31 79 54 97 +19 56 71 72 +87 20 96 56 +87 17 87 70 +44 51 81 90 +49 81 64 83 +54 81 97 91 +77 55 98 75 +7 37 87 39 +92 3 96 44 +10 81 45 95 +87 97 88 99 +1 83 9 93 +53 42 58 86 +19 73 74 90 +5 9 27 18 +39 37 62 47 +90 0 99 72 +67 22 75 28 +65 65 74 76 +41 57 43 84 +50 89 95 94 +74 88 75 96 +52 80 90 83 +18 94 68 96 +0 67 75 93 +37 2 74 68 +46 13 62 42 +17 0 80 30 +52 87 75 90 +10 83 83 87 +9 20 62 50 +96 81 99 88 +55 37 84 60 +53 41 66 80 +89 18 99 27 +8 68 93 88 +6 2 80 52 +39 72 79 79 +41 19 95 53 +47 5 99 88 +27 21 56 27 +74 87 95 90 +31 26 59 93 +51 13 69 82 +9 21 88 38 +67 37 78 95 +23 55 64 95 +32 62 73 99 +27 75 83 81 +17 17 32 81 +16 71 41 74 +38 16 76 96 +56 69 85 89 +87 86 91 95 +99 12 99 85 +10 12 81 29 +75 64 79 90 +22 2 34 23 +59 57 72 68 +20 48 74 61 +88 20 97 82 +86 17 89 43 +59 84 80 84 +91 12 94 16 +65 67 79 77 +52 42 61 92 +84 3 92 24 +70 13 80 25 +53 25 58 81 +73 32 75 54 +29 13 50 40 +11 77 35 90 +62 40 68 81 +63 29 71 52 +92 73 98 93 +19 8 61 64 +38 44 47 44 +47 87 73 94 +45 86 90 95 +31 19 39 25 +77 83 79 93 +1 56 93 95 +55 7 64 69 +92 92 95 93 +3 18 32 37 +34 32 60 35 +16 32 51 96 +35 43 84 74 +55 45 84 50 +99 71 99 75 +84 26 84 45 +32 17 68 26 +54 66 86 82 +46 53 88 56 +26 26 50 58 +98 16 98 72 +55 81 69 83 +88 52 88 67 +0 61 51 73 +44 32 44 62 +96 84 98 84 +57 57 99 77 +66 56 92 90 +53 2 67 71 +7 28 80 43 +14 73 58 97 +31 88 53 91 +56 12 97 70 +84 81 84 82 +28 49 38 57 +64 87 85 91 +87 90 95 98 +11 65 15 99 +21 69 79 79 +44 60 91 68 +51 97 52 99 +71 8 75 31 +13 60 27 66 +30 93 39 98 +81 31 95 91 +17 16 84 88 +6 37 86 73 +15 76 33 77 +6 84 45 91 +24 29 49 87 +24 50 76 58 +5 64 50 69 +38 73 79 74 +38 53 53 95 +93 99 94 99 +61 80 93 81 +52 35 64 69 +49 21 70 55 +93 75 99 76 +80 0 91 49 +55 56 59 89 +37 57 93 61 +61 78 84 87 +38 93 78 99 +46 5 85 48 +90 3 91 19 +78 20 98 76 +77 44 78 91 +16 85 73 90 +11 19 91 50 +46 51 61 74 +9 82 61 96 +3 43 71 46 +68 7 93 71 +30 60 98 94 +0 84 88 85 +64 55 91 76 +3 12 76 49 +10 96 45 98 +47 59 64 65 +92 95 99 96 +11 78 74 88 +55 35 66 79 +90 20 94 85 +64 27 73 68 +91 50 92 78 +71 48 98 96 +63 44 72 58 +76 68 92 96 +18 2 22 79 +82 82 91 90 +63 33 82 60 +39 20 61 94 +63 95 81 96 +5 39 38 79 +42 42 60 62 +8 63 93 94 +66 14 89 58 +66 28 70 70 +74 78 78 86 +6 18 34 66 +84 19 94 65 +77 98 79 98 +11 28 22 88 +64 42 74 48 +38 55 73 75 +83 97 90 99 +88 23 92 78 +36 61 68 91 +22 4 22 35 +78 76 89 87 +71 95 82 97 +43 95 59 96 +55 51 98 99 +7 74 28 89 +40 81 92 97 +90 90 98 93 +20 12 26 31 +21 57 47 82 +30 78 87 89 +70 78 77 78 +49 33 63 89 +92 74 99 82 +11 43 72 61 +87 72 89 72 +63 82 71 95 +14 54 84 54 +35 89 85 89 +28 33 86 92 +23 81 34 90 +58 37 80 56 +16 77 68 94 +41 31 46 66 +74 67 75 79 +48 70 91 82 +43 52 61 62 +86 38 94 81 +57 20 90 68 +10 0 89 12 +84 99 97 99 +81 60 93 82 +54 62 99 86 +12 73 90 94 +81 40 85 84 +43 65 48 69 +69 49 80 74 +48 94 66 94 +15 66 79 83 +69 42 96 61 +6 7 80 71 +81 91 89 95 +90 64 91 77 +84 40 87 78 +84 16 94 45 +27 11 65 76 +48 81 84 91 +53 21 81 55 +11 55 82 67 +56 81 78 96 +77 52 82 85 +89 61 91 73 +37 46 71 61 +23 39 46 51 +64 61 94 95 +4 74 10 96 +25 0 61 15 +97 62 97 89 +95 41 95 80 +89 80 90 93 +1 6 80 42 +77 95 79 97 +18 65 25 69 +19 32 50 48 +39 56 96 85 +15 15 26 46 +4 78 54 83 +45 79 83 90 +27 12 99 87 +13 54 33 56 +7 29 32 90 +22 27 69 61 +90 39 90 92 +18 11 69 74 +35 59 52 80 +4 36 22 46 +33 57 97 71 +19 57 37 74 +34 37 63 67 +52 83 86 92 +53 80 92 84 +35 86 38 91 +29 21 95 35 +42 58 48 91 +83 76 90 81 +98 67 98 69 +8 50 9 74 +81 21 85 45 +45 91 95 97 +54 40 67 73 +33 46 96 97 +89 42 91 56 +82 17 89 57 +86 48 93 59 +48 7 58 50 +2 20 40 27 +21 24 55 54 +86 30 89 44 +0 65 36 84 +31 18 45 72 +6 77 39 85 +72 88 95 95 +11 24 99 56 +63 57 67 78 +82 12 87 68 +32 43 76 44 +61 15 68 20 +80 45 86 80 +6 91 66 98 +36 72 52 98 +97 30 99 32 +71 3 88 32 +96 98 96 99 +84 95 87 98 +17 14 30 86 +41 36 89 40 +7 75 66 98 +49 47 61 90 +77 64 98 67 +59 54 93 76 +78 6 95 51 +92 95 97 95 +11 25 61 69 +38 73 97 87 +8 25 57 94 +40 17 69 36 +0 46 94 97 +46 6 57 6 +44 69 80 69 +63 82 97 92 +28 21 42 22 +54 63 77 73 +50 46 69 73 +92 87 97 98 +85 5 97 86 +13 12 91 67 +91 30 92 57 +59 20 75 36 +24 52 59 55 +66 42 78 54 +13 21 44 21 +50 20 72 33 +29 80 54 93 +96 23 96 40 +51 45 72 83 +5 38 9 77 +66 52 89 80 +69 7 95 93 +84 46 90 94 +45 40 45 68 +31 91 34 91 +86 83 91 91 +68 19 88 69 +76 59 76 92 +59 61 61 97 +88 49 97 53 +23 30 29 30 +70 99 90 99 +68 3 79 36 +3 65 98 85 +52 26 69 51 +45 31 73 99 +14 98 67 98 +34 56 37 67 +4 88 78 97 +73 14 97 61 +92 91 92 94 +57 36 72 91 +30 29 79 42 +35 35 45 53 +88 27 90 97 +44 9 66 55 +64 53 65 55 +25 61 49 78 +90 7 96 32 +41 24 66 94 +96 25 98 78 +99 77 99 99 +72 24 83 83 +46 83 92 89 +90 63 94 78 +54 42 93 64 +63 51 70 90 +50 22 92 81 +22 64 76 79 +76 92 95 92 +35 10 59 99 +91 50 97 71 +71 72 76 92 +82 91 93 91 +46 32 77 96 +94 45 98 97 +54 37 65 58 +67 41 89 89 +21 84 49 86 +87 43 89 67 +74 11 96 69 +18 67 84 90 +56 37 86 84 +77 41 88 55 +5 12 90 54 +60 50 65 64 +9 22 18 75 +68 88 93 90 +69 89 82 96 +65 58 87 65 +8 67 67 79 +96 18 97 84 +73 74 99 79 +34 6 34 14 +59 80 61 84 +55 76 59 88 +68 25 99 94 +45 17 62 24 +31 96 65 97 +67 13 70 13 +54 46 55 95 +94 21 96 38 +1 91 57 91 +31 88 46 90 +60 19 96 37 +42 19 60 60 +61 50 69 93 +1 89 8 97 +24 1 82 85 +99 72 99 94 +4 66 82 96 +66 70 92 73 +5 16 41 93 +29 5 66 50 +37 29 47 49 +62 7 69 8 +30 53 91 95 +70 94 80 97 +83 94 85 99 +20 29 65 96 +70 67 83 78 +70 41 87 45 +7 43 15 84 +76 18 78 87 +92 96 92 99 +46 88 69 90 +55 10 81 35 +82 65 90 66 +64 72 80 79 +52 57 95 86 +64 82 82 90 +56 38 86 87 +39 70 99 75 +96 12 97 49 +15 26 43 73 +60 75 68 94 +2 11 50 33 +20 13 50 15 +36 82 36 91 +9 79 11 87 +43 57 89 85 +76 20 78 94 +61 98 89 98 +21 82 25 96 +41 5 96 39 +41 23 53 36 +94 21 96 37 +61 10 67 44 +11 19 91 25 +65 63 77 68 +2 63 54 78 +21 7 52 66 +45 89 47 96 +44 69 81 73 +83 25 90 83 +0 66 67 74 +96 96 97 99 +3 18 81 41 +21 32 85 83 +78 28 92 39 +85 40 94 41 +76 95 86 99 +55 61 67 91 +3 7 99 14 +53 38 64 69 +51 24 84 99 +70 34 90 74 +30 55 53 59 +5 16 6 17 +14 67 45 69 +69 78 69 86 +70 90 90 93 +51 75 91 81 +29 81 50 86 +83 99 83 99 +37 92 66 98 +59 51 74 66 +54 51 61 51 +57 35 60 85 +92 98 97 98 +93 14 95 16 +81 18 86 83 +93 81 98 84 +56 1 68 99 +36 93 77 99 +19 74 58 75 +28 32 44 54 +54 43 63 68 +60 8 62 92 +5 26 85 97 +47 36 68 82 +62 44 80 77 +75 32 98 88 +53 89 67 98 +62 22 94 40 +91 34 96 97 +40 19 91 39 +96 21 96 43 +95 34 99 35 +25 8 40 25 +13 38 58 91 +62 11 88 60 +82 27 83 33 +36 70 51 99 +92 58 94 82 +32 83 69 92 +29 25 54 95 +34 10 48 46 +33 91 59 97 +71 52 95 73 +17 21 35 36 +8 15 8 72 +53 10 93 45 +53 21 71 84 +82 37 90 55 +7 25 83 45 +89 17 95 65 +99 48 99 82 +34 20 45 20 +20 61 53 64 +98 5 99 28 +57 70 64 80 +62 72 72 90 +52 93 60 93 +77 86 82 86 +52 68 78 73 +14 83 49 95 +40 61 70 89 +76 54 90 79 +29 63 83 64 +80 16 89 66 +97 47 97 49 +2 13 36 92 +98 7 99 30 +5 82 30 99 +59 62 85 86 +10 77 23 95 +16 54 46 63 +61 28 76 57 +96 49 96 51 +8 27 98 46 +26 85 46 96 +66 69 85 80 +94 73 98 78 +33 75 99 79 +15 1 40 6 +96 49 96 60 +96 89 96 97 +10 63 91 64 +16 55 22 80 +29 73 77 84 +20 32 73 38 +17 23 85 44 +57 84 67 96 +58 30 78 63 +99 51 99 51 +69 5 81 49 +7 96 75 98 +36 65 47 99 +66 70 66 81 +37 9 58 99 +88 45 90 66 +55 99 60 99 +97 82 98 98 +16 81 28 86 +24 16 35 38 +96 97 98 98 +55 80 65 91 +49 70 60 78 +16 58 59 60 +38 28 47 88 +8 22 81 61 +60 96 64 96 +22 48 70 80 +0 66 97 91 +0 52 57 70 +78 81 78 99 +70 87 97 97 +63 6 99 9 +5 39 56 48 +45 69 86 70 +42 91 66 94 +74 79 81 83 +69 1 72 99 +92 98 97 98 +42 26 67 27 +63 28 65 69 +55 98 79 98 +26 93 66 95 +51 1 79 44 +54 88 58 89 +57 71 96 86 +66 58 71 85 +39 65 72 66 +78 34 92 98 +11 58 34 65 +99 10 99 93 +74 67 98 94 +17 57 99 95 +12 35 97 46 +49 72 72 77 +2 55 60 71 +19 13 96 22 +88 71 94 72 +66 70 80 73 +59 36 61 37 +10 63 86 80 +11 28 87 38 +97 64 99 84 +86 73 90 83 +7 28 82 97 +20 54 47 90 +36 5 37 63 +9 16 32 16 +27 57 64 95 +54 78 92 81 +37 2 60 87 +12 94 68 95 +70 88 78 88 +71 14 81 28 +60 53 72 68 +89 11 98 91 +29 40 59 89 +60 10 62 88 +9 35 58 77 +19 50 89 77 +75 47 75 50 +90 55 91 83 +59 4 70 74 +50 22 91 91 +58 19 77 56 +46 6 72 90 +90 54 94 91 +40 73 90 80 +98 3 98 55 +53 45 63 63 +36 86 72 92 +5 8 74 59 +90 50 93 84 +48 49 98 49 +32 28 88 91 +31 88 60 92 +56 35 82 56 +59 45 61 84 +93 41 96 78 +53 26 69 35 +81 97 98 98 +93 12 95 15 +26 39 63 65 +3 46 65 60 +37 96 90 96 +33 74 56 94 +10 91 34 98 +87 23 92 96 +22 41 86 81 +65 65 66 85 +73 45 96 76 +29 96 92 98 +40 21 94 76 +18 85 70 96 +8 99 80 99 +54 11 92 59 +81 1 93 43 +9 71 34 87 +81 54 87 94 +0 45 59 95 +2 18 77 75 +23 89 42 96 +47 78 99 89 +63 98 90 98 +35 45 71 64 +25 59 29 90 +61 77 83 87 +5 97 38 99 +2 80 13 88 +8 58 90 86 +26 15 31 36 +42 17 87 51 +64 18 98 52 +68 79 84 87 +37 78 45 79 +83 16 95 42 +93 73 98 96 +24 60 64 79 +90 74 94 87 +46 63 91 97 +91 11 98 89 +55 82 65 96 +70 93 99 95 +35 31 52 54 +66 76 74 86 +83 60 90 90 +54 35 60 59 +88 28 88 44 +81 56 88 98 +21 77 60 88 +64 6 71 59 +85 61 97 94 +90 46 95 47 +50 13 64 42 +7 19 13 89 +67 97 90 99 +69 70 85 78 +63 70 74 97 +94 14 94 32 +12 90 97 96 +73 85 77 87 +17 71 30 76 +13 29 85 71 +44 49 79 81 +68 40 75 40 +69 92 74 95 +45 89 96 99 +20 62 20 83 +62 72 75 87 +31 83 70 97 +43 74 63 83 +70 28 84 53 +29 70 62 87 +46 39 48 65 +8 13 88 95 +75 82 94 95 +14 67 63 99 +33 24 81 35 +41 12 41 46 +50 35 52 84 +13 41 72 44 +31 68 64 92 +16 52 20 78 +26 86 42 99 +24 39 76 98 +51 62 97 68 +60 13 98 81 +52 0 77 23 +52 43 89 92 +47 94 82 99 +40 77 97 86 +84 0 97 3 +29 35 92 80 +4 98 98 98 +28 21 77 56 +95 54 98 71 +53 83 67 90 +10 97 40 99 +93 9 95 46 +51 14 90 97 +40 47 68 53 +72 55 83 89 +76 94 88 95 +92 46 93 95 +64 6 94 72 +26 50 60 72 +31 11 53 37 +15 15 93 76 +42 48 63 81 +20 57 33 82 +45 70 71 84 +14 26 94 66 +75 6 80 9 +25 55 82 71 +81 91 95 92 +61 48 99 94 +95 85 99 92 +44 85 75 92 +19 29 19 99 +54 73 59 92 +11 54 40 93 +27 43 92 94 +76 69 83 84 +93 19 95 65 +62 50 93 81 +55 82 91 86 +49 61 78 75 +95 24 97 76 +47 34 49 56 +45 3 80 44 +27 10 83 39 +74 35 98 44 +51 52 56 91 +30 88 39 95 +67 72 88 83 +14 45 72 86 +89 71 91 90 +79 57 79 94 +83 89 94 94 +24 89 89 98 +12 38 28 63 +32 3 97 74 +10 77 38 88 +10 66 89 84 +57 40 97 46 +88 52 93 93 +67 62 74 87 +57 75 74 89 +62 36 64 82 +14 56 89 88 +22 37 72 76 +72 75 74 80 +8 22 11 68 +56 29 68 73 +12 94 19 95 +71 80 85 99 +32 86 67 97 +56 2 89 10 +86 87 93 91 +80 23 88 62 +42 47 78 87 +57 26 58 51 +54 60 55 80 +26 84 97 84 +92 73 95 80 +93 94 95 98 +95 79 95 85 +5 90 20 95 +30 21 55 70 +88 41 90 42 +40 52 81 60 +71 0 86 86 +82 24 88 93 +17 43 75 58 +80 5 96 97 +76 48 93 81 +21 96 59 96 +72 70 94 88 +86 35 89 95 +81 63 83 81 +87 16 92 33 +13 57 27 72 +82 74 94 78 +76 1 80 15 +34 34 99 91 +19 32 86 65 +57 88 88 98 +53 41 90 86 +67 64 69 84 +89 72 97 94 +49 1 76 53 +18 78 90 84 +98 9 99 24 +65 43 65 51 +85 99 89 99 +7 27 18 31 +85 32 88 82 +8 85 9 86 +0 83 85 93 +66 39 66 60 +80 8 86 18 +7 15 83 78 +9 37 91 64 +90 44 93 96 +46 96 53 98 +95 87 97 94 +63 90 70 99 +78 34 81 51 +25 28 53 51 +93 21 94 33 +82 81 92 92 +71 8 91 27 +97 41 99 90 +94 98 98 99 +75 44 99 80 +69 81 79 88 +49 76 66 91 +98 28 99 49 +56 55 76 63 +41 31 62 57 +59 34 77 40 +8 35 48 52 +80 41 89 71 +77 87 89 93 +75 8 94 26 +23 64 35 68 +30 27 65 43 +21 22 52 44 +91 47 91 67 +65 4 77 68 +25 88 73 97 +31 57 89 91 +0 52 71 71 +87 21 99 49 +72 46 83 94 +83 80 83 91 +30 37 89 55 +50 80 58 99 +3 36 39 47 +18 22 99 33 +31 89 43 89 +39 16 67 39 +95 35 95 43 +26 70 69 77 +83 35 87 45 +39 92 43 93 +46 20 73 45 +83 10 88 72 +13 2 88 80 +82 97 94 98 +51 99 76 99 +38 15 59 46 +68 17 89 27 +63 70 93 82 +57 77 70 79 +25 9 38 83 +65 28 95 88 +77 70 97 70 +31 85 81 93 +68 67 79 76 +6 40 18 81 +79 33 81 85 +16 65 78 79 +69 4 97 70 +16 42 90 91 +12 73 86 76 +36 85 98 88 +84 74 93 89 +95 3 95 74 +34 2 58 82 +44 47 72 66 +67 70 72 77 +97 0 99 92 +26 69 42 99 +38 3 67 26 +81 13 90 67 +7 50 51 90 +1 52 12 83 +1 68 82 72 +22 84 44 91 +54 2 74 28 +20 51 46 89 +51 24 67 63 +12 19 56 39 +53 69 93 76 +39 23 65 97 +22 47 86 82 +30 8 81 86 +64 93 70 99 +85 5 88 52 +66 39 73 40 +17 56 79 65 +54 97 91 98 +1 51 32 71 +48 52 72 74 +16 76 31 87 +53 96 54 99 +34 49 83 75 +77 88 88 92 +62 21 87 82 +34 13 81 41 +99 97 99 98 +94 60 96 74 +56 44 94 86 +85 47 94 89 diff --git a/2018/republic/10-12_d1/arta/tests/18_pattern.txt b/2018/republic/10-12_d1/arta/tests/18_pattern.txt new file mode 100644 index 0000000..6927d0f --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/18_pattern.txt @@ -0,0 +1 @@ +219 diff --git a/2018/republic/10-12_d1/arta/tests/19_input.txt b/2018/republic/10-12_d1/arta/tests/19_input.txt new file mode 100644 index 0000000..34413f4 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/19_input.txt @@ -0,0 +1,3 @@ +1 1 +1 +0 0 1 1 diff --git a/2018/republic/10-12_d1/arta/tests/19_pattern.txt b/2018/republic/10-12_d1/arta/tests/19_pattern.txt new file mode 100644 index 0000000..1874828 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/19_pattern.txt @@ -0,0 +1 @@ +0 diff --git a/2018/republic/10-12_d1/arta/tests/20_input.txt b/2018/republic/10-12_d1/arta/tests/20_input.txt new file mode 100644 index 0000000..5d03463 --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/20_input.txt @@ -0,0 +1,5002 @@ +100 100 +5000 +85 56 85 94 +91 37 98 76 +38 46 97 57 +73 65 92 95 +27 18 53 57 +41 19 79 68 +52 35 82 37 +92 81 93 96 +98 30 99 37 +28 25 58 99 +59 15 74 64 +68 27 91 49 +5 26 40 87 +57 54 73 54 +94 3 96 98 +63 14 96 47 +3 26 24 39 +61 32 92 53 +61 76 74 98 +1 52 92 80 +7 71 54 75 +58 47 95 57 +78 90 81 98 +1 75 49 76 +68 23 92 52 +23 46 85 79 +64 55 78 96 +69 39 99 77 +28 50 49 63 +35 26 71 34 +72 88 81 88 +6 16 40 37 +88 1 98 17 +21 69 42 98 +13 78 50 85 +80 61 86 85 +93 22 93 28 +12 32 19 41 +31 82 62 91 +53 2 54 38 +12 65 15 82 +40 47 99 98 +12 92 95 92 +45 40 51 59 +13 7 64 51 +94 48 95 82 +71 55 96 91 +26 8 75 33 +83 50 96 95 +0 3 47 43 +89 10 92 33 +85 71 93 78 +61 18 76 34 +25 38 48 42 +29 15 93 53 +82 86 91 88 +97 84 97 89 +32 74 88 74 +22 7 23 35 +59 98 97 98 +61 34 77 86 +20 11 27 78 +37 66 88 99 +53 68 74 93 +48 92 76 98 +72 39 82 61 +26 15 83 22 +72 74 78 92 +32 23 57 77 +36 86 91 95 +78 41 92 52 +10 99 42 99 +78 56 96 79 +33 90 67 92 +95 66 98 68 +96 66 99 77 +50 85 93 87 +73 91 82 98 +65 67 75 94 +66 98 95 99 +27 27 32 53 +31 63 58 95 +85 49 85 61 +82 82 86 82 +81 17 93 29 +34 39 75 66 +65 33 89 51 +40 98 81 99 +88 42 98 55 +93 75 95 79 +78 19 95 88 +87 46 95 65 +46 70 83 70 +99 81 99 85 +3 54 73 76 +93 77 93 87 +49 7 92 24 +20 49 57 49 +75 89 75 96 +6 23 51 61 +96 97 96 98 +89 49 92 98 +95 42 99 59 +25 57 91 85 +49 85 69 97 +83 25 88 71 +6 65 96 72 +80 25 80 69 +33 9 94 55 +32 87 37 92 +80 37 95 44 +11 6 60 95 +88 1 88 80 +31 84 90 94 +55 90 57 93 +52 74 88 74 +85 46 97 74 +59 84 96 94 +54 40 78 90 +68 66 81 88 +60 9 66 76 +52 53 66 70 +30 89 57 98 +75 72 87 84 +5 8 21 63 +83 71 89 76 +6 46 18 99 +51 63 78 67 +42 59 98 69 +41 4 92 75 +98 60 99 60 +76 30 85 90 +37 92 72 97 +15 61 62 79 +48 79 79 84 +56 65 59 91 +41 95 86 99 +35 22 54 31 +83 54 84 94 +56 5 62 91 +80 21 94 27 +16 41 23 76 +15 92 97 93 +89 50 94 66 +87 52 96 77 +77 34 79 35 +98 23 98 52 +55 67 67 86 +91 83 99 98 +14 79 21 94 +32 64 38 86 +60 44 89 56 +96 98 99 98 +15 12 36 96 +15 11 20 38 +88 94 93 94 +53 23 94 63 +12 55 20 68 +83 71 89 89 +53 15 58 36 +81 61 98 92 +79 9 84 96 +29 55 69 89 +44 14 68 35 +39 84 80 98 +58 90 87 93 +75 82 88 98 +97 9 98 80 +42 98 54 98 +31 20 92 85 +93 59 99 98 +18 25 75 36 +8 2 96 32 +1 55 12 82 +40 27 64 85 +24 20 48 96 +70 24 79 85 +43 85 43 95 +82 81 88 95 +83 13 97 95 +85 42 88 80 +5 94 18 99 +99 1 99 19 +73 51 92 90 +82 19 98 52 +96 56 97 90 +33 47 92 72 +82 2 85 45 +10 63 94 91 +65 0 85 53 +32 57 92 66 +60 51 85 70 +49 23 84 47 +78 98 92 99 +1 40 73 61 +32 94 84 98 +54 53 85 90 +26 8 92 13 +42 77 53 94 +75 10 84 24 +68 5 83 34 +48 86 72 87 +3 9 17 66 +61 7 96 75 +5 29 47 36 +0 98 78 99 +22 72 88 96 +43 3 45 43 +26 29 32 71 +74 73 93 74 +43 92 89 97 +32 69 78 80 +16 34 93 44 +10 31 37 84 +91 47 98 82 +71 75 71 78 +68 85 81 91 +2 21 27 33 +20 60 73 62 +85 14 92 27 +59 72 78 95 +52 10 93 21 +90 0 99 84 +33 24 48 96 +98 59 98 95 +46 44 94 84 +51 42 82 53 +38 28 80 67 +66 11 93 69 +63 83 90 85 +51 61 72 78 +81 21 97 31 +71 98 81 98 +94 26 99 46 +83 0 99 22 +8 38 86 84 +87 48 90 52 +19 10 53 55 +65 54 81 89 +40 82 77 90 +72 47 98 65 +15 2 67 12 +17 17 53 56 +26 85 45 94 +73 70 90 76 +39 96 94 99 +76 61 95 79 +10 36 67 56 +76 40 77 77 +76 80 91 87 +76 77 90 82 +26 84 45 94 +22 62 53 68 +48 56 58 65 +58 28 92 46 +62 90 65 95 +12 11 28 92 +26 16 94 83 +81 89 83 92 +52 99 86 99 +95 70 95 71 +45 87 57 88 +4 31 20 63 +45 96 80 96 +3 88 98 90 +49 11 76 87 +68 92 71 98 +21 70 61 99 +75 37 79 49 +3 60 67 61 +1 36 75 55 +10 15 22 63 +94 22 97 48 +72 7 85 35 +36 18 85 78 +25 82 62 84 +70 96 78 98 +70 91 75 93 +22 41 45 93 +86 22 97 96 +21 65 86 90 +64 99 91 99 +5 28 66 39 +95 66 96 76 +46 45 99 61 +65 76 96 99 +38 6 93 10 +76 69 92 97 +11 61 80 85 +64 16 75 39 +57 77 94 83 +35 63 75 73 +56 43 99 49 +84 24 94 74 +3 13 54 59 +89 20 90 23 +48 51 58 96 +21 8 28 22 +25 17 50 92 +27 91 68 98 +83 42 99 75 +28 50 85 85 +65 80 91 92 +9 52 34 75 +41 66 84 86 +59 30 83 43 +36 24 64 24 +56 16 73 86 +61 59 73 73 +77 86 97 95 +65 82 96 91 +59 84 74 94 +54 70 65 96 +73 51 89 87 +8 7 12 29 +85 14 96 91 +18 0 19 48 +10 73 13 76 +63 24 81 92 +36 13 46 18 +78 19 83 21 +67 18 86 49 +49 33 59 73 +80 71 93 72 +39 40 57 70 +20 30 94 78 +14 37 82 89 +79 18 88 71 +58 34 80 38 +86 91 94 99 +56 67 82 98 +17 53 98 84 +32 8 77 12 +39 53 95 80 +27 49 83 86 +33 83 76 97 +34 59 40 80 +50 70 90 72 +53 64 56 70 +13 72 31 91 +64 34 80 34 +38 87 91 96 +5 80 13 98 +53 44 69 68 +97 68 97 98 +14 72 87 91 +19 12 74 68 +92 14 98 29 +56 5 63 31 +29 83 87 85 +37 15 95 24 +32 78 85 99 +67 99 88 99 +47 24 56 93 +90 55 97 88 +81 13 90 17 +91 6 93 85 +33 9 75 27 +75 65 79 71 +69 72 74 84 +53 83 89 87 +56 94 81 95 +64 6 95 87 +21 12 64 16 +6 48 57 51 +10 5 48 85 +22 2 83 87 +41 94 72 95 +55 45 96 91 +54 99 75 99 +55 0 87 93 +23 4 38 89 +97 3 99 8 +95 28 96 88 +11 95 27 95 +64 89 73 89 +64 3 88 84 +97 34 97 42 +39 1 89 8 +40 20 40 36 +47 7 48 8 +97 78 99 89 +61 39 81 42 +25 48 56 80 +93 11 95 79 +80 35 80 95 +85 70 88 71 +64 40 80 87 +0 21 2 53 +63 97 69 99 +84 59 85 93 +89 71 97 96 +82 9 87 63 +40 55 85 88 +80 62 85 70 +30 88 43 92 +58 72 72 90 +86 43 90 69 +18 37 47 96 +27 71 39 99 +25 36 87 56 +84 21 88 62 +41 93 49 98 +78 65 85 93 +10 76 57 98 +94 15 95 67 +85 23 93 40 +16 7 69 18 +9 24 56 45 +32 5 80 71 +4 72 96 97 +57 86 73 86 +39 82 56 98 +58 93 88 95 +69 92 76 92 +75 79 76 95 +44 1 66 38 +42 60 78 63 +32 74 35 83 +55 7 59 87 +82 97 92 97 +90 66 98 79 +47 45 84 56 +65 36 76 37 +31 24 54 79 +12 13 98 56 +10 31 48 98 +3 33 44 65 +38 93 58 94 +75 37 85 72 +14 49 68 81 +50 37 72 86 +61 43 81 50 +14 72 55 89 +49 72 65 89 +38 11 79 14 +57 67 77 96 +41 50 79 76 +60 60 67 76 +5 50 34 64 +51 5 52 47 +29 57 83 78 +82 87 97 99 +36 65 66 77 +51 10 79 59 +87 66 97 74 +30 3 56 45 +11 91 15 92 +4 47 93 79 +77 97 82 98 +69 95 99 99 +16 68 31 98 +57 46 99 50 +54 52 70 91 +94 56 97 69 +23 53 81 55 +85 7 98 88 +85 35 92 84 +21 41 27 47 +2 35 28 89 +63 24 73 55 +90 56 98 74 +80 65 88 68 +70 75 92 89 +81 80 94 85 +89 24 92 24 +46 67 57 81 +63 26 84 64 +88 19 98 82 +49 39 71 42 +40 2 75 98 +55 38 59 54 +5 59 61 86 +31 27 74 42 +41 8 65 74 +3 46 54 68 +37 71 85 81 +30 68 78 80 +12 66 81 79 +23 36 94 74 +57 95 57 95 +61 88 89 97 +94 28 97 35 +37 10 87 70 +41 80 88 87 +67 59 86 79 +31 85 59 89 +90 43 93 80 +96 4 97 19 +35 27 83 77 +80 20 96 45 +54 82 99 87 +21 75 25 95 +5 41 39 58 +19 15 28 27 +47 75 80 99 +38 26 90 69 +18 45 25 71 +68 71 88 71 +13 99 14 99 +89 11 89 28 +95 48 98 88 +25 9 48 34 +94 58 97 92 +25 66 40 74 +81 17 95 63 +17 61 96 65 +19 79 81 98 +80 41 99 90 +62 35 90 66 +16 10 90 34 +4 70 77 85 +54 91 61 96 +69 99 85 99 +44 3 61 78 +47 53 84 68 +54 43 69 60 +37 91 47 99 +56 26 74 82 +25 59 56 99 +80 26 86 97 +38 92 97 98 +89 32 96 58 +82 26 96 30 +28 59 59 99 +97 58 97 88 +99 94 99 94 +8 55 88 74 +49 25 69 62 +43 7 76 16 +15 48 33 49 +48 16 85 25 +78 57 78 77 +85 19 95 35 +83 77 88 84 +82 0 83 36 +29 38 35 94 +89 32 90 34 +11 12 29 51 +76 22 91 43 +99 67 99 82 +59 2 84 77 +12 31 13 39 +51 45 96 85 +81 13 91 21 +15 3 55 68 +88 47 95 83 +39 16 62 23 +48 15 57 53 +76 84 82 99 +7 45 72 60 +22 55 34 88 +57 84 75 88 +70 33 76 86 +83 69 93 94 +16 87 93 91 +5 89 70 99 +42 12 54 36 +52 98 90 99 +79 5 91 86 +64 21 97 70 +10 45 26 88 +55 59 79 66 +60 98 92 99 +73 67 94 79 +33 18 85 41 +18 34 60 46 +79 15 96 87 +35 88 67 91 +66 76 83 91 +89 88 96 91 +34 25 55 77 +44 27 67 59 +64 11 78 24 +65 57 70 63 +54 50 66 91 +57 71 88 73 +38 37 53 81 +92 24 99 65 +71 21 88 77 +39 9 55 97 +60 42 82 73 +51 0 77 95 +7 84 35 99 +79 92 93 93 +75 88 78 97 +97 63 99 98 +47 21 93 44 +66 75 86 81 +53 75 98 91 +81 54 87 81 +87 43 92 47 +4 30 93 30 +93 65 94 95 +92 66 97 78 +45 65 86 92 +24 87 41 95 +13 19 32 75 +62 44 78 45 +77 23 86 63 +93 58 98 59 +19 17 84 70 +56 16 67 32 +54 10 75 70 +2 68 96 98 +55 29 94 35 +80 84 88 85 +6 35 63 78 +66 15 78 71 +18 3 60 24 +94 94 95 97 +5 55 20 89 +47 67 90 88 +65 69 83 92 +87 20 94 98 +42 35 49 71 +30 29 84 80 +97 60 99 73 +33 42 80 69 +70 12 70 65 +32 63 76 94 +36 16 60 20 +56 60 87 78 +24 23 43 81 +54 60 55 76 +37 70 91 73 +58 98 92 98 +27 69 44 98 +84 96 97 96 +3 56 56 89 +51 35 69 93 +36 12 81 88 +25 29 84 52 +94 95 96 99 +44 26 88 52 +62 63 69 90 +57 66 82 81 +75 60 93 82 +91 41 99 41 +36 57 55 86 +60 51 73 51 +95 39 99 54 +92 52 93 87 +67 37 71 73 +24 70 40 93 +67 1 87 12 +21 70 99 91 +17 26 73 40 +62 71 83 81 +44 52 70 99 +58 66 70 77 +11 16 47 97 +55 99 72 99 +36 37 90 94 +44 75 89 82 +86 0 99 26 +96 91 98 98 +19 64 65 92 +89 84 90 94 +34 35 80 67 +6 5 46 74 +45 35 57 99 +53 66 97 85 +84 2 90 82 +46 13 58 19 +33 78 94 87 +57 80 98 92 +51 6 69 35 +92 1 96 84 +99 7 99 67 +31 22 32 79 +2 68 5 77 +23 97 83 97 +49 15 71 40 +23 96 29 97 +51 89 99 91 +54 30 95 34 +10 10 66 24 +51 76 52 97 +94 78 98 81 +27 65 57 82 +29 70 90 92 +75 99 85 99 +29 53 52 76 +51 28 63 80 +29 11 80 42 +13 62 67 65 +96 25 96 50 +83 35 95 68 +45 83 51 94 +21 18 25 51 +58 45 64 50 +72 60 76 74 +17 59 70 85 +4 3 49 54 +82 12 99 69 +75 55 81 76 +14 39 48 51 +95 40 99 92 +13 57 18 94 +29 85 78 95 +73 8 75 55 +36 56 80 68 +97 88 99 98 +7 27 90 74 +20 68 85 79 +56 53 95 89 +47 30 75 73 +21 91 71 95 +38 32 52 80 +15 68 96 92 +99 12 99 53 +41 57 86 92 +58 49 95 93 +18 69 60 91 +52 75 95 80 +41 95 52 98 +27 74 72 98 +30 83 42 90 +16 88 78 95 +68 72 99 76 +96 63 98 64 +53 29 78 42 +27 20 79 87 +4 39 28 40 +61 63 89 86 +4 73 49 88 +52 32 94 68 +30 65 70 70 +12 12 32 36 +27 68 95 69 +44 6 56 38 +51 30 80 37 +72 34 92 99 +43 39 47 58 +50 73 76 83 +63 23 82 93 +19 3 43 27 +57 19 81 85 +52 79 59 93 +77 33 88 39 +59 3 67 59 +11 40 83 52 +26 14 35 54 +92 90 92 90 +76 92 92 94 +22 4 39 13 +39 70 78 91 +7 46 35 84 +71 31 85 51 +33 69 65 99 +73 7 84 68 +1 78 29 90 +81 44 95 81 +23 13 99 13 +33 16 93 65 +16 56 68 68 +55 53 83 63 +89 72 96 82 +91 81 98 81 +97 24 99 39 +2 2 30 68 +87 26 91 69 +68 71 93 95 +41 48 86 64 +72 21 73 92 +50 99 90 99 +51 7 85 38 +77 27 95 96 +56 22 83 62 +96 54 97 69 +91 26 99 99 +42 68 62 91 +85 95 91 96 +77 90 77 91 +34 5 69 99 +97 12 99 24 +27 5 35 73 +22 0 33 93 +84 26 91 91 +2 58 13 71 +71 16 99 31 +21 11 59 55 +59 4 78 49 +67 1 77 68 +74 94 80 96 +98 99 99 99 +35 53 56 67 +62 54 99 78 +73 31 94 40 +27 28 70 94 +91 11 94 52 +26 44 75 89 +66 13 76 97 +44 76 58 86 +82 5 86 7 +21 50 44 61 +48 72 76 86 +94 64 94 89 +61 46 93 66 +0 53 7 69 +42 63 64 91 +39 21 66 52 +90 58 91 82 +32 40 42 88 +92 44 93 48 +79 76 81 90 +82 6 98 59 +6 66 54 95 +19 22 70 49 +20 86 48 97 +46 95 84 95 +78 12 81 83 +4 34 48 36 +30 7 44 59 +2 98 83 99 +19 17 23 59 +21 17 98 98 +78 81 92 84 +63 84 92 88 +60 44 87 82 +61 3 91 90 +86 69 86 91 +12 78 43 85 +4 70 21 72 +75 13 85 86 +66 80 72 90 +8 97 36 97 +6 82 30 98 +14 25 16 29 +76 99 80 99 +8 42 94 79 +84 47 89 63 +85 28 97 92 +23 50 71 55 +11 59 63 88 +67 29 79 36 +88 22 97 63 +87 95 89 97 +32 35 88 65 +40 66 45 74 +64 49 71 50 +50 24 86 93 +84 65 90 73 +20 18 75 86 +46 90 68 97 +28 52 66 79 +93 76 93 98 +7 74 87 85 +64 17 97 24 +67 88 96 89 +8 27 92 83 +28 76 82 90 +61 3 63 18 +34 91 64 93 +46 34 62 70 +14 80 19 80 +8 42 29 50 +21 32 83 79 +7 33 83 46 +15 91 31 99 +45 51 45 92 +98 62 98 77 +85 83 91 94 +81 19 91 35 +97 54 98 73 +17 36 86 51 +12 84 16 96 +31 80 90 89 +85 97 91 97 +67 44 75 85 +42 81 91 86 +47 23 99 44 +38 57 58 79 +14 75 15 76 +60 23 83 87 +78 89 97 98 +42 18 75 34 +82 41 99 77 +94 60 97 82 +49 16 91 51 +12 97 65 99 +65 17 84 71 +62 39 99 79 +16 25 46 87 +83 37 95 53 +7 90 8 92 +89 66 89 89 +42 19 43 23 +75 36 91 83 +45 30 47 97 +7 35 49 52 +2 53 78 98 +17 18 40 86 +61 18 95 55 +50 89 71 91 +7 15 51 29 +86 82 99 86 +87 7 93 93 +19 87 42 90 +76 71 97 90 +59 73 76 88 +57 49 66 77 +6 97 67 99 +15 49 73 71 +17 13 97 70 +15 67 17 76 +33 55 79 70 +37 70 77 70 +66 91 91 97 +62 4 65 19 +96 68 97 87 +31 87 37 88 +78 95 99 96 +8 94 37 96 +21 72 53 85 +46 2 62 18 +69 7 87 24 +5 94 36 95 +65 96 79 96 +38 67 80 79 +18 0 63 55 +38 1 54 35 +68 53 89 81 +82 48 91 78 +5 98 33 98 +33 27 34 89 +96 80 97 95 +81 49 90 78 +64 10 77 63 +3 91 64 91 +94 23 97 56 +18 15 19 42 +86 54 91 73 +55 8 62 24 +18 37 80 86 +28 87 63 97 +46 91 61 97 +84 64 85 74 +62 16 92 70 +17 7 47 28 +31 13 71 86 +3 68 64 96 +95 90 98 94 +70 35 96 48 +36 14 98 52 +96 16 96 68 +77 14 81 31 +32 89 50 94 +65 51 96 88 +64 31 83 53 +2 75 53 86 +56 69 85 92 +15 68 59 80 +37 72 75 80 +15 45 40 59 +75 88 94 97 +55 94 74 96 +51 85 69 86 +20 77 83 93 +57 63 74 98 +71 80 81 92 +31 83 35 98 +94 43 99 97 +45 56 97 76 +10 12 55 77 +67 47 89 65 +4 86 46 95 +38 87 44 96 +31 26 86 66 +27 94 68 95 +9 58 31 98 +2 77 37 96 +77 85 99 96 +73 60 74 66 +83 8 93 33 +87 36 88 83 +95 58 97 65 +65 12 67 46 +22 86 27 96 +96 96 97 98 +45 39 94 83 +52 97 55 99 +60 27 62 79 +79 3 83 16 +9 77 43 77 +8 9 77 46 +10 61 33 80 +32 17 45 50 +10 44 93 46 +81 88 97 98 +12 34 26 69 +18 39 69 87 +86 58 92 65 +40 13 97 76 +16 69 18 93 +41 6 68 19 +7 15 87 82 +23 64 52 90 +90 69 99 80 +29 92 53 93 +85 53 88 83 +43 85 52 87 +33 37 67 63 +45 61 87 68 +17 13 20 70 +71 46 98 67 +19 48 56 57 +96 38 99 53 +36 31 48 86 +83 76 95 93 +84 38 85 42 +20 69 49 86 +87 9 93 9 +37 20 97 57 +31 68 55 71 +58 14 82 40 +75 67 91 73 +52 70 71 71 +10 23 41 44 +71 14 99 22 +78 51 95 71 +24 97 58 98 +65 36 82 40 +48 19 69 27 +19 17 42 47 +67 76 87 99 +18 20 76 44 +90 45 92 67 +21 67 67 89 +29 85 83 91 +70 0 77 56 +53 14 96 19 +84 14 85 66 +67 65 98 98 +25 37 87 82 +28 1 98 60 +25 66 46 75 +35 53 46 54 +97 61 97 95 +18 17 46 72 +97 69 99 87 +85 37 94 69 +23 27 81 53 +57 19 76 49 +33 95 46 99 +87 96 90 96 +43 22 51 90 +47 14 81 48 +59 6 68 38 +73 53 90 88 +11 17 41 53 +11 93 59 99 +70 51 92 54 +84 74 84 80 +76 71 82 85 +67 17 96 19 +45 94 92 95 +78 68 89 77 +26 52 86 85 +44 85 95 97 +28 40 73 70 +83 7 98 40 +71 4 72 27 +94 96 99 98 +4 76 34 97 +69 98 77 98 +15 14 59 86 +36 47 76 71 +78 48 95 63 +0 8 38 18 +44 66 53 67 +38 53 62 68 +23 76 23 76 +73 91 93 93 +99 5 99 37 +92 25 92 98 +61 71 84 85 +38 20 98 45 +88 40 91 89 +96 83 96 90 +35 66 75 80 +39 52 67 98 +37 33 92 84 +35 65 56 99 +96 15 97 60 +94 16 98 77 +99 27 99 34 +59 11 87 16 +76 23 89 66 +43 49 56 73 +66 16 92 47 +55 70 97 72 +72 2 93 52 +55 91 92 95 +84 34 96 67 +72 20 99 79 +89 74 99 97 +16 12 62 81 +94 88 95 92 +57 73 91 99 +20 96 42 96 +98 9 98 86 +20 85 31 89 +6 58 33 80 +27 56 70 63 +14 99 91 99 +4 60 47 63 +75 33 83 60 +13 71 70 89 +90 22 98 82 +26 44 38 76 +91 34 95 37 +81 15 82 56 +50 29 79 51 +84 53 93 92 +65 74 91 88 +99 81 99 92 +24 15 76 20 +99 56 99 74 +75 47 97 86 +20 45 51 62 +28 82 65 90 +0 34 35 93 +75 12 93 29 +61 25 95 93 +47 67 64 74 +71 76 78 80 +4 65 79 85 +47 50 68 84 +75 35 75 38 +89 79 91 88 +7 92 44 97 +28 48 79 59 +1 83 91 89 +17 4 60 16 +75 44 78 50 +47 13 75 57 +44 91 48 93 +98 13 98 36 +60 21 76 65 +67 1 94 70 +79 29 96 77 +85 53 94 87 +14 41 37 64 +40 26 89 95 +43 46 97 99 +77 34 89 67 +16 0 97 59 +55 52 69 65 +39 3 57 23 +32 46 35 79 +1 3 9 98 +21 29 48 43 +2 97 91 97 +54 25 97 39 +19 92 80 97 +39 13 41 80 +93 29 99 37 +90 83 95 92 +8 6 72 90 +58 39 85 66 +16 63 69 74 +94 39 98 47 +39 53 66 54 +44 5 45 52 +72 57 81 93 +95 45 96 81 +30 23 66 57 +97 82 97 82 +63 60 66 81 +9 82 76 94 +29 35 88 84 +65 63 90 97 +73 37 86 66 +89 23 93 31 +87 53 96 78 +87 1 96 61 +16 33 20 33 +42 97 94 99 +40 55 62 98 +75 32 94 71 +12 41 88 50 +63 17 68 87 +56 25 63 32 +55 77 99 83 +2 21 85 93 +53 76 93 76 +77 52 87 66 +18 34 73 50 +28 39 33 92 +71 44 96 49 +37 25 86 42 +62 8 84 94 +74 24 88 98 +36 92 45 95 +35 30 52 48 +45 39 69 57 +85 97 96 98 +81 95 92 97 +89 7 94 65 +19 1 74 46 +75 71 99 77 +29 88 51 88 +36 54 87 66 +17 95 56 97 +8 74 89 88 +34 38 41 89 +93 14 98 63 +68 9 87 49 +74 85 90 95 +8 60 33 60 +56 83 57 85 +1 56 32 74 +73 23 86 78 +46 57 81 93 +56 23 58 80 +65 95 65 96 +26 50 87 95 +58 77 84 82 +96 5 99 74 +38 60 45 90 +19 27 29 28 +36 77 66 91 +7 33 68 74 +72 99 74 99 +16 14 80 88 +6 54 18 66 +16 36 56 73 +7 23 96 46 +39 30 93 52 +69 37 92 54 +1 40 28 86 +54 9 83 40 +80 50 97 85 +17 19 50 19 +31 21 87 69 +33 99 38 99 +16 36 33 73 +12 54 62 65 +83 5 93 37 +58 90 85 99 +17 61 84 96 +31 77 94 86 +82 63 92 63 +12 30 91 50 +27 46 74 60 +78 18 94 39 +53 79 97 79 +29 17 51 81 +12 11 45 62 +63 11 85 84 +64 31 74 79 +11 95 79 97 +4 87 25 87 +83 71 93 89 +38 42 84 84 +62 46 99 65 +44 93 89 94 +66 49 71 66 +66 20 80 52 +43 55 97 82 +2 83 99 97 +18 97 68 97 +55 70 72 90 +83 74 99 89 +14 94 36 96 +35 95 98 96 +68 50 86 78 +91 81 95 86 +1 51 34 59 +84 22 89 77 +43 68 47 73 +0 12 77 40 +13 27 30 40 +75 70 85 75 +69 9 82 37 +48 57 61 93 +74 70 98 80 +84 20 84 82 +67 67 81 79 +90 16 97 92 +26 2 61 76 +26 33 31 56 +65 42 65 81 +13 75 30 82 +81 48 88 62 +34 79 41 89 +82 95 87 96 +41 87 84 99 +93 93 98 95 +75 61 95 84 +37 56 40 59 +59 76 92 98 +41 86 79 99 +88 57 98 93 +33 73 91 76 +12 0 63 10 +77 64 81 98 +42 37 82 83 +29 19 36 80 +65 43 76 65 +31 15 97 17 +40 64 62 75 +91 16 91 27 +4 47 10 88 +98 9 98 75 +97 25 97 85 +36 64 54 69 +20 73 23 80 +83 59 83 75 +58 19 74 98 +81 4 86 55 +24 29 53 94 +5 18 29 81 +9 65 83 95 +83 14 88 64 +20 4 29 59 +88 39 94 88 +19 87 89 99 +55 74 59 95 +89 25 98 70 +98 6 99 36 +92 46 92 61 +14 57 47 89 +32 23 39 64 +94 2 96 88 +7 7 72 49 +88 29 98 88 +86 91 86 98 +5 22 34 65 +66 31 79 47 +0 74 30 96 +33 23 73 87 +6 56 42 59 +77 35 99 95 +45 29 53 50 +80 31 99 74 +40 37 83 40 +59 28 60 42 +1 8 32 40 +6 50 53 81 +88 41 95 87 +93 67 96 84 +81 99 85 99 +75 58 91 94 +82 19 87 92 +38 26 91 28 +70 95 95 98 +76 19 85 77 +91 54 99 66 +97 16 99 23 +77 90 92 96 +46 63 84 86 +61 64 71 92 +11 24 89 73 +47 4 81 32 +74 30 99 88 +60 90 98 92 +98 33 98 67 +5 82 39 85 +82 51 84 94 +97 97 98 99 +31 30 31 96 +99 26 99 32 +5 91 92 95 +30 70 50 92 +19 87 24 89 +24 52 77 70 +6 69 70 90 +8 5 76 42 +18 1 64 65 +83 85 83 86 +49 55 79 95 +58 45 80 61 +50 53 85 91 +18 98 21 99 +51 41 60 67 +59 1 97 45 +71 36 85 45 +78 97 83 97 +25 90 56 98 +60 91 86 99 +27 87 95 88 +0 55 37 61 +24 7 63 46 +49 59 89 73 +27 47 30 98 +89 7 94 17 +94 70 98 84 +43 48 99 71 +91 57 92 75 +34 80 66 93 +42 84 82 99 +59 85 82 86 +65 22 97 30 +12 54 73 58 +91 17 98 95 +35 85 70 94 +26 40 71 43 +43 95 95 98 +89 95 91 99 +68 43 85 60 +70 62 76 71 +66 75 96 75 +57 30 73 42 +93 65 98 89 +87 27 90 77 +44 47 66 57 +64 48 98 68 +6 59 29 94 +69 82 94 90 +91 96 95 97 +75 54 98 84 +61 8 79 75 +3 86 76 95 +40 80 78 91 +99 60 99 98 +97 55 99 67 +64 3 79 13 +24 12 47 50 +2 11 13 24 +74 71 91 72 +45 30 93 67 +60 99 67 99 +76 58 90 70 +90 47 95 65 +60 59 98 95 +89 4 96 90 +33 3 35 76 +25 97 77 99 +26 81 46 97 +92 71 99 96 +8 82 78 98 +89 45 90 94 +7 69 83 71 +33 22 42 96 +41 42 90 50 +98 30 98 50 +97 78 98 88 +11 56 81 62 +22 16 59 68 +89 23 89 40 +61 18 90 37 +29 41 90 97 +70 83 72 92 +32 70 35 85 +83 66 93 96 +17 11 33 63 +15 57 90 61 +75 81 85 86 +17 12 55 39 +73 97 94 97 +39 94 78 96 +59 86 89 91 +20 39 66 40 +4 19 5 60 +94 44 95 58 +26 45 28 94 +12 66 25 93 +84 87 92 92 +9 23 27 45 +68 34 74 48 +79 32 99 69 +85 92 90 96 +5 66 93 79 +7 9 87 53 +57 4 65 89 +6 5 6 88 +11 95 43 96 +71 36 86 58 +9 94 78 99 +3 39 42 76 +36 82 76 90 +9 88 65 96 +37 31 97 74 +8 74 76 80 +54 77 70 84 +71 74 75 99 +97 84 98 96 +15 27 38 65 +81 36 82 84 +49 31 82 37 +44 62 87 95 +50 7 98 10 +85 85 87 97 +97 23 97 32 +8 74 9 84 +48 84 68 89 +73 48 76 57 +67 8 69 53 +45 57 88 60 +11 82 81 92 +61 11 78 12 +64 92 79 96 +77 12 83 71 +44 39 65 65 +91 83 96 91 +22 93 53 96 +45 56 54 57 +68 38 84 47 +10 92 51 93 +81 11 99 49 +81 27 81 89 +3 74 6 92 +16 16 39 78 +71 82 85 87 +91 40 94 89 +48 76 76 95 +3 44 32 67 +16 10 27 11 +3 90 44 91 +55 72 65 76 +39 36 74 77 +57 66 85 75 +40 73 64 84 +8 55 24 56 +49 57 87 90 +56 45 92 70 +36 85 96 89 +45 42 88 87 +90 5 99 23 +81 33 91 43 +19 57 23 76 +59 35 65 44 +67 73 95 78 +49 98 67 98 +80 41 89 83 +84 54 93 54 +41 5 89 72 +70 63 76 76 +97 46 99 84 +70 64 76 78 +82 39 84 78 +33 51 36 88 +6 97 82 97 +33 39 76 54 +5 56 21 96 +73 1 92 25 +17 35 41 39 +33 23 50 31 +93 84 95 99 +33 44 34 64 +27 5 85 29 +51 93 94 93 +34 56 52 79 +30 50 47 92 +64 97 90 99 +67 87 88 96 +73 46 99 85 +40 11 98 86 +66 62 84 78 +80 69 81 82 +87 87 93 92 +72 78 89 79 +62 50 69 86 +45 56 83 74 +1 43 23 70 +91 50 98 87 +48 7 86 16 +24 50 54 72 +33 68 36 75 +19 78 93 93 +74 60 87 60 +98 95 99 95 +2 71 55 93 +57 53 64 89 +44 60 87 99 +76 80 92 90 +79 4 82 16 +53 72 64 92 +9 67 87 92 +15 63 58 93 +0 69 20 94 +92 70 96 70 +63 18 64 30 +56 68 85 76 +42 38 47 60 +39 11 56 88 +10 90 63 96 +43 12 96 45 +34 89 37 94 +80 19 85 29 +21 23 84 29 +3 77 56 84 +41 62 93 77 +40 40 64 84 +66 93 84 96 +19 59 33 82 +77 27 84 46 +58 75 59 80 +9 62 90 79 +50 39 50 42 +9 45 87 59 +38 1 50 50 +36 52 95 55 +3 11 77 88 +48 92 49 99 +90 75 99 83 +24 0 24 8 +52 43 82 82 +50 65 58 81 +9 25 31 84 +57 24 79 65 +46 40 61 98 +4 3 16 72 +27 18 79 23 +5 47 26 95 +90 8 92 93 +39 17 42 59 +18 45 94 69 +37 3 76 43 +57 79 71 98 +8 56 21 63 +14 64 73 69 +65 90 74 95 +67 46 72 84 +97 2 98 96 +53 84 63 98 +91 36 99 61 +35 55 62 68 +1 96 54 96 +18 1 62 26 +55 61 92 78 +12 34 24 39 +47 2 89 92 +61 94 87 98 +43 76 66 95 +37 24 51 62 +63 73 98 91 +0 14 64 59 +4 73 59 81 +9 38 29 78 +58 76 83 78 +78 23 81 46 +91 25 92 63 +42 66 46 95 +77 22 89 30 +72 14 80 19 +12 13 39 79 +69 93 74 94 +69 28 82 58 +2 80 59 83 +4 58 66 58 +91 98 93 99 +40 84 82 89 +77 5 98 59 +54 50 55 80 +57 88 81 96 +61 43 70 97 +47 68 90 92 +65 68 94 71 +75 23 79 37 +19 17 75 55 +76 92 83 97 +78 58 79 97 +96 13 96 82 +90 44 94 70 +89 19 92 22 +87 86 87 86 +83 10 93 61 +23 16 34 27 +56 66 61 70 +9 99 82 99 +35 47 39 69 +83 39 92 50 +97 26 99 27 +69 92 94 93 +91 21 97 94 +99 30 99 32 +97 55 99 84 +43 5 60 28 +45 34 89 76 +76 45 88 65 +58 44 75 59 +41 10 55 42 +30 14 94 86 +72 45 88 49 +1 8 3 68 +15 54 61 91 +23 15 83 86 +46 89 53 96 +21 89 25 95 +12 9 17 67 +61 9 88 37 +5 96 30 97 +94 8 99 9 +74 40 98 71 +52 53 65 62 +13 43 30 70 +58 38 96 95 +97 68 98 70 +95 16 96 44 +3 28 44 29 +92 27 96 49 +36 30 52 82 +13 44 96 93 +65 28 75 56 +96 30 99 99 +84 12 86 18 +9 49 33 50 +78 31 94 49 +36 70 45 93 +92 73 96 82 +38 45 78 49 +68 2 89 61 +56 33 98 53 +71 11 89 36 +94 40 94 64 +81 8 85 37 +57 0 81 97 +78 92 98 99 +18 71 39 71 +29 44 79 79 +13 75 72 92 +27 79 82 97 +7 23 38 26 +5 3 25 46 +45 45 51 78 +67 59 98 99 +2 2 90 71 +94 35 98 86 +68 45 97 45 +63 76 63 93 +92 56 99 67 +17 9 21 72 +77 57 89 61 +7 54 97 83 +29 11 60 17 +15 41 76 85 +81 30 93 52 +65 4 81 36 +48 95 49 99 +58 29 80 67 +23 53 45 78 +53 6 78 56 +64 69 73 70 +90 37 97 79 +31 43 44 53 +89 81 92 81 +67 54 72 67 +43 75 53 95 +79 76 99 87 +34 50 37 64 +27 68 65 68 +84 44 84 86 +90 55 99 58 +36 99 88 99 +35 79 84 90 +93 8 95 93 +29 99 77 99 +85 3 89 20 +61 36 69 62 +75 56 90 73 +23 6 56 9 +14 96 44 97 +21 73 97 80 +72 31 86 92 +12 53 64 92 +19 60 56 75 +2 26 8 93 +11 87 18 99 +50 56 77 94 +2 90 71 98 +60 5 89 71 +83 92 90 96 +96 34 97 52 +52 25 93 69 +43 17 58 75 +84 89 94 89 +82 34 96 41 +21 40 26 92 +2 2 95 60 +35 19 64 24 +2 98 80 98 +75 82 75 94 +0 54 8 72 +57 92 65 98 +20 91 40 98 +34 55 52 96 +27 88 54 92 +15 81 75 86 +14 30 96 85 +88 60 89 78 +80 4 91 67 +34 78 54 97 +24 11 71 49 +42 50 64 73 +72 79 87 96 +12 97 80 98 +99 9 99 15 +97 98 97 99 +48 35 70 96 +28 67 30 91 +40 35 93 79 +57 89 97 89 +29 24 92 35 +61 60 88 64 +86 7 89 68 +15 48 49 71 +91 71 99 72 +27 57 62 67 +47 70 94 71 +94 76 97 88 +81 62 95 81 +67 9 96 51 +62 29 86 71 +97 7 98 27 +90 37 91 63 +22 62 72 83 +71 12 72 21 +45 68 62 91 +37 61 67 97 +77 28 82 77 +68 70 76 88 +69 81 83 84 +13 48 16 69 +14 38 97 81 +37 26 74 90 +75 24 81 25 +28 54 29 99 +80 45 98 72 +71 54 94 87 +35 57 94 83 +87 80 94 81 +10 51 27 91 +20 31 43 79 +56 20 56 33 +75 64 82 84 +36 69 36 69 +96 70 97 86 +36 64 54 66 +96 42 96 89 +95 15 97 97 +93 79 96 99 +67 77 93 98 +25 79 65 82 +48 15 98 89 +91 96 95 99 +23 80 76 98 +82 65 83 99 +56 21 69 51 +79 15 80 23 +97 58 99 67 +15 80 32 82 +93 83 97 88 +27 11 43 32 +54 88 65 96 +10 81 25 99 +90 38 96 94 +99 78 99 90 +38 71 98 93 +73 42 92 42 +86 78 88 78 +32 84 75 91 +58 57 78 82 +3 11 27 74 +1 45 83 83 +24 4 63 69 +93 73 98 82 +82 37 84 57 +52 55 68 80 +96 81 97 84 +41 94 66 96 +75 74 98 86 +32 34 45 82 +87 89 97 95 +2 95 80 99 +50 66 97 82 +22 42 56 74 +92 29 97 46 +83 87 83 88 +94 50 98 79 +4 41 72 58 +12 90 17 95 +50 45 58 83 +47 19 99 67 +69 84 76 90 +59 17 95 82 +36 36 66 91 +57 47 97 78 +40 15 87 92 +10 62 33 81 +25 48 63 84 +58 55 69 71 +73 0 94 90 +51 59 59 84 +27 18 59 84 +48 2 66 91 +9 83 12 89 +86 49 98 69 +26 67 64 97 +34 23 78 76 +85 22 89 91 +52 37 58 43 +24 56 64 83 +10 46 92 97 +82 13 95 60 +99 96 99 99 +90 50 93 57 +77 33 82 55 +34 26 68 75 +35 23 69 65 +68 82 69 97 +43 36 58 51 +8 58 35 64 +70 38 78 52 +96 18 97 97 +15 28 19 32 +19 1 71 26 +64 48 69 84 +43 77 56 91 +37 95 99 98 +75 41 87 76 +6 8 13 87 +29 37 73 47 +37 73 79 74 +85 46 87 67 +26 12 65 81 +36 28 65 58 +73 3 86 90 +78 70 97 75 +8 96 93 98 +16 90 54 93 +83 98 90 99 +11 74 41 97 +66 35 94 99 +12 71 44 72 +90 4 97 53 +53 94 86 94 +64 28 78 51 +58 30 67 48 +88 61 90 81 +90 4 98 40 +87 5 99 54 +6 87 71 87 +82 3 95 41 +77 8 96 29 +57 84 92 86 +95 27 96 43 +8 82 73 82 +17 72 80 78 +46 35 91 53 +67 31 69 67 +37 67 89 80 +2 52 57 52 +55 42 99 54 +10 96 11 99 +93 39 95 53 +97 90 97 91 +94 33 96 38 +42 39 50 70 +64 56 72 60 +83 11 93 78 +91 8 99 8 +24 25 45 79 +81 42 90 98 +74 15 94 18 +40 1 42 14 +28 28 69 60 +31 59 81 93 +89 12 95 77 +49 81 59 81 +0 55 5 68 +68 95 87 98 +35 14 88 94 +48 73 63 93 +57 52 97 89 +29 95 61 96 +56 31 81 31 +5 58 44 66 +75 29 93 91 +75 28 91 66 +73 67 89 94 +5 72 19 75 +68 86 99 86 +75 76 84 90 +99 52 99 57 +93 62 98 72 +60 75 73 85 +45 67 74 72 +87 99 91 99 +91 87 97 94 +9 7 89 30 +72 7 87 70 +38 40 96 73 +72 45 79 49 +40 98 53 99 +80 67 91 89 +18 81 52 84 +76 33 78 87 +70 77 87 92 +85 59 88 75 +66 2 68 47 +56 51 64 77 +75 45 77 97 +5 13 33 46 +81 57 96 59 +21 54 27 84 +12 67 61 93 +69 92 85 95 +55 27 96 29 +17 89 26 96 +28 76 55 85 +2 44 2 70 +97 56 98 82 +9 54 91 87 +6 93 24 95 +33 66 49 93 +76 77 99 86 +21 62 74 87 +75 64 78 90 +11 36 27 61 +98 13 98 82 +50 2 96 58 +94 16 98 56 +81 2 91 84 +82 62 88 72 +17 35 46 59 +62 92 62 98 +63 54 86 99 +51 76 59 85 +8 57 59 77 +28 75 82 78 +4 11 31 32 +97 38 98 74 +20 98 33 98 +10 20 12 65 +47 92 53 94 +68 73 94 84 +40 44 92 67 +33 19 89 42 +19 38 48 45 +16 36 18 62 +63 5 78 62 +82 56 99 79 +7 77 97 79 +67 41 96 70 +94 45 96 55 +41 10 83 98 +33 86 93 88 +11 32 69 35 +5 40 21 73 +80 49 91 62 +10 22 31 44 +5 31 82 54 +73 74 75 91 +91 22 99 87 +11 19 91 69 +95 50 99 55 +96 41 98 62 +12 62 52 75 +84 77 91 93 +17 4 28 30 +38 71 67 93 +64 7 90 42 +72 65 72 76 +88 54 95 76 +76 18 91 33 +31 36 32 41 +15 81 51 81 +41 31 63 98 +76 38 86 89 +79 59 99 84 +65 13 79 29 +81 93 99 93 +42 3 87 75 +29 22 34 94 +40 2 68 14 +57 96 82 99 +28 5 90 27 +33 88 62 99 +25 10 35 50 +11 87 57 99 +82 86 92 96 +33 16 78 69 +26 73 54 84 +54 95 92 99 +61 63 85 64 +93 45 96 86 +78 36 82 84 +85 70 85 74 +43 61 51 99 +20 94 39 98 +94 17 97 46 +60 69 71 89 +68 1 75 61 +36 27 67 46 +9 64 20 86 +16 56 72 58 +58 75 72 97 +33 77 56 79 +59 22 65 79 +10 1 74 29 +61 98 91 98 +78 77 93 98 +92 61 95 83 +63 36 83 93 +90 41 90 61 +61 60 76 70 +55 69 55 88 +13 55 15 89 +79 30 83 85 +42 15 69 87 +27 87 38 87 +87 11 87 25 +20 34 72 58 +31 19 40 39 +10 33 42 46 +20 40 56 41 +51 2 62 95 +61 37 93 61 +69 35 91 72 +28 96 75 97 +91 86 95 94 +76 11 83 81 +77 54 77 64 +56 7 91 44 +32 44 55 46 +6 56 9 86 +31 88 52 99 +93 47 95 86 +36 62 66 67 +8 31 23 54 +64 28 80 90 +84 20 96 53 +31 19 36 30 +22 91 68 91 +85 94 93 94 +71 68 86 96 +75 52 91 69 +74 91 95 91 +2 52 71 90 +9 24 38 63 +15 48 46 56 +28 43 42 85 +58 93 82 97 +17 76 50 79 +55 42 86 93 +30 80 94 93 +48 82 74 92 +47 2 65 13 +77 81 80 85 +21 55 76 64 +34 90 50 90 +68 94 94 96 +13 80 59 90 +9 96 34 98 +85 64 92 85 +81 22 99 92 +64 61 88 64 +64 15 76 93 +58 80 58 94 +95 62 98 79 +44 41 63 61 +15 86 75 96 +14 80 84 89 +39 60 68 72 +85 64 91 69 +3 23 11 76 +62 92 83 94 +79 61 98 95 +65 29 65 45 +60 3 64 12 +67 1 90 12 +91 37 95 83 +4 55 38 81 +51 28 68 78 +1 9 85 97 +44 18 55 22 +19 8 37 47 +94 17 95 18 +59 95 63 98 +10 52 76 62 +72 97 81 99 +98 49 99 68 +60 83 83 83 +49 5 82 15 +39 39 82 45 +80 39 81 63 +2 27 84 34 +79 18 91 44 +2 82 59 84 +40 22 84 41 +74 22 87 74 +30 7 35 21 +49 9 71 55 +16 94 91 97 +29 52 87 84 +88 90 99 97 +29 27 36 33 +16 59 95 89 +40 99 44 99 +0 83 66 87 +96 34 97 49 +10 16 27 47 +32 91 94 96 +33 0 51 59 +14 79 55 85 +3 53 48 92 +10 45 62 72 +75 41 78 68 +16 59 52 78 +80 52 82 96 +26 22 50 76 +19 28 64 28 +72 14 91 26 +21 40 47 68 +63 24 65 51 +78 98 94 99 +7 22 57 82 +11 27 35 98 +48 55 89 95 +26 99 37 99 +44 1 72 98 +93 98 98 98 +64 89 79 94 +10 85 82 98 +54 26 73 36 +2 11 30 84 +62 94 77 96 +37 12 53 84 +30 71 81 75 +87 53 98 97 +72 27 86 84 +43 6 83 39 +68 96 96 96 +22 83 40 84 +87 1 95 69 +13 15 24 95 +81 84 86 90 +12 44 27 60 +35 14 71 31 +56 49 57 99 +47 58 59 86 +82 71 94 97 +67 6 67 41 +53 33 58 88 +14 92 35 92 +48 16 94 80 +95 59 96 82 +69 43 88 52 +51 95 52 95 +0 12 72 90 +39 60 86 72 +66 1 69 73 +28 80 88 87 +82 32 89 76 +46 96 96 96 +11 31 39 77 +61 56 89 86 +68 21 78 29 +27 48 31 77 +31 99 80 99 +20 23 31 73 +11 60 57 70 +76 56 93 66 +18 66 39 68 +17 12 37 30 +19 58 25 60 +46 45 66 63 +73 88 84 92 +73 62 93 81 +70 16 76 95 +62 28 80 72 +29 79 51 83 +46 67 50 82 +93 27 95 46 +37 59 84 82 +20 3 89 8 +96 27 99 30 +72 65 92 97 +8 34 51 67 +97 78 97 85 +4 85 9 93 +37 81 62 92 +95 54 95 83 +75 28 81 67 +20 49 49 73 +33 74 52 89 +5 53 41 63 +10 19 67 22 +37 59 73 86 +72 12 95 18 +45 27 50 53 +14 88 92 88 +70 81 74 90 +12 63 82 99 +69 30 75 34 +66 67 81 83 +43 8 50 72 +61 94 86 98 +63 33 83 53 +59 53 71 71 +58 77 61 80 +5 93 95 99 +10 31 24 48 +72 33 95 58 +82 80 87 96 +73 9 99 10 +84 93 98 98 +63 10 95 90 +55 48 79 82 +22 71 34 90 +53 27 88 91 +70 5 73 40 +39 20 53 46 +84 56 95 81 +68 82 68 89 +29 16 32 35 +90 34 92 76 +40 81 86 96 +93 7 96 41 +49 16 75 50 +17 31 39 93 +77 39 89 64 +0 44 3 51 +63 13 72 22 +14 72 58 99 +50 20 56 51 +72 61 74 98 +68 13 81 59 +49 13 61 68 +76 11 90 37 +20 79 77 88 +77 16 99 44 +4 25 88 64 +9 95 69 99 +26 72 83 91 +60 16 60 74 +91 27 94 90 +82 3 95 50 +59 20 74 45 +92 89 94 97 +59 49 97 84 +56 90 65 99 +84 16 93 19 +68 61 68 74 +18 28 75 81 +99 56 99 95 +74 90 86 98 +40 37 91 52 +72 0 89 5 +65 6 72 58 +62 2 82 15 +5 61 61 94 +3 68 47 80 +6 88 78 94 +45 9 71 26 +52 47 97 62 +55 91 67 95 +52 81 92 83 +67 29 78 45 +30 39 36 78 +37 23 53 63 +24 65 54 76 +38 94 97 98 +73 79 99 99 +47 65 54 89 +42 6 76 64 +0 25 79 41 +36 32 41 75 +5 2 94 41 +80 63 82 69 +84 52 86 80 +86 78 89 86 +45 27 75 40 +67 42 70 45 +16 15 35 60 +31 19 96 86 +15 72 73 76 +43 0 55 65 +33 55 93 99 +48 95 91 97 +0 8 33 84 +98 35 99 79 +28 49 83 51 +22 24 27 80 +98 98 99 98 +21 46 44 56 +62 35 81 40 +58 26 92 75 +25 68 78 74 +80 4 86 61 +7 10 55 93 +30 51 89 54 +42 35 97 48 +97 41 99 41 +34 21 94 92 +21 48 90 52 +87 63 95 78 +33 49 44 53 +14 3 27 81 +46 17 54 32 +28 3 59 12 +28 7 83 86 +42 0 79 52 +85 48 94 72 +43 10 89 66 +83 47 94 74 +69 66 96 83 +3 45 61 97 +28 82 85 98 +77 46 89 94 +97 57 97 65 +33 58 67 85 +44 52 94 68 +33 21 62 58 +79 30 94 49 +76 8 86 73 +33 49 48 60 +49 33 70 98 +72 3 99 14 +93 87 93 94 +28 98 94 98 +57 72 93 77 +45 52 95 89 +78 20 80 20 +64 7 64 27 +55 93 72 97 +26 10 98 94 +35 57 93 90 +92 78 92 97 +72 10 86 12 +22 54 87 55 +96 75 96 76 +29 88 57 90 +16 93 28 96 +16 46 74 87 +32 35 84 52 +58 58 73 82 +97 25 99 64 +27 19 55 53 +96 81 96 81 +58 85 95 93 +91 77 91 79 +82 8 91 25 +35 98 57 98 +70 62 79 83 +64 21 88 37 +31 88 99 91 +43 16 76 59 +46 85 53 94 +81 37 84 88 +91 87 99 87 +66 68 85 71 +31 40 33 54 +47 40 97 42 +95 67 95 85 +83 14 86 29 +39 72 39 89 +26 74 42 88 +68 35 92 84 +21 12 86 76 +66 74 69 88 +52 76 98 94 +7 55 34 87 +32 10 68 51 +6 23 63 33 +41 3 75 79 +60 65 75 79 +73 10 75 65 +59 3 83 97 +67 64 74 66 +10 48 35 66 +49 93 68 93 +78 9 91 96 +15 81 81 94 +8 20 31 94 +66 51 83 68 +49 0 68 35 +85 85 99 98 +36 35 61 85 +67 54 75 56 +72 66 90 79 +79 10 80 49 +39 36 87 74 +19 38 81 89 +36 60 51 91 +6 62 51 88 +46 31 66 60 +90 37 90 53 +67 23 77 42 +34 40 39 46 +42 78 60 98 +25 16 68 28 +41 11 94 41 +69 35 81 44 +20 84 31 93 +97 27 97 40 +96 66 98 83 +27 95 49 95 +93 5 95 32 +83 43 92 57 +44 6 79 94 +22 16 82 74 +65 34 78 75 +44 86 47 95 +50 18 85 73 +7 45 66 94 +59 5 90 33 +2 89 15 89 +80 27 86 32 +55 34 61 63 +46 82 68 95 +24 24 73 98 +78 56 78 74 +2 8 11 72 +1 27 31 91 +29 33 30 54 +78 53 85 71 +61 92 94 99 +47 92 86 93 +73 93 88 98 +52 54 77 91 +75 75 76 92 +34 82 43 98 +21 4 41 17 +21 85 42 94 +47 39 81 74 +15 54 29 87 +66 60 74 96 +35 83 91 94 +34 19 55 45 +31 42 76 67 +6 37 35 39 +18 61 73 73 +87 69 94 99 +50 22 83 36 +20 65 78 78 +80 39 94 46 +61 23 85 24 +55 7 82 19 +87 80 94 88 +1 40 11 49 +33 57 48 62 +45 43 49 51 +58 96 58 98 +66 47 83 89 +9 15 21 93 +95 6 99 34 +8 94 14 97 +25 10 80 84 +42 16 50 28 +84 94 93 99 +77 54 82 59 +94 30 94 94 +41 68 74 88 +94 94 99 94 +55 50 71 60 +6 92 49 96 +14 76 50 94 +74 9 92 49 +17 14 27 84 +23 33 96 58 +91 65 97 99 +25 24 80 62 +17 64 17 75 +13 97 99 97 +56 12 58 35 +12 90 79 93 +89 32 89 73 +2 34 85 56 +3 70 64 94 +12 6 38 33 +29 96 52 96 +42 65 90 87 +13 72 40 74 +53 97 89 97 +46 41 94 75 +71 71 93 99 +62 87 80 97 +70 51 90 62 +97 87 98 99 +12 65 94 91 +72 20 80 97 +42 49 48 63 +47 88 99 92 +29 12 90 25 +24 5 81 7 +44 92 90 94 +1 88 81 97 +64 28 65 83 +30 33 44 36 +51 30 92 58 +93 93 96 97 +28 79 98 95 +88 19 88 55 +29 27 51 37 +94 91 95 99 +34 10 93 45 +54 27 99 76 +71 52 80 66 +27 25 84 57 +49 66 89 76 +26 69 79 70 +82 15 99 93 +40 73 47 75 +77 0 84 96 +21 0 97 37 +87 20 99 48 +62 62 69 63 +60 56 84 67 +20 44 69 95 +14 40 26 97 +6 85 43 90 +41 77 97 78 +47 94 68 99 +74 69 96 83 +89 99 94 99 +57 26 85 78 +20 7 85 36 +98 55 98 80 +37 56 66 93 +31 85 96 88 +55 96 96 96 +96 27 98 42 +37 33 70 67 +86 51 93 63 +54 66 95 70 +26 30 59 42 +80 92 99 96 +79 28 87 36 +78 39 93 41 +11 50 36 74 +10 14 86 29 +58 31 71 59 +59 78 72 82 +17 76 28 86 +96 83 98 90 +36 71 43 82 +19 30 39 49 +65 59 78 73 +19 65 97 94 +71 62 76 90 +74 6 75 24 +11 54 71 84 +80 56 87 88 +79 9 81 79 +91 57 93 65 +94 34 97 80 +49 91 53 96 +13 37 54 69 +52 26 73 98 +78 26 94 88 +5 24 40 53 +75 95 82 96 +81 20 82 82 +95 45 95 59 +59 38 63 85 +98 75 98 80 +81 63 91 84 +35 15 45 44 +19 70 82 80 +85 48 88 57 +50 32 77 65 +52 34 75 48 +82 68 95 87 +63 89 73 91 +24 48 30 79 +69 70 71 97 +5 94 80 95 +57 44 74 63 +97 12 98 54 +72 60 97 64 +57 17 99 84 +3 53 94 96 +22 25 95 82 +14 70 51 81 +59 41 60 66 +62 55 78 83 +31 28 47 75 +91 20 96 92 +1 67 24 71 +67 73 84 99 +50 18 85 90 +98 87 98 93 +51 30 86 39 +64 86 82 91 +36 25 82 95 +99 64 99 96 +1 80 14 87 +66 81 73 91 +29 28 93 47 +42 57 83 68 +18 61 21 96 +21 96 27 98 +99 94 99 96 +9 10 9 56 +18 60 67 70 +66 35 88 40 +19 66 23 88 +22 9 90 31 +79 78 87 93 +6 9 15 89 +17 35 90 93 +60 34 78 36 +56 57 94 77 +23 57 26 70 +87 25 92 27 +5 66 83 98 +24 6 59 88 +58 46 90 60 +29 29 60 81 +82 75 82 86 +58 33 97 42 +86 31 95 35 +5 4 60 41 +80 48 81 66 +81 76 84 94 +34 86 92 95 +12 31 66 86 +59 97 98 98 +41 28 97 55 +91 31 98 76 +58 83 98 87 +98 36 98 88 +23 1 26 19 +53 69 80 76 +18 13 92 82 +36 28 61 49 +96 92 96 97 +1 67 11 94 +34 22 50 27 +96 37 96 61 +62 71 68 86 +53 99 71 99 +6 19 99 61 +81 61 98 66 +24 55 43 84 +69 2 96 59 +28 22 36 91 +69 55 91 85 +81 56 91 78 +34 41 75 96 +76 78 81 96 +17 75 71 80 +29 24 61 96 +38 69 84 94 +45 66 93 74 +74 23 79 32 +9 0 55 5 +17 23 33 52 +69 58 81 72 +61 86 88 90 +90 52 98 68 +41 55 74 62 +29 46 69 86 +19 64 44 91 +77 29 95 61 +50 95 71 96 +33 41 71 68 +52 98 72 98 +27 34 68 44 +37 44 51 60 +31 99 55 99 +7 34 93 72 +94 45 98 55 +32 75 68 97 +55 53 96 95 +19 16 24 34 +37 14 76 60 +7 53 95 87 +75 40 77 61 +94 50 94 67 +75 96 90 96 +28 6 47 23 +0 65 39 66 +49 67 52 84 +88 76 95 87 +59 84 93 97 +30 29 97 50 +65 55 92 80 +41 72 47 86 +85 92 98 96 +35 93 97 96 +23 12 47 82 +87 21 92 51 +52 11 77 61 +0 39 60 41 +92 53 96 86 +56 47 80 82 +80 2 95 47 +5 66 61 82 +73 34 80 55 +19 24 60 99 +43 98 43 98 +68 53 99 73 +7 12 54 91 +55 0 89 17 +13 63 27 92 +94 87 94 88 +26 81 88 81 +7 37 30 97 +75 0 79 85 +19 31 31 93 +28 61 32 77 +14 60 65 74 +71 32 93 76 +93 9 97 13 +31 97 60 99 +48 29 86 75 +49 41 52 50 +84 45 94 96 +38 23 56 50 +23 30 74 74 +70 91 81 93 +34 58 62 66 +63 19 71 98 +14 75 90 82 +92 33 95 55 +32 16 82 22 +35 15 78 67 +35 94 52 98 +80 54 89 81 +26 8 44 80 +51 78 64 88 +16 31 72 43 +85 21 86 23 +38 3 47 10 +48 15 71 64 +85 44 85 69 +94 29 94 93 +45 10 95 90 +86 35 91 80 +43 30 46 32 +4 76 4 85 +88 15 99 24 +60 1 97 24 +79 89 96 94 +35 50 42 78 +82 29 96 97 +45 76 98 81 +18 51 24 72 +44 30 45 31 +3 3 5 88 +11 73 38 80 +97 76 98 82 +40 47 63 94 +62 4 68 74 +32 87 62 97 +78 82 87 96 +61 12 91 82 +85 63 88 67 +67 62 72 77 +60 38 65 90 +48 80 83 89 +57 87 82 89 +6 44 61 73 +62 60 85 89 +1 76 16 92 +70 3 92 70 +50 23 63 95 +96 45 98 96 +81 99 90 99 +6 11 99 71 +51 53 92 85 +87 96 93 97 +97 41 98 47 +73 12 98 48 +4 83 51 90 +8 83 37 95 +51 54 68 77 +93 15 96 61 +44 16 60 81 +40 46 84 62 +12 16 96 36 +47 85 73 95 +2 83 16 88 +73 16 80 62 +99 88 99 98 +11 87 77 94 +49 61 66 78 +54 14 71 39 +96 11 96 37 +51 66 82 87 +3 37 10 83 +6 50 86 89 +89 38 92 41 +56 91 59 96 +53 10 60 31 +65 81 83 86 +89 93 94 93 +22 8 68 95 +60 49 83 74 +32 39 58 49 +4 3 76 69 +67 72 96 77 +41 85 99 92 +16 70 60 97 +56 91 70 97 +36 78 51 81 +81 49 94 69 +14 15 79 86 +57 75 84 86 +89 17 97 79 +13 29 73 49 +59 18 82 47 +89 96 92 97 +40 16 40 55 +97 67 98 86 +61 84 79 95 +16 78 27 80 +41 59 71 99 +32 19 39 23 +88 7 93 31 +31 28 35 63 +59 15 98 57 +33 22 98 88 +17 68 20 95 +35 93 68 97 +52 72 61 75 +14 90 43 91 +69 63 82 96 +86 99 95 99 +56 37 81 39 +68 35 79 96 +1 66 5 70 +69 67 89 94 +22 50 66 92 +72 6 75 51 +74 90 81 98 +84 54 95 65 +36 97 36 98 +7 81 73 86 +73 87 89 91 +20 72 78 95 +26 25 35 49 +70 27 88 97 +84 71 93 71 +7 28 49 44 +10 48 48 69 +14 68 87 96 +71 86 84 90 +21 9 26 19 +44 40 58 69 +31 6 58 11 +22 66 45 99 +67 53 82 94 +99 60 99 68 +4 96 44 97 +0 95 95 97 +91 41 93 64 +70 87 97 94 +72 26 72 51 +17 79 88 95 +61 90 90 96 +62 44 63 46 +89 62 92 73 +79 26 83 60 +74 56 79 70 +97 66 99 92 +97 64 97 73 +37 94 79 99 +12 26 93 83 +32 57 74 69 +3 89 10 92 +62 36 62 69 +76 43 92 58 +32 57 37 59 +32 22 37 28 +25 40 35 74 +37 77 86 89 +85 1 97 38 +3 97 46 98 +13 24 36 63 +19 13 34 86 +17 85 35 96 +68 2 89 51 +34 25 43 74 +72 20 72 24 +0 90 53 94 +4 67 66 92 +37 35 55 52 +55 42 57 70 +4 86 6 93 +79 32 91 56 +19 63 87 94 +12 62 99 74 +2 16 90 36 +43 74 60 82 +78 59 94 85 +57 99 66 99 +54 38 59 43 +66 34 90 75 +49 52 59 70 +78 3 88 42 +86 46 91 56 +19 86 60 96 +23 66 97 74 +24 15 63 52 +67 35 97 91 +20 26 47 98 +60 99 87 99 +13 3 73 56 +89 64 94 79 +50 4 82 50 +97 36 99 47 +78 50 87 67 +82 48 84 95 +58 52 87 55 +99 89 99 98 +82 55 86 77 +22 26 27 33 +48 51 52 77 +67 91 78 91 +96 92 98 93 +47 90 55 94 +19 86 93 95 +54 21 68 44 +13 42 62 82 +2 73 87 81 +46 83 74 98 +74 1 76 38 +84 22 85 99 +52 87 79 87 +32 98 65 99 +18 67 34 77 +17 45 99 59 +57 83 99 90 +72 85 80 87 +33 50 51 89 +2 83 50 85 +90 46 93 47 +84 83 98 90 +95 15 98 75 +2 3 41 4 +50 87 76 90 +73 95 94 98 +65 92 86 99 +66 84 70 95 +68 48 70 58 +20 34 95 97 +60 30 85 37 +65 20 79 61 +89 54 98 93 +90 92 96 93 +2 33 60 54 +19 20 51 86 +92 87 99 92 +44 2 84 68 +62 55 89 98 +26 60 81 82 +56 2 58 13 +86 37 92 79 +43 56 82 71 +25 55 67 83 +82 2 92 34 +79 35 89 68 +56 42 69 63 +28 48 93 80 +36 90 82 90 +82 28 94 38 +68 86 85 97 +9 45 82 65 +63 9 78 45 +41 41 90 83 +11 60 60 79 +8 71 48 84 +28 27 61 71 +58 20 94 24 +63 62 70 89 +51 7 70 18 +67 5 97 56 +40 93 51 96 +95 84 97 84 +90 77 99 91 +97 28 97 74 +81 34 91 66 +49 0 51 69 +54 88 92 91 +33 29 38 62 +6 22 90 89 +87 2 88 4 +56 11 73 43 +90 57 96 78 +79 44 81 79 +29 60 82 91 +47 60 91 71 +74 33 78 65 +59 21 93 50 +40 83 45 84 +49 76 71 93 +21 86 49 96 +1 96 94 97 +41 15 44 40 +81 60 99 81 +45 46 72 48 +12 44 91 76 +49 70 79 70 +31 4 64 28 +83 68 98 81 +55 90 98 90 +97 84 98 84 +1 51 43 84 +7 75 79 83 +68 9 72 20 +78 19 98 33 +91 24 92 26 +39 34 81 97 +40 56 85 83 +22 60 66 95 +38 57 85 65 +27 72 48 90 +88 60 94 88 +73 67 96 73 +72 91 87 93 +29 25 72 44 +77 52 83 76 +8 17 38 92 +85 99 89 99 +18 69 23 96 +56 35 83 94 +12 25 62 47 +47 21 61 96 +35 91 66 95 +46 2 46 11 +58 74 86 79 +54 23 66 80 +28 75 54 77 +79 36 91 60 +51 49 79 79 +39 95 75 98 +6 34 39 99 +50 48 83 50 +81 60 92 63 +52 76 84 89 +80 41 88 61 +90 27 92 79 +23 43 91 76 +1 51 89 92 +73 94 75 94 +17 4 36 62 +28 85 78 86 +7 23 61 51 +39 68 65 83 +12 94 44 98 +96 20 97 46 +40 60 71 88 +70 25 79 56 +64 74 85 80 +56 31 86 68 +73 66 89 90 +44 31 89 71 +90 91 94 93 +81 71 98 92 +21 47 29 66 +37 93 74 93 +35 88 61 98 +96 65 98 85 +27 32 78 72 +40 18 72 76 +95 65 95 90 +30 1 71 14 +68 74 97 91 +59 10 62 61 +61 76 67 98 +21 28 65 40 +4 10 17 66 +46 61 54 89 +24 57 82 89 +37 57 65 74 +92 92 95 99 +60 26 86 52 +31 25 78 62 +11 42 40 56 +62 14 87 94 +91 5 94 11 +93 70 99 96 +32 31 32 38 +30 81 78 95 +35 79 73 79 +28 52 88 77 +17 39 76 45 +81 58 84 68 +74 5 74 94 +45 0 51 66 +91 27 92 83 +77 50 81 54 +57 12 86 97 +21 35 74 81 +67 93 92 96 +70 82 91 91 +72 61 79 80 +13 7 21 8 +27 30 77 55 +18 70 62 82 +69 14 73 99 +6 17 58 70 +30 26 81 26 +93 16 99 60 +33 54 88 89 +88 80 98 82 +95 31 97 41 +96 6 97 23 +60 20 96 49 +34 95 44 95 +14 73 82 93 +69 94 83 99 +12 3 91 9 +83 98 85 98 +92 2 92 56 +8 16 97 54 +54 74 90 97 +17 67 35 69 +67 11 69 20 +11 72 27 92 +6 12 8 96 +5 74 46 82 +86 96 95 98 +14 90 74 97 +86 68 93 76 +20 56 26 64 +48 26 86 82 +18 32 97 87 +54 94 76 97 +15 42 80 73 +52 72 64 94 +93 44 96 85 +96 3 99 73 +35 82 93 86 +17 56 93 92 +87 24 95 40 +33 72 62 98 +33 40 91 64 +11 2 53 29 +49 88 64 96 +33 94 48 95 +77 26 79 34 +47 45 82 81 +65 24 78 70 +94 82 94 95 +2 60 20 87 +18 6 59 84 +11 28 57 28 +85 29 88 59 +51 95 62 98 +18 16 73 18 +61 98 97 98 +30 5 99 15 +90 56 94 90 +74 13 99 41 +67 31 93 77 +83 81 90 89 +52 61 56 93 +45 5 83 17 +39 80 65 92 +77 0 93 30 +55 82 85 93 +51 62 97 98 +25 26 58 48 +64 97 82 97 +69 53 74 78 +24 56 47 96 +54 29 71 64 +38 3 64 31 +78 50 84 90 +60 42 75 55 +19 68 71 80 +72 2 82 4 +78 98 89 99 +21 30 99 46 +18 98 80 98 +98 62 98 76 +34 98 70 98 +89 12 93 26 +8 45 75 70 +90 66 95 73 +14 52 55 80 +10 94 79 95 +37 70 73 77 +76 38 91 41 +16 96 47 96 +67 84 85 84 +38 33 49 46 +78 39 78 58 +70 96 81 97 +71 96 88 98 +0 21 94 23 +1 34 10 75 +83 39 84 97 +62 42 90 93 +17 9 69 49 +69 48 90 63 +25 72 66 94 +29 28 35 61 +30 91 43 93 +44 67 94 71 +41 88 45 92 +17 19 36 31 +75 8 84 69 +3 98 22 98 +24 23 35 73 +44 63 48 93 +65 45 83 51 +82 31 89 55 +62 26 74 53 +13 58 27 90 +97 95 99 95 +27 4 88 36 +26 46 43 79 +55 13 77 78 +37 46 78 75 +67 64 84 80 +4 69 75 76 +41 12 83 37 +62 92 79 96 +62 62 73 69 +88 71 95 75 +2 72 56 81 +71 82 81 87 +54 50 60 95 +16 25 54 99 +66 79 87 97 +71 57 87 80 +3 45 32 61 +21 21 29 69 +74 78 77 78 +15 6 52 68 +43 51 91 67 +40 99 89 99 +60 5 82 70 +51 70 67 70 +87 35 92 38 +62 12 99 40 +27 82 67 85 +36 29 96 37 +75 41 84 97 +40 22 84 54 +66 46 99 72 +16 5 58 11 +89 31 95 74 +3 25 16 47 +61 77 95 81 +99 91 99 95 +30 4 36 42 +4 55 72 75 +72 32 94 87 +74 4 99 28 +94 70 97 81 +27 35 38 96 +83 69 99 93 +87 61 89 98 +59 2 78 88 +43 84 58 95 +72 77 83 90 +22 99 33 99 +26 6 69 32 +43 43 63 50 +37 8 73 73 +77 70 93 77 +95 77 99 93 +61 95 84 97 +31 4 90 7 +48 48 71 61 +16 2 43 51 +82 11 89 53 +80 58 88 73 +36 42 59 98 +70 81 95 94 +19 32 71 39 +60 14 94 96 +31 41 37 79 +5 98 76 98 +65 1 72 47 +8 58 29 91 +21 98 84 99 +59 44 96 61 +33 65 83 88 +5 18 52 32 +8 97 28 98 +36 83 45 98 +39 65 67 79 +20 92 40 92 +48 85 72 86 +14 76 28 80 +46 64 97 71 +22 8 31 86 +70 61 76 68 +98 52 98 83 +41 49 90 59 +60 56 95 85 +20 79 50 87 +92 96 92 99 +55 57 57 60 +76 53 92 78 +2 72 92 85 +18 49 40 97 +99 99 99 99 +46 27 84 65 +34 17 38 50 +57 37 94 76 +83 66 83 85 +3 31 51 61 +79 30 85 86 +65 95 72 95 +96 50 98 68 +36 24 41 63 +9 97 33 98 +48 73 61 84 +79 45 94 80 +46 36 73 69 +66 68 68 92 +79 21 83 56 +9 71 31 77 +58 75 78 94 +90 49 92 63 +10 27 50 76 +10 41 66 72 +93 72 98 81 +51 40 86 88 +79 71 85 83 +1 21 63 77 +21 25 52 96 +76 93 94 95 +62 64 76 65 +73 27 85 95 +2 86 30 96 +81 36 97 94 +85 34 88 54 +33 20 64 88 +68 60 92 85 +28 12 35 34 +33 62 95 76 +52 6 76 7 +70 70 89 94 +61 0 71 18 +31 9 58 44 +48 21 90 80 +89 79 99 92 +93 18 94 52 +23 76 30 82 +90 42 94 69 +76 28 96 58 +50 43 95 65 +18 40 96 69 +19 34 70 99 +41 91 58 95 +12 15 77 30 +39 74 68 92 +88 27 96 29 +62 77 66 87 +1 33 80 89 +61 83 62 95 +41 1 42 87 +94 18 99 53 +49 8 81 75 +65 33 92 38 +33 18 95 59 +52 76 58 81 +21 70 77 90 +78 7 93 46 +99 54 99 95 +56 27 70 43 +55 24 60 76 +23 44 70 61 +10 26 77 97 +43 65 86 83 +11 47 72 63 +61 91 82 96 +5 24 95 61 +11 95 95 97 +79 19 97 27 +42 75 44 84 +54 31 95 31 +35 61 66 76 +95 51 95 85 +79 24 92 49 +90 67 92 76 +45 76 65 92 +20 14 35 96 +29 71 82 72 +62 70 87 88 +39 23 57 83 +52 66 65 93 +40 9 78 85 +79 3 89 17 +25 41 72 61 +39 20 65 70 +93 91 96 97 +53 42 72 55 +40 27 46 85 +54 68 90 79 +23 58 54 64 +87 45 97 55 +21 99 33 99 +51 81 65 91 +53 3 57 65 +40 76 86 95 +93 22 98 86 +99 98 99 99 +85 63 90 80 +19 36 44 62 +78 40 85 68 +65 66 70 97 +3 55 80 84 +87 94 93 99 +67 38 73 41 +68 56 81 98 +89 29 99 53 +6 12 79 98 +47 35 79 73 +13 38 36 93 +39 72 83 79 +53 46 70 64 +34 50 92 51 +8 68 28 91 +40 67 58 90 +33 38 52 70 +56 28 91 49 +14 25 29 84 +7 57 78 82 +87 79 96 95 +5 7 40 24 +85 28 92 67 +45 5 83 83 +12 73 47 93 +71 44 72 95 +17 79 99 83 +84 59 88 63 +96 66 97 79 +0 43 5 55 +23 51 86 74 +93 80 93 92 +42 5 67 20 +34 54 41 58 +89 17 95 40 +60 37 95 96 +41 74 65 81 +84 65 91 69 +39 18 50 22 +7 7 11 15 +51 50 91 75 +57 2 78 33 +59 50 94 89 +31 63 61 73 +46 35 70 56 +89 25 94 49 +37 35 44 55 +21 46 43 64 +89 85 92 96 +97 85 98 88 +10 83 29 88 +33 85 81 90 +18 6 59 11 +58 56 71 81 +80 9 90 11 +40 70 96 99 +25 49 69 99 +17 1 27 35 +19 46 84 77 +76 0 79 63 +29 74 58 80 +40 33 76 33 +88 65 89 92 +46 94 96 97 +26 75 52 92 +87 37 91 77 +49 37 75 91 +11 43 32 99 +36 51 77 81 +26 77 60 89 +75 33 99 33 +27 46 30 92 +46 26 54 60 +16 50 60 88 +93 80 96 86 +96 66 96 93 +23 49 30 59 +81 54 96 90 +39 64 49 76 +11 98 75 99 +29 90 77 94 +90 46 99 67 +95 90 99 98 +32 98 34 99 +97 69 97 90 +9 74 44 79 +40 74 43 94 +0 71 77 82 +12 19 55 90 +69 8 98 12 +94 79 94 90 +22 78 60 92 +23 78 82 95 +89 61 98 76 +95 72 95 86 +5 24 17 27 +55 26 74 51 +49 29 53 63 +51 55 85 55 +47 90 59 99 +88 36 94 91 +5 45 25 97 +43 97 99 99 +8 98 46 99 +73 18 93 55 +4 16 42 79 +17 55 70 61 +62 67 93 98 +5 32 57 90 +55 40 75 45 +49 81 85 83 +69 79 72 91 +75 63 87 95 +81 85 89 95 +37 73 58 94 +28 12 38 81 +78 13 97 39 +68 70 87 83 +69 85 91 99 +18 30 64 30 +92 94 96 94 +2 32 36 70 +42 4 48 79 +80 81 99 94 +98 60 98 86 +23 65 48 81 +78 32 93 40 +28 92 65 97 +81 34 89 50 +96 66 97 92 +25 65 79 85 +27 3 37 18 +17 43 65 51 +98 7 99 45 +81 38 88 71 +78 19 84 52 +85 71 85 96 +62 2 99 92 +66 38 70 39 +21 53 99 68 +77 64 77 74 +85 55 95 72 +5 47 34 74 +21 74 35 80 +77 86 84 94 +44 4 63 82 +4 98 32 98 +17 51 55 73 +75 18 91 37 +13 42 74 66 +99 4 99 85 +88 1 92 72 +49 54 87 88 +96 13 97 58 +68 18 86 74 +79 29 86 50 +70 62 83 82 +86 14 90 25 +39 72 47 75 +9 53 35 99 +88 47 91 72 +4 84 77 85 +77 29 81 58 +81 64 85 92 +39 15 46 82 +47 66 93 82 +56 84 63 84 +28 29 82 81 +66 98 98 99 +0 45 5 49 +76 91 84 97 +32 43 88 73 +89 89 96 89 +48 99 90 99 +6 95 35 97 +62 5 71 80 +52 34 69 76 +25 73 31 99 +32 92 92 99 +23 99 58 99 +78 61 84 88 +51 63 82 82 +34 93 81 94 +35 69 48 69 +34 43 80 73 +90 87 90 92 +70 17 94 17 +12 42 28 50 +58 97 76 99 +53 81 86 82 +80 90 93 96 +74 90 80 94 +28 9 67 37 +49 87 76 90 +6 9 43 31 +31 62 59 95 +75 32 75 84 +61 25 93 45 +35 31 39 79 +88 12 99 42 +68 77 68 97 +95 49 98 84 +47 9 74 25 +25 27 78 64 +26 87 39 95 +57 12 67 50 +20 83 80 83 +52 89 59 89 +21 54 76 72 +30 62 95 82 +21 83 22 88 +42 11 78 53 +1 20 8 36 +61 69 91 77 +43 14 71 14 +19 91 43 98 +1 41 40 47 +30 57 80 57 +17 61 42 92 +37 8 46 67 +16 78 65 88 +70 0 79 3 +34 81 89 87 +85 61 85 85 +53 33 61 44 +43 47 85 72 +47 67 82 75 +75 86 82 95 +75 37 89 72 +52 22 61 54 +88 75 97 88 +81 91 81 92 +44 22 97 42 +91 87 92 98 +46 19 99 37 +91 55 96 93 +73 70 97 91 +18 98 91 99 +15 8 82 16 +15 50 64 72 +98 92 98 98 +73 9 91 54 +39 99 84 99 +66 9 94 38 +98 76 98 90 +85 64 85 80 +24 29 29 98 +36 17 44 18 +65 92 91 97 +59 61 92 74 +46 46 96 53 +15 48 22 54 +59 15 89 92 +44 9 78 63 +6 73 80 96 +0 85 47 97 +14 29 39 61 +94 32 97 41 +70 65 99 88 +35 54 41 76 +24 12 41 64 +28 60 30 69 +82 76 92 85 +2 20 88 22 +44 75 63 97 +97 25 97 30 +43 87 99 91 +90 85 99 87 +16 50 48 77 +76 57 99 81 +95 67 98 79 +79 40 94 60 +73 59 85 76 +60 84 78 98 +90 36 95 81 +87 44 91 91 +20 73 30 76 +33 20 53 93 +46 32 66 83 +10 37 26 91 +45 75 80 95 +85 2 89 76 +55 69 59 72 +75 80 82 83 +39 90 44 90 +55 46 57 79 +26 62 81 74 +12 13 31 86 +97 78 99 82 +46 14 77 83 +73 32 96 50 +41 19 71 37 +6 68 58 98 +1 42 87 95 +84 98 92 99 +77 18 78 90 +53 49 55 68 +55 68 74 89 +41 72 98 75 +82 99 85 99 +72 71 99 98 +8 97 21 98 +60 18 61 55 +4 80 49 80 +60 66 60 72 +37 57 74 87 +74 90 97 90 +33 4 85 77 +18 56 72 62 +83 5 84 58 +13 89 40 89 +2 69 73 69 +95 36 98 91 +87 84 94 90 +81 56 91 91 +39 93 63 96 +76 77 93 96 +43 80 69 84 +68 75 94 82 +82 35 90 61 +53 24 73 83 +75 29 85 99 +62 97 94 97 +83 38 98 95 +41 49 81 74 +79 74 94 98 +0 69 49 97 +33 73 45 89 +55 57 71 88 +10 88 91 99 +72 1 75 27 +26 55 71 57 +94 45 97 93 +88 18 92 82 +10 58 52 73 +18 56 28 94 +81 95 85 99 +46 98 98 99 +59 89 78 92 +64 9 70 92 +10 71 60 83 +10 92 95 95 +25 91 87 93 +70 35 90 53 +98 86 98 88 +7 42 89 73 +92 4 96 45 +36 71 73 96 +54 58 89 84 +20 48 50 79 +62 42 69 76 +68 38 97 68 +66 11 78 72 +25 49 60 84 +35 54 71 81 +59 93 99 98 +13 34 22 58 +6 22 87 55 +93 17 95 85 +29 5 60 67 +71 77 77 87 +6 22 56 91 +39 40 71 78 +16 72 19 98 +32 52 88 85 +30 59 95 66 +49 83 79 92 +77 89 84 97 +50 20 91 94 +65 13 98 23 +13 61 59 88 +72 47 90 71 +82 63 89 82 +89 15 95 29 +18 1 90 39 +43 53 69 79 +38 37 41 96 +88 50 99 59 +25 41 65 83 +95 38 98 45 +56 11 91 33 +62 88 99 90 +45 58 70 74 +0 74 32 79 +56 87 66 90 +71 42 96 44 +30 33 60 33 +92 9 95 77 +6 69 34 82 +27 28 95 50 +34 6 86 23 +27 66 66 85 +83 22 93 77 +84 4 99 35 +44 84 68 95 +47 69 91 72 +71 4 93 21 +40 90 50 93 +45 90 68 96 +45 99 63 99 +89 91 97 96 +68 68 70 99 +72 70 74 94 +85 37 99 63 +52 44 65 44 +34 11 63 84 +92 49 96 79 +13 81 75 94 +2 69 88 87 +42 43 81 69 +10 95 54 99 +70 46 73 70 +4 14 45 95 +76 70 93 97 +86 19 92 89 +68 62 88 76 +39 96 65 98 +59 12 72 66 +45 60 79 87 +41 71 64 81 +40 33 97 56 +48 59 70 99 +25 28 62 51 +86 12 97 44 +44 69 99 78 +22 7 89 86 +54 24 82 90 +43 0 58 79 +32 45 85 95 +31 82 73 88 +97 37 99 48 +46 6 59 22 +80 51 90 67 +1 5 68 12 +4 76 98 82 +95 33 95 68 +39 27 66 47 +52 52 75 99 +84 29 84 94 +8 1 93 93 +40 94 45 98 +8 57 35 63 +20 30 98 47 +26 47 66 92 +13 13 48 52 +44 64 72 76 +19 53 74 77 +2 60 87 65 +35 50 63 65 +64 63 89 64 +18 1 21 44 +36 65 84 79 +99 70 99 77 +82 86 83 97 +33 15 49 44 +97 63 98 70 +38 64 43 79 +29 67 79 70 +5 26 18 27 +32 19 34 28 +29 87 96 95 +44 71 96 90 +43 21 67 46 +8 99 62 99 +77 43 91 51 +38 90 96 99 +9 75 91 94 +30 90 42 94 +58 22 95 43 +54 42 87 94 +92 71 97 93 +53 3 79 27 +71 88 85 93 +0 63 61 69 +88 7 88 73 +87 65 99 75 +71 86 93 91 +5 39 42 40 +46 87 60 92 +24 19 67 78 +28 61 41 62 +62 67 73 84 +15 82 52 90 +67 80 97 99 +35 59 40 94 +37 15 87 61 +93 27 95 77 +22 71 98 81 +17 20 21 54 +49 89 52 97 +97 85 99 99 +6 48 86 89 +15 10 25 26 +89 93 95 94 +50 39 59 54 +23 96 46 98 +30 17 62 52 +25 29 48 97 +91 95 92 96 +82 60 93 69 +31 74 51 85 +82 17 90 40 +21 1 29 80 +74 5 74 41 +78 99 95 99 +93 99 93 99 +48 88 58 96 +82 84 86 84 +26 79 93 91 +71 36 91 98 +33 19 38 50 +63 58 96 61 +70 42 93 92 +97 92 98 94 +74 32 91 86 +96 69 97 99 +32 46 63 59 +57 13 77 15 +7 92 44 93 +88 24 89 79 +34 14 46 46 +59 7 94 85 +33 60 46 94 +92 38 95 91 +11 26 37 60 +11 88 65 93 +86 85 92 87 +19 18 84 50 +57 15 78 28 +36 24 78 48 +50 31 89 61 +11 63 14 72 +8 31 69 63 +14 13 77 27 +71 85 89 95 +32 96 85 96 +83 70 94 83 +63 36 84 38 +69 66 87 67 +1 92 35 93 +98 70 99 89 +18 21 34 71 +17 44 91 48 +80 67 98 97 +13 3 16 42 +45 10 65 80 +25 80 79 97 +81 50 93 70 +43 42 92 53 +86 83 94 83 +9 74 65 87 +86 10 87 39 +39 92 58 92 +1 94 73 94 +15 17 80 97 +84 44 85 62 +31 79 54 97 +19 56 71 72 +87 20 96 56 +87 17 87 70 +44 51 81 90 +49 81 64 83 +54 81 97 91 +77 55 98 75 +7 37 87 39 +92 3 96 44 +10 81 45 95 +87 97 88 99 +1 83 9 93 +53 42 58 86 +19 73 74 90 +5 9 27 18 +39 37 62 47 +90 0 99 72 +67 22 75 28 +65 65 74 76 +41 57 43 84 +50 89 95 94 +74 88 75 96 +52 80 90 83 +18 94 68 96 +0 67 75 93 +37 2 74 68 +46 13 62 42 +17 0 80 30 +52 87 75 90 +10 83 83 87 +9 20 62 50 +96 81 99 88 +55 37 84 60 +53 41 66 80 +89 18 99 27 +8 68 93 88 +6 2 80 52 +39 72 79 79 +41 19 95 53 +47 5 99 88 +27 21 56 27 +74 87 95 90 +31 26 59 93 +51 13 69 82 +9 21 88 38 +67 37 78 95 +23 55 64 95 +32 62 73 99 +27 75 83 81 +17 17 32 81 +16 71 41 74 +38 16 76 96 +56 69 85 89 +87 86 91 95 +99 12 99 85 +10 12 81 29 +75 64 79 90 +22 2 34 23 +59 57 72 68 +20 48 74 61 +88 20 97 82 +86 17 89 43 +59 84 80 84 +91 12 94 16 +65 67 79 77 +52 42 61 92 +84 3 92 24 +70 13 80 25 +53 25 58 81 +73 32 75 54 +29 13 50 40 +11 77 35 90 +62 40 68 81 +63 29 71 52 +92 73 98 93 +19 8 61 64 +38 44 47 44 +47 87 73 94 +45 86 90 95 +31 19 39 25 +77 83 79 93 +1 56 93 95 +55 7 64 69 +92 92 95 93 +3 18 32 37 +34 32 60 35 +16 32 51 96 +35 43 84 74 +55 45 84 50 +99 71 99 75 +84 26 84 45 +32 17 68 26 +54 66 86 82 +46 53 88 56 +26 26 50 58 +98 16 98 72 +55 81 69 83 +88 52 88 67 +0 61 51 73 +44 32 44 62 +96 84 98 84 +57 57 99 77 +66 56 92 90 +53 2 67 71 +7 28 80 43 +14 73 58 97 +31 88 53 91 +56 12 97 70 +84 81 84 82 +28 49 38 57 +64 87 85 91 +87 90 95 98 +11 65 15 99 +21 69 79 79 +44 60 91 68 +51 97 52 99 +71 8 75 31 +13 60 27 66 +30 93 39 98 +81 31 95 91 +17 16 84 88 +6 37 86 73 +15 76 33 77 +6 84 45 91 +24 29 49 87 +24 50 76 58 +5 64 50 69 +38 73 79 74 +38 53 53 95 +93 99 94 99 +61 80 93 81 +52 35 64 69 +49 21 70 55 +93 75 99 76 +80 0 91 49 +55 56 59 89 +37 57 93 61 +61 78 84 87 +38 93 78 99 +46 5 85 48 +90 3 91 19 +78 20 98 76 +77 44 78 91 +16 85 73 90 +11 19 91 50 +46 51 61 74 +9 82 61 96 +3 43 71 46 +68 7 93 71 +30 60 98 94 +0 84 88 85 +64 55 91 76 +3 12 76 49 +10 96 45 98 +47 59 64 65 +92 95 99 96 +11 78 74 88 +55 35 66 79 +90 20 94 85 +64 27 73 68 +91 50 92 78 +71 48 98 96 +63 44 72 58 +76 68 92 96 +18 2 22 79 +82 82 91 90 +63 33 82 60 +39 20 61 94 +63 95 81 96 +5 39 38 79 +42 42 60 62 +8 63 93 94 +66 14 89 58 +66 28 70 70 +74 78 78 86 +6 18 34 66 +84 19 94 65 +77 98 79 98 +11 28 22 88 +64 42 74 48 +38 55 73 75 +83 97 90 99 +88 23 92 78 +36 61 68 91 +22 4 22 35 +78 76 89 87 +71 95 82 97 +43 95 59 96 +55 51 98 99 +7 74 28 89 +40 81 92 97 +90 90 98 93 +20 12 26 31 +21 57 47 82 +30 78 87 89 +70 78 77 78 +49 33 63 89 +92 74 99 82 +11 43 72 61 +87 72 89 72 +63 82 71 95 +14 54 84 54 +35 89 85 89 +28 33 86 92 +23 81 34 90 +58 37 80 56 +16 77 68 94 +41 31 46 66 +74 67 75 79 +48 70 91 82 +43 52 61 62 +86 38 94 81 +57 20 90 68 +10 0 89 12 +84 99 97 99 +81 60 93 82 +54 62 99 86 +12 73 90 94 +81 40 85 84 +43 65 48 69 +69 49 80 74 +48 94 66 94 +15 66 79 83 +69 42 96 61 +6 7 80 71 +81 91 89 95 +90 64 91 77 +84 40 87 78 +84 16 94 45 +27 11 65 76 +48 81 84 91 +53 21 81 55 +11 55 82 67 +56 81 78 96 +77 52 82 85 +89 61 91 73 +37 46 71 61 +23 39 46 51 +64 61 94 95 +4 74 10 96 +25 0 61 15 +97 62 97 89 +95 41 95 80 +89 80 90 93 +1 6 80 42 +77 95 79 97 +18 65 25 69 +19 32 50 48 +39 56 96 85 +15 15 26 46 +4 78 54 83 +45 79 83 90 +27 12 99 87 +13 54 33 56 +7 29 32 90 +22 27 69 61 +90 39 90 92 +18 11 69 74 +35 59 52 80 +4 36 22 46 +33 57 97 71 +19 57 37 74 +34 37 63 67 +52 83 86 92 +53 80 92 84 +35 86 38 91 +29 21 95 35 +42 58 48 91 +83 76 90 81 +98 67 98 69 +8 50 9 74 +81 21 85 45 +45 91 95 97 +54 40 67 73 +33 46 96 97 +89 42 91 56 +82 17 89 57 +86 48 93 59 +48 7 58 50 +2 20 40 27 +21 24 55 54 +86 30 89 44 +0 65 36 84 +31 18 45 72 +6 77 39 85 +72 88 95 95 +11 24 99 56 +63 57 67 78 +82 12 87 68 +32 43 76 44 +61 15 68 20 +80 45 86 80 +6 91 66 98 +36 72 52 98 +97 30 99 32 +71 3 88 32 +96 98 96 99 +84 95 87 98 +17 14 30 86 +41 36 89 40 +7 75 66 98 +49 47 61 90 +77 64 98 67 +59 54 93 76 +78 6 95 51 +92 95 97 95 +11 25 61 69 +38 73 97 87 +8 25 57 94 +40 17 69 36 +0 46 94 97 +46 6 57 6 +44 69 80 69 +63 82 97 92 +28 21 42 22 +54 63 77 73 +50 46 69 73 +92 87 97 98 +85 5 97 86 +13 12 91 67 +91 30 92 57 +59 20 75 36 +24 52 59 55 +66 42 78 54 +13 21 44 21 +50 20 72 33 +29 80 54 93 +96 23 96 40 +51 45 72 83 +5 38 9 77 +66 52 89 80 +69 7 95 93 +84 46 90 94 +45 40 45 68 +31 91 34 91 +86 83 91 91 +68 19 88 69 +76 59 76 92 +59 61 61 97 +88 49 97 53 +23 30 29 30 +70 99 90 99 +68 3 79 36 +3 65 98 85 +52 26 69 51 +45 31 73 99 +14 98 67 98 +34 56 37 67 +4 88 78 97 +73 14 97 61 +92 91 92 94 +57 36 72 91 +30 29 79 42 +35 35 45 53 +88 27 90 97 +44 9 66 55 +64 53 65 55 +25 61 49 78 +90 7 96 32 +41 24 66 94 +96 25 98 78 +99 77 99 99 +72 24 83 83 +46 83 92 89 +90 63 94 78 +54 42 93 64 +63 51 70 90 +50 22 92 81 +22 64 76 79 +76 92 95 92 +35 10 59 99 +91 50 97 71 +71 72 76 92 +82 91 93 91 +46 32 77 96 +94 45 98 97 +54 37 65 58 +67 41 89 89 +21 84 49 86 +87 43 89 67 +74 11 96 69 +18 67 84 90 +56 37 86 84 +77 41 88 55 +5 12 90 54 +60 50 65 64 +9 22 18 75 +68 88 93 90 +69 89 82 96 +65 58 87 65 +8 67 67 79 +96 18 97 84 +73 74 99 79 +34 6 34 14 +59 80 61 84 +55 76 59 88 +68 25 99 94 +45 17 62 24 +31 96 65 97 +67 13 70 13 +54 46 55 95 +94 21 96 38 +1 91 57 91 +31 88 46 90 +60 19 96 37 +42 19 60 60 +61 50 69 93 +1 89 8 97 +24 1 82 85 +99 72 99 94 +4 66 82 96 +66 70 92 73 +5 16 41 93 +29 5 66 50 +37 29 47 49 +62 7 69 8 +30 53 91 95 +70 94 80 97 +83 94 85 99 +20 29 65 96 +70 67 83 78 +70 41 87 45 +7 43 15 84 +76 18 78 87 +92 96 92 99 +46 88 69 90 +55 10 81 35 +82 65 90 66 +64 72 80 79 +52 57 95 86 +64 82 82 90 +56 38 86 87 +39 70 99 75 +96 12 97 49 +15 26 43 73 +60 75 68 94 +2 11 50 33 +20 13 50 15 +36 82 36 91 +9 79 11 87 +43 57 89 85 +76 20 78 94 +61 98 89 98 +21 82 25 96 +41 5 96 39 +41 23 53 36 +94 21 96 37 +61 10 67 44 +11 19 91 25 +65 63 77 68 +2 63 54 78 +21 7 52 66 +45 89 47 96 +44 69 81 73 +83 25 90 83 +0 66 67 74 +96 96 97 99 +3 18 81 41 +21 32 85 83 +78 28 92 39 +85 40 94 41 +76 95 86 99 +55 61 67 91 +3 7 99 14 +53 38 64 69 +51 24 84 99 +70 34 90 74 +30 55 53 59 +5 16 6 17 +14 67 45 69 +69 78 69 86 +70 90 90 93 +51 75 91 81 +29 81 50 86 +83 99 83 99 +37 92 66 98 +59 51 74 66 +54 51 61 51 +57 35 60 85 +92 98 97 98 +93 14 95 16 +81 18 86 83 +93 81 98 84 +56 1 68 99 +36 93 77 99 +19 74 58 75 +28 32 44 54 +54 43 63 68 +60 8 62 92 +5 26 85 97 +47 36 68 82 +62 44 80 77 +75 32 98 88 +53 89 67 98 +62 22 94 40 +91 34 96 97 +40 19 91 39 +96 21 96 43 +95 34 99 35 +25 8 40 25 +13 38 58 91 +62 11 88 60 +82 27 83 33 +36 70 51 99 +92 58 94 82 +32 83 69 92 +29 25 54 95 +34 10 48 46 +33 91 59 97 +71 52 95 73 +17 21 35 36 +8 15 8 72 +53 10 93 45 +53 21 71 84 +82 37 90 55 +7 25 83 45 +89 17 95 65 +99 48 99 82 +34 20 45 20 +20 61 53 64 +98 5 99 28 +57 70 64 80 +62 72 72 90 +52 93 60 93 +77 86 82 86 +52 68 78 73 +14 83 49 95 +40 61 70 89 +76 54 90 79 +29 63 83 64 +80 16 89 66 +97 47 97 49 +2 13 36 92 +98 7 99 30 +5 82 30 99 +59 62 85 86 +10 77 23 95 +16 54 46 63 +61 28 76 57 +96 49 96 51 +8 27 98 46 +26 85 46 96 +66 69 85 80 +94 73 98 78 +33 75 99 79 +15 1 40 6 +96 49 96 60 +96 89 96 97 +10 63 91 64 +16 55 22 80 +29 73 77 84 +20 32 73 38 +17 23 85 44 +57 84 67 96 +58 30 78 63 +99 51 99 51 +69 5 81 49 +7 96 75 98 +36 65 47 99 +66 70 66 81 +37 9 58 99 +88 45 90 66 +55 99 60 99 +97 82 98 98 +16 81 28 86 +24 16 35 38 +96 97 98 98 +55 80 65 91 +49 70 60 78 +16 58 59 60 +38 28 47 88 +8 22 81 61 +60 96 64 96 +22 48 70 80 +0 66 97 91 +0 52 57 70 +78 81 78 99 +70 87 97 97 +63 6 99 9 +5 39 56 48 +45 69 86 70 +42 91 66 94 +74 79 81 83 +69 1 72 99 +92 98 97 98 +42 26 67 27 +63 28 65 69 +55 98 79 98 +26 93 66 95 +51 1 79 44 +54 88 58 89 +57 71 96 86 +66 58 71 85 +39 65 72 66 +78 34 92 98 +11 58 34 65 +99 10 99 93 +74 67 98 94 +17 57 99 95 +12 35 97 46 +49 72 72 77 +2 55 60 71 +19 13 96 22 +88 71 94 72 +66 70 80 73 +59 36 61 37 +10 63 86 80 +11 28 87 38 +97 64 99 84 +86 73 90 83 +7 28 82 97 +20 54 47 90 +36 5 37 63 +9 16 32 16 +27 57 64 95 +54 78 92 81 +37 2 60 87 +12 94 68 95 +70 88 78 88 +71 14 81 28 +60 53 72 68 +89 11 98 91 +29 40 59 89 +60 10 62 88 +9 35 58 77 +19 50 89 77 +75 47 75 50 +90 55 91 83 +59 4 70 74 +50 22 91 91 +58 19 77 56 +46 6 72 90 +90 54 94 91 +40 73 90 80 +98 3 98 55 +53 45 63 63 +36 86 72 92 +5 8 74 59 +90 50 93 84 +48 49 98 49 +32 28 88 91 +31 88 60 92 +56 35 82 56 +59 45 61 84 +93 41 96 78 +53 26 69 35 +81 97 98 98 +93 12 95 15 +26 39 63 65 +3 46 65 60 +37 96 90 96 +33 74 56 94 +10 91 34 98 +87 23 92 96 +22 41 86 81 +65 65 66 85 +73 45 96 76 +29 96 92 98 +40 21 94 76 +18 85 70 96 +8 99 80 99 +54 11 92 59 +81 1 93 43 +9 71 34 87 +81 54 87 94 +0 45 59 95 +2 18 77 75 +23 89 42 96 +47 78 99 89 +63 98 90 98 +35 45 71 64 +25 59 29 90 +61 77 83 87 +5 97 38 99 +2 80 13 88 +8 58 90 86 +26 15 31 36 +42 17 87 51 +64 18 98 52 +68 79 84 87 +37 78 45 79 +83 16 95 42 +93 73 98 96 +24 60 64 79 +90 74 94 87 +46 63 91 97 +91 11 98 89 +55 82 65 96 +70 93 99 95 +35 31 52 54 +66 76 74 86 +83 60 90 90 +54 35 60 59 +88 28 88 44 +81 56 88 98 +21 77 60 88 +64 6 71 59 +85 61 97 94 +90 46 95 47 +50 13 64 42 +7 19 13 89 +67 97 90 99 +69 70 85 78 +63 70 74 97 +94 14 94 32 +12 90 97 96 +73 85 77 87 +17 71 30 76 +13 29 85 71 +44 49 79 81 +68 40 75 40 +69 92 74 95 +45 89 96 99 +20 62 20 83 +62 72 75 87 +31 83 70 97 +43 74 63 83 +70 28 84 53 +29 70 62 87 +46 39 48 65 +8 13 88 95 +75 82 94 95 +14 67 63 99 +33 24 81 35 +41 12 41 46 +50 35 52 84 +13 41 72 44 +31 68 64 92 +16 52 20 78 +26 86 42 99 +24 39 76 98 +51 62 97 68 +60 13 98 81 +52 0 77 23 +52 43 89 92 +47 94 82 99 +40 77 97 86 +84 0 97 3 +29 35 92 80 +4 98 98 98 +28 21 77 56 +95 54 98 71 +53 83 67 90 +10 97 40 99 +93 9 95 46 +51 14 90 97 +40 47 68 53 +72 55 83 89 +76 94 88 95 +92 46 93 95 +64 6 94 72 +26 50 60 72 +31 11 53 37 +15 15 93 76 +42 48 63 81 +20 57 33 82 +45 70 71 84 +14 26 94 66 +75 6 80 9 +25 55 82 71 +81 91 95 92 +61 48 99 94 +95 85 99 92 +44 85 75 92 +19 29 19 99 +54 73 59 92 +11 54 40 93 +27 43 92 94 +76 69 83 84 +93 19 95 65 +62 50 93 81 +55 82 91 86 +49 61 78 75 +95 24 97 76 +47 34 49 56 +45 3 80 44 +27 10 83 39 +74 35 98 44 +51 52 56 91 +30 88 39 95 +67 72 88 83 +14 45 72 86 +89 71 91 90 +79 57 79 94 +83 89 94 94 +24 89 89 98 +12 38 28 63 +32 3 97 74 +10 77 38 88 +10 66 89 84 +57 40 97 46 +88 52 93 93 +67 62 74 87 +57 75 74 89 +62 36 64 82 +14 56 89 88 +22 37 72 76 +72 75 74 80 +8 22 11 68 +56 29 68 73 +12 94 19 95 +71 80 85 99 +32 86 67 97 +56 2 89 10 +86 87 93 91 +80 23 88 62 +42 47 78 87 +57 26 58 51 +54 60 55 80 +26 84 97 84 +92 73 95 80 +93 94 95 98 +95 79 95 85 +5 90 20 95 +30 21 55 70 +88 41 90 42 +40 52 81 60 +71 0 86 86 +82 24 88 93 +17 43 75 58 +80 5 96 97 +76 48 93 81 +21 96 59 96 +72 70 94 88 +86 35 89 95 +81 63 83 81 +87 16 92 33 +13 57 27 72 +82 74 94 78 +76 1 80 15 +34 34 99 91 +19 32 86 65 +57 88 88 98 +53 41 90 86 +67 64 69 84 +89 72 97 94 +49 1 76 53 +18 78 90 84 +98 9 99 24 +65 43 65 51 +85 99 89 99 +7 27 18 31 +85 32 88 82 +8 85 9 86 +0 83 85 93 +66 39 66 60 +80 8 86 18 +7 15 83 78 +9 37 91 64 +90 44 93 96 +46 96 53 98 +95 87 97 94 +63 90 70 99 +78 34 81 51 +25 28 53 51 +93 21 94 33 +82 81 92 92 +71 8 91 27 +97 41 99 90 +94 98 98 99 +75 44 99 80 +69 81 79 88 +49 76 66 91 +98 28 99 49 +56 55 76 63 +41 31 62 57 +59 34 77 40 +8 35 48 52 +80 41 89 71 +77 87 89 93 +75 8 94 26 +23 64 35 68 +30 27 65 43 +21 22 52 44 +91 47 91 67 +65 4 77 68 +25 88 73 97 +31 57 89 91 +0 52 71 71 +87 21 99 49 +72 46 83 94 +83 80 83 91 +30 37 89 55 +50 80 58 99 +3 36 39 47 +18 22 99 33 +31 89 43 89 +39 16 67 39 +95 35 95 43 +26 70 69 77 +83 35 87 45 +39 92 43 93 +46 20 73 45 +83 10 88 72 +13 2 88 80 +82 97 94 98 +51 99 76 99 +38 15 59 46 +68 17 89 27 +63 70 93 82 +57 77 70 79 +25 9 38 83 +65 28 95 88 +77 70 97 70 +31 85 81 93 +68 67 79 76 +6 40 18 81 +79 33 81 85 +16 65 78 79 +69 4 97 70 +16 42 90 91 +12 73 86 76 +36 85 98 88 +84 74 93 89 +95 3 95 74 +34 2 58 82 +44 47 72 66 +67 70 72 77 +97 0 99 92 +26 69 42 99 +38 3 67 26 +81 13 90 67 +7 50 51 90 +1 52 12 83 +1 68 82 72 +22 84 44 91 +54 2 74 28 +20 51 46 89 +51 24 67 63 +12 19 56 39 +53 69 93 76 +39 23 65 97 +22 47 86 82 +30 8 81 86 +64 93 70 99 +85 5 88 52 +66 39 73 40 +17 56 79 65 +54 97 91 98 +1 51 32 71 +48 52 72 74 +16 76 31 87 +53 96 54 99 +34 49 83 75 +77 88 88 92 +62 21 87 82 +34 13 81 41 +99 97 99 98 +94 60 96 74 +56 44 94 86 +85 47 94 89 diff --git a/2018/republic/10-12_d1/arta/tests/20_pattern.txt b/2018/republic/10-12_d1/arta/tests/20_pattern.txt new file mode 100644 index 0000000..6927d0f --- /dev/null +++ b/2018/republic/10-12_d1/arta/tests/20_pattern.txt @@ -0,0 +1 @@ +219 diff --git a/2018/republic/10-12_d1/condition.pdf b/2018/republic/10-12_d1/condition.pdf new file mode 100644 index 0000000..04d9ee8 Binary files /dev/null and b/2018/republic/10-12_d1/condition.pdf differ diff --git a/2018/republic/10-12_d1/formule/tests/Formule1.in b/2018/republic/10-12_d1/formule/tests/Formule1.in new file mode 100644 index 0000000..b5df676 --- /dev/null +++ b/2018/republic/10-12_d1/formule/tests/Formule1.in @@ -0,0 +1,8 @@ +7 +3.14*2+234-67+23 +1234567890*0987654321-567438929+5465768798 +111111111111111111111111111111111111111+2+3+4+5+6+7+8+9 +222222222222222222222222222222222222222-3-4-5-6-7-8-9-0 +25*35*45*56*67*78*98/89/45/34-34-566-4545454545454+90834 +234-8998\9887-676750867876=8585843639 +12-456-987*6785463/676775-4665+45563*556664/64656638+7847774/6664543*45564/66748+7677756-3666463763+7575775*5455663/767884+73676563732-26635553+65566464/646565545643-365654367672+736656553-68775+879986+657774664/8794664-56647778*4666677674/768875-45 diff --git a/2018/republic/10-12_d1/formule/tests/Formule1.out b/2018/republic/10-12_d1/formule/tests/Formule1.out new file mode 100644 index 0000000..4caa2bc --- /dev/null +++ b/2018/republic/10-12_d1/formule/tests/Formule1.out @@ -0,0 +1,7 @@ +0 +1 +1 +1 +1 +0 +1 diff --git a/2018/republic/10-12_d1/formule/tests/Formule2.in b/2018/republic/10-12_d1/formule/tests/Formule2.in new file mode 100644 index 0000000..7afb259 --- /dev/null +++ b/2018/republic/10-12_d1/formule/tests/Formule2.in @@ -0,0 +1,8 @@ +7 +123 +15+25 +-45 +8907* +(456/4563) +(578*23)(14/567784) +1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1--1-1-1-1-1-1-1- diff --git a/2018/republic/10-12_d1/formule/tests/Formule2.out b/2018/republic/10-12_d1/formule/tests/Formule2.out new file mode 100644 index 0000000..1fac5f7 --- /dev/null +++ b/2018/republic/10-12_d1/formule/tests/Formule2.out @@ -0,0 +1,7 @@ +1 +1 +0 +0 +1 +0 +0 diff --git a/2018/republic/10-12_d1/formule/tests/Formule3.in b/2018/republic/10-12_d1/formule/tests/Formule3.in new file mode 100644 index 0000000..7e1bfdf --- /dev/null +++ b/2018/republic/10-12_d1/formule/tests/Formule3.in @@ -0,0 +1,7 @@ +6 +(1096+45)-(345+687)/(24-67)*5764-(63549+9850) +(78-76)+(3452-246749)*(3452+879)-455-(89+7)*(56-89)/(3256-9)+(89--)+4 +(((676)))+(3-(89+(21))) +(((((((1)))))-2)-3) +(67-34+))(1+2) +(((1+7)-9)+6 diff --git a/2018/republic/10-12_d1/formule/tests/Formule3.out b/2018/republic/10-12_d1/formule/tests/Formule3.out new file mode 100644 index 0000000..8402906 --- /dev/null +++ b/2018/republic/10-12_d1/formule/tests/Formule3.out @@ -0,0 +1,6 @@ +1 +0 +1 +1 +0 +0 diff --git a/2018/republic/10-12_d1/formule/tests/Formule4.in b/2018/republic/10-12_d1/formule/tests/Formule4.in new file mode 100644 index 0000000..6d22261 --- /dev/null +++ b/2018/republic/10-12_d1/formule/tests/Formule4.in @@ -0,0 +1,8 @@ +7 +(14+(51-(45+)) +(456/()+8) +(29-(67+(15-4))) +(98)-(657)() +((())) +(((1-2)/3)*7) +(((((((((((((((((((((1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1)+1+(2-2)+(2-2)+(2-2)+(2-2)+(2-2)+(2-2)+(2-2)+(65-768)+2-3+(23+234+3453+6785+345456+65674-3543-54664)*(4563-4563-7758)-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 diff --git a/2018/republic/10-12_d1/formule/tests/Formule4.out b/2018/republic/10-12_d1/formule/tests/Formule4.out new file mode 100644 index 0000000..3138441 --- /dev/null +++ b/2018/republic/10-12_d1/formule/tests/Formule4.out @@ -0,0 +1,7 @@ +0 +0 +1 +0 +0 +1 +1 diff --git a/2018/republic/10-12_d1/formule/tests/Formule5.in b/2018/republic/10-12_d1/formule/tests/Formule5.in new file mode 100644 index 0000000..583fb9a --- /dev/null +++ b/2018/republic/10-12_d1/formule/tests/Formule5.in @@ -0,0 +1,8 @@ +7 +(1+2)/(((4-5)*(3+4))/2) +1-3+(8-5)*(14) +((1+2)8) +((1)/(2)+(3)/4) +(6)*(28-(15+)) +(1)/(9)-(3)) +((3/4)+(6-85))*(2+1(4-7(4+45)+(2343564850068754)/(4563-789655))/(342-67))*(((2341)(09865+4665))/(1)-(34)-(34)+(((((3452))-(23-89)*(12+54))/(3)-((4)+(5)*(45-74)*(((3452)+(23-9)/(45+34)))+((4+3))/(45-9) diff --git a/2018/republic/10-12_d1/formule/tests/Formule5.out b/2018/republic/10-12_d1/formule/tests/Formule5.out new file mode 100644 index 0000000..5d0ee6f --- /dev/null +++ b/2018/republic/10-12_d1/formule/tests/Formule5.out @@ -0,0 +1,7 @@ +1 +1 +0 +1 +0 +0 +0 diff --git a/2018/republic/10-12_d1/pagini/tests/01_input.txt b/2018/republic/10-12_d1/pagini/tests/01_input.txt new file mode 100644 index 0000000..21a73c5 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/01_input.txt @@ -0,0 +1 @@ +23507645 diff --git a/2018/republic/10-12_d1/pagini/tests/01_pattern.txt b/2018/republic/10-12_d1/pagini/tests/01_pattern.txt new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/01_pattern.txt @@ -0,0 +1 @@ +3 diff --git a/2018/republic/10-12_d1/pagini/tests/02_input.txt b/2018/republic/10-12_d1/pagini/tests/02_input.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/02_input.txt @@ -0,0 +1 @@ +1 diff --git a/2018/republic/10-12_d1/pagini/tests/02_pattern.txt b/2018/republic/10-12_d1/pagini/tests/02_pattern.txt new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/02_pattern.txt @@ -0,0 +1 @@ +0 diff --git a/2018/republic/10-12_d1/pagini/tests/03_input.txt b/2018/republic/10-12_d1/pagini/tests/03_input.txt new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/03_input.txt @@ -0,0 +1 @@ +2 diff --git a/2018/republic/10-12_d1/pagini/tests/03_pattern.txt b/2018/republic/10-12_d1/pagini/tests/03_pattern.txt new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/03_pattern.txt @@ -0,0 +1 @@ +0 diff --git a/2018/republic/10-12_d1/pagini/tests/04_input.txt b/2018/republic/10-12_d1/pagini/tests/04_input.txt new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/04_input.txt @@ -0,0 +1 @@ +3 diff --git a/2018/republic/10-12_d1/pagini/tests/04_pattern.txt b/2018/republic/10-12_d1/pagini/tests/04_pattern.txt new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/04_pattern.txt @@ -0,0 +1 @@ +0 diff --git a/2018/republic/10-12_d1/pagini/tests/05_input.txt b/2018/republic/10-12_d1/pagini/tests/05_input.txt new file mode 100644 index 0000000..b8626c4 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/05_input.txt @@ -0,0 +1 @@ +4 diff --git a/2018/republic/10-12_d1/pagini/tests/05_pattern.txt b/2018/republic/10-12_d1/pagini/tests/05_pattern.txt new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/05_pattern.txt @@ -0,0 +1 @@ +0 diff --git a/2018/republic/10-12_d1/pagini/tests/06_input.txt b/2018/republic/10-12_d1/pagini/tests/06_input.txt new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/06_input.txt @@ -0,0 +1 @@ +5 diff --git a/2018/republic/10-12_d1/pagini/tests/06_pattern.txt b/2018/republic/10-12_d1/pagini/tests/06_pattern.txt new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/06_pattern.txt @@ -0,0 +1 @@ +0 diff --git a/2018/republic/10-12_d1/pagini/tests/07_input.txt b/2018/republic/10-12_d1/pagini/tests/07_input.txt new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/07_input.txt @@ -0,0 +1 @@ +0 diff --git a/2018/republic/10-12_d1/pagini/tests/07_pattern.txt b/2018/republic/10-12_d1/pagini/tests/07_pattern.txt new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/07_pattern.txt @@ -0,0 +1 @@ +0 diff --git a/2018/republic/10-12_d1/pagini/tests/08_input.txt b/2018/republic/10-12_d1/pagini/tests/08_input.txt new file mode 100644 index 0000000..770fdcf --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/08_input.txt @@ -0,0 +1 @@ +1000000000 diff --git a/2018/republic/10-12_d1/pagini/tests/08_pattern.txt b/2018/republic/10-12_d1/pagini/tests/08_pattern.txt new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/08_pattern.txt @@ -0,0 +1 @@ +0 diff --git a/2018/republic/10-12_d1/pagini/tests/09_input.txt b/2018/republic/10-12_d1/pagini/tests/09_input.txt new file mode 100644 index 0000000..1dcd3c3 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/09_input.txt @@ -0,0 +1 @@ +9999999999 diff --git a/2018/republic/10-12_d1/pagini/tests/09_pattern.txt b/2018/republic/10-12_d1/pagini/tests/09_pattern.txt new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/09_pattern.txt @@ -0,0 +1 @@ +5 diff --git a/2018/republic/10-12_d1/pagini/tests/10_input.txt b/2018/republic/10-12_d1/pagini/tests/10_input.txt new file mode 100644 index 0000000..ad8d5a4 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/10_input.txt @@ -0,0 +1 @@ +1000099999 diff --git a/2018/republic/10-12_d1/pagini/tests/10_pattern.txt b/2018/republic/10-12_d1/pagini/tests/10_pattern.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/10_pattern.txt @@ -0,0 +1 @@ +1 diff --git a/2018/republic/10-12_d1/pagini/tests/11_input.txt b/2018/republic/10-12_d1/pagini/tests/11_input.txt new file mode 100644 index 0000000..9c5b24f --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/11_input.txt @@ -0,0 +1 @@ +9999900000 diff --git a/2018/republic/10-12_d1/pagini/tests/11_pattern.txt b/2018/republic/10-12_d1/pagini/tests/11_pattern.txt new file mode 100644 index 0000000..b8626c4 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/11_pattern.txt @@ -0,0 +1 @@ +4 diff --git a/2018/republic/10-12_d1/pagini/tests/12_input.txt b/2018/republic/10-12_d1/pagini/tests/12_input.txt new file mode 100644 index 0000000..25c9d71 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/12_input.txt @@ -0,0 +1 @@ +3721855468 diff --git a/2018/republic/10-12_d1/pagini/tests/12_pattern.txt b/2018/republic/10-12_d1/pagini/tests/12_pattern.txt new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/12_pattern.txt @@ -0,0 +1 @@ +5 diff --git a/2018/republic/10-12_d1/pagini/tests/13_input.txt b/2018/republic/10-12_d1/pagini/tests/13_input.txt new file mode 100644 index 0000000..a9d5ca6 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/13_input.txt @@ -0,0 +1 @@ +5386900000 diff --git a/2018/republic/10-12_d1/pagini/tests/13_pattern.txt b/2018/republic/10-12_d1/pagini/tests/13_pattern.txt new file mode 100644 index 0000000..b8626c4 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/13_pattern.txt @@ -0,0 +1 @@ +4 diff --git a/2018/republic/10-12_d1/pagini/tests/14_input.txt b/2018/republic/10-12_d1/pagini/tests/14_input.txt new file mode 100644 index 0000000..739ece9 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/14_input.txt @@ -0,0 +1 @@ +1000034010 diff --git a/2018/republic/10-12_d1/pagini/tests/14_pattern.txt b/2018/republic/10-12_d1/pagini/tests/14_pattern.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/14_pattern.txt @@ -0,0 +1 @@ +1 diff --git a/2018/republic/10-12_d1/pagini/tests/15_input.txt b/2018/republic/10-12_d1/pagini/tests/15_input.txt new file mode 100644 index 0000000..c504ac5 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/15_input.txt @@ -0,0 +1 @@ +1001014400 diff --git a/2018/republic/10-12_d1/pagini/tests/15_pattern.txt b/2018/republic/10-12_d1/pagini/tests/15_pattern.txt new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/15_pattern.txt @@ -0,0 +1 @@ +2 diff --git a/2018/republic/10-12_d1/pagini/tests/16_input.txt b/2018/republic/10-12_d1/pagini/tests/16_input.txt new file mode 100644 index 0000000..dd24128 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/16_input.txt @@ -0,0 +1 @@ +100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/2018/republic/10-12_d1/pagini/tests/16_pattern.txt b/2018/republic/10-12_d1/pagini/tests/16_pattern.txt new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/16_pattern.txt @@ -0,0 +1 @@ +0 diff --git a/2018/republic/10-12_d1/pagini/tests/17_input.txt b/2018/republic/10-12_d1/pagini/tests/17_input.txt new file mode 100644 index 0000000..7269d35 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/17_input.txt @@ -0,0 +1 @@ +999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 diff --git a/2018/republic/10-12_d1/pagini/tests/17_pattern.txt b/2018/republic/10-12_d1/pagini/tests/17_pattern.txt new file mode 100644 index 0000000..761fcd3 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/17_pattern.txt @@ -0,0 +1 @@ +499 diff --git a/2018/republic/10-12_d1/pagini/tests/18_input.txt b/2018/republic/10-12_d1/pagini/tests/18_input.txt new file mode 100644 index 0000000..c70e4cc --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/18_input.txt @@ -0,0 +1 @@ +10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 diff --git a/2018/republic/10-12_d1/pagini/tests/18_pattern.txt b/2018/republic/10-12_d1/pagini/tests/18_pattern.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/18_pattern.txt @@ -0,0 +1 @@ +1 diff --git a/2018/republic/10-12_d1/pagini/tests/19_input.txt b/2018/republic/10-12_d1/pagini/tests/19_input.txt new file mode 100644 index 0000000..59ee11f --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/19_input.txt @@ -0,0 +1 @@ +99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/2018/republic/10-12_d1/pagini/tests/19_pattern.txt b/2018/republic/10-12_d1/pagini/tests/19_pattern.txt new file mode 100644 index 0000000..f9aaa4d --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/19_pattern.txt @@ -0,0 +1 @@ +498 diff --git a/2018/republic/10-12_d1/pagini/tests/20_input.txt b/2018/republic/10-12_d1/pagini/tests/20_input.txt new file mode 100644 index 0000000..83315f2 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/20_input.txt @@ -0,0 +1 @@ +935532341368846051377479716216862272950121677225967874043755588961833400773960050559039287536304828219080764867077405200342788110461464869344687248837345744920174325029018617232242755851218166981192035774043615089056876686736059639176003061063470964175884552926906722928163386178574232657269998410469518262356116746998307843934791468174254035365983340683785740849531172125686491888089441501444060174378415155113661111995238922410941595099610040210264698075976906443019178214974403796341711420664528934338176109258179599198236205406555468900982309971414968722935737729991521154420191767789872208125381448039500578163207383410234633033581446612151945528026389507188747044157118807180512815091937347401387920871421566546542745194235666514068454477492004054396617475792120641078541669945464493092717033207194701206391054148518814516603270478628157413800767458280715757686067028684404295940209388200271960734736943983082699759288243316175579910750053091251187602815019008204518175232806136365227927354540 diff --git a/2018/republic/10-12_d1/pagini/tests/20_pattern.txt b/2018/republic/10-12_d1/pagini/tests/20_pattern.txt new file mode 100644 index 0000000..5379c47 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/20_pattern.txt @@ -0,0 +1 @@ +448 diff --git a/2018/republic/10-12_d1/pagini/tests/21_input.txt b/2018/republic/10-12_d1/pagini/tests/21_input.txt new file mode 100644 index 0000000..b00d103 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/21_input.txt @@ -0,0 +1 @@ +28178853330787779119051393470243040576507286389610662861573166877788967431779439931314135181549193658891832293168629617084590567352814435982060084120105586046036453655706801490647327445661761073089752776762602571924340648690490709433734785663949701541618260632317014057087701140148911111790146969810752719267407870827429688136256482502511638460519927524570456024080680684300422258287629631599026439445307439841121809913576794879334187552915025914781396853403620048951523015635461913072320907917149510000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/2018/republic/10-12_d1/pagini/tests/21_pattern.txt b/2018/republic/10-12_d1/pagini/tests/21_pattern.txt new file mode 100644 index 0000000..54bb288 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/21_pattern.txt @@ -0,0 +1 @@ +441 diff --git a/2018/republic/10-12_d1/pagini/tests/22_input.txt b/2018/republic/10-12_d1/pagini/tests/22_input.txt new file mode 100644 index 0000000..3bf6dbe --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/22_input.txt @@ -0,0 +1 @@ +100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008719303100591500228390093297469436982488608528516843655036915437595580650680143116891831132530474143333468156552900606456532020950657477319519869772888227106652689007490547160881032030359316294689232343311679241891908655589940983172348679598498847013698659999177110846407962250992183825165322348693649331378561795952162520120788083705133993191581073467158231603376868392782279630467440280105371145635672807241109832789012483166545961961390867530030105540267892911523845444446059790339574798105068654 diff --git a/2018/republic/10-12_d1/pagini/tests/22_pattern.txt b/2018/republic/10-12_d1/pagini/tests/22_pattern.txt new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/22_pattern.txt @@ -0,0 +1 @@ +0 diff --git a/2018/republic/10-12_d1/pagini/tests/23_input.txt b/2018/republic/10-12_d1/pagini/tests/23_input.txt new file mode 100644 index 0000000..98044d0 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/23_input.txt @@ -0,0 +1 @@ +100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008152874706317386314026205518420259528982203600121317023306575168720985173479819119788616825729128789662122174670943090168954124744042381400298714319267624826265154819043723506114893878224443618233498838392363300757176989401121492348411613527891352093204132554550849678919523517252509027157657011756913919761856563960406626431190475135859946702555776555355516621048210783325170167554843543544742281462421100092458248167046592149976971335990147065714878146483702913447684253560156056024536382148930775000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/2018/republic/10-12_d1/pagini/tests/23_pattern.txt b/2018/republic/10-12_d1/pagini/tests/23_pattern.txt new file mode 100644 index 0000000..2c36bbd --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/23_pattern.txt @@ -0,0 +1 @@ +227 diff --git a/2018/republic/10-12_d1/pagini/tests/24_input.txt b/2018/republic/10-12_d1/pagini/tests/24_input.txt new file mode 100644 index 0000000..7356cbb --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/24_input.txt @@ -0,0 +1 @@ +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/2018/republic/10-12_d1/pagini/tests/24_pattern.txt b/2018/republic/10-12_d1/pagini/tests/24_pattern.txt new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/24_pattern.txt @@ -0,0 +1 @@ +0 diff --git a/2018/republic/10-12_d1/pagini/tests/25_input.txt b/2018/republic/10-12_d1/pagini/tests/25_input.txt new file mode 100644 index 0000000..46461ca --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/25_input.txt @@ -0,0 +1 @@ +9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 diff --git a/2018/republic/10-12_d1/pagini/tests/25_pattern.txt b/2018/republic/10-12_d1/pagini/tests/25_pattern.txt new file mode 100644 index 0000000..1b79f38 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/25_pattern.txt @@ -0,0 +1 @@ +500 diff --git a/2018/republic/10-12_d1/pagini/tests/26_input.txt b/2018/republic/10-12_d1/pagini/tests/26_input.txt new file mode 100644 index 0000000..8726b51 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/26_input.txt @@ -0,0 +1 @@ +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000099999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 diff --git a/2018/republic/10-12_d1/pagini/tests/26_pattern.txt b/2018/republic/10-12_d1/pagini/tests/26_pattern.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/26_pattern.txt @@ -0,0 +1 @@ +1 diff --git a/2018/republic/10-12_d1/pagini/tests/27_input.txt b/2018/republic/10-12_d1/pagini/tests/27_input.txt new file mode 100644 index 0000000..fab3554 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/27_input.txt @@ -0,0 +1 @@ +9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/2018/republic/10-12_d1/pagini/tests/27_pattern.txt b/2018/republic/10-12_d1/pagini/tests/27_pattern.txt new file mode 100644 index 0000000..761fcd3 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/27_pattern.txt @@ -0,0 +1 @@ +499 diff --git a/2018/republic/10-12_d1/pagini/tests/28_input.txt b/2018/republic/10-12_d1/pagini/tests/28_input.txt new file mode 100644 index 0000000..38aa74a --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/28_input.txt @@ -0,0 +1 @@ +932192406174720981662116834064333591499736863930072888339520268548181862001751771599272486215183818708755376373035867155603274139030041279048571445808858101594157636497314788935158946005949368986268779451406388354052677164993162805386155906748450672765562800664475824088130637359265170652841816701773250686750476506276829921637695779950800182701688189722768319983730168210902047106122724127809127619063636603889139999852978191673392161274001300703439738922991560157977992646108584584515527676939902110281718229891898908375773966907000542315024071506851953563467879847433176291155932059035269106484172703645559706994755827175329114491233765260508452795397407545186046329015132189203512060136375950873239913516736827158276099240671136496662687916033303567852839967755198870815320037772926203083805238738426261752050189178144421379366215632158239482911933244972523683816579864144337450665411656227399273959911590638220425012829709555925257989420513748152158361195460089855737682335524806799926372207171 diff --git a/2018/republic/10-12_d1/pagini/tests/28_pattern.txt b/2018/republic/10-12_d1/pagini/tests/28_pattern.txt new file mode 100644 index 0000000..0187835 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/28_pattern.txt @@ -0,0 +1 @@ +446 diff --git a/2018/republic/10-12_d1/pagini/tests/29_input.txt b/2018/republic/10-12_d1/pagini/tests/29_input.txt new file mode 100644 index 0000000..f3fc17c --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/29_input.txt @@ -0,0 +1 @@ +5462734442310871259977526145573564508867962368177506556384971058062920948377417423526226333127472533514256163145676785269779183499864078226464140183117128992032005244867215003627834928025977762832067680198213131570694819773364086860020362691966132740774922728470651209843898619711814790009957156376076658472525309823999694770991356609652090411751683037654843955568923567266383102220429134359916657659145130208179610115798397821042658905417552195197800016352108047686582742620166095542736164877974739300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/2018/republic/10-12_d1/pagini/tests/29_pattern.txt b/2018/republic/10-12_d1/pagini/tests/29_pattern.txt new file mode 100644 index 0000000..4619a8a --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/29_pattern.txt @@ -0,0 +1 @@ +451 diff --git a/2018/republic/10-12_d1/pagini/tests/30_input.txt b/2018/republic/10-12_d1/pagini/tests/30_input.txt new file mode 100644 index 0000000..579738c --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/30_input.txt @@ -0,0 +1 @@ +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051348626806695004132298779803193194599239270780681561807588578403438142682079015670786083734341097288721482178398827613429541551921823233681339001903464243753466942680752941876470159549465805899529338461012110305841917842682494628682640092463260507106087626868754557857734048476621730802727669393401036502874719328026499027800783770028199257586209721290423386079030518020227230975964690243214345756048453006478483023223669383445465525596938646291156856782488986976375569793861107540626131215309459244 diff --git a/2018/republic/10-12_d1/pagini/tests/30_pattern.txt b/2018/republic/10-12_d1/pagini/tests/30_pattern.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/30_pattern.txt @@ -0,0 +1 @@ +1 diff --git a/2018/republic/10-12_d1/pagini/tests/31_input.txt b/2018/republic/10-12_d1/pagini/tests/31_input.txt new file mode 100644 index 0000000..28b3adc --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/31_input.txt @@ -0,0 +1 @@ +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000183421406881790701013999147752863100179348067378950354231569518570806287023139894009477687257656055211379621864435078115377071712741656979168876390173294283761367129428656646717414257161483128265957536185577885774477232686238586909621502984762451324314462688943460544505546781014423090628954574820118924098412763030112164198956006228649473195101424804485750029761354458821442034815577269685900278511029512246829905607487295061466967050815515951685868679872849175325577285789793860838429568312401701180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/2018/republic/10-12_d1/pagini/tests/31_pattern.txt b/2018/republic/10-12_d1/pagini/tests/31_pattern.txt new file mode 100644 index 0000000..7c022ae --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/31_pattern.txt @@ -0,0 +1 @@ +232 diff --git a/2018/republic/10-12_d1/pagini/tests/32_input.txt b/2018/republic/10-12_d1/pagini/tests/32_input.txt new file mode 100644 index 0000000..72b80ba --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/32_input.txt @@ -0,0 +1 @@ +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/2018/republic/10-12_d1/pagini/tests/32_pattern.txt b/2018/republic/10-12_d1/pagini/tests/32_pattern.txt new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/32_pattern.txt @@ -0,0 +1 @@ +0 diff --git a/2018/republic/10-12_d1/pagini/tests/33_input.txt b/2018/republic/10-12_d1/pagini/tests/33_input.txt new file mode 100644 index 0000000..2e2487a --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/33_input.txt @@ -0,0 +1 @@ +9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 diff --git a/2018/republic/10-12_d1/pagini/tests/33_pattern.txt b/2018/republic/10-12_d1/pagini/tests/33_pattern.txt new file mode 100644 index 0000000..ccfc37a --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/33_pattern.txt @@ -0,0 +1 @@ +50000 diff --git a/2018/republic/10-12_d1/pagini/tests/34_input.txt b/2018/republic/10-12_d1/pagini/tests/34_input.txt new file mode 100644 index 0000000..9177bdc --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/34_input.txt @@ -0,0 +1 @@ +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000099999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 diff --git a/2018/republic/10-12_d1/pagini/tests/34_pattern.txt b/2018/republic/10-12_d1/pagini/tests/34_pattern.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/34_pattern.txt @@ -0,0 +1 @@ +1 diff --git a/2018/republic/10-12_d1/pagini/tests/35_input.txt b/2018/republic/10-12_d1/pagini/tests/35_input.txt new file mode 100644 index 0000000..6067cd1 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/35_input.txt @@ -0,0 +1 @@ +9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/2018/republic/10-12_d1/pagini/tests/35_pattern.txt b/2018/republic/10-12_d1/pagini/tests/35_pattern.txt new file mode 100644 index 0000000..722870e --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/35_pattern.txt @@ -0,0 +1 @@ +49999 diff --git a/2018/republic/10-12_d1/pagini/tests/36_input.txt b/2018/republic/10-12_d1/pagini/tests/36_input.txt new file mode 100644 index 0000000..bc239fc --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/36_input.txt @@ -0,0 +1 @@ +952381979810126011546428443446016205950927693937091750242022374476957826938751732772635449100159301498755632996933876097902678489023080712137817799100053580719688316774780984360241614425186832792464081990283300896326438164542809326164467447069735973015617517354456325100219826706173247281463206627600062314172559598088436323761046860680885643534305953722113672962838395068030196314228861506482515787795518675002417085172147138395172160770966743973161148580417260283598755263856807084198566489176823760664344470932181140141561290378406099297265998129237895867341366690497860652514920652914634258838563528546888789343121471361600395704900046748801113154343132108373948954022059710539605300859434050109521793640435513204165529396890867349822087366450613173954174284153431305484287237998202370684027088425842423365088720172974868272146285729217098296887318143754593490718854400649526839537873075350696295179900142531011389758239926039840654645209273023643012012745241059773384963935237886816047397118336448876784853843505079283416837394368043320215521856484847662453366899074890465501339146219123010920614988151135857966238644846393139134973626515861858315364924864875405321320971828308017708583153882165118970709630298638365175699754659579426315113389627128993234183032087639720275036300287662828195403900061298037246321858878884630484238436167677311812024157904078476183685670866745720601115723667328777108106700704689744736619239030492041643992578224712062657337914822648434012045336999139972072498956233471689464983208807392023919072140567693285386976940936446246822409080708007977495638499187749236114092834121670323560774517367382779084188352753506968477857447171841405583233608414979082222829751821475335001588014365982986371321204872695485165568145741519147192556762807405928519551001638733773663399287712619713435687707578484694832457879282455096523019769220635657898872951070079040200215690029414589739676236591398211848202868845912409725487897347159790257357752400701483880439580975759059595991932757094496789199894025402049025527810051944898154363758097282832638058164438110646729336300477157832814588566625254604437496573677743904337200310607726499331299860077785226928729914313945834933281552214008713537986896274146409216683101218723313133681635934476676302329807029190147364684852896402450848434392235475680847357728259797714385551604003128851817870822901934779967953508567863389595570157057330156967642080763347743306607623936510455509651223527597683374092505808655362999225866376318807110421905055715601666741310582458688730068745500119070073665369455896461097188291639073749995288775564349947983854629179977958720504190411761605469642729208258915340373822370293439545382641840542681294481453125462729228360732465508354251506145020367648041427562055559512381729736971131554223333213362139306174420433104474067072392709989713316196975999713330682775861871005280154482199844995828860357203601270279435044253722091293818989355611344752951466801314037019367318672461388143475479787061797561912255576400201309959490275131650332248554013674243900006703840045569251368117293157466666500202792802073209052004425687784776251095313303308035827675272136660552699286891068253547920076454891611542136552968849953498547959837775851660944338090655596428248032215479316285767013294447969293436458663160567643741462019573538720923583678854713915668840168567411494265179957818282376643046156226661895600109300237300662564344871352427670545936834143126283511426638252832524405665427036783526609815693969224660761971661888486592344407741892539090645988978271932518850501118310139291945571774666000149998970926469915679778046428430723927868151014318200358659494630093691284468599800374872420568877171758418962880997180058837292122532388257351609110612525988640362099253257555888738607569967068164383273721618967784675960788114049277096184183890294529826452931083237782386633459573322542885604753762316310772735278564380111432125657654523028840264748265362548019383699775152738875044932690148273359851016990236783369875835028461671551324772519152775369612830086834788482387890190111686545155724905494480537938388739961647174310129998645709967917632413207768911531766109883582554095147360935549757477639275513759318525241572446411704439775593475958477390677898285055090135236642499113853020507843901260550806872272321667742038204622266269397865850107414629894433627772498393983930073600003330571557231775176821551896078417310648138744026849898006947117386278402068517876977660783872872842474259953641588154351169084112945864687136660954978249328595706396518169085497116609756109028229728048178034108094577042741894616907741911141142313558838729179546999383220240947246723005220255767955497978274364402036361742112534953309848662420882342713101749467322711538953886901355127013406717714543454490380303473085523628006695877633732538565934536422441181848998887270283469800820405413509148140152883733900916687870070653391595702317876099104751102230405668383018825331317024505189402271972674774114313969958676652811122353598451192918787280838702657389349691847166541557502825787061646246249190186857689098442190177571243636563268041189278136318244750877452502406943046622172650412260461536764991626920946575550864264704957370423574198284510858074697982998789175631532350876142645535600575292414814662424291313199483588573487280259928798804109743480779753190240415680453016479575268342678873065668048799574029113455313486370968869495877552863791130943928209526901778250433791939067352258236194004957205363876353590683115452659023574755955416339040031247419035253686612272620548013549341770931371599457420196623194790379896290740438430203689352896045856954093816081170159222598739719568167262406294700851897286317736097873070215881593382330830006296355087233816866391152302216751399950723465308647220136130369429470626281338588834226321680522065649439140320896352748715400813116947455161603628565831638455436927977273659920570534515845066840625986896592773495767700264240563698918859902374521403464287649492483471194048386367582114805154100122647833516763388356616948807435389467248147307362677399195944703429184151649488919035758691261213499993570298684924199568950422179091550360132152744945686353763610082472976273041593425473151524369995063756448878337890156914675100763410828621409762438419472862872343813600901680761597504595178153263136178810765747365582378221366518397526316460386306099736658923084573610380709201638401411571004515872124008909019612362597213755421780240986659189722875242598379896844887846972344807398361041568179834417920063175860695346056507219759272258594595189379071861940611735847159688732993202463376001195204204420303425733822052288313904134953599425880653787195050068352141881660203547825933915777534622074800689003750380427752709068476295380995527089537885806827261492134395947180201593131118038153899967462741588870193193487419616950521219047740048906813622128155704850574755074964654537604505211440794411793979931156386469186574572061784585013480832045156146499763873742591768700533169062584807003066458284506400976628384544371555028454567438659383945662411149637099252465932443894805735442025787463396779885318975942816452689112785498832046361755803375681681079755801998367496254337933540791857147608085049795146461261793016946043536633017310372972909157745587655972879392069691649342643617838478622931512119096882046604034467165627851641350108120209983521227018372049668364331243085490696558082704404874425222520999415400323273915668006165795338815766570259542732757505395751082887229232867852866690615112507376721811703422710550674693576924928569188050786704156782395626421769876327985554771288273149302349031069034071016585539862733788671902876751665404895733891873425746686968104243775121828612692515573242543451299613728312861340169978267932464447757534817970057867923853472362919407422587009336564433831092440623802082674490708194267571803221405143166866063997830291498694395158801283986865304104727166233378156726798639006670132526927636495185633302473933604857061258103952211918429411078767787992022892893958773586502063515546989325611768628269100200019976898553916437464759633234452826006548460867525185068456634860938635516944629541342989472312731338096797736333115899485203325903716497577138627453655196022544991552803707889238793058148400758290212921131744807184644133813527791556262316764245591149032257528819232008491459825555537858556587661173513261408048757279366090405923250667767416313570535142883131602151938438280568176266431956907677018130051007617295004147197394614160828633920266112421623924063757151508524193997947361533482270565122787978541718320168539651625616619608734842758672246578571516078969749043768136120808757509672793683118272354999647019527807411681454555389464277262769053337131414743249115393807248453797584273472960068397591117995148350685547641367442487129060634986824159580705853557129757197832925277449722751162440835909297140099901386808188793730271494415409860587893629246282417851786549037790479408315666359317673090226856510209208053970755859571592298107930502010248696880415938553815162536462232342359143747129940996762964896527715838621761654973090487043442552941204377198460839489562202825053177932666991764659032505498718302542126087177627282579898992921293139560017617834061729356431021979090407661029915339519163153657691186477186520415145616548116699337207927923721533629104235932964684055605377718550885431823396457352498646760047664656672118628035519445586001181914686020410660309758645848191099993655865392607049366335546034925617663526723126162856049336132709683028155749965755790879250838666153910851807950149759510607777056238739374267880483023738725882456940921705524578415175054542690292556317555431159798343033642048905452709333098015500527878313256938796735290986781064411028414211861917378818093876213488219394877532424366987357306590249016505653402898084780436786613759975935255611459781889751782763985191813649702011392212569551457284067009140439948686980492339173681141587784825263197009594946569149649542959349853984779393390582433110478206025291925273260508759347951783530617166185227994103338767207209147953881918347900789772618850667159622269811995793217132552855113381278480372575408484496454256799890436896205521049640263583856843582092113073923784119265984729537895658248487672851724080662730743829452811107547484525363698079018790419658953507021962303677860901872241848895121406407629168850463759612870432714631145733867747764967898993697696301811144683403933603083338337004790805159950260980330259512688825096431732397372607463380907466872998067465379487682138890877600782386090831053261706997926942434949769027234917748202449446689987023434632712186429318022989674922914382765930488225256606980455779005832088647764411617078453703259469451010935570456298616267553689744733230252834361737444169677686534162863219586725471618744783908698628847433268921547538886434095919952730478601226813292679989473045887009374081720373317523037125101858618961109919668566817948218493320968867233573795034918420359009945848007018558247451432829002470582387450348247216689658911480890128117728308325324389625120821436709718240235261075554582599413618888299726638017234058942019604324517221836618719684887125065739903798961770999561531347040551507032973820356278138362255947150390911946349377810982096263352393650468860189532296587146774813595776347515845922411587790947884656286771209287999861766806025163251314713568315890715729289278141719721614413688179496308624056479583842351605187959679711503181635704922517102978860460411901836750208697346240665856162432393657055343734341661498216494686035615031039839947916973305203774087963920797083285569581562154505154505774018433029728623297214260996615470409370147818674982369650926140285665598802607560000327672006850909011011727375092126167688998135118741301791174525637042699124541987648308883419438861491241225766152425920575504327325406645567418973488870842162843076814853842479793242723628981683033631061288294600519343032702250983664466653796119547230020090546108937274002412875172978029629114092432780809238019178087833786156456541023913471962128095590910744391135294206036559621747684824256319260082141327526386130057427316605495421353730585913000846634723090894103197853703444628218894477945507045317771572189792411916858920412689960467238178980894642701197842672336799548785109280869291558807048763464036567478158737702669349626564643051398602550198256605667550881697327141399255087572673774164484568939412278285998141330853676524402909366771761408235834651040415207382718590550493259618865159746039550416467853895673659676013338219212118405607621142018578632938245194287595614216198755520140424312569188175946686081152126385459392957965161680366674747478321759524335167729665037778415030041115939736254745832379530274587175996976219938457329975538090547729864012444861099010408316839553273786542075414487214191884707365626486017667427675543623766450853518796786049687394790520453657855404602983969355648981498438767677971229258797887704042015933653360891394743516403996598249937469630737241039960208932522242627984239377588278448590444987739992399575403303778866595294174480340325105595796932910499662022038799871735334705106947183084016290995746894999065392767132065309312350848466051189953240824948466631121746528212949095518853983996571559363283714912248380796162202144967022128051807152554630754388896100213793012415777268540708168466999016095548695087265817206281581130912954005241810875422242130185016304766557422249269138836168752945118141704210785467539591869340036452747664590093996121396869797992693999551643115336910906861766588209791465072761084544248805114780265203596003956129945614200745056899830423335558867309770462922931213409597422478870915796721444351658023800786517430799813275122456263940358710728046016744919924258183829035991537606222290822413203921024876467406480891619131533900501608084319762113221869695800393212346098585518473757539275602690418922367028237951557266937315235090392705556242180557976183787784949851679134522684630270395212849507720479345220908344947798518163452031365194353368418736912687369552094124703810717305094602071587333745611425756588442036921453697305423209774783803375866016971040351118900944940754367410606253799988166444972426826942431885888394644251685426912449295202497297325432377212987952553912079492099448767270143064088128289743535204643014644681772734013558566776868813458816876353045447484524702339941830252856317824219184147406624619351531214460857551849530525918165167581460068964683138336153700795617445478669095613591703750696567458430080382720487316813542754678006370585855432237799769444670971406197024125844186858682933128458329163175733779507820316703372245402005753512474262991141033415344383779040879483823444891452896156230141817076748913507052875478881532880833102099985604987630974186858770878038177220975106639202436833411072217105139596448411166005679838813029441663716779195242885263103116433980341761881794290542485219375521940515108866894484194343927920667069506435083630107710000479643843772972082659643438350879065284568549491994915435636068411138116751706125951820254751606077123063378588023543048676633941591312801999322524501666813659181350516131087910250363934591791098566908022578155230537525582140552908077891352453431033064593278666828822145923319392391823889694679245615977857082975906730963958210016506413890745237141751879870703051670278946538851205274444116945967939484070267368745717056275360042598419514392950327919941120326112085642318791677680877324895797401726842187510107091291742990254035122072545490910504643385545317113163524159115380243732306861119221510085739947331092682581421528703142797294687651459407966118065993874871964670184413902252936141100341932350594029919039947703387196279343242912593394012301107524285892974230719292555925905725111157919891022041781345337234635917093109015954156446409812759984149772165213690030508024349270936356892216208182502316192388133233669177447038340910520249489065458823219724569829864892506114485935820262106429065240716807194007474298060724819295640144834733148024974156907331267991091635347305648952342835929308861142114864731721736055273733624142632655215520935227588491123275474912953053040384310568585955961331503830217347631075844131117883312768159691858723066715245303916854046080507983945991248405263840476209680469804581267213399661827608617304546375269180685556806999702662394954212213554353834549529403774776029969450610978226665533765981935827305767791801626314557658640671988786030805757396424135207169739407358511526068123473205052114694347969699426294298984056741394902668410397486067960977823618270233430517404341439293873749366969019109226015109353954754440791246290223650374121737041290775830952775468454112836375063779608901367005174919879482655948457612141995514081184334186190093584208189502002250482644189698674473700937822794109374031460264102112973961265485393846834297090901506428376588730859770029308157497407990643466248266229799577490018206816930079277169942294742237797627766553051554411207317757526998620197644643313741634571047541192869438406190733238707236472787920470068216020822570845991268736696011843305336374053234972299101925079109252623300396514290706662963827738833435631518804623262074098644951849541530565550059879953548065181368234739385869551543932412806598585888414376924585069222778912626698340150044998690998670209559133155640751914747879552547716426769628469544606562250958430955255558956184510710676476432683432874744950330127525632401714043563820526988247294804532487808605110426445189809361224199411326172738222465370130674018458124367083854083621870448706248461984287729872720603498633985816823819258762579539092612017460920824346765237828120305874259222948620051344017706520339984172341373104273345452775862675714697371208785487930285436072046769011007527549286159175999727031149075682858711951786412567801826045023719900666912170833898559862232768095197722773145764282268479570044931011871396735962969550660838690139740341038898716107017007999235403575315911821451639678520354852266035273242155683144462849482998662519162154303504902283708735881730197677873707915854218766331420189814637437559115985238392632683052958739490210846243873701291262184036572748316059002544305792801297945496540033809124245866668433967588310734473196788654603541753036526370811460855487645268722690295902866285290133057611421700931743944334463154240810474779434396147607434918881523085653739125172184514189334289324727084502267797542901670232236873042572875351962305145920111134998148770102716758674267339206635540598237673957666618012860191585851864713116758466130413583546133185731487322474216712016140666237745646927865782481171699233994575644739486032193856762245135253575741606458042617200888434084852052080913395955168225738816541458850106520722601323515955082958624390015594308965889798529689259928897672122505322007770346135024293478313686554554321673202438596407480563207630141654630537159643122327901177994123891588131710084180894494421220525066616995105653620392329160263690577488420265600012909001874557934371824689301981385768312302294826016759862649273246896200515435878573173308270876168524730421823517271696340173661973565237055805534458102644708472751606992437470589660133182514072529648277536222085072994339546828599450294153863101652811481968625682543033968342608193545326242922333683593214567607424811426076125030186276847706104608027259214546901386997666726857541145829332223426137899259117728853178236987396308813230129960568273504700181303949432949428282777274251130088122987741774692623065880476594401921688497410321173361848437651395656345610198768572648875608210453408905323152030238020705205748823845164476704176913917237190444229958505861957615967469588322558393659803431946496383757239804503663380606082331856268828170274826968473528076652306085909030952417279413539143361526856811470905601128746100259101061424461534839769869671427004780183916990275978314759510291396940049536164072748177212066751385349488883098895040039898039173426044845618280528809696967986953858039002518499624893120710433604819879142050729948906373110817182847225940870822856785473324662651520089541334500352530614283315208662493124418390493437144065711888740613973153625594322928707201356725678875895050872752440867465874792304161348813530629595586319462825397785471720206878909822581410882615683175379321912617132741905804269672865649029739073398244043438604249140680266197828374420101092169312518773398502067253766413147704694122147422066014653619156293832801775625091375654832239598059848853758200961408008633292838079564404248705662570590712921505896139451772686838828585743190820368362246613359313781746292391452297279196680468001600050054820339511744834849054144490837885258891160431287692319328706329947577081797286247960264197405041151938626258811666269561593722890365342693328744450569063348773801584641584301608141819387106867645707741705041436390259898568208931140108481463984083783624130946679173095022513952297982829088823954413546276414572302201343454088095956614652986110082923851926333170180550417323021524046549026864450502702577509663994124139100908879488525104691491863129717649784273377428269635459443968665058664642981648443122471211497140060223009726149698313098987170230735026003917876383594158727919460202270798516317658065689114189689924731496387877808537436500484559480306265871432997457931410419873737142126678695372897063547256760350705041073324472613958110449860453807478378210821317589236724064932906208727152696325646900025760096367741308699848342687711246682772976366949153249174262402527572472824895679690224058677534588638174719332104486676002583562371381543252703673765729490687938008086685588023116259860013340203940456417141533212761478654544484111983582824792707807692295819105131301882294538909363033680117074309351691246667784466525077434831654639699571728120202459168002660771504169420342209959768040242852241315508169424475654974900410912022029453515329736571518742084372695659212510635928693821193990143237376375338790988802094513491935098123180282431280995205314931172124940218526620481490226444359769079136305743901381902809298833686354476328453684743460164525127274477202201097325688885159181092110301797421054397875218964314171651082062957706145349799394333892123138523959976175718284048794440667571457017442623690644462339321659614207533579491554013647843610847213860700739854067091011882591230012477847150559290366868371040270920486864316587760813231441834454345068322472894487978753068017307846309113627632061116091313910699543570441803058639653560278337860735048197227619908006057033983686461610591874014487595953478676585745531687547456794300408250740544231497355127684059380066861606291956236640792781397864023074279624401448219022681369592196277362702591142078944143040662323005239872291065971524681060562781729862121788311404126117189091629705016727870316662260195941235627942597079301677251025573476331296457355491293655130517001825656001354073086120381104979013227329614282278354939406602584790549594764914504494922644721205746266516253693001531862808457344586468076229865584284774017073419574268496160855648362979524736634856386934316637266576153584217724770979046783816072691787622438179486491232305772953010639990755227907191339816583038486263481930690923073202287735179396954351098594130319214940834693003507938889675169968140307427657088486573960433211535204226615131054574011513838029148663080531893963545292959598091861420078018992327532987056089405927557007703610577080925765402343902370799169575806993424637034360283206068113746648532122650093440438581296095505344881106028535614958497443021932102647500112563852480321534971800309794751103810236891678102191227897961648128398536340192384473364183947258832234353705623488319696159471265060104119204730082594614439976108605580633469276315625378837767122841584129548523459915395019012039119320799329919007833479599276369176806065282580698611264679514536185256390734772163965560087527749945675319956908666988809418709303283863627881528841393863233625744612998673121933924937102901328632912374458207701139111133608773166978671873063172073084155540359881425556058637992749911559775982530966889748532765750785339190873512351315913756394583195758481491404278694025924838453727708091983006103605120900866389288316199855753156932444397735836020416454436101808615790104411010514527074611217753350493522668943393100220307864917206492003412867379597708967568672947317223696522362405612875563961465052394175713064219288341833448083995642760605294131323499831768110993531839759625750899320857963032187244008062169818496590578764068766216861410723644933249860203700358491998255293865699754651226762402723350396791813310718324689720570452252161848732510791543921495750352722384841631334709691475302674820211140820862538350298007754088478230945859541371399566666829424467320020839496380485687986553514327852802370962740158573294756642402866387283516513886718001777550582205414156619242371516642864609378521498527110106739117430979836011755995058255176348871218887443002970093761700688869228147372278503144643098276645244555820638526744293870201309249155625083557669712862332689855527267144330867160168319542435876880566845419934531661705352637305125432681650034450277487667476634144905803230426764806889149209588336534318755214129608939417612302359091617723671260092763194801345858170148301399276858564016947658850490006655953668218949484530535764330860542829178876022545695611536369872648100071620422164133652385929934558459637543858562907689507432942981831676915613924099412085541241892661389393229489491078176175397562088549443185448641264674825081681161790164120961157522700762392175716381656293238626506227943946904907156476492103907420297148548530762988946633117627251250749173387072648198872526038900160527285824112939026283523904726109386243472924617382208320751600088921558639018177266158065767328353554374337338390173393205481487877700272314471132301914265089637040725272650526806357228992271390045549144815236108249397826946533749400603568444995092387615009800390111191392131142117197886103908743417094963718762333788662398615101893043889669837194114619167529578000710495484966514439577454380862463021758950030960825744337300442972103444531718151265052081467213834745239521640867727229231398922088375154902787895824028732762869551763134878902916070727132945067922736749381435074480815005816853207248055628194232222738796291701014535802803618825191237158945321852213128545990008013780604609346705676536552247625189968993035450380772864917229004685045847572324967327911811096943397257599429925390979265389622440657544207531739354327792346516866932918664571427141737805899319954123524478145452991061238767355124338698047034013637600325474998382878730554456265817839364871261279996344326522265259765260815320237118117853639377744575274855275527508277323430760634735417413560943078705026605779283251126655193720676846550610970436605199561783936156827892492271065935349033367738291995893849037579848881713248874217226888291774948668020071109820039223397349567088238178983026042352220025150454814596164649665406638410381909623030962070255792528298266557291459755225789062335254185686553138119197963253332672374928278681411303813699566123028716858034060692075446947546265036269763972470965632820490417857719974818576608386816534612009805103635069786439786641317542751732416233131859021557069772006391997724582952941056471826948917675883212573287542319207847968388883341547950133497850924369961616815921305239377502294327880031205141450882291083521982732341397536187575052405191916098324729123071848252132880156682497791501604646420219551390058921612086081772927622321768997713532024482180683965444747452918584012837868632796521877420850438830550358174617291490583090697990631258522878867089891229165239988872431777614857388707680218141745060920993345186004927337192981836053579395131898523561057812831680655514581894550816569191479335682821118200902489789387464313242556154892485915477337823147742800688954411338626243521910662277690537432376617128267784139258923035465580130863271502102360500926155338777501393755693064530405107643836302210441863208034362010466501297862348718236416658225959154768765133156275530929792031809545870235191140884362267735828500151409431935161768870297766380711360513872813878083591609332390489651802103658386920704998838891120695552146772846191834286179748246067184880464984095449393531015814234100223831854937653115562626571078802727655924405038400504325618185224387034550343454743308729994862840021434873080472592909830592464785015981115257886889197258266927457381664724087839490701761992118518755641108066893802064295787328855611494164961213918031574980931086365925527428942746298691611345230391776710238845787215094389610163534598555739069838877968819308634332916095095525491493530328176912619153718553362325169872427450800774065949740228674505750021254128731044336274891569157416989976550718623136801139311623409156152889566190881709647117068832926391283230295774134379144564518704731857799000997167767916975377630180266428521244778947171288719985880710699967484396510037955273053604521155076909261009719815274523774961289030629021841988613336086951622642300951480561792264466486727884226723245394200564522055653389809364987417084398664540531526870277550396899437778131090062731021619088137791567602357759690772189278649288107252213596507682873359321993723442095006756762205424134518042157340837662270511684411130183294610443837765969067278499254394916214152672570537540368284654126843714414162416726973474809688938330615556321973683169348422110681774300405676016475622860484730106380756441001269374632236916504990399519682814262370590616262795254820084398773400143245870115586799175707284789563214019197668047408538430632421110046848236482578059544057037725878428044969412150585618473519869158185879900549420213000160241416469633126904201445093504543607112378687562210115339145101433489014166998450779218695227913420306006875715532198944364765612183188620038123357002636511191379896581386090083203221337713499165351017323752435325579541449229347579294097695807953800420802649780775804271864025194979515046771688096181236650915044584911160547535020523239994132631871000564808394775191401311861513371277367712651044773252639582822496218952899941083749056656730837167370812639805286521894463758365959714184645616178246324480693566639650356801187342741939405715877641437589988981806522889210400293233548142416357995106272265343891170128948104663171654129803265899977836667223722292452590108204153078596023608218507776811053945237175879976636780905575478226857515257092834779574473190855064615234882459680779112503728238648865815530020837235851457253481352224603213701871434462974197462598918332921733446919258423666891420525973186829141476883450806522730055180149486126554839641756692627016932179371656079851583881150524148688670795179712512047468129428213133402359443725113131219995155252861419349863084093347010172498482055960668654933543789356652864739234289816506694899080968176002664101183919565727354371609121143724474368958109108654711277021691910317243633628029851627869185404329846773661813737255635816779201887991761459260908908379741065265142290422599159407316127223441535784918405704564048131545839883404216419475306828329670386271459920591599254054274400866428955348920727128367358971465932784953215350331500324377236316607426251071422232408651670512259380379566676822514167971647008282207713793694014627967184253874547103872149313205904473332007522524468239436944508260255038850803808685876249282376991352523362467712360350420933174060206020095642561557479365217636735095980891631118908585338478955891569645134797692077228534933719579842728494044710348866215631141857694919813430959063612971984103970775217834354287307895989237918533948658811966263587100175536700185602738123818443501672296703152876552577431458448407386810687763397195860448480804779509877316825766953732845289175940011480777203142500754217015765485941985743639897498642317160588108215759840678849518446739741410893502381459399130176884896746951898493015936163851004462377607262140667601859325332698284852394857252069906473467808533374196850362784527265459363136167019691588517351042874046677302656807396585359526497983212764227146021866926136127027121915064120842820971026596198728456774012124608448664338262090101904418826740556523935794995507949377804872555520328705136514741592063332172929580484521041228034220615970483728253122360690571625935854197067646621892304032047747284821517933348981899834492344738247872863426311165842577169879086691612814639269634883534410134804511749799420446125280878328712373002595924397011958190508573719747600365498855346957354547200313202899414810781235403302350528612324974634663078478523480277670403779444111591554773150297234401660118344508483119559255407745491373344187280721810843910397086037443491865095455928985025000009968941771673667033942807765669060630377758772117085741818356790202301446942529185139028626124598486535724750937061676557938488813421765133049826937004371916477258141482701163951373158935939043212765822309500040143054590752300050687172834807157640895004808744993819303520248795148077074017455802105130269827216871596663174090184351745635929150186887645405150295912877658053371274330560141314353573527332432567699515778389836578251638094747716766130192988372928960406410218461492704491695854142420706952556216512718261469471518564307267119126409598009826685744307277380364907709712048783557117578601045228682149482426272551906199511365619254594237739208972058364211926324599416385088439143282896403107792742965157953661921056855025143293620999492562727016705156967934704330224720364557235042715969099815584626339261923486151603123390119522759864073119751862744471658976662161618757564104185076078736765298031571756148808836325595639145981122363100074341704270913637043248540981998117674445497031572972057895690599405903484567690424725007677007453112947823060869707702566826914698005735377854817397365336183461666519005451054630777021761041872494391181724199730166724479352837062037617105669846660167186279353022504909672010832284473724643297308454989407426045115021066105847423648790563334206152986717267088990618367893194473468354272841872584960670844889258952481442331233934158580608910646573651681386507345545645158543392444136610651447190256077650667002861816515989371394995757371694106730389526053282981265851682431738945872839050780279363279663946145689908281341984700413774621214557214091274179820359046014242741541884345172074554012044285319461553870632964701021520312757065841611663033324233681155999651173876223513753226037481933228203811630564785690461114388572403057536827002188439161180495432785233946171546041839909835765851161765521665811592460692095366277662579275900863756401102371719695553980837584502783604211870800727983845912184068859581929207136309103807558986059909145868316926897572464223873876161023246975577129830460110229071362275452305158599242811172993772904313415048680749640013359232568582170374998065724931657983325661579461335199432441155714517674568040841053822531586653935444530882892554211457029408012936127359093371054580668997117673582004816455951418718941908525781579888256102118702142627012360745179918032017454434760658695352977328569214636131766295368002969692319799704021311453512999064331906919482590163400809060781912310197369176665002125881310654643917785466663646977865626693401990731359795515512579397608617113913115832755489085731919408068764140923522125489598014769132694947937732561585130729018722778779069280097546801274388477508537750379093578363994944444811288040385890268246183602878156058305851889760972079501535305159173646938794958808043621721197892111870524125360295012287306152744636905827806651666793108125495878242900092633842020566779306867799540143198565068193504961480579313283134994123885467150905292623373917678331508269514534421448362406731719150995372969536902290380310709372654896713053547103550309396111014309621094072971345468819173888836556016171552627903145950062842324497263878345294201456940131262262735050427156826937969058004191776803111082796233117045804780814890959681958939075728322047923488702025295867594690657266829812732886609254682371435822106323427690179834647654146961877989370310703516415868884521632642871991077132041298027227068913896462020715103144683331926219957263382817443534020903255377911438368679931571031307675583844994045542203558327430746318641490990126401361259090200423454226328019546894267572276350144062789232911034956586641000344402185243311237123327916739453932856555521536248062489480469080766597361430932262177260045602757595225603377966681683640350174335955893029690558956972495524681231115678421704429469650879072449348831435998976220024177664840231010977385528122517478414321587650157262184919873443189312438078894999038560311300758408650801844987115126076080377200192884976624729709332239022248513679167088282271042991568998179467939837825763863358019666041823960668320622702979150981199572928536700186556672834467813750398119494015168697591604930756197553216105180039263140796616920848106158698485081125270881843037454692562998889709952480016326276088480227088455129195266032770551401648034328731409316050070268150171234904343759605426774861292642423732661318825060802048489134009436939831149798768449894852999331094278755777282310479206659164319313326075389060650069354613740756751823776147899181906023615708093745209072789310905958223099473440259848982100056210252742508020418960860548578376159704667620758400897233807935798104265965583538048674889126367139983352046582294469380098015825355188313509493188858759737143212396106511055646203861261534482364530544833959404962518256862870214300502680933266048951981196577396874901727310667170749594894464099117579303536061224998115507418177995659777042358564221799572889585772620127151239055113313942412936632638645778667864567950729576174399148156393911736995465305095042755545944090197122709982859680011097583583663009611892408471417520870514817175222210160073640394006407030885526541322976349759828026952475933707084191879263238913299131804477720156033926565089908553471329258518721440893953492751084305210628828529779100289178122999385056205013091692542813989025875354509749831329556246283103565347881406694945451274449356666350755814580739427118130447746570755020783581363548849176679796890816314482622560269484075926051030847052968633969345809632099287875243333427043605821956841087795651236600640936864110455352303205811963110373962030101695934811683682709151253282178318642914192131712309580011524372129388101105566529524385155945588028410136481145270991320732079758180689101296745675413829367213751932723193232908283987510022278598780822012484623003725276071960513647137156329059094730344141023381150860156035854802883141676529641419812010716216293747422080845910628398578156141728994158142831348306478489749970601991027612928635053104098825543489645338216143912167327178336389528912557036053038100109825738468379836051391155508425914289767411393025595191968693665036753885636880314251707183946619474550511126966569710317336714202297934767816579089463222902717467054825719033407712530672644114480545031049367834534841426549326495818764409716602945278962911639818564268906954019168637094844379878249431310986572467962948093080136690014401958060192316317786894338195853281930166838490574263247669211123440000592816562085313652975480058352130265059674764535516313438488339019203830206612931205779759361196124655428443986187496352097633960680379739094983695233625832588295982379015690594056349784451548675002565564985818458750498217693875487442219937050064598553501825677089399236015292900834487583064036626809577682969144384907113472364009352144065840723257251157532800774756076336401625584936235766337576618204689203607380149716551625822595922171951416292873492211238749968973611249025656877121720962381115225617354879333053007718067470337345494795645215638396315686558600729862266724977895464274364573226726151591662306942736603331106901681329416794882565750873958554090503631593115629722216930794681211881578505084564347613820594262733203131189800031919246806288273677030790333798746540597871967436860146115513503282817407942331576727521260083893399286988311229687762769140857431715139536881377987433631368007117519068851103618325248098966715797621876593028429880921504963472779258799771945261703589466762024218419101772597463183753859228217654721148589675581103870452442501633491601738047471869176557625243058116398269767711845736334801232999492579215733890614540050768455391482863599578130320461872685700472227080859825201434410870217474480614062611442289375508970643132760251406828344110525456830795434834141504605108735238562847064055739085484404576763945702502887137541829202181691556794492218468000343197703355289661411746726676750712407017712344123597656694796270538403569048467186886455099242035010215902327787286926765286124745047684798098093844694382425537753300907044000764967673665353882882742071377471621275142707375719346557788212942314980019938676530961213685607501785512779636924217327082565872227031411476247882678284470505447205368692586951747521377428440869636446985032273523016493219342175425603602976917958281056729507080671570411936008589916261304766105519042610167157203211641469880739369673575406589817818009968334480532551939627137092624376637592256206075778827107266067032214211162802435576860711910760670355371675623145820330005578729473334263320567260012423976681391209377013887332230991071814736798787653997267150316642501054627467868651168173679872026878708966390213675145251417012854666829458140506664512717547244668737201726474427339506780494913081196224852421285722324334190190121613017410487798369817051453163067665712181065200870296657143118581530008013922516818562271986991227296599578150722656573307923498950404636222466148030581372695874072136154181318963522592504880442803623206916736421474508100690548945427052030235645635394984985698610242971884677438913490755553323573085527041897060915465686649490540186932681274786534332080696598406836904724381410443848056414833541923119619082516780510916140365042319739336705276311819295606093211374825620407169997668184141365191362956464275968346726559314356040877203542664748474857097520878262235910054144672720401112867218108886049167905995192306412202857006858945494309957356688942036350382585356481362071879944119456460670934001749119430665890168595746487228760876917501378618791782338701673046770995882359019072240628141791444092941519756685572055846064328474947601763146621023677311674554597604721529559919181227564715563931071830418568562263299330287390633454186603274657147621476042180753560473284233545726944914725490045473672472606540475177671621042212255627155992842784770372517483453576738681750209020951368418127697081058290350479256938195163179020684419092429009264600010815392620478045862322943543899842705130736982475675908915553328051857713782597302096923821205574222194575886595600659742579916641658079291901057862863216819513411221842291683533411282009380922507819249351746456437567146735776285467210384913943765107805703935120533118511455155230070216769329771915427610155711225159287301544491433060464288633012261621915011034736647975085794580342662531392896547588927448135837864584298091971328650644277392331664022150581219858146239277450145088867812862105675975894470112703322506519946201296674310706964117043238914967041810611285653832979564271817430749600340907120811166942151771035214118002340495580751072252405215705264666575230039903162083170690047095931075466280422272385481776002212902360515213219948140749542415559964904803581817247315007624712603222551225976572142175155146158662221565756376399521185422920917226878776030724383947319079100095046558210140531973522397146133226726311016274224952537787425024819230836432091277688368294027700282121390060479305760274144077279195018932264270571327678666591359454722184993036860848198184317991305229370074260445506283727019318368576981417132431197026019086079355126852984357351538320232021738130338817914141731555568224200596101375129629589096629589801899033185166458198075920239341913924227007074560502573529170942645614630473495410524536188707967475428745106795158591689274209348407804223479956144382922986731010739679860677641274840739857445219955919091387592302989693965730135528936057375504269087507267638565163599925944161283734023938137456872474099203754242716020549252197489022474813520059509666454198862976460215769200032146577591322192301529604646952518570638495517857043462711278671150885731541826937473981016801268636436057072102015727972788486955662846027145051149165062470007928713685707073545947528080792446849305681757659945161482568716041510306747856129106674190025759549067844089662548363518776333789131014687703035147435143376342099837654065072146285845400625558578933802824919360119274511504357092793639074060230065747111355418073343227064135537102082267949798647643792396216323527010447832934018346607334250293679158847336725375132893799381872204033126900520440479339984668971882882801677374309216925244534455476870337354072517227072502081244896006231070542632404920511159181767830116875885788840427607570606605089693016389527576773478655653424042781298669325854229746226696163409066355008969246118399287689300009240484957983424115087297649548754657695322311344644048180121725892364918278564371953476154185954322404285936611621774132814775140264271766830678263925901512225174510284836065465595746189125052970595879166046869318595603984154014617313048025420567403546877244171268640331681590307271024372765679248400809638488114651659964043118362622013900779415534821565520122954433192938561551071707380158184566972619230281055130068289539062657966265083244603503317498370179157543501627790352825798802835070760921469419404593053231593956377104490658431331604643373326361123182429716434580477265566087481866188907201236857698800923962553259640313887917760037278126650429354909709377037262045374066966499444932164610746157489452968520137502756024963492053768245948488245196232600680057473549879218868494246109794296127594246123223264616849877622957733391713734973251281916672494195690229917573087179576654448283069955319620671233107353188942794330704223368291272636360436889407545821253354294977061695094813768150480323648214250796783350744813690240567916666687015211305810428744225798385267574169286572213969638612881859307656086799891171969350870855734497296652303137755552318094929180456515711036153388452726155651774175953347369693322879901077433655263268606306163515556406216913543894018618638736042319873242879195467016039699736223800948673261517141900034379811120799401503823197959330162760723023101389706869316277418628212840652296676252618837486350047085404761982007308842707926163850811519329942364764429673903278971428989937691225208860270634638568746684243107868846252651018977839452275623682758630244163138527128553559919298688902793174028996016238881920170568464363991698819932072346958614956012514981997217903954102111961657879467862939027047209932580846099076614245276023424330237765847159682411623165005640329038783046275426365106996787829409202683585743301634646828026049230283793959166787693878610208362812365806642335586175354379214075309532320944840514977309846144011062488398034320525384211426766683388961639357204648121337428194642460084894430375460673066967353230045245312006733603169697940276101376406764317677453698164251091046072569704731186765934032440862884661046378328480278544784478686124590624336506705554381638828508300777295853694323680855347061222138497675823746076171787396842326976328807673640483742966447265138477865940552963584787765191618994335397661572917052827808396913899795382283387952282887723583494298324291581575067797031837001697993150244892086621992467963201619884519467672998844059780359701440137696288198541894993977560837705458657616586521151654267344962134609189928550856115720480993965995057714171471322806999423656381903278354723364725275010167384434104385509634629909940563812956678903365525703672853554142623611312076741794154447896006505265879810498924992550889927573462872047450840958336458345272098014880016431223557460369828115606329956734621570293621742725705366055541017811892240129747251006505072684254324009513951710029821314747245223704178173946177120917670785610635977535305340945766189560079411508685937131990372660874642848771571269740443203980057317435032894589005191596589917426733764568219090517113235980564481997273727480725280818264118050034348714670129637666760974721728754281066176395816708141050652398340476058918600860227936398438013338561297090820951179421240329931099038295659681742319100700539399501925551941548007217662851521939188422418657297559533296361694783612036611312814042050791652627232403587233374498859624240410467771496194971150476177895570727003446982977214348551815886613210024836515268751863967219582638266742793543876574730062663029733944772455085477410253981492738226224551351565999489304699769399839208079873930265989466513429771425550791793739223724824656132292450392060755907283609125644655202749681935113442804584154919434328956578828967510028738738618880303872336440253000273010596951911549261264927101704890009954812814943916740122481806091375898815451990403284848282408486812145791547653838407699704795808945004932167002007872096875592849474920809114303529220026031099260766068178265099542013543253873807559789388683871028837295394076057206474499791601776279625182728002211170330670702809008856213461043679629787005477273816601485230930906301273596837274629153104030678981633986996782875354146566084696432580486640542993951316714751944130194394535140289101041494761559905874246618737654258919466580313775613861160746927211954284423039102899603222527732542179674508798692304940476798319434460149178512028229762171001294499528071227789341930489057683090472599235058280076182097745524508185817990251799550332732681834988200035109187689101356498146975828333845612097341597319116762128321287386438677571045368940461588397890606781897847335698553725843487052467046012340469184702366235948717051841328361816481565497538165344005795412176308244817311757011286650377177320876521837041125204206924538719592411334535816833202081165732799070413476735172372143537384753357418942292958582992751570819201455202390117961546247672169053443841351717935087483988210499727496992527514839885504807489194215004598591089239050398635914503749142857407581436215930313999929126742032087973103930859455780154939710555771145119256811471826043748378358333882696890004008805023483256687229331348709068954854176882996509275872666253236140668779974430175931181524129496932043172657294657686106981893445394655236246534402681425153467612401220201865297580534397065577047870407998462490448410128893685823839363831631700467080334346157465058426563086192053396136640221212956610028079434743850875273672217423707757879335943729272516865969549230524341717450508721374147051101447214629567164018675363192903164111241166644686803343498380134728973237358909226806199499797888197785317941962625412690855785627658337448360778220217017980707460417870598212518667837512740430542765237496074954355845798922834478779375450680638707371665485890968105057717855373324290975253830008457851516754408790215959626762265140008912829175508090029433520612826544944035776510339993578524207698943842748793495134888986274583567729961055641567241105697207860900732800259613774572741008114626207946793936180517311367323742613266343547665286370565489524443629511759971402502685539603049338062732230031417478068231019110576306697427686738632111496208065992341093535548532110260957096809110818253451748774780552104227233723297256046121621064339313624600698489020029028275569759900446914029961279794171232424200442062406854603199947191734607372550668838437710529269101836417031929549535495964827328585899322612128315293919996710588626389094991069178195255448176317700138210391246248056416387597206222025879417892951987880885715316668343125855743560389791010190875706467933844769615138493197070331531074951128250399417452344640364182666960757707790272638818129604112583927416289050479002451017036111209100332536173556094791762601956321848228925500435933641865892788773543315044877463028590708221697982588476159518755240795230510797260053982822545439607023764620509283533467684403625907085822333848231854032084146653527155178302540863302505644194883686186322761405385183810809838145564990729843800791726011018708729801367316238888427360416495035679626492389210762824356464368127639668972798068614234735226756782932214964477497654014439785968193400628702122926267820033919542734587945775823567426186071418492528853273077466486838405691077451460434609621776467877220533979950103950673259226921937214580780228185317426146617773652803642346476785115321243131589748575373141430120229611656493386953074910150346804592652585230377677988616481154788285776109044594607804827905479336084716059896097053939045504292280469667145619552587105396369537154371227760585140970258130761655503046695223521850592498777050920308520860569273666918856320442798158800349560544159481931379392572937815755383485367927420104248005828564793524606784964407738510973194923397954657840809383056089780498890677886785196516996729783499383819708216444780616998759683403226137154957016868837254508132969485024934437412416814512942175029814228980525073372727351251864345284096179515525926072717305419852511666643930713481004137981000269704492970273699029979961050767479098947524326961275391952322901298185017552487673015191494293936468703780725305288353196554561550184445033983906960497213965635966317399288939498924521202090023729808023964353938866433562673797151808615429439216726868649576743508137763255057957219996522474564734748996097472016093285704044730495001935137441422379040665470276683268273007283955709844791812783352107934792414094407310066677525892188590361899820926182605698778801812728944786614333517218355097426373671407694873945578384499868575516601593873537101400051767888772252363944721989154780153260064870840321028261651039706164092651738894977413036399531085279610650312735687872639480263692450021981747198520937012429529750816311049941664114468269875642314589232284477303931047340761808065665808865749904575433194707598702936465726675458891660571612081294234353656642012538324670411168238299318937882811192134215118271523299793303709113149469381895981546269425174136834721813845975655506964941079734108961926319087042255804328464570844588029716760611753123605729709388976950068312236119489994527204290845449934691292679098031786448382290571015102744900269477641350765997850587100576307246023307378229501054706032193672901138936162823604501491500608625629158544546106943364769822985678489571982579036672110567387821460996898669916243101410064937911281915052135768667408799647477607820187068837690823277205492901366439564685699441194175337797377415044707636376846537026111333825439440102028825160846978113441102801876370092451447334477743249260452529291804653819635843729742685372676439441749784808854973414593602097707765694345759166927539953960210654672603790262284737036043835829302140652416731210227162129801697780925392681921427448879118196298886002938414529928117907460108653717342185399662554722683982689387571432800321256680761259990747984912392101068168045972171547282843559893527985141161931147886952841386541139395901243965190434668933644544823201153139524718581751080066640216511831074958299729898493770038375234287673917552637209474414133087938429357130408923893548307921412455398574518198783760278850721678559341858469486574304039782270272584438896407996312386316891732948909371133892475248560699283913993874780942916096876597092110579990123781708438070260616708788703956259466537494087992313867221170227900816429417564555538383083758631536658294897642838090678445878950413522893120999711043584803535385994474159316780210995614996203720862871676586656522253513684838004623193757131426080608194255304477761374574906960169437809042433307985520694992259754645232884090910634880659558068624015224389408906255018508121358138587752410239476056559886723449257025152191997036029185158523083946779157144721176413145613295629550854328928639373321304980492725523356882580162502520855058482205457164418366788217290877899283660313160753945005926249095726992578998955588184397551865093327060108562372221186279014860140790320492994043207202451448487246451947829182278874373728237282412413757849504847168334534332810454903117125518488783868258324348646649694660713319376729729844139576228975450309402037409874848207391065080216940801400261454392107543801416557737515664133487595699701403558435840699662928320660013674105247737566649610798661381309098871568049753649436437610020268176660924377858045297713519316848231678969220269302420278867496769243214857457257007331312937446832604636060452811780321694095659376740090049108808969456538366481248130250757404451611328487932696654189847240084944337582503101896794547366731211887846956048106516963489992707363495376245491074169254980193887797316194586697148516021338022475587289567927460235811837596182244533130412540403545886686654621092472498817987306184590811608243018510432399314643664313371497107610788505912236702272869633570123961699891987667354792955441596926621830097706147724598336324329651781758449770739985858271035583964414226661199623604518971886247498496672175477190447138298666610393197057401308111088333764353465591021155331010089363092773243439787378065846559181400011819642057349655023479514652667211170843781430052316783005940817114358502298385309274485243464547842779161785909494567943946248764925668522401270376690685364300593983267940795932285289269486738917724339154906492415978184066816002003378515874614504056088966404955047763102075062269683778010792865961675273729046149558363551296958131893608432492642863650944684539230396152866288177875443015730594358257038404960779683658479420567883332532537155600494439344281298851611335585399919233690415448034872179718975550986404963571602062515899159587179830022794118909024301136026808641525087287153892227983590186412296949587996390226850470088807359049130217375729450645843969532183059395389015375398531180423083144184360290066352449994080451277376624974071148592642836959146430694182751895719771355532149847499846278209656205294932205008838635675338251199876532771246570383210662772555269091868777846566591279572981631543258326875959648959776560441797313340756335930570045633400437643503434803967891103462330530594180534403783295795966602607138679249254731512143362260750344095258252940081263151853531719753127518298884363111929647721529304157281008581422971287106868935653715735488567655726193146401482094764554519454779266343857770906999532321147325282332396675457802944839812312298401511573176638547899213632280699238826025078891262274553201603107612925513683307072778747524178413932068792844290986796002911158333261529199924512632286781198197958306205118734702710010215802202952849001320648362218772466424048481605707067120666583333606830161822270558142441853094258304620027337138103399859373215962535982871313721279101233036456353283244243331866810377205401513954045018762421798209820278916655201421954276181813127035779953225254300723143242727427908305928172535940771173016932004346675709026644446195517134799631092901847325657020875241600283391078033763585133678206474496482122744282099845426321820764164208908865141762192385700133474501456252344401868265290152771815229991672900614987881131276463255670080950945590741188470023849379571839206569592370986382008473355228174569816738811507019940613908494963299858595108035066856396328361420167825279818550230878232447759570181084082351893919794738812439432916195145679732551056215558900420297082407530482196660456227441509701882422440378397071264921634035429681170707870580234474872048242594960563923243939710165578977823443159868816770050233091344036674752302269954035074778729667216471282775144219864177097827461894318671682569819710522572111437227354754781822563506935686712326174219571092328753722767701976321294135306939282851635235357993351827516426776753256048555551471772278087395002085645785642882588365977614686216570384969500797481561487282334757756034424645744658781956816878628104032822411988886389903373468335195187658309390929097880477712971037444719910324997147436483967356556643129505089817374737663213061439250581518668288036363236866593151821207602712534299020623969112715867852208446721197529247463235408722375006508817725019714427441067839743216106639885356174370399871896150893848162153431553984045452678078152810091267907919003864373696850131020022609502621341569261385272075813057317690334767138223123056668415594529010033697077453189280718474179406142842721955677441412230461954679448611132670750898693117621539632725061171374505841288074417991716176107208853061541522622622392648806372241659049655402661186472833426624576932093757347709314226819623332616726580780011440503349993944641865998437380691883552103364279837383771900403015001195043827254598755853955341630021660458969710344365814611529245487695185726737222994006630686447054358868936215532692564470541443515074079220697283680068319757651995426483454090996488808000636333498481247483352392854007116596903740613862375035763487667053439699655272427425572406968586092905742170768468079728543793990133593392700071610350814992868050245397326766666613253886391797422309720958312290372977014544955370989897280481696563961786815345631967661790638582520840533279609520627802407401633441727546619478607581556376860493913117231359539307287860817721242277921021290813843693619108106213014174381389584719579404619491126673855502311088058927873396729863464976431114781275359436473182331311818976456152975224849327183723095303289601990470271964559573547960296759308438466760410048276496599786904729998662255912080491258986652771452927738973118899284176135024054664750246712242284993273141694616661644915296034549178762331238279549625556562344443672510455451017167381326111518690452949758527634809106676788012176622242253264859485155570553533185679218458233765784779770070720435367131443401823768921204813883377735603349137435670833776813669192793423319169258044021387500038457306288355590938722980469760532240576664524943210611508229464862169331859766515470227641714030015614781095895137053511850617821238440578773754684374735989661836633273990828335708539161158532319834172414764042347137033566924756467540283531724399571235169388423996031659398992710998629977698673854890272368618480341100160372644909824435132568391158224108879638773560256470172675951120046012859671108724636514228292737801373065798151052246340636823536307081198700599083775490006996005277676703900794279992234002719675006433783414364997014753399696095954153055185383502620273124799657631039645301557971017933526663691192782657585232074465765291689751774390052617357241660606035164470869649350726092797702841978596492983732605734766954995667805979664574375345622367085945837444794525255212733351860202666024123755125214370178016021006487937274003405155038908572333418904298273585342760795378121647933943942659090045962026495834765238616070392966101632620719631125051857535211047689980724596630571725064755684726530405242289835289982907360600428604153739472696622334172743871472490798002796825329514809878135762431286354108640570622728625052984600229682760635853658479364620807234214945471669927734621377618442783179399022793979576764481738260408266564945255355089484975996383504201708911339297172557757446365484983639790322161148192342283378327791178729632813070710677863967269976518988500708919165741342100315519314841993327875683075304004522172199334780796064188755949330089309074508046070639893497180762510852098099765955679561161776965536663884830246096013157406297279008208175664011620846286615161621096748085378238182046182790406620933903417864044613861014277111378887706782949127520880436789359643421842370184912419376174721043984423312544948004081394142237250534501458466748025098931444609092289409519452730777361989148591033041131024027818637791334841370729463820625490103300642495273834249285146355928783712024391495487928084992451624693818301998209495124392579886772911743338209559261846094272109971759826395280678640130196159695444144689633933511251665960152245892416890153234388209010320003145000272743957375481901283455095668035893503414007191185463745817826780613135994489984469859483979388365698753455523149306392670158693679149188336697590614737510635670073945567322375999376163425963427734942752450712155238551350748875984372070531600056931506883975476810248985805497409967520588201122101259828079938449764555365770496357121452725475034701060442139277982405180920781965614583527862199017736389938391066542089724764859802386671342215634453219824404285608312273320779298515738601062663166279575969862823891959204989159516814326883333559935714932211933673397321930395989792192600253028398988273127377713249311724595054597288565372855332121996192245380600244138572331147206504999479203115407802542031988637434932428056189476683137968843806290209212955400445323919873587149605204481797924685716639709996936489351899821896347026015952786118699826102493721880822285861965300610685984234045703724149311238292406015888998174765513829662175296052865852033131173349040386689056671876574565367310056952394998001991500287738805929971556229107119984473136081944002281001939992785743707587970488357001367230004902797026900139207861480095584007450088939664473953782885020365071106189271724401084976670585353586202796932374319240290643807979706965218180453449517294960234228443367629865132825018648884811453592213676918277139721924567224689325488813043830641175748021549509772761742846937717918383915520965875084527662902979851904709123321036077692776004963291525046348035053204087442184964071303503823854069476259756945725654847331100089887113710254936780924393747554083375914368558369509845783705525520364203482191960042500868187969908144328827501372555876405762467666370673726336239598220081278007625511643792562395618266775779526608352521028033918264737853683972938503103398097278757719047367711183933093336315850563394079868728903297432385909400512091360054948636857306957956688864759462903530271036068861189189803027718578119485623523098104936862303243979081519999097729903341840671675647885853659423285360647345959739741898473811769655521761865625827065499698724310950188728076126177805983892501034724998220065099870582844532533096608309243697103715672033663197216515239400461966561369301928082884409011156594011370545651548583521116645033930468114090476090597402134375711113046332453791898822543896361224122984246321018464699152421085579721351796278409703178439632952777585815337097649268807402945942247613087314761927622472656959291069024717483579165117912185040022704825732050910644765710633701985375123987783759832141098682738259288302366438234334436917386199935522933270745058586284027377102720382314722319386388364771525915661065336784474261908646739900932907567742810487747772194423469453289675654077727643112855124314526780326551956256985025892334302936204552735408081843555757941111816697511360849443183293526141631338645944088244582136992967149268226142910784179766159383972755794361729548042779372803494744861145823671740710005820335622488087624189982571449639840625683674643979559587904994076340588064852001406127644374446096025513973366731088295629050871262559766478757793892761139419518848542217000284679270000560479555877956883924117147706721610303133510449530516601312705898650015996523090241011068936473831788829207170392390309574154405330201406878216548073868671519657156994012476322222697321719434628885685740493540894892487495912013300920358705214388011187801357193626592084395079186431718954940713930994230174241569090146426764773926138398714356944697877251555943996989280285853177065163268097146579269415616465802931111592553759487739175745737352703139996290218389255663092551414868393003726436356579807222377235127302702209260004858676713373177753428722569052968324667030590413636343607305802743086387337378483847795004675557477287307989703439499673777095757975223214524842185654107475808418652225854941621840513744999005388846257439480270802997183401518153986643894791413644696069005575159623581507675335143000693772983675928797946272284424797222489884370254078926935193966820332911859226022365207907444326900224759701483474084306050039148038595455717115969471990640477274303796974179878594016163194265615020213156778172352809037847210174909054870273917791985742613259102041271098586436477463672629564985106504752198946293384342488678748228367744360813929920108576517496219687068620393966780603748485292958668973386722767631746235899707049257047121343251436105624563178277677691955069854677995913687624774941934013390932808784594589897045483262231987666907264216845118462276298495276044414964461119257104762722798445716953202262364671731032474757513117769054225535477766301294894220095371464086791384153142940368290885943590073402791281540491661249662603742468168838393347300739331955564303928037917179673761338643033125619158653999236944182948033941964478750926342687651937023538188540098943372534952403721607958789339597837852066626310001472004698987352472284295366945850628666764027021139638573799920136439560022604554641309217537582410423412753596627577004916534843583108871898505470469875287713728912052879704703512954567381658776829716941478221161632707348337077012327430780715238916280325718466223307093464034052231901750795611655936160292724330013575999530216954732192632533944562568681613272889694056045144816901851344521809699475585080705280639306516859704475169097071303234547290414149717734634489231004560562211952182750842568842677119304926488112717435227453317244805940593292960827014726831183631485242157518964561104761983133142152390236747818148367490560276478833693460633463452329741149713074341931984721495878126022971190515546298231589125173294717253423067661126028924852609226148784772141261596005237138844893255983558602283538824999999328083743541893510097826769222968205243816305716348811835238692220022043115831171215834422974212824572537772522681107465294427334889884486589660255934818131939887883325344263183353541270615201364647749591945779614112663085127679254693576137622686718028812248334469326951629285272449477582566056892380569731651057877680640235209349268213418009861097700545844261897068470710164460029764854497879233015029238074379107911450416048304595986729359919572464854255585875389340909486755439631064047883864895636009103662932031913141340249310775559496471275711613670620263295063474875557842612304537410245964918006836726532421726780493673317356399059023597045963721709283130080118529353477822255428470511063915142980914034529510804300877956563194554713424845778345341430380196712562034627050664761696020443326013366868503051215445779557481053184886432786529874689752421013150320191826933346141484709984404983754774048332939663519029244908801378552829490530025010339116822325949641294808350351452771546950828637815767507158897040644476957903061558615520109214970647736367870419615352456355083504851298262213055955986648767121506916357972126867446338475071576351965022042728539118473587798775845458488174499753384049803627511368721360779355912573673477619678149136225886675515887586258939098433273176223314314462726327970578109687282490197176768493755512688020510620661115117772322644985541408485114968013971114008414273950052042127369858934964861723925258144542909585332374500147095735411244771563983502219435701390153282335089620854101023137795962743561114399645660455299137155162300503046107927466323650909892075179703593670076444484768732208072918922309047221843943490770673660137568945494908859718217857258895138404193112144213243230669922698161967393377265027152740181077993987784439432865250057521505198126568140773675060032677323499842675120304336161333191231649049825942531616837832234740441045011660409565155273401159641807841813289875899875346009456609603621234492823339570206042282332159192696005151996103956063923159700096773469140137922888975005238908681851316525420584963610743706029426243115481630619042950504435298866937037053241267890138131033815560094816411695940218695344707410094764124446482763937927498730947721722314284854815060458812949364261048266097052022397720391506674590670372698214190089199242126062211179382985615695159948128857230837453859594659260085385731262978733156969584936270054807876039825789156216610785193996025552458331215635396821848853580765114428217970861421790443640311565646822317747223728104612763998569181524300215896043054201722981142247069847466785730001418251578418801093558418303990528901246260717208046818511582787816910691178160577316740018589309953752544694055555477133477604202116690266965533083547951708145143199320314130400523633175069352937772885320194255524075396295059834979783773666520393498407201955491459708961743628982181324154776653390320228822976841301585485934483369805434989208880470918688044361307177046424939396945475649479435250751598969060121192320988479244659167081035785076653254062128965126811063100098908187771459382606084764756688980816702110041903356080677703244203499625161935987286723952917282093077453696946649513605704131843637083289749971099112008956092238182430222460628633400432072836001987695667874230206286362167148618747387772799334761440988165094333810809847176279484610471301043477466913272895029687284396418634850097295046387092159045915049887628181544875900492357991300239587348428512725030975572161945802823146954566126550526221576410630969000697209551011110800289721330271612670727689133688487924999325658220302823010582861103174749623152575150924403759048876978717072119268649014190027695298699376984707285775657865991612774844342716944453063985812370385846770908807791077477638598643424392851181183207121326545947703679883111452750636781706118746630403712740659214623059502168737623445076228482146322325681139495524986599606832602991847618069244797021536887413094587992961613635487094308263089114587819046616935660919811611498216444504573070235289810609241368320702060882402623207594131498201032529996228266224259686780432068251188593665400874079163670701166728020111746845574223867964329734010776120336473379063512059390853791149598831567548162995973563368463581492438155316959160615180432406902822850351045742605302605193374036625148078280489203095010800630399752794004726664401229249714866625645168344911973297569932750769340574593893425012975582552203064865871029092656857372323367048015379517800657095559830757481792941824440600096572735132592580423710585592877361063977229571319898272137833170891403719883837793958531073394101228012250890385926066554929039157958603439329145697831867166069194440720186679362893176765117368614381168655258666349945705436035638313646711731513948245257137774785281465454035965121404744662566669714806313917801228830069774930476091741831522219743409266897865854721384852763416342002169864984646285687286915815597122841152131832186375489002595872575529101956475621680866668486953432893423683723119868345599456372058712890675110085802442565410107079987988773051193726956079472977709769053546362461885242971996609887694164428442527211079782015910337047216252020970938066350132673205146368309389112804885926921129816362597264208731797011723467724474793277829715951902134050040308926364920171752922962999170704656634708233059441986367260998714692343086009806731729754299224313028823998764011840370694618043427558514300745342911977900855455891876934202282254287102679187377334468350373354633411385984095516420305534851673608857544618794556364272489815357717858568487885594084445957292084452305321894673757682363170969571773013343750790649810825459134047531576543338077144030282774783296707883157020002378951404913887521701335616959015643357828815136299314044664910793995755254508005168454060064236543729529010506051872901166927478528562162792165607738066955721438680580003056732626128572583239284847834199114781153070125837020559180340763363856785473222891934855884298654534412280536509055526178049605476192878659695946155406134310304247177680590989486487478111008805287906083179101684491044915471682791845298572653446623839845541278102959872616187332935435905095858665804084909946347178650625496319606728919590538494912339660282978964200878159490506869343519152467453970560250800410415697722737493479035753052070631439643225429532473816770770739457405616744605110942511414355286735779698370133195396208506580048166747252486446918734809658654296423569334581473026761903816739498856697424155816916000624774768866947596272729717062520929068765260376081800819787380105798773335199665138117447414907995720255781805847713378460604905476859424635266134666618180293368246997529784526267733687994007294566461389771847891928838640008932856997006966356570602216702182051315526855648401300413482744583190965199386537160366158755093333706654040702749728441454760239677019943291731896850958546766713067219305208609273801762637001427845345492897713004644161097574576195126885259817736329344617853844907614119536072783822384493626530217417222540722103419644369387432882785259565192704450517490779942092934616465334954373774570977821192477671367602059685887940912415833847996311631354778945853328160901328623249235238497458573032266839515128932637753743113077835848872193170066640986645991948449843168128659776957375677040482319847648419653518496730387345660032421861797682790454059092095336444028995828714164991005470573807299760077607633587670126660268073680342510140280259266635162635787677685493105387531128075442542313552258728375865092659534642184823841932336464631859174406531233105286937377285926763866804718064786282517416026718633292805544189887509702934466111389563306615697565422018619710626278839979952816604782867567707835881138913469834678818161660267011938966665336482937694518874126639239381862387314044006290600574336585652636497015875911789611041828546114137033392518305682450029540891909875600078498032891504327217866493261083421297353620893461231238769840389310079471793897740639688482375755835443912392287747498879909805840656770902045807882237626998417131918228948425508774397511245553975162124400255102510322739428822717314633712705146635381314478670154562422831694605391017443957972358584842010109098269823956890804599237751963284366493703334395182492783771692778558817006954628532618881547713341609969379791061143573830583781659226815908655031655681673892972579025379200214531795890871865989682662146652244704709116913820334237842129137287101931890710832405012287694135922285220004969202126055717569707679234551776911206770803728953037558789298118446731494349301257430980690207588276461374906088561440000959949119204288503964238621285086103675083925151757721896497933486864543487614866470718579555984245636240123467998879304867269375868927778001388532859810630302976873267751320485170725067917383100245092842366289125667489403168763223312552507545232777937273960317752685034886360399860245958420086383125530169146718706060177655385366105248780585202678759685985706636929709388119257187656538795808970542704674505311898452158301070609793862460536531955948393369097329065185169754253348468081029765970165006041266038158946129618926034605383642531170218534612432745474723125341884751543522739239320303418376246729346948237817318409565428061097420378081462815071158245276603191567100516607981531190552515770407642693432374343105863725825265797350699843812282360522295589930696938771149507382584049147538301369849256681711108533969258761040622631499464562304506268710111878870759805005710260510639104371549336824656352213338603369431929979070520603459963646721020870899783626530127173061120333836382928639344398727330107240462728841086287228997799125664743060282256789007070031976662705410857038873632019777918202880716144667393249593117676649823142696414438433166770429795168636630326916311925911785135177058215121260725412030647332508959909045242392417555303242274536376935494691670329956852531275631719741694208669154972211894484925812418022889206338123317576823835711614126789887829149182237728711117524928806279742058783619339066862830305546416331285437577077683003741307408268484830492202105893785540055400331635275185182043071295204352935241267959218813925544943480980042878818809652295320534845085162539538791157338615901856556072190012039880665420580168952254667421355070498828307758144370037396093367965696275584004387567784091060788199091196536956378738144775815158863085087334635461036204259820504014974008191338913247819665589115437702826837792811930170471638551922244154104048981901938883665684015921485391533188358384611523027812912150545625133725860422255723613728524897020844510478066925525875165571006199224558197672622023804153840765409645308261818573098330731653623005924125542572469224590014691881015531021420402876880284328629261468114119263339246392403692037783761794376672961357662812228992113712684080882910822403219760614490821825386594298106028531869928806812043791263790529459861014878483646570277689825402167872575536199714055650883874803168867843990458524545042978384391330186220811270142981445467532341742733032106203526305281798852703402129697101350598059288445755321762299794411718210585137520284564586656813981437541337436003055432704334035181135115206861376277116506781005242997837559478270690826240843984055634901228213827759045183799128801618380977227936817779025089835786194421806573982721636532419659562254230318182640187871969946836632076102969754161255788020362178284185534209564980066829344374886846062728633491846741677259802539464579091815396760851013434220771801819092164309507152954759975198749220033649904240590611102774075021233334499519122853402429289992525244000027048481096242419061064984602462071315887847542607000341759238474132974523764530334262507387267012142842904821033042494029358992460636593143914118736409980526672868048940968164845311557601076762817336780705325105253807659614851020529797527406593233638169898097357298836099889945456752311870498567746210150585466381982351666473782240321187072995832106190525372974880782256417950213173973647711321201388436296115767643236892057936774917116914372089310768711393169897079669234886929210061431937670324007149109871958892660002952751166492899783070488062507033084221948129574306999109670327790820589554277605827796507532615116086514781984285131149618836901707545817056795591094964787650552715560642568239713755093931255022757122372895878127869607875180970062144349094462917630539120012577878970778151976128339657658335853519986907134396477236710804966036844351471817709613843237872339965780882042018450131371362529374880611202977108303534884748413235232667801183322674743925711652651787101497384581575053964305700788435784955146137731750899483314523383724628480515712346074773287502812858907839501990107967921239974059646275496384753735196111294187217726651332720521003562748768481320936857962344474930073336169243766278205336676976280914249328035280683346662003764975216580118926096975603467284240066749064189565305561314386160154490446793176262741203871098278974209090055858920687688822779892915999698549209555840282593802364658380088150222631852503643775692036002869860125063120913639150707531800013403079024233412454871102522900419365906090552313844043427683085720252656091244023013230263047167875328998076969845583686627800466138123871266711168302442526526986572418290222605083347105840617876288134204051612589899784111068976372258830278868491084673435296201254668024020269666883801333545097444364956064092762654353843508773069873711419104000272553937526397507632159101338295080178449251294297978901680135008384048757293740599540194445932299128001592193226181203609746765493848476922355578232245396836865742790024116945638632868675595208714671271452418209987349207662641666897078817734451010365384085596024704833134540416070664204991875496379862393503014631358135503265627751919485809675739315049622538219729100362848718022225905340665079664048687518308022512283798718245134524044824623066665924276280583634077152672027134074281018967966779580333836178443903518072832614615985873784591619200159810426234886594866845107569593810770796764464188350084123407626109824780476316218728787278162344270610208838549809461898312600456413311327089350449150901209956855146623642438760720135681444742069586009747901964990336632737751718064078327555363977258945300190113100878098988290913129475203231568981176604000997599249041330045682855689825180352966480378699296156747417336186438748032858904683011910874437184937393849613125598197373171581399411948834489049855620063133469511928449144022450231361016906192482694272418081196103621795445999604868243416665352674074713247085473134307680921712563332440517371475621567144426384316535260647486739823548711184902351276364706958843874309258343296724285870691497707406230027915661884073087353684424942776080275227379202365749375463379413901927112253251074820851613427195559025560494889876118333852738052917513636240237665619367546934309023505353395487511553515290178544755486070515738565630239612621567990001825895495506419543214526524908046584074153762229395663305720836592133571860841681654259022310427413175818692022804627425022798906798355205373764605914794879667459107650756483568113504217608701115207633060959131828758065480921065386037000718060430287364087439958335428537794483460223485291574025570362048352691790474236809338622594273143006247423564089194147387325712384564573779361670274291441275906228969495411661478661208989951977572802085751366348692487475917159336377350336216479067627889018707801223022636073446532862382648508412146722017892326034369712279755049705890595426543514465421601309609096610122283789375536173118699353118723268712575255147528627610329392251237975819042145144360462221886404661371541313250103032351528355909635023589602380650890755647128190595019404991900238040533618032694568402521340381553194520436889247124720788137711502970323458652747123915741286095682595723793269960927980319239424718975072310791640159643130961004467626817703653408858780765269387437305740553639587917389273769503083869173108987557058363507415420536580304842318158859611047414577504957230480994815308867272323485813887213741328591910673238058492723679843970619490754896195356998490797453918141552899738130662528559988732518223134866340707333498402989568545526140431743479890135609293567519645892147221126944406378474228749445760726823292425157766649793479063140753427730013748188318864501083769996392189801252378912797351942511718203854666479354743268622133993167204001734989654199141404252830406605643454128403398346479574664164393199964203790998186589329000995566739532448218344766551646546750000103044091121612720560538256518683762217731357233251467978999190722842591127157237883170148078852801937187735869154639320487475968904808591168292787155859231859007629212517064239714753513530214920306186633198657213056031259178784911587566731544000949500009969598696527323146405682317000170659346749815686010302036326851448485377370879243719648788623129176026414188954531022149433597530522107228710662881591888115637655835518131002425220060488112942647591709407419071527008454398461465903252712000106333326528387052482665963311443034456382828347810441406129423237751217181680068733041614307997447290622325977939178073975843789875202523104032674066270727743984549623704332387073108464419673948151877180094386062062145618227695997102224955161804029167957239527343213560388955543110714395336941191017809095741083193828862943588183564343802317631969735446854669262570408007577656966008704007168786441886293939121962445323511179277736234524052409757513157308569348642045454383030564384549550351437063922343992854607876139069601614825997162119331531101120523532198500128677452950413763792566282009653636452317477106897668180976846429336287674596713426541203573753508075440134880990590619099507145994966821808067223471964300575811061272257715643626113307209376440640982059011280611162318848807231289390218128612407239541213129265776075902735027099066357867301449814897154118660709759304099809388546003764717763737657860096772840302734074595752253209389655899562753153511033731651392782009726210168028325298109769208291386015048849968986637713404801173388058597899302309623443312820346998330729814633620027997549368004829057257647613682187421740050942980777521733642201007621139245424833903822993445444115274812938880754294092595598326128785213509335334438058993014548118334786340250505957712647215596211722656313782166850422903625670233693012900650815456128796138545963969081062364684363371971643713483012785036128775521801993648481587370578451648854812180516625780042289878535915858302051907761065355848960485722841366426419185001356418127979867895616766889564282476333138995909404008753900982448156484978517292715349067830223940666329400600215020064795987551490436752630412088171137332922995226511942659748592519173629284754617939316489954144896052779200774237552874565080562301354631733314131579890735255270796581046795130902478095185132472436759374419274312174282686450793421705082803608955832558537447700943547535349127028395798733943765738145303953290176326053062515117674812254166293698443331545534730700897377930224377881903127780467438602093157044678816968667926290950376343597072017964223845831044178767141516774110614959153309593940988402571940843518558726208908232792200753976156080165454278931196295964482382507151160405914265895867952628539053232569296298026378516642831888337569553494061328502330781726755149208170392238394184699171156997547699268321104039338398594293931213018188090856605984836929785508266969381237831843093542478752397961225887289798582926891327252253582399752968736710657612903001094658238544382753304801952910721529977619517767651692111380531818264934994896006323049488036884905255346758318297949572215275911612216686404754278002233630148982291047209860159214303894483444979435750123207892900422359620307105913565534658646960307897670000767571225198521633418205051792890617048489911084641785668527913332920387763859616661650863941737626309707415916234672742165150374120342369655608933119024738644778024204349804001067661597366978796810976373277812761548256775299940895296244734890414699537096190536675083337707154500224240107660023164869595451112869869343619067134457394109854800733695467681699944646835733265169952623792101677712630796932138452787504727038164416876768914975795937635132515530795634629972088702403278899784939049236299078424718731946890056779137049837444101282730029679340402704287386992562730932760607822368062410125950969072933457522053239272896102028616264149813040089344022640837384713028604751276092196683679658634472942546353516838930662302547281084349899834986834741762667058828532847889874739112951422689071225681961604025742931783361156681685136005134441245775307797601666800880069739183265486667236766384352135860885351483595222230314541723914015403312139612839289708433804500187913160974962505812378839016342093304801753004942238262405278249528913204323258982073904356762286086908723403103506124567170139752238134761710143950571038156627035262210735322846297565649584089981589741056300300132572370373424525295931308433817858904848244358919471396803791614182952725927731245726772738176910453349117063928182197451317590104149417153076803923183365545297381543168745225197783130192284789388255994072359230628744378324006784694942875282446333799940757250067290790356724424146620162897056944954138536267986346844650303703568195488607983179524419985920201009644071952542844762200740060022301036560355400375301591716683571680505289015488806387553594397045896178112629776133373453019042896937974888074011749922351695905399649210866721009424426120647090318619399030218654934296226217154118544687992098164703885059914559366051521108984457711549291455815143855303212508772078242758216595018340904251236864468272562235429014690755460019915533928108249299680850182908501806220284861577218577434745758645079880714779024423181334757771666236368461418852952708801876565385971688296772022372657975194885375276633849964623715875406925777701540572862856994771609800273256576677508848810389506393386517393346407529690318727119633080328921198283708261242319435318972482087634052197678433504618734367086510680616705245093431310859088945078566595752071898969694865365309433243273384126007464499630580491028732744096152750493231614889368851117379910785015847875011803607105981622283396323190456693261937527478313273544518281676975256787959369736680313187546223167602501223822025870946843097031750227146795874522361750687096643757598581924737586796417009672164160922708464418738210289369236008559346091300152006464371670342476323447026361863244537496773389759559237452243130691653503854495895622598295800289171233190377208307109656140746887323760099154442583296469896949029217352942656199196404611164220240748116924030025876931447148676362060059435932806103392875454809132687186552890869605471968015563545008898323618288309981386708230159612710409996431464005974938604156341527231191766030712141573881211030761513311951901602967782078369797483581921033344264577064641635021751321935055534829394237842964703002499474016722045387161209693612698507347227267557858016831153809356399885850263667226095859240341838428927009617543301783024781293200786100664959159517400637324150784563321911279712398930040036586385294353394143499054545048640235009528671170062774691623850305723472791181567968054515814672150830069781096499420863494546414837979544541013508947142454691483697895770065299376387004185243229024793957056973550467883928472497241778899094617405742575272081128991969495230765578425040860550545377775840092906107242698663451849913607722917700181422616743410307169692100352265929891769944547451270678089593497583120132911012870551223794665645589513458263861428925978898610956333386959069909425853928587636743249879899109547704389334242295350849082880122585046571372108438491784094346364704715449490198600744170633679745571259639252523814356981322474936588875975775063044092935123403414746792967221572299137061921370548411145095378531565337238489360019392727426096650837706958547738336639025377998925149259714258408603025094728499090255056122067033119764904167304323317399933618339629944475737099379424675013252945923287835894981398509982741722970489893962723387822646051883166430796725306175789794730959514307892117479939945175264716925981616671975886253780079039265168380410543812860491383406339964512834511789239451686280207425488198552099037991379024783105565200130843437986646888748469129365053781990205048245268064510373392937765637365461425240179288792726321297366000320605172579344094602097747052273574073777970600651399310570952817371819930863433861988707792596010505054785009968814611886300227668100424942496012208198121080917412594250464980740324765009332286611156313611250435312607787518055644371535141721727128286633488845349205655661381913532594790372170548756852153890982058062713012008964755847696909863081862831616220638533240929818705812923234509322579392254653906518958762756945947202205310077463092855638367076146090461603350616628464250910032820148583453220308933026778235828057626793907270998849854443902213532180450196428548936529452332807808007924949433389899132734066742603967541406052434131265996618670724724352482088235288873166612336867235707702075844473534877941874761136648582623450499615741847742723109585784083642022774381743349914038222044951712071250659352174320668513449385236150629064736295142018521522544777862558125336686892212422966905252909125847695192288223450527636129825648226576878334923804391884767184736051130894493634663120105105012474653639796084814637181060786689878645045169217762140371522141984833695462483771464437050386714874259714207728857620936242306609333031435646348987091662934743478180411720533845676569423510382015342647181168962483551459652573591143184999258900381193310507293027582740470793834188489842385267278268869050852309119125710417528758567299174572497188087475327657271867831336440452928021590378901524675870973855288309105251952560428363066255833971487479839920411428136552497482251930058033711303562397068711859082658554100661196580332690569467316851646104383152003380798011253997991141766197717092096005345772668735793522378180504139810362640280050859189235131436282472137226454521437222843266397971683920402381045568600675123835800716393923522038219716464275439191517640424051927135344403123353427044121201906518842381488216388983695362229842706097465649125827905192838875521236664207703953270135368138074559694493238752036474049851607325788674981779564314979793656480029031734488905201718149750752305352312410522678183125779004391301211994643155428184319403020476798801194862869043640804040239335857035696642827022698365401550001894942879560651286844055236106526914960526776161485454966845362876638632113316418191517582889463366281959932779898035437536947889175572063682357610768597053602691035294736322921044709636085315367324786149088035470947186569606013378348623064248358711834816054270996620078612619942331471332121490229303491053255040217008506506466842747663368395299961444317547590831775457042203274163508268442011078255906253659994282051385261914640236612070368222191548384810836780600843062070025031251251040917643322622327678799166096141428914700586366595001084044534310639159355687967019274159148936195724041152956179627638408869127735802296761876428131224477109635787079965594301491488802475375339303789626107791860542252137711295806245884487728165551522979346804649403617967093568690107742887238744847294893601493819796912861115477337967355112717737212477815140243232271797031807569369187345566781309863823887442662501109929711678981594191351883757656709347541480314739478548523148485506307603799552213865444670959654083313560640750124445651026229877381206248077207979004345028465475264275146878900860434389149185868809825148174370808585062392906701948875236722963247999426116015916747159245349968006899596433275628945511427981260386532851571173832816597952442453993086033538955922498860676429609521139444695075305979951039880829673020118675725149254734181460749757000754350698583883056343149402385418862732473405572279800620432885933682507471337073404973406311116318556493794898053437135707306548024945477036127449234425144777371571926253241453369879047032022323062975188946779642722725343704337090581827437529138499479525545892264950802529598085883147326056315217961111384088648798249934870795341254373389500954710208945308344244213423410291152315976466928669546512527198967696091089912117693030603003317051219480624031259317086663736925356158143975231814937051392721233810914783423333857840923140126461660144116666448611317207841899830453913852846650824407513873934914945487734995327531005157877745195765902633450977375041564459728861898263574747229497692133317215437661998356938692869246876848817140954435450416759172899614940443014203588327071966675765369509660213035072867813467805952490925952358452790967389019617818971055158206577872005339747617314679835639361812086897554856561533641658108127573754644124360442840160309056392438115493060110254615758778011381329909981762740911308819177736107728452137292735655888563716637238770380412705801067427931639087868875134809402245441813520191349875736020213912644306420401035513844830187769672754435871134346702174469633520479164689145418265323010259265046128144865390879896366627696088543233455709235893567353894808400804170703324188847565964374401208085082004284376097215085636250443673542386378136972460370380639297285069651876560247970740062740203660925944441078645271571321559744168658193538446207360637556815437144394420640868869509610659239454463091106361798226659024868603833836741013496393264974644405073244006932195088865818060743235095732674052591207031350593122619422827272419224511060552888892500737105816776636151563890413453511066458855052786151710217525207292626447089281133481980568887540621553647687934881398343909515632353835506549289515929712203455594215577930646584423118006407149565236193301255550674225015244892287264406517623654605023060741466286330136120253766621138312284116606693033607716242510989630471972804058403636979842983130677896264644871748010136814227485408870640912643363001724876136422856904054756635413500102964560513694628289596070254231768906848410683402876705662843175083006409906132749559242053305484422129860080580993830119060813291170867433870075331849 diff --git a/2018/republic/10-12_d1/pagini/tests/36_pattern.txt b/2018/republic/10-12_d1/pagini/tests/36_pattern.txt new file mode 100644 index 0000000..4f8bea3 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/36_pattern.txt @@ -0,0 +1 @@ +44993 diff --git a/2018/republic/10-12_d1/pagini/tests/37_input.txt b/2018/republic/10-12_d1/pagini/tests/37_input.txt new file mode 100644 index 0000000..ce9a7b5 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/37_input.txt @@ -0,0 +1 @@ +2823314591720602101082277074430684170761075379245479267064011900013997787841685183918239018109408400584414587953654890857871606824860131528462543030087176560592111744863857774687972498675366959846181874802335396283643725935056944295386063593982956710705974863515898439236437950432906034946460208025232150205644511326401592962106397171737008163854816880457524304299142631431541127015626019469645467224949861469947636103419668607911524444544453601394626225360614384635323304939816153872153429532062377214832401162645038985449856002251467408509712264297932122477786816671358525868561628299138119731354013209770210982892210553853454156865716806835343629525357758780974289403585914846245943404515286387436980367199225234197883259968481784224034188607910381506713319115207596295917737030724606464199169800315545464419063031080617020600509351379422511630095864784544604047972420536309474190013615400713143920643480336691736055614524593797588246512546317417961033399563233910202187101992548841883751725943008060931843432511411868004578735991826650205614778132847889237574979785826668483923547937368972940977935337324282612874175979430630345029174631677280704066858736363513103399220711630710353192711991168226868626097263360587907361191868681127317258619786558297633540966233094004207115956099330137768652257134914572391272615130364896605737019673696614799837240202042055730479627524347308878304075272796707026306255725605987284078976156611387758989539429021644210488965456321299555912654424319664338568136537621181134727040567143636605243604582280921406708305779193298282396279779019702464566928386589195797713965020220400983683332074095427684078655314674498819759565402043827586850695008183012069764121643889512151791017174316575901171069027706269406043544893471576631312911300964573300695959839248808881800609549719941102053575924823834766839985799684394105416123020808404395198328500158451667549330810422987901487171811748047037501610001073566351082649365167614078976950511398431402976341154265020468971108455370093699851137926236834450524341847638711736915278992659340641079532746945237367103484654124339012030906189461868450481069215627928063125172207154749783461674709704940639860371373884187436996893783135732387913284070564313052849048332300395966761270306156607675895307960103249872701927949078656799043120212153683596568675879270359024461645632278529024239080872182471546890978917356544151713443471999381783214292595519178936699101646413484723525844365274413145740738683388201906320753206685145399429158132251535268886305042912144063626018329212957280358426055477338415825239173687469614208455305752338103185838418073732442984962429221176755962316296458725055606859393530634334672984812707611808787313778901986463170381731961550789291677174959653806400453294676763340419406338835420187777703529044333125927058323667360395740066611092134844188403994764813032349158247406498139428516577025128511119832856859714478326705677126649043889443467695329943664538267535667586304767733996880652434199761860880813927312542359322161741616834569974906390656047933603143132068930332310477823253339960802016306324780270802326076263253570169739069226402752909859790086702616004180186071754419098182507166289199302922081017016027640125807706961280514466989987138561782250513895767432038127233308506789462910888578457837290228609346332438373328088025497975712879727423917067706927680749351853414287624420961191466186648599453784524131402310441080021725190335892658121638072305604706984981366241454898690583510271959082569787091537554968553207026198675582873122138477821834857257158753646590912943903498511399393046599913088163155890217976183087429100808257506782719780118362404528008393895919226300406313548383405960710117268897936686401737748903101391425717721600160428597754707577291647080509280974741792621083649569997278760257389428940473201030309862500806325357751621303408388814496119875953068191758498259574368399607019333984439889861785974235538877080002540962291639679852109116811460109457817826127775210161588732431707436307328468627208408178561274670625205061820155806499597193498660839208787306958816354218495537580348259372041866697361726265347673786194851725916903415117377990142613972281259517197480836267268048310237921119377522138432094044057518656947477041828930744836580998333915660971605756901820871240442559922927196145959616304246620339080625814786386630119644484923977510646451461644961388133351059263345675957398299980586510151115828993664082301559421997506078537845360813200105871733172640643313007304173247477499508645585439251860726821071594411689678722081721533821730173147389541765194402045953924797550906267302434343823332984564402225654440439577087708301139524767464192083713113216863761223691213138905079438289915386065734599359940537909136653829459011079583522678445249376576712775262483825718233397116343458853344989622919092503863646043546789507929935843656662522838190638119429182908782812483812800666920946014315190030556804358310565854992718571276302831934837453334852891481334336572713105732504164509411399855738058657556316785294761590201396706067300996807885415741011046163951566160837193982797558189599203848699690360056063309500056271047647519860068906528572461287959146845928482356332870619642876713746283838990233153493699197950185004341752121802321415314278057266551404604876235637960613703112139829565284147087098973217254122387015804185203171389178839825100869867413510166564474474758509210199444219077555703562886084185131300752208713947834848798167266507834560857979039976601177832932434943483608848634302800739847284104229340801248435045607828895006535922642570776919275620419395333800992138656886459077867964776488080811042962494882961455509186151219268629774860246370674462034174358856857219130753125639692792940829279218174253822467284669755467952021802860118631789220223779999765412084697686252762816878459633084722854010584322262434881531520533634044906257471848083762380161383885675904871355727235182840748542579302290891660968297010022669311855651758318142992831055790735697855777442205711776054660759995172745349198925718141576350714301969359436422380562030755695850193343486417140634421422670827438544569434859754947918860292016744007634384414568227951533788519959739632660125736938598768200986542975111948688469868801547384803073884188157518840779535435975202893294011515433969303518217856304154530010492868246934091378318145091613622279181335454408713186361657126408637260939205557787094373911858355412367916549463174625861384811884481393523473315308849878919898007825327324535032086792934041654871090371490384811678879724384107956206516605507875776934907199220742039302611019459938733370272860104638699395728009137576330102141935548167878285080905359043512828252214238011893457398248566244151998875068036241562227141780232746412385908775127148425906840901275766752234058557213321728490625213618432933568098436802480188554247356668622921947217053193421594027813585812607898168566151934041169665321986099814451941882612471787953175158528350059084359943564512221574511884289195598612026244705664014256624178891002118915054504153202140346938039835582390706853074565216300874156386207596791317513485778415549758133511363488209768961483536793043551640790754322991743724295468106533634642482471958758375443324417863963367865784722950570533918581368744977691251093379330072213401758028142412239262747275642984720371761563516770298897795358388835379005212531971043983216069352579112567319511190334540588465321355246874430936781329824240370703357309829407185865137266003685826471783075890847613402140686706110127150164061328176358704728439131948320180578369005769450254061584325631402617441596411721128279709017673269490295342507944371073436363228372873785851099334773718755089239298889501888187215886876773669755457558238713562172756033160035471320681321713981843207773146613579038396644632124363301044878849679616827649943741816049391063117087538338788327290851721189433826569289774916382237684133229468661209822450936898376399986859916160935922129006239510467376434860173086878459604853439194965786513376952759929926400962685019503122346660730033075817315110604489690751472530874945375073632620220475132665125485898915662873077852091255209735830667116618931338597808850752797781751036066827564447972687088494669497124419047638145556045607068023326128840208331681942366379447455465899146197051044790388699328275191903635568108345379207629132131495318749380522611978081209792182494081422019700555359484047643823455649661300754474746962345530891847380275028479297762857480095867698052900047423067074849803264401902608484720333807425907747971782536183198347016685693933304852971242559483319536156650594289448440528384932696167600697469004931615759292338916818515173419972408754711296083406758635851448449043140887954217125550144146476490933627188544039407281677346783107941190874667057024295341937248460487020610763019903064800900775815017993853639345342550497265588426256921889894934390380843147042387730985539796461841805913871296945989638214587712818833553644868113913958471615353654680916612103410872484890187445728614855723023923242628849477133503078615542230016121405048428743250031372982970607066526685321921350081522937779641964819896052279449981519714628498484047740648427450844298334968568720402093765535390498236528458845576669081902238584284077967481197407270068749277605676455487341431526737925106201210853486653503533698731686494680705111728736400515059938243351507112945288239061103251557603548251836525940828555519100597236742583534142679622961867199424954373029345943524609165751610644030970986236747827995589668856000849633717289260832047052962240456448133809411384252869851844635644700422713210388389688336088291681341036441344292811407723370246379328345479642885098619792731362232480698838069354285474005178843014165431145664489249855624816043525561536300939142340493260344106420193387754573192691693409661861453901880595055746048502345321042329870746670608621294398437996352455582847396448642658335309424408988403229127093587725277988999553057180834568445802397641143528922626510487204191238369573541259670577523723703020539040614899434719817645721790263073127149486461281760454107688339058161176574235565769893347987820346099503774005833960756012889417194539978735779292175110368994247135487089055526164549396468980395002947783516267639796919788065429164527365796522585804884929807996843844754382366379975836820878404905812326143788832399703492398631694110567294982440440407529357950795998834714034868931985996996886609447763864274273318089453454914424356153657343637418257939717338882995879519234268617418281005542652471886707354552875370809543754098959674938041619911328581279717300079913094524986084306964540706023431445884414794089613510627602143115055285127770685432490933393093877505437689409232070863637848327835017723533234197563624220947405903560172523143703168808354779567234443742393481271983674946227702592602998411650378294000039798806810764803762515289978706486741887252926575872421581772313074070833642206333618926551224130526451194006694191118979293717523420183861421091083077081468642779135989541056637850514256917104474108964210265387037513807437146562650411781013422038295801200270818984006234755838347489682072961486028690077852798495938763106692144479901677099086808127896735048903562396028059467660788133654202091217650173821293756171633975406455462155309540420334390396001331593155651078604185680744564265197462665692586130832333379755317133085848524741104872347026185080010755888151984029579949740594313174127472284117305339860742398355095238339206402994351251807286209685747488083780899344777308669775160022795185966417980280134613958165792263760923690144026232713343884043838683890114438312245880067410779109678050428425721324118923992785312689772592449699479527270734265848382300065600010843227091373108327885470753576106705952903309320845686050451405276694268397213092352745968961742398547135893584760301724214722489126047147201390249769640635898158222109795714636925593722720135876042313169032647173945679834075876647570693984799652792040156792257425531290929719217703839422604551541739235605764259823403213804648899457409743587596202498906456151353524940799132069631482311555630985102767733807410005178146947023552204593336588721072954103244438285610796774770282749734784296850927505217236749010881022994768526739247717979568355635705523305423399096341106218316040034121167255756813903400460312172304465454619197815882599323688196883123554002465694829620257761609880933810011163524972510448222488335706446017184998430665017187771288233009538634537182348958448778044704114925271341496522438854572992152345170453265256817094677017146589409100132815484022956919671513225931274847255465436682545427053968342600158146858564435009165925258194098331495943427611230438598928814875571125865433807935375468153127082134082297452020995744558296317073737374258466042530562616975653058226886320602330083499778891236953359946063173329719609731950084653440143165800436312352872722377085500432926034370852579410141765520530543821982920344742186575001366092068391964839419592516430424043503563981340811087790707176059596868691355716867706832466570824106834398493132679599535578725373657723686461757723254858611780137602933035542573923307150360561120401825716469172856196571037600799380834325176760954418125086188575494400390911140504413278073663503365788332399223476083024776724874275025474278652935612554280986831423962118389053974437897888522818574339540111137119100602801098865042670661674121081853942418377328901567390348882310081189904482489765935229394211898164541584492537884034584403538563069708767678371332546948129907584921646465241746867903873168424205298821011240787792351721191368043020251379670704863989370503813571953465116229686931209690186497369653866937254250862567451280580490914843490736408185448576048316963504108610634123487947729640507199709171297774093139480221155889355288347591609037847622079582574019489247665840788032888610003398097899948323094362540817100470481227060927258274949614520861465150829978832306643113650008924701173029320020919780723595438509787731753930948892937290825375929187637518215085680839377102722244617544189448490513951456915300599925340516542609683124256981383672127790405587335471773692519934552320312015322708031113619100270901700565862992285829351876584429528297422552197085367427686121905545369601855709643160896784105359923798861223400052302753838406248958649749312907466000536957587266434671842004851621608477272475111680396003147109033716327733721146427690857678709043397007859122865010605348050913043916938833087684527113051560102411695866815362423188964506834810261587972602317922018167939765108878735565503309072125665309796376469697583277069505308588108733496894568452715898698168892388525475939608827975227463097556342671553456995353777106344166075887567879614084187469570744123586159529159749859381027254822731149147037367021025149784580757510606370650246021218107878788145129807804547869652450782337134381463507902751918514121686703403755111148825210559757416808636659370862888467515320565704289152804275354469026779195650514163405267998461958520544363627591672006061859866413379630929678235066360494758999304105965707509633709870565594443031862907319620588035736021425999916737585524899343778330154989450996139759515228530885816650136641017340899269562455220685723716920103001852900997488018603963196548085891300751108392799438515447914362770538553169287778641633659151920916386969056467343042811875648437676360501434874560988935898225944160923880064840753324609317300064219604648724981993382939388672045578583245298777891582320123296681131670469298926728061509029155270292412101554475326375092723199524549179355284515541674500457006774307160019836587815993835492684790841836198896139598906141934598500079306070350273444064935069427007547542711803270750955651297900924108798184696215579069249895671697745484344369426346679430434310729850376535363210174363282711224950781642432234093724166392840183929130644010444452282290442618437749575918505485928271624234329437757693518574788404024978568885645465378350920756958426339649528465800078240373619169780590947444433512454881644083484464162082155784673778582588542044772767865884193365798167270202404059228792097719205362760631243260820289825097231763603663859951297379639899612626022812423369789370841716229467367407799521545467247297270874414767696350501431118182545554380253990529012136001616170988107649446486186822234076003364526264484968360530054443546106169347051365628346226311399885896120335356981762022658837700966542744598332490195146134631367340832614310228511044710203456061514282818711344240210176568042280757907761148926540094298398362699285368132177186451855191748734291547643608799640591458635007139711127961155420716887604592854532418604708424194115150132808724610719432596332457607598996755394395234298604962161108588976461732828997580625136245002474029966868789771704028826409271801581021986063567623171310762334765224525070446720270376364524608192048947761295566027639081908728928301889306667966463675039364667723091900804094833799618528817180860300840888886739154585937431294851618860666883295886965934305731718128117385860079156925267622015480087289686409513253770720350226210228710363931450221213641019620645558084573831651866482956334277630632099057941592050405447552182914055291226669313391427434459417836690967074442476574707621801975772258072680423560744480125751740099787505034373723001684832869701378558951452796231089012044048002041480978945230232217916426556042427016522969073677369245971988523429049066083951058579428587078891440010705270434004177286371239831431493515905753408682215745927573277512786341707722842807202640965308585692228129365815638095003989219668056092220713149826757001310578264403212870767347195496316339259524687677820482812508099820042844628145489339926374485500502502578657899004020868035400600150771131102651879480764216718591704409695323030861006681391083589922033579118904553064747832929625798216761008318977313115951734328657965930741394088727554321089795407514174182243881642536816130328197177811438457747302400976715767384653710583795186287691171847892305900371025998873565271267738148092707613401464672010781819550082532207575993123129849801016210314799539462312224417555130142725185667319164521954102603970010049149089314509225550959381335946509256140105285001243991685244862477726688679813013967118075089868824109774706615734031687660515245592025500195617202510633784092382057284611800545945529773645191331618080141645546334245161911625883602400502951014134393750935231295420906271115519884675608227631762026717874268161099458027463595270332919072254674418591537423832930645348482210255650266932414996230521914495173364942274276157222178042388262563943821183386156863765935540338755463500854298994042607281019008790472096936645203514873237200954595740859878987929430010197468341242962912100218862417492909616843950366892775256253478951244365737730828642583677841356220880115277512700139834036281969659794453216922822718120973584657663176477411136989605690008726924829421676924671391354944133935458027867664447753291882245144004298964547447880718921477420467662315612145687117622820933053807189756238455696670892186549585348271773319227286383421422338505520924746289518728018290607523356203368278499140011864920631017985780666421270101349533933192338510136644919057313021186742798811528840590844750580393840459027868294653151502074693089514588149857348188701256833429399600750780981459685332686394490870814550805848883783239641030984164718560299720823270519585815792304734890735581162563259586384785292165451879805325997240762323499622952488457514362412950358288057110761471916535188356275714889825411444128081135318734146072779700315715555528489672254954061219322779041825142438034493677166163812910960420353063216968284777704708851791777316441646061909486273397666636351707000403217078683415903202267965482231428782872447299561785954702862208631172206389919990883744396647221610045472112969623956832343143996313296835773012244787209509722681445722311619507745535151219115512298306403271150262699489315164496682088769980360348170477000430631963058866807507767929540976093752766648317290646753909209274082426878512612557975256819643125597763402405118913226751908237793108173437967400637613020902584590646191549976772394170753447573450005225394848053759313103441649029817101125892116131257151639797422171631919851315628583157819808477379883752952038882505345332635521437077221891839327193348014007025216037701203085702221936366843543224825359663976041491144103139006709858751223567270106711783256323076215240133606149833190541069339292828356350777452108447834598702572910285335458049118397201334040148656040730887034753478499739145347257044168787749372084119130160101661881017845146163285678832155211549233973997645274068439829282357004684271182564256742324429742129483003735383436323717878592679405334405302591104368055031413812774061605640563094404180177178201363117658922901869816449984620051761836970852453979854941995539225001863655231358996451598581759159263327322466369767567739917535507204752296848134709255334773275255915417950078798072332710286221352175088101437033011185896831195087909345002284226753766691409383967416587439243482091859860189465597636562090666268974169145446133568336152997723173579646078302502901063553142226663443899983782154778225383337637423193188100392399648964514350042873206290238260707744776833776019489805707918188290448275316861155390195927020490775011746145490208258757920539171731608827124373074183136586034257265547727703398427336718036221081776592394880976212035130362219868559828052006163745743013484515326004683242186786541524256299999129600101674096005441955506520403330090156230995675236271558224589135299418404384087071694100684668848257400693066039687848919214956051002154056963817776453719720922656825808025020111379377072737502561280855356426839670539004344320028637864574638132431920752101255531025091902933295196225814424071618649727239861397278180743433360447275086353446117463033837126354018011007840491961412787776209947693423437395566643279000697535317625241664072257013896708036951518312907931206131732428248546996810372646840876945764112183866172361208333192911895038660913693804578523151390018013764684544669532265428357151064595552763094442532894108412197188758165599303897210676522249361533106846676943198706426120488675917872406766161177669351052410596826131345388116988171129394815638033963773509273348003172838422449691983464841926252022630209335751322081136974750271848353083162879964933241480063402886166206064773902931859819183765432983655710790000919943561391365291237450008111396955433319922445059653105201791421066437154035126732991066983450696336090472685939691937539371208859048933244389043761598761952380059654153538205791864619833941001419086310279500407895302421325724103446293404887576690324452697343825628997284939086037615172967675975947063012589928612318023072663414154535375492563323412250845283496604961406549249219578438414407748365396840958085048985774351500726212583240018320711929412539625925801220317643705538834428481081907872070959253812819115750733620362387484441442299935641442495256837816392266208470153859442286360540891692445633370845157521245527477852077452242300754949067770649425296783499123468155603177969771935660516406709655417606989689614206402468177052224430657249758654615131917978593471928285066964808761439024690827586600056728536285894719219684397329609662855243456190055261191296380799303650700675087233945641309465003437272141476944445650720118976823076406845419848228232143273935040285405447726379029932278328244740644994538236232363103878291006284760064937423136997995148721084515330099934309833619856696545011844546473768155631102520857309185971097114094218645603795354693007318026475474960108147506829740176833527907037392406262977532526626143052967440788052360492128533619227674761016938510605454705651352009562924160563551221328472288380971698101157799825095583182243240173397800727627999349213492077648837404196575176799630150418185005742664292765186278938171493992723465164433232975896323761328836395504976858696574391775351995193127908160248255417014456606407818847967387887188022188557961507886175091400825585521094599074883614966998762292851568210804746968338882217290210721273270812185922909961337765064435488951241444273350173159622401827226422661738470830139570279315620251558766061652840549124280704296215445029432159057184533741207208500248557169185906930340601694767843467353646881455744986532771505534932639619376457962026477351870577537293583936363214685228473250692508788606697903235014510454545858556657365953287564524106450755116951108248496437006384006045900933535549110296831838033773320525909473534589461255322496232641110298064730290379413403721605186701891978773000279900994148160158382683127166939745731919767777566284768238734553090968518339786783258653799118514931067614243911820933883672312202389929195819049344928610231707660938302899123519712095429395847365356350126837400957032194525583856908500207948073162837897644182437745358978482441901304144439459340916705510772515985440322982531556658116671064133469776427300512738371292382296713739445934937000917839286882336571904636451992806767177744997148847698978011877295347873858605855647569661763294966835543287188885366707326968141325917432126230436976291779376069563921169703829831182249459663610808635093199412676559770577514205495576812692930317381464346861598125578127834932331025977047617804376536765255109963641032124954497208897312536734715889371110689555978734183205340397218275617238710193972214380377655066819535533570150056227475016327246395155637544579740692351566720946271800241455149889479348756769003874218867190614313954097246243964272335919366001564834342873633707848730832427166339158785912639912002490212689919990733971283300931185228724095662272242940539623842592545342702453336250455379777240235256204045885089070177038370753570920678939173797207071950764109827999797008542731448938841279703619731456159292472677705703669305498524199962117184796367664292846070626790520275996663831233806407601593592609840893574390445971953310007025985578584952560873176790474116064518963251508207209697922814908203056875131691883083771585213706321631217143438358834411754745034653447140608092282494550316253583779666891222749604043285058515445648719853896229181066382768254136169788219640480669332650120188982051401934240982212928994778433983586015963976709997407806804429215002366976076002684294596363542234733717132301653603015360224061978713596858730973316594882884948004232973626986899241454676320642586868455425644955569964856871016536962387366028456732264275055226776691452439614706217882900383262289464232183836257602058732614980045792206251516466307073384498643307073721489650602577823929264546512077765064490840588463506034106462523867556822243380141192902963301528756769183047932821871783289804266619388018595635307700031145065801139330481535825144497125744994463580336936316994868712669473048059186163605647112119925155191541453389628377580146822107083926753972704453284592444726037566994644636555491345891528356144013513793059387941727367786907255054499364558321832234522261484022426983699506693927124679761378339199915055674525853028477305131736445117890914114742828972081828663436292592717003361380732970256550607679884814230673669498929554967701150338993566906479005357258671367471373737878522692024113877891635510028020643232506942371967548114352749935746113735644933115574843074309397993924480020671922091233585327943147023123453956735752369851300252355228977797403282484593078249005804233376325752244827276779386981625726945712961199957650029356970554203554211523042336777455334579966509235597668816624397975339153273300054138907791265414266375672193847854032343353163510918170876049186741108858438956221529843091872542537978943317930535424190091028553053114868397983065674992236533240761579778684884724500622599928915908326622941820019270643821154940295120326670761334210431159801471159040362904052746268041365802514307962977636555843186865336126286382078492793004395782945245827022289477754625863504933115414194757222602029142111304001186871206711374368807331938423544864168431633839124783776489456067052225592648283364780086478016586308422736177662726667033360020287700942755288225001230084277813767540321237042987157261973542429748770754952977655905819938405871258162472285174406450112121088529495017688470291445250511916354774584820122359298244996501726196299381477791190782872905392138102812393964457170610844193509129328433760180354126505023531140131627336239991044595410107811165227617131210110411908517758266444622076119752089925877152899349883161741154607414595515883061706455559483467707940955731243761571586915229244846839545648067513302330966894033650417862290874653025355308392953930168774889992116884159023609224533614603891031317572585858967063344498594620611386213575416336855561044527335993569286787627532856786700343217101254108502514459721520375894000767586093976763731542144668454103787503343839864139585524691156196183325093727140452596548826024504849068025114119508196528744350521198234405445501509555635086991487946038866093991464981632856637668125034647554271090207831688740364456133214542439530331732470226281198182645815559645326797323971692205625162238445200772850750922950082356647811176331070146335045088915470670287445646435115026080395316146432220068193413683575913343458062750000604243002039256353396085236270026206931174311496304579590163103924094102533258767752067690631373558415786244449195081301703707177402110771144917313144141056245797696366344851955078865743117022523022372120020958142011007629194468341135338638248056499846911581964882662352426954161878281415456413487384516935003575230877820150719882480647078737921766112002406525923826734029330813599439980982586031730145128009003225687019349687188290727335341226354758408837619895200563586156734812591944882745980740854178656204148838260725906246701403112040362520254984459834870778659432826182035626050889593966803784789630119043388019740632509800565172729360495344608536094970181624246683034794896857914685084942914249736966803505281098938149495671298952618617028373395162524070557869562469110826883672044926801906211164954377674996381003630790910970043934217580266929358630264031665065315936595275823991531112271558341671200843535098479987000517725387676086770688816657629105726204819846065314563629066503805797121691119105760639351966228975924298122946226723289061464688316773646430487726107332179139334992834186660907835440112019282264067034934351187366517364944859444526784336859845045659953487808899893687935767324184275736976327156093865780673098464556839606457407365899717739770271769778930848159453782400134209375283595995063107158862607282827705987316169252826155736414959718914617890607319942825194698532630845781971839267539177226607776416091034178713406235900549718576504233507016355595775023614824829760018090417351994056527607628736525410845973175612449435704340171445986173403768235127738907437061247981101341816945076068643710921996385266473526878604839990623230593937407933474941621847241152408219667840669137404686251347290037461756814853318173719784135115716672653715439990158871188057337889255878402943489668232630028856156793839861505650272994863482498565058951507685151098221542812054131965410776003968150779831346513756129513955593746818388927122786688975624126436278509985557032420495799694064696538911056161206945944245257811244583774778068774909886593973992245472366539874525078936605774175349738801590097650057346896060783206148294487419848428779391295379517443332739997196027109997179457460152179421904014798025738960186044448931166984386028970809547450056152072370865883630834452890324823417454811493948492268777867688367822870169069724727996879418319853623665453017084136119953824575356455604178497751908843463313964676879567124000118658821594192037262303685657240544806201516009653344002915773868916389074076182813545854449247388282580489840437857285226253819265480745592680580522081545052262487113476346363414460264657913123808936816885296299287714003601308480963574294484281166055377743915862404335274709146439192968380699547839472308769231673685483664418000431030813252011794897980458442463072807383302893523425181855163011613870842597348041381030329972251063953740029229707562557764173550459273825881252349905946203496771408263616025216967022436394918612290954007648482095485528256009920400151846861600631170029079471833547208943741708834205459302022225688784137737200421027877596031067779870148708497946172911406366571599873125361257140945354243522176533698510878932421500923597066492822112513309403126824332178934896859113008898237078460749173827347632341593156093510602758877541871777694088433344221888313381251509134612056832495040484087541776804859897145244971410499108085243985413342021003569184709986646317375722354092267821244926719376743448615874342882594451928005795023708499288072853533320347587783242370680087228454605895331119200883496718591255680691219379645934721363512656060008451308399181570501378149542752808146011211270102939868542819275442693276649726633257605249223261434162484443304030863187606914145448579690400027939100617661802266870457167478580678685534347328154649194623614114175127051500928121241844076659088119176053783450254669461180444921886132204042073357209481426309668188460789820147501674123727484975337805584572004617125761411175137970984484040682834860056341188244339446937511838442189741659230459708618961116167324749189052658200478973114749689283040191101411901158607949803747415005115734169230311435045585818905885277736873905904651220187202141015872313164758618886768337531596745381070273414851842477254766534605564957494308338430183257025999695432964666905370033652382981612487021984407096844608700341684197686170516614924698542342797018980756748716872159584337895631615893464461838445337933996636842226831302175316810285534693281054114673282899907164857103215401930669871980332625887038362101523345435092265045407167176480403926830988810212179985739622965672011360186902517009137656454007361557101090097282993120460499467045034092292947337594050883090239469905895447611741799834602435848720894955770871720504102373448635832422311579539157362569715623689657686326697543728717569783854696967209293645148264821634053319210477361287459297814036122181076320339044720724868395642954251395403710179928384056883755916474964613203662944772795434282607363901578568231900612975862363388792596909396803022809496879709357430025048294496591073137736673138355935731191340907677974088399749850530521898153894426794266983217734342014522505049419545946008680530253921847767315953214697401732612322497273755957266512407211693236472749562135311514282616451065646494747678839130018873036159337674232266076182101193424421277715504863924633468493179707915163611848293670744876065807517221821519527605823949323427806025545819755490289985585196577259739846542463097072026464450903434311305885070977435512396716278051056080813058460515948802490249228585801189295642930830050704746032171803830565764375486603882101330471356091207365759305564752683092558475412879130639924785575978132744548718259560178995202102239848942899761263596984052580159739989453802000902259118587645272068866548651876479338432427011019647958681999643015611511162883726685874253854878826844528601524946233460476837112641826828610814021296367001565821990210849751932196960627446703886935261644841865662145507306380759568589752249132077725690392107179161729630254476204529202356775416826202814747040909622170289192570515380696702149670500777216708364070035266055678937548166510358370015558122193881008750459244105124165722669543436538217016337444216587176888882211357999684662017887719469113849165950297521550320253590835270838382214115036825875665368210407234592828661361458472467329812991462040962503253184069444913274429133723782419723695776242197148239478700125171335939581371918788806366705295609465303868545447996162228853789384694275677182142056537963100034965043432609893998190527438849138053898850458553855802169421465506955415416806448373156383856892088981051999451727995130954411142807853707972770512851574800856893741942883230051332546430875574001815808195808998997470777515303475575775413189665710358870592832537251384287508085561575242729720179184981118393731326380277335307876931710912060282490833922929836054748643435177138690899889369813094285458708729466456359934717177540047418659283183076068103613436810458858569851028387014717794088533850954735826564017559061045955309574131755555574383127517247108351860611217748596214910881084897346175536704218123170260084415560191798321817459115299469347011111759161634935932102014951444079959745651292288943457798890120078892737677187475690347985465537879249973288874565109904346577634052470269658987271222728879756738341411261642766683171933747692208680479389154352121157564552155181333866809444111478657363317351657480664905829494325234110287290359693967458209351492723403368524065549206695829119959196756248578738857062681130656486550624593234112484339994855082788924570026869001277467358930853883895027083855888136816032444275129748572334160815597909334255858527662255760777359169869375024056298545394924078681650037795329485966691108503329110097652134002216111205981535109108463720716331305333083849131506393508851545208673241973930593584973862873616005201273689732871864354775070320275917089885099669927977625771514131603535252361871667638815039842093185687297637481284181088420512692340694750873819142030862255713517232533236799741541661440013954210732598463458822043868231038737289879981916359371323934923143871950187575182828717427483432207081496497633224133882620376139847623917550009844632557794684495190495829547968063040116548680516926778527881924485287694028003139426419184588417199327318067839149468376560090942408716627923316954450556487271965180268362939394516706589719590693742426533391554553627846124402695806782932147364309611022544525015138729865633154564677566041703814890808568532815010900145084957127335014660094243824129630804881593798330844999730552146990632057797313626653816565921795531056407705221201442375720913528604621291612043763351444157859676493394430771054360975045630336130181430274182632785055698972681004088397550036316854449216257779696666697520568309156847621066875846591198467856518896771098612209329496235348241745967171766955719082893869123232240955175604809398403294549380843536396382393640790464784187293862983278420470841552077137825383367625380239376295547007043668563920504066466297189490159759818533558384872302885513832568162614232075047602244215882356869429114209103521312459379458941755630966168181927457965830162629183091586517352796487611709162842280110601140612901545934220125613514050079889080502609573838013635091658667388565705754936513732165133909349894662757583822845915851423183616156926491858522841286479808714727698160381216265385880647454260896462110127063812816366842173527822612418791756963768741945214471078060648310422989009926883652034089944917293280656262243565144669111585197180337075533775584932370568386031313870798148223661462745394285425794934027869466204248152081754511040750773902651518753866297209462801149950804896028970961153842941350019937368563451328314628702074983338240667804765169513244378804620180750471607191810444480731110639817705634308280132102361542286460765277614375042920058029964257547998042364368121582106242893364106580404740671878271312426602931259279976292174832029304996869684989068922184311300470727595907611135058747242382908822255039815361216761188545508670228051288258742350595369703099509753578483433074375226721058075227926135214095799037567490567127901029164248737604937996491826642714691243157801115293392461006289881484002751828820034379505679917217947672336222406301080005289757213064926959979893583205987902106633755494380085178233937795995570180690844512685504608319803564927525003431423688489935138989862943438977685066377767416247038606266539024720413500184528137658687077895311386576287581606308408534346800993070709260526853192408597193473781206304710947591331587380110847356768951011026683271229629687505212012876816613193291173745869860686961758307878342408982791688590338072060073361749288207473009052850085655383959303647478329528394612468524999300509426182277859634375367101622123590882471563789418156874987840275827869099136368972935533680479016614076097520899673755208653843219169003168156903077696264101417115267033646250974330516142997487912843467095460319831919362711862310853503892011774394890785377655285949980828177750821107339102491324487298851252490980220655847669666867931997125575821281308197635524849522514163127677331113305638318280960664456482978489372902831567081062767290285545702403262651225543839977876607174402605986646774987940588103074318605181609289229563429605631370612733530836736794436291069002591653885593589106375256842811577136451327392672195992521795434734483035472682485789300343821485834444036878550249153585099197806817145539109488185212619983479904165496008417644371637998996198215786236540146683860313819666729350717591092274894331209299468181633133844972636692213107211954521941010317228598800891830177250124825004424652838222232472175111012856749195078264314576829964330804283570284099959746558411072680683347934048759200891831312083810429597899491278495209976950999328869203917684921265384192064970177779198172917375367749089467311317712176700688218828084072094290268997224404262358403527515572144140973888208029515975659737802271297980764490783719985755998032254834366942937472532521666090290184253708127792664629937372610417885156584654332325449316095261248875757994684267098699903838237146764080458342556546070247439521213738457059595353550447578501553443834735005527139236930709801977167612834913155554964868038971008484384857823756864329416697796744896603652827469324566657190534431066478807184967457702391733198714124044807547054827255574468135145517519084705976903370128583666323215439508398882175188249949277329004487703696416842220743287066455969986858824576994851227490089252304271833332887724557751466836478850064042801537880725294067304766492386117358915683400904037884656963598976604466418415482209952162746609249545369531594039083896264405247483743573111292783009374842846287911512454193299701416638038877454045725563388870962730123208561834620333480657111837530016781815277698722223185827689655249155333627063292428508633388240514227637395326215609833506658918405483844258629803895176868076747248826615149173213806814576446330493847754980081282608364850212593908062314784213601445049303936428195321220043637731706511054303852352458850100308048336630885109780788943035389278353229850927557832837758004495936985617698792651896835775127990349453042192711955884475705300172825911140288455759374882805344621649706762295778952978102605451512264775728325191522100462023573558225885552593850242785052711669490418417620916979278848600138677504742077697341701744826183431300323127256486718201997390616433314487940763424122303664451368478439903236508040845709289920928115966338875761085060152281940005125532421707593863212484531892328899209527956121422974172559146267098258333787166919743005664899658369524591132008073202528872076332788070830583835560689219610478481314334191870798725939166792220268977838631014443738293779841615049418168651646011089224544014545239928359101187448219947979208660639634760172417390300738674879883978867588852268196933913463987574809080015116194105472352129870273392051489599992550765059155215561399022249493229840488333533323314145212146826713531285669319872948701529600852063291200031073970403590137926779216799845358671645533196572921175661519961891078793569336885204500766341587641890215369648580145747954751081124634150143558827538479312314005187407501940487627919448056574856617714005539267672765175577694152725953407129278440364139890718988336477020323762339906977577838238292119187853783305001613862388903681864281304797703109945531023763891322155385316951299935709324882840689658169948787092760511219146167746188335039221876833423910645283146824054275147014134306304204288298363300444175960039805740290386128015814419852284620027049398302626753413476431622957875568266519327878826318212893809107140082605955907710781075971598640845428394498128413905080378045268920600124276784565606946932572128672972199040752501069155940774082003595810379257306686319505259849053154141265295078567570431121249163797782408551830242619740462330423215656580345958901498787320112090621483869693592893600812009642813666089259688133737555098464205085483828782278444775373204851833715103613243026330609550201510715515602918494152832791282646981824341275749936172051396159559741071509369533810517044783241203697320422614240643300007927563623223910555429603572516484629530674321054142625364757911416362536520172520167898072849683793220008275476686371592521368963446482370573296630223802107083689920902303603958655092245243862809735741229863716050786271185769490014575880860748255118757431772263825937997339018374479968436153070244327564737735195942947315299614222715977469407498293597138282967091005905301599370090731224798604597089576253555223306842126699601207655838050188166166003232553668620143155837453516294060972440714140685980451873357117153268235558990685906218190348611655103649320147553775657044218656809089439601937133710090869643132014841913582368291218514131944500235137500029937314450315717239677716814042622423775291838965120582363510349539851150600502790472543422303527375479485111459820688690117832428672326941000286353354342619803656464327147366260586964403079229656174893219469667049053218982867936536407299628845458504556760305119628703537091383614069102889534336494221563587336236818194295399486131762128522879139210016178524557123347518220376706855487353957016800089146994998489880956478249361742028456577879674489988950161341563360298252851609666741870784133276989616605005261496147429295588689778402697221952371826427564586344719570242625642771103624278345713540746291857545668241310969304359745180414865205330001951387648286063833056518292167632110230461518009776485113069992446366746060855210911862063564066532711232923215536681704435760328477879430758658962459643978044200703342379160882361892600985819509253574102711792851378991672812321751206605518229307843981122719895054437790045112605279886183176229283567460349713762758574916653169946125474607724257807046170569382246971253241719120072866050628869302701666997901455915293903328574876199545536192725811301696346745270527330836092828340787494398784515877726348793307772147229604119296652501271743809294651842422151307768351596650465235612128752340074530108010128960425447874689682782113587812596276611282888141242822269788854745906202349941707845227845746357049021615105416060838282842269578240641572991860908085914196522279960469942257519228824602945616730498960468974710751035191720381374912503007956241524372598496794553098212292357454649866997954022070827793321046890064906732243806793142587930821874615178403298516730378314945932882766458472449390653830993767426482637339911529622926442089256434755006951689294248030861903278358654510681164082107809068829483845925438719623777671743920242319542378849088465840963149321142108326384302706628716667079315687064836784340378338906749192637060256065002634748220334761837573681189883005524644875798263945792082654086779939370129282784365811205304517848206659613487342888389729976000067818534778078024655121667049852654920402872169840237777050290213204639073489358571133884891435249769750221777117593861480470862841085681389994994248865554833389320284932556036586706988294675984857335543537461758448544983205144963021194451102274184106493146758469452930302971666132107745083502386214048875873703132429155630199687573284171194298964631831656334645539280152854727305276046327760127079058184038304992615059359962550445298539345027396914866272538035204251019466375953885062441855805768689492440410978214728907032109017784892231874070291246831334657228601712447958489701205758927688317786129426553819514241107226459507737672881820496986069132853881919628678432203104314534945240186767702134453335551841039417567118520877381387909455783292272515347183194150225163981545131949664864994837754804462030183931573269720436249283385746561749286189754159995881089404987985346731557427055307667706366995120122645543418396835074468449254492052024400695276186933605597989866801927495819596509348759521027231692753077851640751157771296187129036663900353207814829639924275540362264152002394887875565861701071298887367144984032071193945468263200401791852107261086876759310530882611777603486840804067281607788271971141950137290177888190245284581668525978886706481887854915147677383860815625627153542914591392443342345199244241098326211727143442096365601094646797752668591373023239027202353376969237252590389484901724027471600789590931879350190728463669144175635992977982521627279776788308671613837345854634691711577455388664768598779772351757280132759841825996402939151489937415204565266096606521245389607175165161204671805106905611615214683224231706860304470226365034480622689459168881921633902291094619568428274686358304988890115570520897403020800193363927114253287759186446226988121928327689839744584603957531998295631196252435908850290738681041775332465135790850711156869990487035443464535625562671386669554878519675716113480503517849468948902895914783220241426283882584401957445476062323196837019158218350265125659301430300679138522398838701313193504500425529632932605281455473340380728691402903847844037955327897742054999922629271000535501142866545666474087693768787366826030146172688195220317915847331747003189491684621178930236206206571144495668185154937407724847602750635259368566798703625069032614494442473071910257460912177512076734331427531064930508482356884772230608795562422673925479362458644743260313265207202302138854901824089458337395717483496609669110626769779728509668501825578493041637960426380721267704004964936447975426396276896437198031919262346376426789986285406549702165140462003593984030693486073771850658772678461449844735395447732517091934284923673100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/2018/republic/10-12_d1/pagini/tests/37_pattern.txt b/2018/republic/10-12_d1/pagini/tests/37_pattern.txt new file mode 100644 index 0000000..d4cd549 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/37_pattern.txt @@ -0,0 +1 @@ +44975 diff --git a/2018/republic/10-12_d1/pagini/tests/38_input.txt b/2018/republic/10-12_d1/pagini/tests/38_input.txt new file mode 100644 index 0000000..67c24cd --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/38_input.txt @@ -0,0 +1 @@ +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054903948722298518618221793801252132554460930764631480950887892185648046861685220552569044380600510516869201987673325874736067456148424840246031080786463389293945679893465033726426673094462157600240393918102289685650226852871222858699734331037522332534676615480325676959396717859552882095704120241772046218173031079732654910968871589999644341215014085460802727561058471818853996359460765804431159865303993269906888136790642080409283117148589283474853350569899336759507666684396161603900803258501281149684198606263384769104072944888250494574071040881737391146444331376953968438495931706647695955098800021281391786762607957949782171593725204781262105909402106592012221453544791231899315318116210202624525842627204199207837949266185066968807935408582771299938247356359983945340062758157748506077713984020697170993387966039463757546257464200627326410893035778795914011767100381601924566392129343399147544665976325638737942982921246785574003691530971045405045374204251289523373901685472884150694153152984456289581271070038920551662616646916528373230288314619947847936259189761848562211458471048842637540601088465854976138066221131543851151537947163515906349886641992321357192708174961126356609881022685614394812702771715206448445290588959158544953616875982178769335762274598282574571027233688976165622069963492319613727725352058043689230621491602492345668240052137520488773047091390676253355982744567039702050764827972902773745021302667742555471278616867841042217929653126169852650510535306010441423814996287304235583821216060034637798239270317202646935364564537728442085930028412861024168607560005058065860701078200157118522756920877969835461586749958191224530498675977981317410090946562645362321394357750906242501278418143322315827548187381365697540731172416767345023930388792063172351456752443157496968736603988276721704260950589690078808503651850968780585927934395969028842519441530770787397308497025559881178169612352014525117900653671920595903698978820291974750880311588340717930545232906712850428432787820645417137270872836460271772218641335854198038391682623714624139977239931076696082235789775386653439774363374676487370973120959415576955470517595719354667185251969354232661264885478173537349812642805687932131346955893975480196101044523175075391184491585941644905375350548628263125697456424559800090002805275205880990884175759355508591286688134544125206125965639279426001106104867985810387919717025010919577538152234201819064932905009021163947322051715561423799931061196596938404072382649385897604696165197137093404748704480432227706383528425816153296075491265677389517683620814586288256227466589333729498111777377189598804426061232168367791668447453188008204980390315975606964720028463840274389447965852450494309930880978711115694099002654425303864446669634413252295717270232700127119633459929083778834300189689500457974408118898827698402526711436467555757570088121550760373895874155173370646642911310503990327078578628256684653747307110882843698448573926544223773133590951009675834183923340376519392636795886514314692244242187615148682970816691205140998931946641073943641458867317018324324148771938490220475094436107353903021037290128965058959397211298456678310176027622689165088148544525569458738608057359907379592741074528656333639809329951349618942111712010221179445959085474108262884034283433515607971414974039479850354923486529135492919876329460379757460323923859771867840416940865230354577945679088813116958246349307920885389841006488636682838681926052619719725354104220311068874152643636603413511544471275547323763348368252918686201675459712182041280578142673495390388028632192277870608156382757736389772482949085060329055519943870185166870892803434638500293904553007167608489373508983134287972067282217304015361534942801211815845494161122996018573495461899074148836649909826381637163437075049472509764537732428854079838319855136728476983867863605030863462174437106925039834067424363214734849612303202782704704954561487621323973131493054133529437145556928895102013915457601636015631541571567666366873862165976971042074836259836819872021762219996328642791923475526172794018162929906835578253996322523770217981347008254427295165556487111005250596503312183859617584814991419436049061919440823436054226833149449387466974202701785279133099808002592693260725903429713296578641211322237082673568673533920232204775186872237491356725376267400480923379467808382455836330199744186311089460438212350329517412397478651306345629017665640840371809284783611417620136950316238194446968830405679634930138077552482637380115802575615533097010285421770631148153622508690244396100092362577261849355889015687939384982282992326104681364749319006818829611647311482892421187452408226346959330570501097601515017991252747762196505186536941326535918697146948039666153376043893199941107450448382270656751517720054666580749979652711323571203812756063101951167567532559176136113046647021675552798728634424578825961050592607443196567487036596876441009912578218519659023596120342820678394512136780413331545335953522672589715665989752603486370271172534027075319711342512052425020201438381714546083929547301331401757317741229146343714322341622382437579355680850102708082056697833119493306765602716006195541588236380396371748964943075834054153746085436023823506455220459434235581881075157858050970673731838852169146044305472671868195133354674099897622577005895599570386104038859152839304811432210969167391704912094002520971864209534413040631883028437398232495914764711330585619808038695466386522376964297937505571011034862777580444468489112032886069273849529513834191545101535939790269652313887515803947159808578521750099669759942060856126242211817926870469118997782000877248103310794464399971670405972192659432793973239656455590892499469999291540435107160663558416895837714186709167811815993369912243106327756595734703686908707551132547179281407485962314863720840317122365946450664027047302243840952215959541767786813010846296394918524569831713983667446057939076853989324101805381407107854464729092303272995074544473448995616190598905608549412812224937242425804985442251643634441242306563080248079312481541957040087051295634933075227904839557602918542721958489132496923858989617601584201072186377323135693341529653643884615903985132105391594281700792883218940929359452504838549138692672367113686179286778229061680667935331642964424757237216402827393320806476270674251215356108513103393724549086121676769015278638769454106386487343879171071917635688146201545436894767694548442148273084421490001231248300078784678864642078525033553315581486873210209233575449473857210014335055303231486271701958845300669987534820582970946829195697136742241007088596149952971122663123979253007881365902080964538244607294949758927424086866368242366523031452834219883438886278220122288614246850633093559414928480143828698538607492022580183234582103407255346269380602555576959141222786911166812214973743535670884798640513423188514241705842831160219966366896240462072726256518636931738887911020181020145778090208586989249531426925952208291537834320722011186656783122539626019808406428194096189446665945883606237088914045134221408591377448053947872794973942349537176636354434338735755419009006681450557593088266434760750804910922831677965788113814750471247615271633201814232668501614671313432454978486145437301887150414819220449615165288901300971948488872055672635524135126286263822225292641659067577233018240032165492855745227769457389657253259771848115612803029032515564529470938785166857270528225608080511239284435741000565464256736872519557680211836247387119929670644985625626520135857095546738548508579744699773430746024608153250904570926150160158601831660496473547897259279814740061201381821229761273793804491091070248672860501485584702683103265916949742380671736630598344285127672857003317171704139776261622626812434650894196922019526643795784746933881936359053110797585407429288565402227631543910180635184196131384212386482007300812525799873292618063958181964750387698091998660251057928940020593723940822811774802752527257953173628121884363099564944790482501485040354432188526864674501064437519600422728678575939562011346304003492271575792526114216699797349639808573703777497680583098245226423297881241909357488533818506319530768058001057914299995180914080455920263265459610911644337669372504927449604375866977405330942389931997878768023711236411274504739391850228958966071414676167041012810960899875290902768826994596010124554600300525035288198435030880064244497812076407365945296446755262440466456307349560940651404960991589259083849866990939144000997281117797192306261629568622070474716604373370190967442183171360804879034152823694608347055580727171430962887084676770085799579108593002707145906200181527641014551398555732948509128124979669978529582414345092234811918795120078490794321764615436376905875051053723883344833002542489467329578992130239397790169594678344502455430972699458431024693287501799790527985852508771124069017911248156195503868938964540534951711013488411544385317400386544712984807593052898989000462656444301725615598621567168843271118946531781543980255649205279750594429736363828836482877737751111791246048952851610617005761333663336835904001751393025024360446727603829082694995039189839829223825093230130582154566741820176936163335639652225281446821949402532743300352302986675677075242911163486434815509621468930016720959229065019317394266684362972452851358961161726548129593217150170707533936021680998238800449611402761888155723468732509137363479495647046338019556500390741347622341176493481145611658764533288539609514319745210563428945362300109748017262826449229201693971102049386688681724761458795842906146779901880972641106413561510515723332728163359575874696036938946621066521832137654153797432339970221928773026834696876608632714653349369424756676421022204871583200793411543574199474360050156806500755450973538071910301530188555599682425925420523775175056167548470263738977904966258486126983619123490130197711770671372831052208738117722871611029066038782308103309936334161506654468567796521779312272748927701119097941916883462646184091727071102905472615170008563853666335424445257043804657429249002680064663056648987367080513796936766734531616828058541951739087284531201949108552126300631891816599659862861893478576494337653339959352294408255053404107247880131238373822884942836593065662864972659547145823289087167100726530951010681295169466033570223787364959899741810306511220275296142885738331108153015901020391014357763055801945880412015289530744290240481868666408768651107221168844166977523449141836750647200839774165464941648358673916287019311523359811907112658555612500163677382672555741406679398434418838097969497080213723816473983185922575633529471529233396203286131037294090825390663534389926385055578133544910736668789580958554785869363292512811621516971261604638267624967363808477877674329261844931665572978347619231833927430483980315598139316498936936567858538358932787749782705520051185604931752409343255557984850158001461028762281178902233633917505659847411166315205294492008525169431911755347261936542938093174372731323389584522003028726273223187076844731797145394497785664455779752775246475460488005724176474869618303488859794418391309729143064965008576588192437459094174290724848189740323570109186438917799161549830521665422668369295513674107423824545474964250937657802129539098577804285678246067330338243786300649847334500799510415203585555350631189082811124965038511450269753801875867595687993815256630133765487064230839463201070369176011437675914237474370013165660633535576376966198081893369766782865502497015133882941368690158538056300322908434033713835032171434785077139947744916752639440085096699331385873740137777002058352660614755030439376774636101701145583596565767485510008264330930335553014232794251937149749668455487342370327424519736007238593838420842859968032783777967143550163154990572584878330078289091713216824936686896762665265747172420959166418066936000497683622837586583318969542915885667778186196236058863344625618024342961106504969538829784738798338979670169775742153293171476500171803985159860819474391238194241685635791330603436579907158392110307869203483564171495589919197362198207631900675791371652795837619319592497867288201227229276399888998342629746222458172516532346440018844513765518810208988795590389798498911734513060307021824809842018425131673979525572692404524292853647912242074694971979428529732777463920817824630133488378366181683671637716580549896388865450977576937640361065377171167693774664069179733278646137333410146000559386575145140019339363820161011744672372356661347950568468429705015049480264686945386873038925277885816508067881391519936552353845132407021222242335874906044587102214906906964496884983031099178077479871147980991457200139290976841145788343909331993100868175489116483967114191761422395280460504660817387190107269705906471971242836406223035047928716073264714099938599045277710953202735180214377994328739605484130198684387348476552316533118636120250386024010667438168141206789245406836684153045742489020179391935337342356454488463721351711578399431862452047294432757223638625829364639067997383836311114237686003515875414620796853227921587450875350838320364280516178211952922330136866184921357986463236940618886920290508365900671464496644387906853403791310544653337577529833898400540438335448486701513163647030844994439323155047296150378111166364236112148547185979098942301427967290627248552645060725737327645144071595571618260823174743031375711336324917738879779437397806395312978152320076395256305214187721020668153167914883000307810496747891335226501271959651665512217823695350106873261585168992293520341660246681566809165485738379509271745842659992121530434400068332584430273837015175241460483048759190605738014413627018468578117702075799914589117052630487251640543729214930841007229106707161192892028119089503542544705124904130036663918133179110084919504920019235931664670798908135922044250873081296808902514171194363689324399332897196584002171972382922682850622126932671474257647699478503123271903645666786222988504481832264421482655738367330513383835319486435351187088527394889020950959638142898313815827229899924795085776463340363840363498338553985714279682047377565289865275438110114891862669630431581630780272568308731278053285718494772705749085765832410912534722208384261158334102368382946205922918174701815228913269018749917123131507875499538681482051220261242866465651251338169451583434254967513128188763145812032984340026049659608169214411518761386119049273418664239750394287143387066287537563093205435461550438478246565275930021305136472055970624741034616132745315943093266553151607376710385351459870449300786535087353740028995689385817318013385902769532565526241141140916853074049366741797508624529026961437899785136688779938746265088601274855789119202463641522679441239292799435292278643653332168588540075634749998082567253645862412994074343187280317397893259676657664371219108105050587758754201601164939504672423086274793575121197804272795877706444831687781846465633457983669397989909978645109112087057900658824728843726256824214844146858550208852590674762768117151455565636400218327140291834121650248705386598787496192606961332858645698753274970734029611129702982340641848103352059836937904854761363286750878485972234028912336654289817409872310645377845681229520021312905789542759383273098326888797264709615471253004218374832264347412953864291428492856430754141419990540255076847850654491846399883647558480892700480241085517198216511166069345801438120727905609050738157013835530577113520797164110150531901878145835084940928915453120327037829123776220638988945640971122959629673214539208677550462565705640983648701298921479305322312966642018619390123452777818817093276067728426010298308801580386611561102897400145699059903545307230578617401260017310575437030896167638861988843164441758523851866687957844748909992257578597181887127502608575675105222707079237036861304325341333284662083367499800014782980059490503291340845760524154622027225346222622953126362771370734715158554688757879182779256063691881282841271668350260028546484567479288586787149204353106012109685254330067215384670029647535880932698616349939209994949735332391323620384229050417183595520863625084176630139819285319823909704404830355982287521802001567385669603526804959120433144098180410890369914572907194311283127169377144927173675602789886300701239050952221026881397129980072618853785920882691430271350278082766210208560695043051092332709213640453719437591485968592805724007173027812651818207520267395536203943518357427895085755881840838078751034757990260453375235788799904032568059609157043952085627885252382892482534867916651989959067369084172191487555977623272729150031099325185952882860935431945965800645615301180862846717858792310887142547483225678794814272919673701681767945784228031658202872725561708065420186623324767152074706007846238753500545771593767611144902504799642054912624322842527858625375696059478803787845658941821327890255796745131141757390304670991629810064274918095743660325051157086913388769917979260506110738432132994835327813649091027765118427046367616653690766578988535553599470676031725140612355375097011026991732342712406036522469369748642236569743956413248426182202248767487557777546539943983247161115044055269790090545287064697439979155732784986006781094204929757944725174747673341660446036428189094457754855217302885145673922604566778975689831811534523243320464448384227854690073762485916679739958943000668788584898375475723798088098848504711532952015378521728804658879274667135572602028602319048355290202253196729156900485880392332164024617953911450228244669851908006770781931398778850332044622939364824120117766264238366657996132773258551693078552881459352989615618788588853284188944741988948985180575937459142542392288707489255959093035370910776463656605645376922083498899947791145681462971460501256682703679927431711936677007583468410720012660589187538961493765988726211273291804931129250994603619328574843126549011730688069146551035836730955562895971468221611562861007282197986987999664435123202864215439680833314977223443913838787199746325052931284802395682719542861934365821371975310082056573790626134084084533721144497625112722360725748063935088956979039258983752900413602039822049742417597277369381571231644147888338726612885232391582483084107268647392515111499141142591595306227779715414712604772186258608365756839384298258225940086749524539156931516353820531331116360469929324479265069780622247650836173377396858722696924230187305685109659143151348838025271157028085184263326042629384616928773867134655558131301145508987849224768428049410285910884914440581139783287579676023516407238793839824290306649057563662276751494071081223769521512445150554469151852814649534369885103288890424487616205707247206470440645302948891778991564722368167300090125348837260802140304301123863507867280984800063447756199297135972410106189403298498925409105433485944904098408659248769105340455952773220088544606141559678121294175821825959877692494152328015265890678776843007995374873560630231548038635949557881631165764258845995358074231801195434692606590343629918927725700595411561928136383770187141357147869734067638565329877715747017958710277828970066572361671520534118537010268725439784927145750984104239674750192221788628308153318012928154717611502231359736842082167233321923525215565695546450586561003352237776102248945651950729152989926784295332781928016236539614375099205451761483793537093768447695021233573466818820513420767259374259028817509185243374375277506094904341370648608295758519992710682347105945437619336802251692323418213983567674202540569463079220867711340450090340211714406188727521842302596288539776717252550278923484182842478462126530806612499285660366828653304124179319387644508872503501377094674820595742442394305982948817171002668735578676824475802270136452867710157662562960788243778416679786909060564515621322708541470742375269849666099947275936776169643292327980110562561542024330433651018747689359286447783626897246171948354939149091298952844759590090658768429594387910393850909989283759980923746119608645778934131905214384872526457216254220822911245441327128033438700280898507980909292880102399832532291481242186340631814961085949069170279757134988050020384628539535329687388328907281438870036379163851621260457880281309424296509125978016376190244057583205795893999794927305183208864984671611152778660665332044796616204342813429732641025616691423609924532467070747505250364052744042561831268842711232272079135040785775292231473323991222851743831032832250479125870033472858291180398741137819154641381588247615883495133858902148633728941217539593327096137902325252343868220563884313708505379299839853400883341136571535946187019665979435332882627052636620604812810366850672962155160472182685530152243021885619853472332627146942561250839639448795488460454165757533831186284474873185308038398049119488783647416579463048495129732980652245694504756742246757860791323779567732383354102281997763122224484946820395660263822535780650768133143907830787857779106738190300514598749699118425609135585221420191068281042911754764462155183459731432417650897713282080251798014792749162856597898137694039801943757518143315371199389707534582117670233674687971325621337930349946984950783996681304796798831278512472856336899723449159703284177656250422249564045296482867096564949605874373077118757506852618736595936902176841873452989029014211432737338627417545778072224393218716053660004459721343852913347236130794631901204117491240556635556337628773529436093249396460534210369850425663567755756357142283315597411325806908683428290548796786076286312680709874193638893715582513801966265404372342272348315343793881440134482503555471049460644086904484177939426884967815913659305667231826725082375441927032299209193731738336740139414206767534858854503554072438038281412458341077578092869121343995426271317214536294839143182588797762433444487346597854993178710567975579164467452551049647757624288376146734175802562808746240158528254032000315708295405885912822274753906563801570691627267547161944787150473509425867541115884961085878649551568798511451720904169751749421887870311908310345715270817681315177209893532151912845544214025178373533892081981859092782839876184674226564244298469747529587879484906245241886529521309720050939480287444845549337018066624570783636747567892634014885203855451708215345788498855703410783875563621988858447820866562595410809316004048714299680398818900914223728322708733235687678088111862014732205154461662541684063303683078766094940894534661371911236606840295148953926767436417804508038510772849200873012266135143445849253705231467566194661023231592295763846311600034007829777889430441398711428943369540387129882030475016718188937811692450650421634769115929545967801968838065565208813799633557201718704238847910160016771964301771870428389236813787967509226878311138575783042858447768131202190077436036451144818802367313271982500654522907919613449120002886412774973632739541158502831287808942415676657094860582226210904918679313171365145503601930019604372709120502066190567899652642331300622963943899391762587140555930212927642775612677196332084306625631384581021341598224211579397944403936450599381976740841962095230815746558636992365111146244880885163742778442730990610284574327676929446065415871914477104649037227957845421878045115816917367088465641884286775387717831984687370218475761531722842601647678512449202988252489331037339455640254972128309989028048498513398217175060039272437389269992868589050062151791324378904596485138927105227613936057452127718232147342300478990203808531154983441675922116916462271957278949532969691560631086237667829175626585240250991469480254824869128113563709895865290624739128615390740707696751680064146075790118174056495156722560472443717733565522395826635494618073747394079992797340919047252830593807192563764696612555466476749300678633782585799483813854417839258598769719538220423424995942158502111715464003039429177728485627085676035009532913299438129697308258184744594196400716046320417861440875270549562113532487917948992317835048719665345353584344724954710858109744686708857858059637854599995076815801509920410146658169075533904360186140454757316175296882697235570820416506214983768921794038083371433883248721938774144695162719078372474387592186920706182150946106170951637669282442352062636707096925058804312924217131756948438026358715293051956244234183954819080535645268670010274114705516365301397377776762724525733137595801351675666044555721032292068993388772613195677438039580850211447111568199392193235537318875602591539783011132878794061575152910648578417183999163502130296890216578548677239426606008317398385099421573391948585278499877072751467504220099516580223841143568050983793875936621920733806420943542764342880027367489280070333703121763523301365628098480664333675392351745190779255960884342028269895677258176685247768753052768723706771860820180566515208910585743943494894708510358843169155236907135858973502349881215990993399573589245631118088676718869120458428455263094442530666440349024303619592634894937268779752024911797022939050890362106521532370081164923030597879673974822824028570805145004953949564507605088013572934700882909862740367935917693080703881115468367257856527305072009228322087342405095033962281358377759335275492249491766493513372204222156553581685437196678771675331963258690502709048364538770491572456173769795935378972566937256553374127198531728996170681647173360151586007453009517425066171787663339861188376052574198079015943880115595968592646114374442048034319745268713334709542972641432657279585194427149970487588518461945471920653239995819996853152753781299422161246947321585437285267452889525244371845725173853195092942572174509872738468734768959751709676290033452283270036823871035084218342275068378162724650329876138423595484756558217994617207194006630446812778071580379967568281104764093411218549688111394654373350635552695192953030679702863032341472237972082696594449486150668958097915869870687847883269731514855387634958271565770273041344946139719975948253505288229106887865703258518843778215064558338527287770711353640774726240169641558523500351791420514495531575687333105486318886806573856707903247815571505504930686387097153442578499256949500706418803630172648908613253715456582125687795648132483271642015795059674154681428208381725238621319862999025487434093015232293925063312845753056683256251177065381189987775334328539132394147732714147326323511812527492994642587858797051392126591255105712106393205700609084022423303684614936002104417674397548391703838212100265357858582138501078300018614764868397750590770391004401673781147469054872467928544817223019739829991678058105385075630250474944092209885332698560267380195838995345371452795065343617973925837853604996011238250044949866632343977484841798604469902112197355238657757846963534869684054775756764665345672453107819308681542608527670349227673777555955997644870690386905614028802734438202369568608610669143713718397006047310899446281279610293714689773468480587482999929986662698064524676065533946078521784472908994343250771282658969768462899908486919120035602150269577719675295011388570118062085393720858774176875171371226953134382518055337003027386561591454825235604500089128184937486636839508183251935609018217030303366553744353149007854344619097234284375978148142772357822249649715938167609629788354896306444499438771742847886884561071817293091107588433357187240736985189552723519131918153104977314789003963668857916294574921690451611656922464633884196246721377281015518687807099316637337318030197865697096424006271496109068154541031225354793353802722797749456915983628397829940755457297206455834763001347820417558007108447947920279258209336349935031597593731248920960327171768244743702063748722739514568873517231467980741169345373122415830798908932950019491957539826566143144029010251506984181784562304306567498207283310186394486773471080255881469816271666162223686054187211466210501398093740649210037252559607688543641364235928524991016803628238716576675842777495344729744904297036442032536748807049325098059702302563919872450931061968382520148532449042038080193722618763289854539509764878854312489383711413245041808538116087390679776695952116020685615901650575267800812557908485063124021890115407664195084050515749957876911449461245196814891802535981537746554771271445600077840242654987002462480598339978249163362792353698754094932338310539079787326595574435867042465876944898075662697777634688166971562800332340414157191569132481183375171602442722634549449741283800907036480881396893465162724105027649975623305555221480642761906333052982747671650793083794671003315768727736104906143155493848857045654106823688502543804256603920332722453240999855194436950175624051633856434149810721863538907637112239788909598710784705112362506843865551522152628443000728444240144982291916877431052011368723952377337950327308652730155970771043412844553329624623847973808531099522321061069716222084312838140616600439898709794400097792861895752592727297499292902514004719371263119567211671339133194927834255249708823775458083160716725054063018577268018262958585099317847869868382813453776825077356319034020730379344372739411861434248027843849307348125090094411007878492937726310650706765113683475204606599797424911618151531988666845617947422122650828318352376849007657748347175254970071871349723413316006964753880779615374526120212418874192571102000751376111135391902309418271751720506430333320952730191565517968686355645345342378824510438273326896702893929446959706347582562177699654450704904276709982088490740209818215113853037826305197909414373832609009138929648476831981705684613608151948512407314836116643525349197818852073304347137165462277646148762675577483461634809227158333134395196686084589731862517455249937239551921735116668730852055219710377062414364588387258722159003376064819190172045271687010417997276128564823936369347124130690591856821235156618791127013115062261946152713848931284995684509972491074520993614897102323902712806022680591560134096661872192608884510154801672209633610724570909682020537850983548080775155638300119380025722618845352947008046194382976870176236470005116355430574356130338105318348358417870271457853918193621404767785103243009654334489777591051802999493929137033975678133219202237449680815964577271118968455693663897678444175075639225301166211952140770225745178116766950195028264860864780329286303428729270603978408131553843454828867187685968985637825860859072618366969113743425366539836099925668509366948531532529397007531861698824365221310233105803434747932621997830679736738175779532709942143390651720754618330157580129353861020344783598202961365899207574832891604764355236812628991586950439189257081107493801521535053820869936019498100725978928628135242682467007028614780495281619429070937344008425514148803127179510138620060107692616994481489739955431507055620530302419605566776697346484045606571461394605935631412783219530594382479505016047906658850801269345876466266595617105269569741958496397624823593366818890220037120781140082621758276252747758919111008611703900603436441319225118436433788641783030335055101268791960235370779923651920582133250133854569574904940141852196971560013108356468526709941581343102391164086127616831829057302546924210463518005716413184998665286661141688306268397529935386810815082645522070624269872527637541148408617581718684715097594033531335603188486451989616506004251532892277421462316864601403174651952166032442066816094375957242916563547489593602635933026691139521940052801898644535524971779137102936974559893114003722607347397522280262543237717968086278921186091001628874538381844706745472514128159470895300201391945645558171165224703672728845481541962103831659032686977610858940659715438310692473200800467337763935093161382966842970547272783187243589695668919925570424645858390709298972625959364561854691629134397970424037884019376437356686385433804485795482279334310110751637834463772426758943810371750786298527028520318631677741467263234279785849411939049802826106045774551154890975168329872909751418216968832088134038032148008930030264292075173299146876282260925113772260337582883444007051862283577234089635207154181987269448530571622870789789177706416919976124001442695662271457484036403087375035805296625998677557084066696526150009581506998470963140811246886768798664533257305460461219478390599591883913637610880547227459517664137261169890725792361648727106005030784933207699036059651661422878095879698832121788658895110705669219950198405318656486106843953162615106014640313465550249578435336702016603764614754528408123478995117938073744275285645408336907431004470974071077068992419106279268764659942997509895886705460523315048263989281072472600768719407880809113581518630552114248187457114171339058026897040155316766925933432309239852434214174566107467526554740826320614967258028764163396794312193794328822443795646387211473940922532271820841670848069357584120100080033454626303348647412366176035076128523055581913591395282298404035001358419102736645334486379461028703885491622337068324143125279002958197267001093214427409050221348262989055381262264701761161026579577537479078699059532187298358268612663744271318040725420736993129599737953747234549305697998963216080637272126890220098950697386735290560310564926170392341251670819792154372077282695776686339234646350696583691386704921389243199759151550291090452515047497436032690471047353136870793104940285661223897252294253655867561944786600943700201717513982552479989110432758064257772357286575002837880610122803892432979027049643323072176863343633426306267282543027051680997783663224156542571591808377439650799170025754291602309653590627893277582515180045703746970327027203652839456939359185929344393487592081953285301948941103496026403447660469404980016220810331440159517006240703747259700253553228571142323073845245223920680839701552374092604250453201117900073345562342656733771554112699494910174652990800215695455714913329563702785360433614001873719437649134962089795835232932658719336535964242774829951140363569539303041413609155958965872592014266274650694000256593247013631795270148990579683680369408302611876690344466077189372793317335796672368764484756685439003508208286101708646339956100077079585092820136432188567536029561779565959264144137378698267382195714506032391901640239261557352230154091871974591467831194233176033593743078843020770706226320118347142973786214729684083341260989083921327700276724660159556286749737465931226927247064188808817087900790458082579006254128167389873779127565012380641952529413257872935046325058487223674199477065642105362389458687005117569249100947654026476387814572805429694231211901842775422432371525204845802546807584700056803664547860723530240701243202342815917758878404335674245792610624261125499261501025422365464787356997857590919202297936172762580674454536075475454328422370907870903372324577008784078759881992830998117551664442944002831306400615782444321468461565251604355017951316940535781527195601034277945409689401327881012559888536719356532624344129060846906460429765581928161636969864481389282636161518481888950272959780282659959352442703579265021864757634727376721287050445141141455645358701714240152310863018855998792656092435161129499104002312725763315081871048167327763072296782574694709712567039205019548757705168046658498179852143497769696766420531910559114101846422200740313218236177005001864001571246135383266420829737876351673966698259550083922234627862960368622911816545593813617245962410274955156851052337812938479227514524362422996865114403826519457453392857864673587278722206310724166133426553894464785541359464408124523905143925671590469854944024984062916794322079991210570321714223261940749124941277767636787223239328873854190707254788146692634685480876864254433214993562151624966358997431278176291285291113087691714829625199616723118819988390649113719701735228322699715510886510994645426249509391983527314861156458107681469774797487228806765140401937310318475431277625398836235297332738159825620153842796357582065495373437025751866066505460144550550600529116652445786306275022150059426147116092853021677440300668944341899544184752689781305240924444588642922345296720520245110424035268779048072818867279627513267775580015773973723859902586204220120922806254166928619515812615413120241614425783514825232031171036934228690430141221093092915461585769623285248756217572244719448808088009398848860402250226868161606984132398483560525333627655502557215204485122325858621320003707527895253325746201690542132260206204579169364793528303051800762577079089616147356870056150297766690164837146406096295149543682671808606689536282117863959123302359934049698325413308432371000387516645537736656988342592556944588705371110571594483197134349291597943058821726228419460067626203805630681256061567141784086146681451468633190444061382187634040111133817900512792677613073304854727641107500936866455736380808906447123317881769452131812151664096851548606392134409625345245763075091440577602974975358772212966495491839066120432932946011809929994213088602327867933350439410399561455267093867174056887142873876710572282283655832102339228411500957674443115540202459437369162773147891155669727947736944226203369455192172315934800539963285508140309617513428790650113609607468586075153795905124745564086213485853650583613110954216853757994135604738465211188789383652958139559548184763200697114239332046556323025060726705021856672806395365638061841082834653799417093987079477967480255129181343735090329455930528123988897791592561039843268415625186177588495993783672283772724902593470802402839455389600179976252260294286778548400856923547305169181832685241430331612290267429567961069142015841175563802693689300990129728563902890002789659124652534031251890735460600740314193413312327800194702848150852569924659050501831820006772604959775538311065756886069246033060754634784503796079361694831745628313330594116443457589407031778087548161364661728921888487053749060838266891605537208878771325311973824720372091822990654618007523377852917847696706607036940228191535530039781738096241579883881762783305642370695832522095972106993442623036353501546499290283910226138418601006178138430508796530967577971280537824569228646081092768816816559976378184395893054393691159287460732905957956941583942288127930420653204002175285352507908144486074109431824368427604587493542352079208624286587827125524091072388910028795533480973868390236164153606622361912307957792067387689485221171777207747069995965353135051280624938839927391929891068274660602362098128777434823762057492108775112837018747407936660781028492762694678405893921723687910353986455998008498527955123234671482991845898090878803175375072267784095519978612330855552318263877682627055229967791803197141336253624979735247892372495453536686061132311021783687245952653520952235250513870636829029267213649059883413715823892811658692308607697939223323717988861872586566588953283285903052744931793004549418564232795454357434451056533194546359028664214963683119236144502158774597916570940901320273926295004363271933193437471553494104838051721172629895873841305431750408481221069698227617650141424926975911772183475907638631996295399076009589703399445527381713836321596077571356273667443039924718669606647762752196226081928988693229803920376445711499374612606493065572164823130057692483857560961672752416036452849437398938363831582504450030091450406858159783377474896225128415651508552972344109280013006546276526138184485690607028659738632956604364441718902367562005536219761075736928258933188493675332315968683628121316257110496427085294202868384131777238699027971653071837530247056375002532985051959071322373039789028925967636775485815776383920879738081335803218691074742692252904200403572193924376470603730802328327960456379483156474397056785121375439243908425859821876943437269421486203730504797829951363294311379683189752229233854256538241581497979283673375843881508592809552278826149583838765278521315071141586884654433819597797423150184151646341339486945775687294107931987650922120451100329887546803112223589553009341041646690465490085145810061578031776560592121645345211901012660765495668580845496304645769055405764927746252469771023771313250256033959608235090310363086669265185777825713860031715947022888714400216736753212929568835265262745525634591438900311850872595671056826820428517028976512211151634646518867609736462222526678132747034336242056875353481359533227835193607057845298561587797327240342248478192051357278373826203404893702436008595393704022250665192467705206219589453260212627075485257748961431597424199883706473522928975549694514317658121219145977636339894394535062586524611242157533882380691759671556670167721049972494125344940274509961011639358076841961673356087853958515035926902190635960452281344382450267840470287830772426263286841692795498643988170251722220095006294312308514329218776330047025701006379012049175845017354424243422176922055434338815211003147002580542153419048730491367859757018484180667777697767961575400850425859171613315384226682772788038134062435878685484823340559006168157421620226953199183899263390773350029114690836958778104804748600616696561793315507174498612013241119512197373534675039635784606813640302619858242838112333641719364780935976591707900672756276966671125429199243248033967235897503489276864126002430781361691101188057125979544759436719212460988274667332763454864316453765138536745218287756771049033578575365365254503319145481312600015043985927275049589274638000378815130275330456707706143946323312941161079990185372906256887384131141792303314783123186135092186006881917952537788809038798966514967813436716962531789686319398285093145003579438485924736363482428369306752845688279931472520064770447858818839239288058001686254450309312951992966778732050230771104411735247430475357338849492319189307162580935538425485029356572435513600785714548139271408763900714980634686786087138098150587705161144484782521936567276040674837028475139867225057420241949290511129356743685230918841580114392859577614869477210279318759503261156764189974762504931775582312108449524429337276526159626540355216383849141238183170950530721829800284799942135063365359576714975747433496887216031321556842232010333623920844187746910449066768723810427624300456071482358075767958045526686822895921894500618216212905600461499095849299082027092653878521819379672186872171153729941813984291255536735676033619186460333511721301647546666221422776205428073423254808563996775771545422279741734934393592306022212439534266037012814204920254145438502469593450249138798230319707326239002111575362269733483765717010287254526374612361959852505502226690806216767630687305815277601829576382309865741531492020549549427449777944576133392633173271894282214063698137412902098803033857875524019323927390739912948790149634617257196967020665998391632516900665380342766552336949811201393085780068685055344745422068493322247398994571072544507655639042946407105249182543433668404549437793846646774521826635455930985135551966140078819803911026123439823971846453544612433840403086373200150875090251880224451287866497245512246228372752174178155103964174459072046559586712021334071749265487396703705019232788440409207437725731445341668120881120444032322586660891033349698199743783519595313447078144170646870642072976248721342707138624953922604008145624199272466323890803103296579477492272582060866229322230873106882022104471824081092942125077011561589800083013219457759374722871799354445426173139043445092939093611074864687937368235455702923527064252477701838743936069552949603372818563795740757814958084080613178337392810849642146809066528279595008513403757047813626012955103357997315410789601016063612888570477553790173228725301265982346674950871850609084770003162260742815138358400427784111534232295051778030962028119395840501245955376259713465784915164563494442589638468943611106174138757189993777072142051507978320235438328643354956824780210932352710541564720811121074853608479281942302496625109848285004575188540173960231166476524264764276977539720202899372833136786876176770341100427791190662119608475185623119936426461065290199187574417192826867443691461442978138750804107070105339530572940101839628951170848274305559974460475288132587564760244555840150367886149529164331229094450395737675338096645146146358546847404955334313903285420810897319999738511844590225615788745619847123667147304803329435751003750707091540829279700120103607319908067628181882816122025788110233596336056062166169270032584570727570561774104784793810037960705469707368058491292032309569249206217351033829726919435384260942646625543250746516677954977098737737763457977632083791153215847771759798376582147904617855101309953865539978554893897933955962471715815370099337494763098322082892087181593389990115690591176359545396470642466736432597522755118318489508353330092399286216469095359468740707053055984066386201200170357098543351945700819733868514514923387513325280638903602874878830390851564194483707381938460909160647148404253067677116526535046257430067667546091908090016681489826327368073176067626553209055815578993358499651580613439879656236014754830986973487694134298279586663281923190531412039458099236255486262475715475255667471662563126423999100978259774594061723454445593197388937319778093738504740352649562234203755264267629638842050289566279634764027447110141066131012974304660159627657672673559369936080399855334224389321569933592315135455112475896327084168600685330596661462013318539573532033996359313164599694784652101145780550859996584593298608242465469072310943068470628113639318882764685986478407337277665584732591236063263500324580665575082998983726796243874685123918556495661105879697423744144214283239617999127130896223653377933549594549587002676840514128719771634751723690080386445173539829317396385102497957407789611054938633683169169484080944936214429601837995462050243642058516273442410168592324424669366289887851404522232324362099887129601753792650163578229303433619489953721720134677982613007837523368060301500470489791531497483721004265490494749398627327275578527477295485427488305269824638539801097057706004784162967692408836886061325326789317969418816393852427083723032362405711756143797361660976229392609689832946799889921753557512472432600994921335478489693491714606755626834738036653401187722032009326667500511022174096104729871058667814918409764384779585578291140723111485895425988093731725316476414404070262632928099010191667611193450841985737504501795251129996175274918345149993840622051918594181615920554181082371726886952808920726096289152671163938252597517183443045441049524908153364121621808745782570478372437966860513606644811122116380241113881533569856655083401265147589042620788014283728792276185455487046520276938489077890413711867068104227974360574417785046676078794085876321608768860587920924141653944675139184496789159234112081798379835188535067029744653454480219789491473772785583238319786133925483220871587458712116445273328638169680735087505942786384187668930317204278257878488200848958673910897182856174903417205364030006626542537212172094093924857678355953258877719975797356242952361480116440984518035337862919946647319679833264792795190370260761656643643157664759710386232597440503984191785542265924699933113023540883701831983038250898296617729687201267753229796517688804937593933893834415796308596266809272648936622478886251797238703366178246568690223348691414669756982764433595530113754860785965866798738779070359658265531914425735621043674069131932932253171449689642612995606678679406248461058252936774109725189391003235928317516284231830557077554442499745005724722396259797176452262878531450022718336298066842499796398981452043084049941259636102246898335561340478178836740975661256225546126606470225907557375883864567919785056408924535463784996768321572566218799793477229114473077273837424794590386710189612027466545079333452290310964467053103159309597511770493315097221505128720633598545029731365972567275668924551412153370817862960454318706346303910251603705350398958344751953746473839416843790161832558725844174201046490696876260782056028742390212935377497224473150089309142830123751771605000203683215287560830572321370581356816303660864400187589732833189232123059954312673638247248619739995376742196701618386300213806410317136330223450232294294327131011321514330322755130509375309046580989025228378514526024562275683412072530391692099951746466434533187438582280913189329111528722818525431173515165084893037593202390671210844716336548228669361114433900843261129322367629668911180363626802819512255196484539447767621677097335385844422773406728019167240057998259312323425660799399162190367449103976771261158543429878975413864501466855470690745955756874988272414763453494443803972892106718179010359056958710155547703493293002763947241779166706229306055278687715321678067831662314394987300047088126325286509822367532861282844627175240607647491085585008872235590758545323431049019276120628948569036254799267437261741243127354925452035675929347072756809077264865723904867725958046981518616673499488784398920555003408720296846976771963495878314322880657909092829340225342983588600113758739358703001357171422425576955136972270923700854221978939758883606924455003164855604379755223978812581562031624374792375484421882765238206443518058570942891037863561712901915606562892477024728704588831452458697548211370339312619146123146480622164131568159884278999075092785314578904575394845534574395542529720682350083332956419321035291487799037304654734910056802528688678476959500994547134726023276761648257660613514341919600064947235430097270466692394398926829928416076748798158106915261605513406698326132109299822384059015439649014032457525146308505976088276674600431222125303410254195050544857604774325031460117282184808904001457211606211257912830996452890274582318188017672412390842487903534001470048312636087680633866135146554506635818357159296694891797834899693771512930624526176586443147886780076035917759237654817535655849448963536581409009057536666171323411389699958107234315354873375878055194351798153623260517205999560703940520339442783167200986868104207119599925352086446530659385747439716085184304222988065650480741691362502162319027368648526153299643075375345035166108188322879507544341288321974837630592299348 diff --git a/2018/republic/10-12_d1/pagini/tests/38_pattern.txt b/2018/republic/10-12_d1/pagini/tests/38_pattern.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/38_pattern.txt @@ -0,0 +1 @@ +1 diff --git a/2018/republic/10-12_d1/pagini/tests/39_input.txt b/2018/republic/10-12_d1/pagini/tests/39_input.txt new file mode 100644 index 0000000..50355fc --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/39_input.txt @@ -0,0 +1 @@ +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000591531468850151849404960046102040626220113760198341772674310837167947488357463744551294937781326044369861916914968968307704312312845140380713628188421589880242457672587601938223422654586980908595331272919512609113078495253876109154623425734640937379266692563437828768186895559971634157549240461302649629478278509679346531733936630009083526403822955225179315200106822482851584118918367742964938903574623145778926032357415547638649598999514915341096216011896927376996716773436628023633744917392595447825778017461714265424011291980051715061191965934592859267215203442886012377073209822024155937031489311329234141284685800248640706560040607877569571416963793447963413052262290616910549426651396569434122873324318458609425870992935415937503102475353876852006885104027746841758161045021026430826829194173534069764482744363696687184284408133951140420477703310651212488608329516643359010845292903230005011151414846223362791863279433004642312120381775726782316401972805676826386838927375597280563104140327814295671668504190882631168659851585296712903102990496157065220197937572096342759260867499308694385105241573798756762011156105160963252554168598559351748502171448598663152635525909834038071105007697047169924968827129127075893730440599771463082513837758436038314123025705094893370541465879630715348111011543447411107175369089920455171385286048421682930103820497347483194469134373442491293654651952596740475195378960490589325922581907158882683331675878793437062917345271147142390787830327766742664843985661375115510217846297443582751635456012415554496053991638879514451678466853213088293466426231813212296953387096829514821263155203365820671440910613841258000129121685875738891315989060266847473067704854581703263266902526326010159066801452916851486611547414188035705068594708722472355261359542934931743853664205118008444963518093985880513503015400418310883621054456776522093721152903748284277708971278890194042087307612983334145935461345254167850909241804961728550401082888392992595674380502867129019324450096684789945074026177371557801310756152140041789111039721735684103338516935365809421902981103976205572731833830053051254479669011640304909264930242049621341759111180985668815137723741004749476290834224341524047387279998425676886313928885503063367650176025462946309505842592089281071995167726313590040759617157975720356003936858525492027109702357453336945186535430577108152931036173751055974720130535252823825730214268178896140505262253501869803015063450883712431380705112746428738489672189942209819704535576906818170961415493384926543780162531111099849239724832241193714176573066436290375776953369875079149141472244313646957485429770433386497662366020872290444533109365287992086129493111550332782717781759572919227155495925157714097152025415908894870870546968233173575470055537115767384395223123557505574238371784181876506957382367386398802515951238907069115528585629411676620104759988835987696161288487011043515517279275199442704860023309918818180316372066976299835542784999320549324625489924359143578002773868538860861098025037262183893072307952054806375739935567219824440819043995144408615242774255220687468596510527315287136826477545103869689286898955276993489535090006767340095045328713952871930905664157589938621327751640904399340266932715452330519041376778843230330159459991691048239460714393747618183965840384992225807300727944522469651737837470532134049390116084527460768947698349494062822630478481627888159255069328767024967589080758385236094847570647552582499065260586238135113646493796740296246976858726875913365303463448306104078441233196504220723318232679104832592366088192181855108908946815205070646669920799113310806795012442509463045164595396157000399413652718986006807437825406016047292652175217393780962780601212548610639347388836342914120351190696268715494227454862531162106383534927156423712010918475523535747161608037081739932008640270138450488043743258268641703596897450630066389519554115306599816746104766885340685967153413966763805518071316019087011605417334786904511743222951626858133608071517151255619816143010789635658903534534032498661500224300321189125904664426692803475243507084866903948690343145135097526569228255114441615887450431825017945196073360225565061556624936856188652199605648013264825836997101064426065575851939889171784515427330869312621797227694106628534739959508449542006948694333456445863986394053890739651644336979718629155761071575091304049779396450976130308348874995650108391417855283012352298346342671749511769740393020526665502383894859099321185885358693127484851589870613113493442931052546578006667826748368383354989666835431478482322034866520097437506286664457063011342028704247373751581559175438153859244861259009643495978387043517945737394239982613262972539438564767105902546236211644533789637617957671080823946465859440711796749479579735570279965589161603203234766716893543394442709727216845094209605854227888544744108117413429953175926001183698255193706118897645849524572195236369177876736040575795570505199927427387646008526477632635989331363942830047842743334251804564373547971097072234112305939600392342649074885336361883788711449960086345402497111886485631656997168170539778677958620183879734423220736184167168165215802086480915537335418601179213450745056176452227772283932674590316174110708618501821645487798147961999750201692784019442167386972880263559423631592490709400846631694799495767534582320130581211308871329098698060658197652179231403168434361953478878814113517341982516733952004946358603105022109791142878391589484151421557400571638365114004382317999790165742023983140054927882644355010366616130454443609949633280505096694501811292075839916779840731204105513415262929924994462740094367998882678271465266582035014740569953658069614459614732533750028341030026509294514698749567989436086706679293003223172111114397203991577494835834277833727827638916809089818283035829468268696758592959960276607685038566589092667628204694862803762304146026698568429519074863192953227502952229673237973407002140707219827375543473124095138641769206941811504729367374342073281760982028385364199957380620667521701892019869740891979590286412962790397858760299139805499175408730858697246869910448316398207494682700249887187969327577292073159122641399190374313328316305457993625689451451497525454403726986814838186861213132001788010240087741882236281408257955124257598873481316602156221528232424375221818285129836695914708528836035884045857795462976075264490213908496549251421323140467257840983097591235427784241432268886453927416994270819489614282832514512248464790056125953959162190421328065034552390688924947036591332260878490971172331328681122946150700568818340297788564439699850056218551522316636258420824556899898004685805382462755646567158460652169919008381367445288178206992682351454083129646137338709264347642719486930317796967380931257458304016154737931816128095870340077330864130100911584817749415591726977277485453161019119620005554575682770000632336470133453009658069945458328184904206775465363068181239774286511899649373919879103912143188686277315950872278669580520610395408924399700491215796272065735819363585660129022044636812511119318832276463308252257618502507399803918029449896068626978052146066789367099719464140050108752383617549369486687777716993249529206401071860402265119444033264874035419540530915774117722795254667882730654884142386725507912071859278746613311299727006368244774710029499234494176347207660159408467953121524845175798887644556294487797996874269011435415553642563580674668873163934531949658206412065062541673659962506193386405992557894500171503883113078410113539843984511253946448515370721635558551781679979652289374813099994993164685829356843343961948276016161468239185644625824846975763135248261892220465190016517006942338927377989441037375435429418047986149574897083736297496279913870105851853521841477015110560861197929238718453416558053100471265347133525774090172318935658241886309516824778804162986741652633648845934493598151235223656469571498151376748514073378364939052717949600625241784164900719932083829908369629599160761805463220704690670371794500335078573680324914551368476178790584888854280105018071700969687954467416013188134032788827655861117895401314030405523472547042140020243909220307775544099649263741056248855574695618572419095359218228466950700351154302313792697137907133413970512720540465182295300137247934995643467783710826841786572462354174361157868940386011784929136608332611528819143088323757787841599728448272448782673596359033061206029214564454587843795099947505354939684404565171882878919860322278099788551109055273515981314579979220918021156766395113972255573057981589564453855958131875885728209832591539452901968404696759848110101955070663119743090561394277577252483030047273031187960201368493835392700695826192494565302674367132479182063557128702732008204655802447825157066849701225151629883842806570737209589554713935998431935172412232933560308823327848044695773208513954105210489763575803396810097686624802366949984234736752337011612995845027230373724644734235710421779522388480015838916633102690708519270750411788263138065333761263549952660552429275381757062118107510615046322234372377431665956303477402119854713918728048155537381950186541881057604586143974989425268115769505052313689608794898034463507895466686416314325311839567610959099708144374906757068796104457025661928095068075293779175559423562230686364768598194269141385154414582539171717908765433365566851492577874567910723720102976898975249319129106696882360043653560771263385007272698183252362052267338076195953069363488319979065207603859173358910545600751001112579823644364771731431122482480314516781294464908373884902397977199532504559361955410543287605296096655379170045337874343556138640568378042214136459469123424301158644847842058032493729398086791305128116527231365936247362276124962202553085008033165734194555259943887508579881064096064923215028007239617046563991843162110687353697401230176836976820146090014693943569517559912350550176767589164736623089534304565369157456542612845176397626911335500261621070197999029160638689233646500041091951018728493656714577855123757999586765994498885781175099442753143403276317425391685225390717137471251363889891948217371725641558858090193098364944998533604293756210131290215628667535940702744969433072990646530259681956768315104453891832632894220669409132191255432287107235047404646897594145908205730912854889205252835209086486746448829429784331984671621629126283007538489314405844118942221524510233599205769046562670350052173072663532577974669407123391732480238617726643440966596805128329354221392340838005779879412794311576485150807210402065211864889482750126122974329548036338872492374418752783859561472704004144012305729281991895891404444539444726066358241801969892531243804145652013408922337809828196797917024489521053241522793073621383804009887643985523279672791609365480968325731659118119737019378395321240966528601728116401704885956022998117241155371498454643409305668648786706752006815212936038345163869773809297592400369013829270447290313248619266484541908685109235376993413706897967436797793749929282502942960752466557457168398827121460912722097610993014596655338003013628998659822070545647899301035411580758728817645823016292911728967749961568298594840322322237013039467487090621728697908815474602664509611748119752935462058110168089266905894542903754653244825133028453996418479459194167834383417461132977569902841382670603109519898670254867903015569012560261085905111143272679985589547198068321623383368778392427893367541645903580327843277951979332366484045694984496882635895012612064587220215232422102964714233256886430712922702692331653325610270260377342025917469842319028059678883850212055581524945994210924051871218271518797984342815018189781411980775179740232661286388366915771911149355902724296828395466320921323920882866182456574367124300386860061599762759227828414059891030196111195210712720394487786666794850467213492417411607652093789160631194959423308647808975113927555855544844953843697676210769991199275909820018824027418095300347629711517215494001425858749806828790709946244295861508932395154798880136748519103785493889132423261910796792985072166468110607287065212091698194398023269220822486332048353399140442444822100288277359968744773595330974623710076521861636947754946559422871620335903462517397934995311238518058152931521902156309116841320968227747135431499682977431824969352383826500150926729483101057668742806272593365646484404261131308566126426458360558524176530340662359211629493788993534211615339140913523511111514483846198475257461529509298836483284540703815470596622508289658953808279559068284405407517485507639878528721817715905816137867375803846026592693606289797610396457368203017614126210723473376121026062395087938886891824546718960342483124194894772026350970193530495874286756809846290764889555765722905590390474107574720027376058121221413962532823432706775117301231611412888054451533892835395118857738156986621993689123226602233996808313857114639354593498199454970148560637014337166794187899195477716485828968249729493757166398611008425577021535491118746162129894666034257879209322217086138924371563460550326816421290539347206794578451386842930358492716976063370504107278449999561435632068593795047746253456196230894852423471138697359113676611474812337951395652208797762870555091690929537077617627219526905427689989277698290681374348487154745758572065831285804806043318648174146395873655388936217863965227155158609157763891812871325112103647101257028427673121538077296541744099598916023099288964245655739955133100241837076625114899589654320023749549274779022377969899653198065247302213007340035844833293501402066467880333674125241617612117550294671857141844172547251992773163576873227513771568753723298998658282876395094876023508684980271588955220494945098162480514420382325612953798797854103390041300195914081834580631358182212566039300658544597952076895519971917835458073932034423258260367262881712014394405087587028959903661018350539235831166277962553956377205282106345843617345188077506115279385302120967717403014066819488278655438226055238228160634221807348557817551689246479116828705461064415978240347902040549300496941000421036874182892216121378235859395862286638503871042284248217436037488872600214400600169726220421918273480815582374197952525047153780847177756333845732602425624740621614286548875107813360216109110457276908754250810084815669656280799036349429534950458920292129291078545157048545229118282343578360408813718546291171466589491316276168247726756386726071453583896985618965189099295260633636068979777070452194579157869425111262393564209094855782285550931245747822723567446742578618280486448509921211969205303929311629306137164834064285065034515268341504152339103928931886837001595068645842917557855210409037350127622841948235330058524759940676867082844304899341316417571547332825486167917581641632573938847764405770795169171112070676546943797511221080102614125035371777084113526605858718431529355182810319333400132018095672025626853056482682027989102160446485750046826933453889705794945061182980945321287543468714691290763748633511290249791234278402185684448845453083736380218263571084990999138069169511074140273640685215733785983750082385286469450712394214389403013607865200527780992813372974991033959355933577568718814498532599916392749312975002754823385820413505764519379531644010473401523672798462488204574878805224511143374161978143618318963056665878022352569329276340561742972540908683816683102903371093800327970185484550232299297769697880063422060267842685820579531034864671548097652284970816469893659055647714172686956110633463696274065671552231122402188904274723996083398079139761659004810259987018394515557500947232527414660609213204122702608949466108512501380853160330796137209798808776250898946722988236416442427845833622230245916826107401162538031442797240561620515381549788177557412106362344376125051347609301160544064781587259379368080363450520075518898855120015851064802771014088510948651345253417405470063298094284386450023721795837047131112655764163335576990226805109316509535482756249647457577981547076881610616913339098259532161187381487851760732489308573682218226667622531362408491737737263009214967316200674606655754714690611860842001550475523886559099472512780606740233912421996070819800072408517320305346628784213998870518930484823855735680171053913775565551270572779661525866773619425819412742839639904175842913504278409623404530671877477006839287924686962870750440924113393342765065690507070275038864726970139015980409416602921610412974259326622342356120853461136217536113202108043700092526465483374704012313933668410335914487249853357828407077700640991052874981557252831042581383456538247048014115690294063728721936433578136054001132619134835587428761337337752872103799740247216563309416848144909469566111975024739173936024983504198976277471617394802985955965370448851063919655405619352502112812989229951351980668096373900515566064249166710873562334760972901600546918488984354250746776415141898019567503785996230263248008258703871224966674243289678483713655899654054523073015578853751364091335917374189228904208038018691634678440132859646345136001048214440158038921776653225238817779190977980391613424069442553202295699978281593605543112291402699165032659024094309822849885014099074014104588479988759651990619508144177758209543509208228352196839500228100269292423443720688452794913727278496063239972336105158075242578198314244038575975570840481188981389891541995598615872998231930168380002969552492382243974071070901535438419199813981082011325231035562719344045800994638562525142809955337943177310025790153702954252437338235562086118186828028005498528307803281548275531225800513631298370824220258428288878916813968062256683375881204542359657783645192265278559848705626975341988925988922471558244498430460506332052697395511495468545301692676558385304504935188479888745833507850937205537613058554628618297988301785604808794780228184452407184585198025130293192303052827054416883778073309138691802721756312946270931243909253352882636165558006600834031584191527070972434411818239486405051945695006539580221824992536406201764799161915599075385500972777087285911722757154469548759586900548440962529185742112929718584109951005997830120324124340596991319484489410378503069413683450348433182500439069834992793299407719460047002163751673603940895596076138605311189593628029480881954536208945083442250887982819601289755497432282482991523003281857514669906647127687776719848663167975254881601845903109155503036489352250299067438648996838509517750957895235594298996680485849425207330227782421386993629372637890105353738301907927228791919558131296080847799963933611403518625332783538500170622931780574912176251422180204960387508415417336539265719930016487470617611268707535143587201519433676040517468542268590545115590418683338068968242066318750008109921399652032118878262317792106422048899077499681809034752350802724233477942709077602704270760127916995241284096027813000147627645216238729727941194180227410290159865760962272899856638474409364000191141974847152159034706009621296256800208206933491991552489898153789858771590759980914051617254776134247043691339013267816149484106422387715516258328403891786552150359791733265555196991455068243041253571116058928150832137297357301432408509375771980677970897314664469926893478497666785817461695318280455099799300996810241977457542384153244469017254189555785364397126372178769797665848029911058378918837611345737243038303456797999378596418410883700493149916636875680332022663278908664869904203208039322062625925517678476684768920651145572501283644158551725277558450107648266680619641607112576041203213429045056790074167924283911809147327732760180296037037182502065263069657871708885584076761806905658683447686456477325388656856798562006182032745242228741195724887475726123199441007556330511488237135720311735580982028904157776471252039771458895486037832881639905894169059000910791733268798520449733174097940657127403485261231105688734505170087606637610110339457950287983594787913985299575417003758302619603541148285997272408492394395331340299663165078710084625940943616710663482024074005188029288665000667515587962017590330675666032408244036431381633038906404850431692963898227410140915315818105208037347372101947114398182404218262936074708316550994272555742984815043656719444575179666225952854363453101336105863847003147761795871849703260408755017286164627135352871272016274924354050072608682415600873620676299004498958840072612365556559132284786881373407075839181338199743330902928969209328106168921326885709259701336392168018231264895453205458019609776585054008351837791402434071486323456362435223371097472533832052896675266774403533505493426421256060912509354563707734287546931533152558827877163172810021743973424085797816757332188412450456732693629534628389931281474316790138355566559461551704083828006993751490789326431939866922316705767063626125612393170048492520061272260724228730244297911534608235754293444599229540114853988174627627485431151801119927094591871187592442560273377723743615347434102421848356723415148615258899653313568426260259605078858267849332622411184492792762347306129527431093522654301335779806793618944359827633896991222439010710079555159900281079341024913370862814291383264398579675793289614346566097575790900977298618258468563198371777315700653955033249781879507994346945534331499909437797878940835364614741253916049920128418970615218385085760419259837856647384953497178495628183979558558997845931648175536727180353589444467775806195846994788883063542978131800402646521711940497453881699268323609347261331617679805101024626664292157521564648587960505715518156551917564178211199152583875514917513915401811652880793942101937645448402110789221664725495898368937572992241288865813963181905683758337857217452084571145201160274720505243551394898998538729243648758429794428011846374152403665787995143050828963672268902139774942680003964260729724218892752726820048650641768498018376931810736699303810111891983110839918973817399947667745179690224648443576325700699463126924293479928884212420811358846688773506101390026788229724302239989011108414355006180429101808473872941076441421002975077844219911209754052538915149562340101944439309447463484803674724575918608731523115326784767297615575868994931414765386855639958940796554740071122108734215391162882758572720519192610362961933747294663306858943963713386796212107809760042362584194831576805011879865799428009439483999112734769218689440770657553672532397706207083932208082316889103792603985722317192419159668527511212029888076853447462494138696774301334385358325850272461246448783487942652033321024665342488238009798801618693054992318515214597770604997828219521636519066241668239060025796263974747246474858408828509670017164472449037943473037998934173328213723668074655063692192145869984119197221478618653410658364455744967424067999056644525382404925143400378088286806426889044664296229390893735178138212743911893121776510583610486269218699934282630564458827610974864945465030224861944320778736931477896072537319162917080630485837682658303468289884772588275578316614932379911653296240393191622736166227378227416733864361371781830602158990960857399750623743416530960188693378946665546813912430169618098031004737204458479584616978464785593129907359656479144647528080126077828431177425066744327921836807895114816275592732353116632700293538846170739689695951331291878209856671835397226793830020646662467365558362774480692086436466795867260013514927275249487979521827027275510387300041562214079717810759294157594382049139965375328506008320617126813097874807303875763669341251531296027384852178846097603455656887344638983164054335747533738196503826761609651334027735388304241959014632270297014794761223877219973031611249939805245058503122220643840870452237159105447426515268435622411204479970847686286963695353474690325000860986980159323593704732050799865509563473659730792902374218772364822681565933852289368847771909230174576214979324521561017197671185780352305180369821647146932732130896168180518389481018271324185279640297318660680374695027736076441823608496544697644540047467476397547364772288418083342068539920795593412395405573767273522671110647528286305234185736695411282495476435535055073090917629212524003963372641301243171743815390822550045130294113539089211961702174632198987124984783803768649203637394855706773543262222500787659689384927144952358543464794796572563552518545789753967151452360962293684521932577280462150144518383193453836255669871179497258712570323147608734175740836918710764631992408077017270101825995323561817205375743538065278547458801933938468285907635416667136352307490388975466365567999962493873221465200452619866485878543390952975619180052210739749258321130528930694989941426890986149249337925956524805246545426445670697903982959143262875101889440331828031720139563036435622905801078334205525560892486055011107546831250464409655788049565981661296326975186542819795134423175180908924346757389543727701581745790187960599713929412307523733862157317822516553838176510909135756985701686730437329719919411873073246178609430604945212443557757123279772059437794185218139357323692814265847522715119927697020029509077442402182184286401511132278364944021704231523197300738441672854864073406008296332093725163589712581407981056406611397902346098726809903949528705858841550936774955393976717985875475099284812732470302855178900154612642843902086572499386800855694996514576365281587204183474021062322377568167244894567639058238560863030449239162575507791776553698544849600438169870090600355818530974380994842706141377145388047046798877404477274061305517061413694346986985435263440103643699953111794688407902927678077598449445561730446406841523113404058765219085676675745840838071993710629448352477737957422932047103883782249447912609980427334085309508505400363837928956503479487140651761057608404981286143452038413994423451357717456307720177042146278788319350811662819089706375640525640181252622605321301709834257672648083830483491493001588222525079020868422970138485794499778992480216508500957345342833227770688669264051790077003386238752252698411915798976381291787353002304464088641718722875868879234844734140473320571540449696490639990467118258892776264514549197854943215237559549192910348582805250328636945536753325345965089269881001420571219364500439346472964129614844890502494741364321394957320550346717974223397519719680959221177824578985501303363128093127193927693696906139775875198772939429389991634381432215188324022943019339673911024807833084797825047347855624641269856894506156031303783003263201295602877224015644562008155668381220162270973115997224196799316197874396613042520807248382779853530830759482250242784891575183860060745440067518951776232390088028476269150445208600670566903893448307495536261323029277542633850966044583533526259987365738890655084544911728899551237018413588558248833835095919774724670500697011993858286345302488141360718947766789966923777157172898407237712911662185877116988114266317253865683193896623393243597495855451056539045173606377959285544020616529513077416932823313561113744406146740002422838497936611807095582373260231699816793731639369483205152791039651598447363891132732910177154448177447905565265211272133666492129939269960220364394998740884860397354547805369855012131849368464635780900232165408961953128520460552326892114570763222883600285182045366465570565626248705997902654026306716721622002052410270363151052530042506513385617748267290891080795304074023725788544793013383889310734292001390165938567011446020191841449072289193092150385671523533510783034285044795821465965325371885710012358809095412668764915051037687301600905327992337275545425651518500968565682257192085348950670582651041323894446928536433080572677067254058655366687423656939408918420606057380218247320135550165259410594859056738830848803738015156083649788682291935840611591541631970068292153165514516474165060513013836611306046300146308519096445991637074795655825884017914682653954557936131720690502484484496411595832099618252963665744024152289562686221891222846722912205822149256664051454038200301806227846369113198412642906470364745520288342018799287913633853268495890169638200843953163404457938647592760598081066504243894034779946316194574828221636752421225895266590693065296203224008622208438270993318531963615772682265498723746665090938569155770068076620314756313207576211123668538413754743014258191990278807952244338362235618355709366013867031032840701527817664369428510842274121432100607595585371097853011200643650059914063531016494597105141021632430062911161437639356032703955266314642684042990648353614976104919206341784942690450466296516440017270285541562911080933335553961182008872495298755871284128677924661262819261953079669931392639997180505458226676636790581657850975161581001754323765358491697823878465636090067559908066060079892555165687832903585655834651456527347220930946656609953979248176755802162782751150927533945130034083343654333769615667187901333902631020265841696125842335969817272125436897941935117387167338526766274134368184339224333244230035948137879882838430750913436796514569847959485563153619826553848431282123696223660625127750619639431770684617433047915810684649793742173581536645778684875620684175003614929299269348639858549579135994672070542681047781180831605816283027191218920032081184040145831892658321411331896397518377296863379697142869730736327356528397068445453757914218498036995420073064760921472021883135805333899523949203208203201132151676242969094985165198400101496246006448839997486539925500520813708346267682562559663562335654256210372627911870076028393048101594258389866998966295213727226545761948803068339737615349164008480799700464022155791710122494411838525199469397919313750517247419528164369353262552675284758045251255862005726713997508265143924191884232628084581761153384961043962033408328013515534111051301513301779095195379009958349509438893802742738226595509466101291729541031980030314849710863936328338972392825485225265407132830813781303342179516447383963559631729990793553184447025194173649062567815824575906880549236715068106215697264279262330128638601415072522917733135901090840762710042719427170282994419224967843500790928942537809668270252338245774681046922818400117978305314726270438223345759434431211111497954545211379203819977398857571540003547246381740163208356409927005565955639783786387122971117216996067355850430783310204765964750986359592674029007789650586499684607360276880968745024441883116781499475753499774323361025152090928074954853540495801189386958103322728745129546088936574718322453850838418539396386240769021159006362084380276912660300198026693293613413946574434834958098456481929135217104764184312213908150415023679292435973969651868483831279370927306283376130352910036768928225958876932824020207633357780748360108314516685490457832122520520976279944268509884041409393874461249729411975739004637878654016772055433270627603538291555350972091018282766291206382177003551947143046801820336895170005031530054994930418263764454390220573912700863814651403616046298927425506529853452032608447315712910845758752371884850113344375528273473100073346252714186675558155755312970232282944035549618622188716990194485739092596641826207851089714135977635699589924539171593105818898894248881176542365395146260675423451421009529534195793773937356676111810427967318630376789503102484083262251628807655084456662362659064182675738738021000254257547449724647731842660931566310188248988043698408993069584532302597513342886362186250211692250110491789565536121694113926801126057019502106236225255267758764718130324979019200505274222644348256169250351384178681841464397282032240918770992806736387428052604437120783393844643331574868297866157115993966088783966799498113185394610454526451653469460483704170153931467958935261939275801308016731676446974257635106270910942571020790615144101605064309679401596382157547244760794241212306712745031483459043647386690425080650328905487422551312663795478461420887005664870032886176702219728703437214173188006206423124167381924230254928537513822447096745299882572983346340227985980417181276904116808696747881644751039603823510819059770457678965056099196436326839314502354233658243451509928726953490838384003318868485413584796433907234829071214703834861662186996555587891772531169215074935017373750181939819092792149871005864212735540999926620435307300817983495439755947488745664676335982967309087963128236837273387146697858876290047009664893744621025499331046284799288379552335050902629121276741807610473901303784565962307046613440778386207315456250174908303021378719742547087494408331226422074140932451893120504104608956021304379779868119422082028762825002651854059458067125734265236006202267774618347333232323367583176127472411552328427440644285299769164183977491628574768489636543910590853706700843731883431168947930512312292935586408807533376372706578471870580614499619302268119053662435431276673318665045045550939930412649246374548063426183727206656457529327531803136339023904339835396585203473454218155041284719748640038846805738684150771390526813870129353581945978201855694409810441488595519572560534497754792805918151267830301982378028175629064539253614243759176093679201661855987556042039154228393935894312018659656514226235965349013508215264574795201888691978073788337472222810432030894589605423652969196246442827203351452227314120539836947997677626275339197940517365430047012681509693445200619961196201759234421104641808580354200423959367165507184335248755608982715939626914834515414883423902240824391331082680644705410862812220408500495044449872547845562398258197158009586432906625640869833841747984296731206364580512032084732662733534722582701050431167029767403027559795819177113473947160308887270842701696498430964629344594116533717575813590085384574821654697501755834156364329807807084725054851122553052475308096843919810376688571216437834297758988832364703879268071276045589084074981282689019428421286470606317842478694155036522851983069296251578374647536320574146418381834499278297037109344316678842489816625671300657627985277056154729930228911686945960714273097029063194680753172204140109112769976805121325058357473656920396341571278830920038424229457326240761210066608362916499477840326992557294697462365591635317557088640467504678556420405991143546000063398201292916431053475078350140724942178956829924105245458397802885790746441634982665391887219924784996606332113856151481215611007013827076696672354211527425380138554471676292017205813514509223875190693657947338575670923745127530195505194031027156342128047994891410231788971692762855066232445296204388753489059916247928947424329297871591224821468988593152373974842250130118504967175763158511065274828281816359393884786705464160584150543556024814295245055261994354146393005472596360689857926307285729356033855543216116836821075419474081573022124832598490540416933716915511041833965359496400500128652691027635950645776568244106547413809833878287406468448370562182891489101049470465573506882338322517959998472676488181408402053961085221875962350822628030142682032803211956938314900070521532858728326882896025679591928811889447861300195721275245356185462591026391039533362748823120395305637816834734776895653533006317942989455562536635146749942279650134070916780493061497957475721588710636238640384446770897033002847105668845779895129673601396325861514565930833318842477685683685263231640139277993653188732553553532339243577012021149349462856598796853674405639521291286712436580731786523846092906120415296395416719893404461657730524756893870879009957879546544579216759561767436468070373836342813913847658540434408496338847152909242368741996372927438014833534244525849313367749012394470989014152755418771166341579982174524007639840737388441905222078878329447922500408423904249867120694605453025967652352625230314278753437136077993103255415304934802991121282091031866531994722914485282641640512023524490783927704224718569999717372326808430238549333945458804624367338879186637363500952817006850359146771466373415870681475977645807541345706192398857754191259614989626406060805574037237536588100003752096276857757417146849032312737233403003199663150032240327551292782272588571172342925355113120818408844794035028728685101478634765800463630443267882249680168972033939863288793277577750932410720607493855347514673797739392978097260646602959909429741113248574909321425830844415921684721886397296256568456271644712434919037037634721940499749484760672077463673307478971423159477703979570115970751015162306512410383373022284749295107994703172929915302545165439945894290385484700301282524998829002928385878190326737143277562147128195711093403358585104268079667999363298045998611745163144818892678432080950213167683212159645311572220573247419457598040166167829433394154000227417235876386847904493282289284853071143108428816457747114894109358416715714238372022576491750885886717325956143260586820416588659590939257495887485767741108998562501655050052499956196466924994124630800628917770347070772659243578528429351541295278333778695559472914981351689976012319736338099430227381826711119929599088954285098709214815938172570137031559105668789367421769700265719954199230320761874019630358961453290020657654407629547226046009607174419271293005310241560659401930127610766796201936712624925688175795335871464234924862222177631907598894372003685460591618149828949218479851511524271841132981234599549885551224661268105952904366922326191613518985512982435347081643953909346689190979071344463577097630912642132019040909629576231047172813102677245382229193755186632258255825084365255566719531107934936208654484550280463668185287390093083586289469877469223207631276880783763078371036313030439684818165670247486947027376961915344546110125700501569197128631845423318839793776243546193082581529928836328738095074880436772095494044063572426432284442801740767245225047614600922556756766062108468796428576802857897438607087437605723944176409360060604588472585310546807367527007655826234378284209188383703862772437461091717257636133578674258466225823416258531145340777374010393873907498188640571727873970888331330529462294706848949789117893604246305008478838357080030715351134314559394852794873115576950586291097620845071219779861609420846582869330217885746669934777130950275477941029670953805750566529811074636392307170110420822468195807405337941317277581371375906611252482587097536163742454644334702752605198413318570735023587328185685371745970884685694260933006463338578678005739354568003200238576623504543231105809066558099187300210045345661613216387791329569468096445895727019174038851611138450837111017113744259405181114529502928795771815748875013562414510458207773552118568968155827839987527535232765283117963194850402351576295131814758071118581902270472794783049054341546889586454757324165002217436283309195693299954473722031712880696450500922109743905300229466940337917619459229524851648620139778124851942122059480477422716726926843993038091033972207411589587882259173784167435732336483516739219650320596885590097384911169155092139895007445928331814651993549484414417570943801133088860324348915955929417343032176243055067956855860155988561768874256519166130177023339547804410816894173199074057157713474015661152022427961703994975758058609226352489178536273279160823975800782298854043905014036359016071007743444132445072104190801646716325321578443767706380368314228991281701941358298129412363860707685259727951664167370746292569405381812261314371042175920722534507414427797851578765287923739849234839673015560515702765974708512024337732695150669328346225203055128154771913785020250363121341432578761023205916117426717310606934395692904322650617544336939514673785800286480510995418380432001524092548165505385899355083716223838380479827066336454764751566301464517439608933223132803565299033081129469545833269570091594376255713962145228202621870203985019355451294988122662016536750097988824830967852724825512514598560110898146731330270966082964639025598548668629962650843958877080291583376868460139888863863727007141852539166683299072056125675993174267920426510929972922693550668682431271289394298120393356193154498581639543338035632519644218892114898016676959886551484714749887151983339326432592890278736131259717935315665391179451520746245243602778450804466609717668788004167267041850572694754962503663880107981753283585955007420778837181516922117603263579391322198262671630185058698021112852081971989168288315208696558959720144260964069335422192305235805982564347502776207967985937765038583108987851912382767509087997639248625976998354501934652654300478915721712355886571533035732911019137825391976490701972876585746392301626477420571844152476308119817909367378677741426546616639881326039947881931876837093953709096072329324010201691049685003006315613920534122459855184770866053942047320529565782902671870727074070704202188118394290522941197058564535585327020021704820059171876340499106501545677821500781448830220040108091259807684788711595627893613339152576385719344631003107917777962138246139506155297987520858102108096889305208373270192498336340926567078074361755415697958804654139204976189450471395399376462372616595581765347925568866123120878231839140636976219440314008854960310604229798959413244912500198134632418518885496662386897138712361949361643464704312109071187231150961973625487961822174563805748420149720487193339442026692593410018993519354663101731925447044249302423626303329305633455475963683280870322610008704711030594266973982990837647820152608560243033143920717098903820336047715448338220041929167616564369773134211341157515226445607205977817303500367429507555703315955558777811364858621122503201517897335476593697668085035748335455478931676064281668601611894996629357481075607360024051819460462767273488634019921194767185173748318510453408390542850548376710776086609726249682464916724063805413254127354374860036532503190597690358215126243818366023716017499998266772863253885257624578103905768130718868843950590257821743882498907858379201039056331062626890162230681996855162600807246371674859258105571534401437225071852818439817237019435429972329732962499513874998622731061870350670524321883199708889460612972665927637185454119549149792663996324041683858771637183035437590380368123438634167200440280088701420819878158893895713616807006598647405576018712226091419573428691904786794789623960242533880399138223954017827440640906344507706339912699758606330313555205619905541438251107484577084235472682739853247130482261550502774909104360719806744537109541489735850266387574411374731816314333568115770997785883779963283217905756709879342628875826015564905016654993034595685964730906406097024545096344628303664448819840618236022994881779142450420463258101132460424790623970490638130972025394360395385369274091093200845554839310422481761456780214604935299676393164284284807862615075418334275702860639606156645295078586104831069577816788422213413687516451332050395807388409985141337141693023631299364533268154355923036977370681389102959441841877994886259736771627647433463786531550837194941552382572630143030090534231018460841444305423427649265825236550208140420307129724653234959809454558442584420371166044383189370447539662901632657493071026562270126109477116223826560883026322057969302541015165937455792748868449719737772356882687416860803971586703811970063792510543655311601518281270204684313565247045279474065569464666266517401323620841170960868034414134678961484918250897552885615654750826385274526585057878880480727697712873770298999806809696932412381564167047085084961512372796734706488482667334451145658810035020839049486686185002195661999742448507891735890980712357057299269931033179031684634294514251622687973957275322388207167357900215713830690610727136573098425074647249769343255936935604401310906581417214605066325409995794082867440207716214796560023379090868802742249146807309693246710152099200268045742690463278085129840975238711965682059076267162747916127821389280692838015548619179706298081069464304957117563479890764528415772357737058626406927668471470994660713300592616604265002335237521909401345688235255283032919124114563893769322286864011880806636868214026665396981411604868747994937177687798311522317552541781283185736585639593524785218168428048482770479833106188348022336387078990552951792958396160034126771645589973829251460532630241378253832079513363122912313725341963777161823232444010472727341477936898265001661704878687650171194381125641589094647477150076413463386342867116862846193978493602263972695916926745049616063754048433192113326517766397422169948352144325487462410761757494092188533682731704757316138048172975421833928973362880919901892431034645592225592459573737776569566468494990401421561831764240034761139471417096748631774579929817686577294679465843830858785255496420385159763453004739241330404671301348683911466474337637817971486546738029248054734133086607552173351828589576034360684665692338342987228320887781779419224566504167561806101660592912785639181615940773180856223224162306901313602133039797969880039357212298661765858700160867445100907612948442136538448017750752785303867899956837963408353081354325869731585517657429567039606657276576469383624464172428550456003978314522819362248060687137192301836267556799304180191852159974742859244609153145499110595830302083849661900896371383270411757807069747794942207578918481546223829523576812005576188462802392043270157041651989911452803039725693735969783038223834566582144536666487361485592872666125072224901682418225938416053855115289991645642001064299521980604893646820192911655865146599577986798639186478166433514807306874603159094054590547186634179066757042017039974939977423133061772658613723960017392071591057648118567681206055822717880915156032286967670354923235778795654444342308724209986263450904962968020768921706438535688832268818454966194610923004440124487590704345182976072763879000173797488414969471175381630002408114727452282232791622441587014613295538366371392748967072787561603388651502849657409507253440125918770616600384776045341165866054771739344191099215661511901621896531715725143956017194375427078240383705264929768924542331645775757897195461862402997436263689739824293473092801814728279693471453534355333273520313747636857176193730915422479427183379452866644746403960520369495329415875360768990116747865341565592396633855938248490274675104863215741259036334152114909916483929875344640829240387308504815332959929913185013219338981137912988860686296208731444466547836043252147207701912395292246187954988128228126203599269929306112157196871998582394317183973213088214884333763812015956934036189169013362921796081771909109968460832012769051952162014088076733242138023144911229919013291860540591527161527297017777004685405343927535157638005656992429815826205271931377505360635045287672119030721033619795925294687521380837486724727140235352794410628870733321106416000808702229327141159780023722311318035400562329039597783661868854239842876579283515218630915466450315827534969495203744165405905257123692601007174518231001502317187006752657874684195017182187861624302841067217406290708373440989594460635133666430528000031401789069067558256148925962017500570899765398104913844094969183782744603211524476060224173181246696495031457044117624256904431943180878252745378412917212846049046308919492790719979926231455161623195917895209399775050771377085164214327267759181632371163090102555904624831996410818846188047933355686071096926700185881250922906799025568014590475281520800247308277463864676099422498736178321319028200543078006304789623505071316239601409182722118970319344572284189775932871382170492897952995806801590717616055510422523365713933106367955672757414948885778107093932875564920815718149774267702320075106912375242399473999232672300064775407925367590380701112823313315692905141799538864086289463805426011878607206012346919352772567020365649841843967037762479387286519948889112413723897047933390732128256686215553573705657306666534844316402407053096812020581270694526210677770161784934860216010700067675329015538756086181597092419111717536478789907458566287307258253538768430769353787328424236280422313098080696854247686973772400007135785168058679154541001278278517998438183250202133549776110162198926843641926026856879918603079496078098840442665065921951593593988221702540301112128780833589389007743552828697909816449999424504582387707289728507100001356953664999869162597823906403399642871514594860941699681014266164881724752146022683743078056818993418732878509260940106937734650098099807279385927163965043053900485132282927847751659131604640503723448600560553321572277224876172758571782480617284719554574430551071739102658124621323951166636624235663290671475641600149570203788549274984982776413638237448305694711649059083026800568568552001836705614108855659344595950480154188812664058809128301525542906406178967454882091070604954857357011763084446826568238558896743368794724427998191176845912388725065282777035950344783921854415294848790626852349282074008345362712406701234041737121318355595111052570002849260426215230638397310045562252286183539348231590028712641006993289087496461503414708398960517850818444892199068188242715707123353123297156367563799616491629705936873242711333286609923020686004570832401283398807363102107717147310816188210493966079148259059996903020339304703116200255599785243002163802365928582152220878234605787956875765459716026146314864915125416213410727475015876057941045631437514854137495575463199062185354096719082771318419252108901657422250010419999118045370494000147353787351626539932812511235814956927159028941476041105464308348712097861218656075086054401666529905862245404202247429125976052185873316455942142198872269015903784028547143725578713056008392972854561164025498349812448380830731587399867858552244058960297398894225057519150344113316008938804242241617380396627572013509953988249505544339197894053144098799882868000751200748700109449864473190862461720129373451906727871310218359592849371703090000736516101649407695315703495672915377477704755938907634642324545772341154676189979614742966785523768452358924165270041401830398243961119503826346110853618078165461833859659727796186653961475670720278617511668845096536377399880879147360740707877072684979507740511132420377041585233778822014958854414130605507041395004835516073638855620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/2018/republic/10-12_d1/pagini/tests/39_pattern.txt b/2018/republic/10-12_d1/pagini/tests/39_pattern.txt new file mode 100644 index 0000000..b975f19 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/39_pattern.txt @@ -0,0 +1 @@ +22551 diff --git a/2018/republic/10-12_d1/pagini/tests/40_input.txt b/2018/republic/10-12_d1/pagini/tests/40_input.txt new file mode 100644 index 0000000..6b44df6 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/40_input.txt @@ -0,0 +1 @@ +1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/2018/republic/10-12_d1/pagini/tests/40_pattern.txt b/2018/republic/10-12_d1/pagini/tests/40_pattern.txt new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/40_pattern.txt @@ -0,0 +1 @@ +0 diff --git a/2018/republic/10-12_d1/pagini/tests/41_input.txt b/2018/republic/10-12_d1/pagini/tests/41_input.txt new file mode 100644 index 0000000..6dcbf9a --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/41_input.txt @@ -0,0 +1 @@ +9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 diff --git a/2018/republic/10-12_d1/pagini/tests/41_pattern.txt b/2018/republic/10-12_d1/pagini/tests/41_pattern.txt new file mode 100644 index 0000000..90ef1ea --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/41_pattern.txt @@ -0,0 +1 @@ +99999 diff --git a/2018/republic/10-12_d1/pagini/tests/42_input.txt b/2018/republic/10-12_d1/pagini/tests/42_input.txt new file mode 100644 index 0000000..1bdcc4f --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/42_input.txt @@ -0,0 +1 @@ +100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 diff --git a/2018/republic/10-12_d1/pagini/tests/42_pattern.txt b/2018/republic/10-12_d1/pagini/tests/42_pattern.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/42_pattern.txt @@ -0,0 +1 @@ +1 diff --git a/2018/republic/10-12_d1/pagini/tests/43_input.txt b/2018/republic/10-12_d1/pagini/tests/43_input.txt new file mode 100644 index 0000000..a6e47c6 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/43_input.txt @@ -0,0 +1 @@ +999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/2018/republic/10-12_d1/pagini/tests/43_pattern.txt b/2018/republic/10-12_d1/pagini/tests/43_pattern.txt new file mode 100644 index 0000000..de84858 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/43_pattern.txt @@ -0,0 +1 @@ +99998 diff --git a/2018/republic/10-12_d1/pagini/tests/44_input.txt b/2018/republic/10-12_d1/pagini/tests/44_input.txt new file mode 100644 index 0000000..c6146c7 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/44_input.txt @@ -0,0 +1 @@ +2108998658083080877967676823296700385767623780446316186738285317237203851370624415729418719144976053260258077676359991268137048574595421489041091639939563978261724043032730783291621209813899983912849654312036817961585749414615642981431809625454259032531390914075472023310616561580355492753650355968978600236117327407397303497066381833072659724061245489099704832834957158183371037736091930150750041436725951093010280396230218534657828513413843631452064333080189979065864512832369842780027152376122021395081816104595556296159505440420076426513174931411456797807009840092745689045962915733058933015081443609283872233735213379168404318937543885900911087693052474248359549669401807841558830173770866731579965408922103781399749513588043231739651650758780993491077057625717322883667241979006355895212034200766334153260121571140942421835911953178168171378295096370934403313251771755013424304511579046665068147624126181251936047496195544946641236359140780040762360023081825259317524705748021840965013250218397477325772859603996946328595243614219750550459443460864362619336746212454627470452880556379287674428789764485346620696483949878359506313463060628763683638280931303490215682859118224708675546005034854058774497800458702310820734545302583029275054329437603632492154764084615639970520995997379453805849483530313125203081942009410768416597610806999997646370862683501427289993610021591808874964877581562189671580620711662840366150703753161421157859998128028832835152725637888934822214497656451900745573041651548601007322626768304758846585487083802922861538335212894595159391321389357801045269800323316108296686008264279128492054421756145648177272638580768788244070120248387066510898666213171822269475835658520493740380201190011928635050934013736718567248165303090301839871785941006112900014176617525682838082416513639741361176078260688488303127206354415149087251398211794027328266703616624989961841457338869366307109608410435155941135122581805487930630348352615807669639414495734821237832804397164032016516005876823384577019989995513313420717148940239778321953480746582607416619910895604380565611868249591750073849171379576474199713462899593578670307785768038377365267294579901747074274974791631590481302061580260535325056531806123222120247609744277315039787464577875518390387477659407251278189221230669344434539547508624526675884624618470428801061253032007962345695300067869509403134858048930960311501389724553477346293940665607367878125607575795607164234663511822137074879207383844410492286802846906792803754239033045276248216540744868755204765602938071410663601420688362859647003462362185827236504255995225910734397080713812050546133295721780938937639322562160433502323741041832059567479063009824722302101251320212132768342531058322682909305860720433031364157992925648598495303899926911267509829993045360334422679694217832508487639190923201785823860221163209741714324436712790821014684095861690742679121830845038488860296830876675063062092216110240110283769102713140619983482314865238100409743474397946912307556944016817362160160848073485473496033198477475443744275701279753800843895949979194800338179257991812809953894539040365340323568476849324556628306113080925932777100900380453669278709633584418201541992515815740470563078616272373068877276292732897381527835372178230228622445656185453659378545640640605763486904667805644767381749565769830154633805906573709452701403854297159276371257965285586494128729883415706945753894384210777233767957590035846270758670656099148368249041176838497661818095747419585430276363091265411528508093261372843399221165335600564958201128410917468372344262039632262996955100712093761046935936060120563711659167784749454582703489606530758462113898587708661986279479785830303697388961752752168022242032531564763706577820570600519731956902377645457551334607479065421172690677817244475539331497377018104844119394299966780962797058547218998540154472197255837116042716522078494403621115404831967122139450666812255412254629327519149829629684745707962627507843793236962477181177671879760694725008573530635462810638937185491777505449714140962638844708825157913993409883169461450135561043460419441180392656772455539223626826796740860523074089797939338060751933451862568606505049691948767813367425775073691402788445113486895453387229882726435503402223547722316375258172072490975493373993071881226613949085555337138015087264280831600986272666364810366098695931744997068407688715578716412218753718786788807777123300013138961927905812318218412549940976276506931927085815837202121504538592570897490886468847871733794110366430664386008171531517484251806640627993847204830476801454415703209961221509329526756691832566756762000408555451974698615680976157293626116779908152504566273570419168385688394120422933076981447007267273136271578705026658783442400190390657272292914360074069580886674014517839089171980606750489676423702096324208852563274134741357344679770376053483832430947244922877853048154323126087494495898588249216416099047134630371923860501680641672092164864064202431266588811768272496006688614298889416509889146579693813239196033115716794323276436518374125862069774296135101847382514429545697382494658986578188655482557785939757883770910763645944746631463654272906212509854473250052944243944766499505677526711080621232086172464266480434101246482699966835520419226057307151615477594012672780295475146189826069846615910797200715824094927312275012409061785680078332704377992498807185511563690215818474554499769976508751485832609221628010971232844415737701235330901613233581886811269359738383618397604522145618344864497750780089769845006111277016041432195633714473368171548201531014189952392675133090520176312286826100411985817781253358723048206684732940921181075668311257751812297358942074616853651440422649140750168981506769634564391782896449149174815725543210537867779212797586996471577934198862490521286014459518107758367298608792519430428168236137213282871484553674604224553893996267997342880838620906469080515605534883494235402613843828411993993984038780798813679340423271630426203707023079592441709102604426620193296721061513514333673254333943230814573170150014331598468378682059689686707354054107592161781133575525320536156287901934983042685516056293690178284989591718393757058415071832178948597939403448129593530647877356348840026837623400270042198441445226360932355070507458476857073757198104631837023081893934771364633243379616388048018338132188771537636971415311229839689960788846276884799232514521954578477859585240154433560737301825261374635708023847247549129924286562629679563831089176903655853278849173076558168233212616495517544738358667724380450310455516416976550990767516340298739212383885072143840433847859224124039163929164384388580311942432078413964848669192717033649952580464706504928082128104573441128343679571761424364621944835359043539010845968661824927028583627554596282410482962593273118894913227804169899920079789117575976525031847079778548790289735182613604204536653473513431038123846203966042425034855781708083414933869786826212695694626383228053821340087359971591278036404965020960537854736787957545679790032253165369741584686796302146392978697732102828442191248575742618742927190410987703351652492934981868025071496099620467468711924368893113707617161658756814562920959298612020765364334527439067026225420317568294299676172315454255545499023903822130063463124445408432827804733463762539789009428383522744494150248048288707368140866267682868363751535127749800306304401104156137337457409234468918681735848672687943109054433209785159383152253461058866622395662869519690397833253949255345220133640369252837950220946590673114726521779610335467625739750888918587529475483031857977751623371097034197803722727121056102974639608758170768005425596292411185367339558214101988357193927364019492999850300857236364564582439985765452072434205022836493742249661211172400449125858081527529454202500892369734999903481200115770329346333592498199162400859240594691263725970761910046910844766911433055841160129158612084090997098068969659857100760967849821827277754684892832445312924405417307121056728112590430845246894700308716283890285485439084584097000055440844056017541752778488191410122970635837593233522558638563679859098711192126062954643250519620276876717167814086499811751467961130443466027749180477246879266455893740212196716863925969885688426768547128960585450028226131055414494615490337437054479284949474852870320840608409887703813132419476219800820444143910594327073646475385755133142472582577894090453051244811992468816308423098418504762689314495884874133845189070584440282869023016158001178445523293012723191440190846205951328597013002096142622961681649250134403981439819544028803761019006460373612550135631888104660210389781687144267343131165423788096258756676683071378208160463324517623554848963560694018946492035777774366670717853916902166097115066695265751437000229813197832761600006999963776117394377192974096466020577396617547328319187576165878013154419866544833958508382612690638457662218798987409607247823772844453996297037342195864426541703616349251789059264015828655831523456286378764891063775422970140314888144994066705410835029487687342764748220869312600425967296276703206006058352340181822179291075332725360842330351109536423430576888059360915763505973064876646222138859066269829141436051510403182557295379783727229820167058314257962311233933388180430272276411912305661763631426336074384142662070677713665993441517500991430647431885902362119140095209506112405742439123717497095085106301950108725718138217856541316560714144627509056010273954824760656120709077792283603079872411157178266098744108099283696625761286019728255771660200201103122818535113908297447200251081704777257484172039889631226856360811508417165994819186111117896026547366951859941403890470408181926142124288646786722500722260394864664816761965647247389318396377908462475189155800082303835897986927337313055110178074396412512302517794378799303830840521815534527407697638599761252704337859532106560911376402251588203043814061465656169102050203404896020209219832265487597987822464876134445761987051301612075475614614624931688405974406917911505323834145204180472817488754192864348742990247659427778045847492612067023489243834678027437206047762212286455581619554002923496978874638539500131875861732768096814598380812513343866491125246886073959129165966743009417039495335943225245555496118610404964620112033976162522700778685112101365869103390951578527925727764404610676603601338841566442358838060539517492003560459604002496454578984586253772526948156460714841253595328482486800845246139019743406519410848008736053772646355250600555961459080956885779004333253912079147885561723875423295415925741228024770671588275765863731216478535838119071067295529112528711041130177424234435461582333988748944484986222881798991227485450720229609390042754911001269413734109779880898698752659490926438667514983600907885956009314419856105375034890115071711163853914338637272763678979759293199000589168329059557477389906879899363140170189902467511356671938678930040338269618000511168616256415439204794671169152332713964346020367443653997341359465014277311498242718585495786006669680120070362249759268107855891337542061354586992831406111539164687305451647153094698465515702943524788367566960062651797219096738011408707898715475569276345829087956881917929186938786581324270777517535641824803817910127061098773837876772214437896303667986824887376743470288292981813580247646046333902506805885236839922367574657571216840632868345874733160413183739568994259379089455299990506270131082633340847019076317756653184183785524227273481695040032279848763742397353313374537856514184359091984755220858467678777173937279110740264563009984492110036806378228482116143776355475162292896219331679624839664177849636223296873607098511338352555917270903942758902530108013344308028602469191484819154768001852340182402090229888038169874999132709991662563728708291997560475798708738016710917774445028505782320984924968562356758706114533620778093530400893844298737150678678605115592708538693760386624167585353592072923973749285955688052401676279883158501835732707190989232636974862930291404449802023254787496217047036782285514585616756435457700875860548348763397092092126910613594576296311684902061393696835264830493083411187961529620513110500848668096168663834650649076105888418001476369411772258510725413489620885331123428127954200128577980031024467387500280225595757644369561837280634890785217598111267350625400123853156995686473656779531875369364748079012257641316609899297212700708819481435201232921821843802263321829393383401228986824839686216400001650324338570669065796502948999944210650887335827496906046177082113438632426541240207910584448129568214596465897916771042100083280150588336548540396654112798467301925718771427709211969841169793425730158323960294005207620651963380665238719903289164190052670265192800348354477060132909007690580655417459372792608803864742354187064242085057787498589799856758640401148583004932069808038951817231621624907972830492740331246751123902403812663664590557643888573435310386321025085456815641304663136948045956620974895401791102677045247489905402287183886193155398932987040798833655555400955212658846838401434751881584152082016941163739205252404219147273814070143898213557517041161693453967800758028833161908831700491801178171236566853890117666082804843673819508099584279160692710629397711219917017404770702167270986377858316469348257327069469661904112676917285838201354635433933703084074132364909071346644389815629579078185323122095384666540801968777777874536092535872439474484086794977755771266966524221786393241867732728125833159474917991261911103037061761574436993222877594588159660803879521126080887950336010282745114426028561115200989127314598786499462530013291367220697824575787962598159068091744341701151582957185138448776320834069361872806945085634921921380869895967587794314665143190182537774179858345843454586238564251783804681555228819857921386656770677224399573325062754664323279040262989027113242947843013508744286727617494731854871370482269869320352700502273484091532748388245580470416652369084970064800457108291879186130933955213240810804386014784955155959108208070130694358852965813854602439881490895642371771913346012867575327484580972253095371487750673114722734687393042419689313724071619710193400066340753049351110202064337037268922240608079783665901234385308793816100632389432388970464906041561152531687213737958641640928081712333433896423255463407629229959749249616067769039059343969995409863054631939574099101975147889005416394636279928807996475043339970103280960311669141871276009360303087458870650040234705234618486387787257860647126571926133300750701324582905646961826644693262255580488431609628863025170749540216816758111103822608542443899305448169353312189747051609875415914593259404123697601662355465768969336700411982570781324671453873590778746499146703365717991681233587610533221839539326808574224838550090608107045453581041231322669013700551393634994393800654651482193266094579659930585128487202296232578012869365211118602541785458626509308577604428083570599507941256344348728832532287223542830961242048822429010284826251604368716481945193629113677243044638411976475778538378344274989947623750820936434889767899293065617775365156311050924202079016527438131090479764385863633915211571797650209267687503003999890445980981341593394472518682751350077913001182676144949848908994777035760115907294051465334986192430912716604550579796976643110046210324183254433606460635353381987347837053856246973734514031054335726820280853269983969179904720208542943086645028198881960867471529516875816316722499962313603027564207689503097410122458496572239587934369884428085348101788557321205493353698265242986295590602051765976196116316757932935674103492952376690012891178321503181997696471424228192442948914157092218786378212470921362653913245556979462222538195063693341242218780484676104997181816072330997738049149925109997242997643386675016227373632493009884247696089201650318833489493591211337201534677713961748745146366187459519388074204287847540007410647097140621223415752798082267518000366147681470989119307245734133793122702824611362990443365893991291957192914097229984290949633189080819138450892443207597616016164229769836269471741115677775127830275385331998758234404594828499912552134233250283398952033672130293040510523624741149983235260504577957004990332206147633507298415692027498984608076770250710746722041436161546810239303670721754841430417642086263136427454864105253784495288474894976838941452672032908936997243302021375253591271029129977040543436786989792014688993761298900455198368770080847887978338364993940355082736625810127577602141143337184981461983294287323060988795880792883448704152819597047541186378732949400396843589945778895867684507657407023806800380198789625122059364924143809669263058254223795997467242616413300598795459851080141427021672326755533827467141606155054508198529578889122680055673402749099945059082687677664183554687318866263644981425315921019872016476973157224472273893358932936287507605362932075363207227012420199296214132043473691722876398507129299426619777249740453248088430935255126369107246086831673262350757638619883711703926932530987911310200869082901789069736539518751919275169897138841672105745449311145657598914016861122928142542864077347253618917291224150069128432978981736138501184717867491695166375933849090867264418749209900761368397840143065711896414329718350467917784297483238687912040860981391327396760570261133946784003261273913753721046158315009117359641524391344082844219814864460037495321614493861829607065283682254437219914340302722868381533423360738511690187858994309091686784820395393021637058586069524541338913219561416050229887642262758088251557408901501591806579386942658299062349292439825301576254018327962617049071227810467440916917425686665889141571736559150915259229258743895922834514953638375542989690371955411520734921980967310909537127986065840001303861511584604262145181819197850573018855430570036633087062083137696931711838599065650208561380493650735458916887266058485497191263138269668684368545992270154853818639127925236199032316736314033763219050562658142445584038563542665070128278473415025315043130597076624118278052673727004830604410096693801763964686127774599920123078526021638537558073532360432878235445691310419814438189948042320091320369431484997230843565061149754343548424132030851187146503297215470338866531260897457285583276270438451904545632965257068746087011969289304583139481131985711068468935489051692659490847720786554040135610866452633038391858762921519041690609815414164076406646345366343119082778895441485431956469675392404314483409440464885281627973984868792240037757416694607393605964404048108391645014487734980759065654675178374153213617417626979991568309402712607091495605477700631297809076093850696265028438001079990209134982154988700780432153958131991787481688243644006772127611887117820156886126397683092475490550841628350515424008915467567876471045020799526372777635772167865214839505122808157179949185827798897219184399801302125141657491729083486743697725215399431515098385995795514681515435465213934972157951272959410862622453086639398839007966428085683010182769129575134720360607632171637006040822708936345116756933876995285431207977506328630147338257305991348543583081407643666393855773731134199791056735651533945132277833312683408497245364441744745034221528432273446971146768113117753609406057691197661302765810612870129970928467416470019004791409089805853339951615610163449579900069991685716602069357768699632494358541755884310594635548748197138432629234664536070527982967704685907494400530285198240256593305056078846206243168077343016358784793696579354268547367186761085678416316485522689916216718320181087061216569935605695901645190326266251291833095016075438298016349915549843640209991056277691947740768936797659509937529311054928033535351795672454276649492220339357549615501934133866761015504258288691912624878824724860639759388827430445166258704966967338143733435572946305884975232381704637587383804080769505558949457271561414671220084771224649711815355070456442575972410313342200379006060910252181929863048473465747284379569429327046253114302834395631358081385538298792395291489960474208861775708846436310702673633508323459380837903054831363320716583242548536337401931846757359592530443437138421914203309594415906204428107963198354909657686073162305365542121818224729818269357764026028001993294433449378587590553399433666884351711690347034184007255083098728897164960659451520855612604401482013420962645554417284264059979908215025077937922731603579698887996857918162899703183781895437879486040752545570880744420530403884130210808142030537667159944930344257923759019964593405236863543641336538903816094106586241302882473796885263594158507224755612016203034432631119728146729042901205059010027506199111351633770336330590991236718181908265992892440890169183835110298612211714287934557178578603569064658293719787553583212535800143530156350504187378285623908056360114397614668768259913576952176601961318229417794848519010450905983991405490207458894018534384705068861408512707617599113369404141773040713248513434731398460276920975224830527262194526560280303077702629284788032500818639587390250757412515885474206723525601149665100384802717277492139681376386959058269373595340870812202980943678256641995389124296903617947269237228768853435604102817693475488772082436653453752112134494673982263101889358514194648719383817249911093525877790833715672734309281940330979176935926363608011927920132804350523336690903435819070957400866463355665306709307329147931743523569839770400756122987211480611927611729279633222960468625930211461976837619857524840836194464058358006510268827530762803607818148242887546483285764556255510099564384255771692606323129391488619767136437473810759759219804527301605807404560432197600662919559773318790082750303424271644472080680917309153505096525189153097381765041325010067294145934264455320609078559183158701376892942011705630740734144878255167141430930982946764710893442426876595540694682134251354285912857961544008602484161307088085410776964789828228252819011947728456956258589040990455019293182756824165290205387286827770693630775275276685851140361836269336101840307215151482130780923464509208207153840587583380744991217874514933990653513268700281620377157678206507378493345549162708383519321851672456719246686488108699562240780069096803499494384058206589343545566405776777044974193939141448110838675645708645578458971034269385349937913067051317368688523491433196619038791997507163982060679913876076858134039567352087905086543820117791981091310147007669134800073643960941193018069400576937254252021370951425666944893576568376478367943180021028379601890362342796206287033071052249020341219969267359641551959674505141755107892262942310245742679924171293533757520978202410929946250472059913222451490357391650021933717100318112385102785463418020614818798416331132806668086230733599418539937432787560237944939886124326175389933907041048049503126855625712662470550630509729764439712154907650467942955653628252455336272188968772638586007821163228753215712115104439267456013399882654191853394720858073516087353407096295547876757583777981794038745650559589744933314749626932379977995478754371652613802901404945627120889447554733231717264030128614873440547166637489956229855995618071695730464740893685964190520815988058083242989142507839631565973434016609042980369649572031629245680899000848568816238168990350655012167719258200503711655177041577900591403295388393087381466309351811927803164493184259117207566223544054522915505636886972212775984800448177799788006691659163969994748548016727414554991625195234705513612599229244759260520929881361170982230213530411433431869630109964875779559866305302398608704699077600890226028650937861413266130810653664465162477329677775731450574551884213002371422122974475821647637030342139990778808404424045618440732474290246849717937618369700951641116723258873940659020574558819199325105110232233988123224162384159460326229059990631287895681142449981786616436324295448973414590758518754442132407652170338782440040974936652707415950907006227585189736879638016228463316137392437377835417461413156942923693775418030838250440728518079843067351970044862600003456448963043458384008920005154122246472684150572578251182547569179500498991399234238177192774290315972504042318256760080755938204661926752290860981840100477741673098632716470312654454595429189624520360333860498713383244356960871113963427368205759748373407075588675672148173921329485868484757271557584803148589065173535104029148702006173652507995179872700259087241473852721905376359725898173178593560749221545138373136025136324015253767063972184605762869408776891984216221340139136606710743123534397533169260862469273652229059282051925909576778781217376497806000593091381096306841905142808421500156348704513428041686653143357853555386326474483065743781940477789053520532126788024837733685900294241177066113083978877947894180891852796533233997743995371481124065092882045701552520003028221794213081831244107439970221260064905856714607682639656329780772068161368598993984636801453665642613561616896006940716072329491311126500711205177770206113176215290290537954771741168610830744656480215301780293597765383953295724531357276360897154588943579503076227018160020024716191934303560834466082060976408220566863019852600947384753570327295780336145702917635636843859633111367348369890563785548608399212994447226649471865195884020556118209938057738374854800026317764105880537345584004218972339734513433615566128231200456612561535970115221989676627211229798632547968448141212938148328468097653369746735793198575206356131117390912468777718283210090497066515096023084334562104501979165653469743762415984451844674218672379772523928847245076693900110260472101269616801239950109939339292548004378237344528047923121307477520075546115120460367495779822066666377315974810085626494296100379306156388572891606281412920125582169861849494415613138655841454474996427938225053434816961327262735534767794201132010326413508562431790376735373040201349443544084294424010004961317054267294512138270706208919876031139537201647987534912237475164420705717202897606652042233666367609111462708432006411937855629632883345943320483001814353346037333994807730340556269001951137028282752277970348004801812731435604675829221005117805390494824568400683022626780198479807285233593741539073081359483890072790413804535092144084308997802239457636991379182661842308775705905381036114830194827252020482762061944716985590673243677626342368098053863091143908639800187973673334894289179571615979853089222933784817294898281002444159777184341206039584463922674167775788773876981448623499289695486672451858826281522496044872852414819506192402801173553433242378032550438594957646650287062664465283428376244455407959960943128504957576082798096307576764035326273701939698177319029082411141230597468339721981433329911972389963393705106464255602046893431655088775680482837177752563188814614737017285627994776385053201704515882213418767800282935915539281155900548132499121616901914601262407085135555320495118281638712517496951551050169575449296095650951275201986198653322926030163116749182822996962419670092136138607091834366597321586022217989384873768896071337128593485424937560675569096867668604089706356492609314293353242764929005971354360753677334980131526231837295125701872951497053737801324758222888892160706751144221894810234771926842457997066959402504653120476468576592783614563346715639250777605863888073839077627220857121915804480422577352686251349694523654721292181621065921664645259082976970013253887655611043746043370648533708359497035351161657249396851849863147601253608015511996449318911045052529311889003572703977040554086057490356082123530784007785376326520812413726639257070366974876484484939129573617187272527357546009693636686188276234735050498417072578394573659950487565350927034204629158408107813052980931247660135717305539681952300754270338210561583140164921754021341629068276282205061030226234738246282930222428600818649842538871536951104758353164460992641625772907004661141311504589661151201013270993392955428382759128256343968669120886868637465222985140660676102227691994652786924554557397245257998000654619770720470085687267553964749043533361861231336143164053287685308284587316251807758210042567876486997787692965678243677939383223557433287228930098921621053697649211537257664285910404629741739894624828489495137068110036082863058209524145616663344847387123982765402098067073719390617133096518578250609936176922902787493191514958043105624709489899643884580189586330061806909045050660163388381587387231579555094743744069932267194438777899129156737727976914036170621578161290486623327934720776266903637410114568217774897053762042257420497418142474828063975631614192098052737617485237224148882791745004009529229531733862651277794606012780093494256356324886081122338841852364694835247869198125270647151489463683023519224563680817689068457169784462041069138017815747292144056310108057785639917640641038696756669693006375494245117159300770466027255450253152026759597126824676545036599124949474136895361954567601380597369274263144049684565677742706205181651103472317085476603297516647419262572833324045454586843291506314898764141857226420906067856583814724156982682486469066893149967476390282662381307101053215945842747214726010430448170999257407224248618707093517192037381714889036671030731956001272978883560588047362937382977546469395983442465167721109703046501815552191579155962288289178654257686402230751487627126692787964925977218450284505629943829758916466505402088545897109978258359868728071967672363379425918364789246864689945516485773311135087309755834004651294370665747137042630405199940477225726374437140906503683213559305939172936856573778828135505903811947549380488869620346784257739858291933036562516296069495689523384750404925042947028668088086440058913036050772616014778609483725738409747444460829489932456529682781461525974439074076459161169986864828429921030884947223149366103876627027712036036731614773551900017884536531377434961527340018796514551365336689831757856730328060976238941080598268422835221840389291126751494481188559127769557176354560584874267840391400493515269990203335319293214958457673089008130471562614862031820440515753731671402109908037493793630349809553843762617916950017896032843255683791781906137598266951432662136102293063055957645407769189366097051158514889119128028588134515243022156181471786940943528592883541209623825913291430976282113229483938718119288442295234494844515098916892908146068294135637790950707892022889665570320713528291804028114854491555557061350869661940317701271821084791282599063332897739402401950359290011422226912689699252316583541357024880970609434609929464318696067220771924926711295778517383479061372125543962306629098395362026043751396744507453013196183020495791463958265890617759975863252042247942834393852081639789531715677291993206430972712133650002355485079354258081792681571296300185001270511783553588343034886854268457319300338202391175336244820260183428386387977275878567724994128331728831436577640215013999356644524909423003158439906426300585703719612571157997236479415846360446835997090989039608804719831996203708579599922257244321371600014429181017211465781172545384069986112873084422315799743802746475409605194240352643611580541755295655200769772596786574456752655508758572617894550151330261571548794142376162602683338277140957188323832761933314034383391426376345384864091410781185322856282004743597381672020634540598554373441645154219508856020832981475093062006145745077243924018058746668716656439276988149490872466650303834216682774470121975413196612947685311501326229124172326612038729032698290375802342777707072306405885763754578362554050804685422200210998247371293901872194449678959197871855912915284359144749402409413184312715446973279361155937632386560083287791671975937792661915094413968837056965336641028456442528019849239582264459980709899486663439792862067124534331413358383451522085019414339536693879739030911143909836624914930655741435176027313598152996179678865621133359906070188873502987790342603539653880108116693666295562893076050908234336521781637541820939703735654543739202335667964428686719039554604439625386403869920432038769771735619590354431839814407978033266945646142892917759884386972820173392905856470733661140993528493491167582921047503607230298239510866124664994430796974098124402697565976305876737563511439575802653068221131451743258494224202341564469052617282376711971716228608299442740707242931124310704632491790129498766953237637862709214437828815348550494255757403652821441030894479204222915717391441101090386265211496544461965411750731105600955067959723364601833271201706008693501453205755445398979296244740157839834723669964494691943401624558209263976897498074361102804251820960710609341127435093243664757137615135893225784634552991127485205608675714108356053117742313131762766431669694941019779262911027865902138861343590096538741245956752398880619131306074137672105055490393239227372888787950510521749586229846015667467434154122107415669450619034778410791920080327160679111974455492164099380882938072287185347575766944625997555861389415603842415464243191112638185677280033948783350376043919458643063068328679378230737523766108787675670812340661040358051473258127385067304356011766194899228838712935613236090696966711625252836482763926471293178309039257684368024768531117298480488989562269732166634208552129094285504100495931425481568533385099024955381778613330821262938211774231570454878306999498676602519485947175206205393442458006951697305181297447500899408319494929182344968109448227405169189403857806531687342411566426555263009665366982075435120768987824718523534588678242753293695918195291714029388286216864326965478601027581770625099172335112346704689076649777358598345421728037245236040812652663923770877304704193924938600369130670054535646772188639378818414683351846634365953016352649515304549631041951072741551671417276273816782731281925165194552332814063024022545033924986471701120689801241797440024367923086162952820933447443987784372586049674662972388617433733321287925225692694539972927854268787512789560280576366416214677298809270012162369027528102320919892050962683844912105342281521756313632893131063918059245089631486355695099374584782131692618944613433574056765246062103404129646684529592174642580249211278555491511290484442846550569211656182550707269107111717972682942647211852260594111611227497718784452914033155781849685231053894327145232673676277935273782399827744020420248296346911910136692135605504033394029333287457946556957308875872199768101568947802814710936710663477741987239730144847204321172982947990806870435314477787940133513192566640956869975508225185328053058796579747442220246915784797301480375797764565250309538636251797260270152650247433520360500058632213035729684176875372964389589262324200034029018391467130134977800137825936357151964913552924535207000262732170209549989638815568970156613904928661046120737413473105597472366696314231714264409781644993015585701984030200676901502912319372365260183192946575158711947620334918862137729953443691087389684541028622411720809805064830560610329563004208170390475275999552398777113644508309299169857423198099460915569261633119287642352747288171436461439827533765847638015005280717884325870754160428049220708161671681630869899802158054076594427755595074612042067647735845243345259723699456840705639370759242039242712444518270181374068875902482741133296686275483704073651685213597063049021725444847962927930031300280250606496652902918938357869610362864940231056023729950645821248110903809345127272355084143217171435399299212965656962487718980904474368502043991469556002105984646807266595350939370540185358176666899721154367276264728943098789117232694969274725208894844764201423049668666073467602341545249737988942301981747733012886382393528273442767696139472339656305883566270046297577592310224328484141814186677123551540339110005776532069409705167344661408215485624985988206850600168403904189215883193540823297628486014613316545733094623095114052139027677489377164835285037679500064910351485979280086233288949675403368017960337550454905176872811900228264603433897410424816058614117038643304811636205709494640234987610645556966721484464406377392357500912701610847052733874946165908671794912356293815451456173882686255138203903067977223400869575257980896361474133826542198820744073598343312034240690206198299147098358828866289453208379524611701188734323983439844268218761588221326363036193774476789448867787939344282743781091657089841535199670969550495878870731669028723920784397608153241892943913937315830279110812827400106704899862380354258418719379170709012800319892270930866201883723841080559316877797753735663047617615461746217880523058175344543020295725211431603709894957879540721006894503944469468076158819839323923660382169585899981590432081154123748167796419629438254307083457492632602224379397057216037438087113792889408185734072859988040024579080084226788651236985161897597666019625318679981015936442032079878633605735875025439750390092855197354468793319317909177773182402878304086423062594260369466666162739342119221430026589785902692063482759595128767802369634325192132556264025623299522304302342800020756852943091133434143697242309198182577460857513087867811182669925703554770050924683128691797056735945518726314392719303535140908490229919748753420327705233718504152643773979504639900059490715066973020397324041275577856648029739751420743757327998132144218659399934827656679212959574538982449192615505973057667168579394849123337266651393263663454430921285186194095495837857630375118197343984500658903806349146537900192724179749816310118909947251495308753696912770689887686188302196002279107134874083998778845097158178839660745373839259988109256459064227672451927457553551881728842225078584934066286537840268992004987394942219396967308589847489711984936794442381766627326867668335332004075112459504678487445578447309138528559134322982962802630772985317114469423346447760226927247886888263913714253661916834611408563974843949976095516298461449141490835673547170613259164807604603663979431261019338281939909255416499145922103477512069801394478190452071193237249641435550183816773928459293812209367392632240719012549426779914342903869301590842578281500012073392564131994308183664642854950742388884002570581480546788030422494653968745193261954491963599573663832692927659883751571592830482575120715072307946801723979694253180993507007201180487449113620393148696661271945549952978344121801002661629981050912555117566280063555286389055391085181855503235570941705559181092116882243156323085145215707657302536481195512856358153397198905198737945522655669624060504900929918902252854630180048898954983798126355451651878285987700248497580194758325522945553005065201950152503862087946140795299903328734984010624521869835085861070042684776576510373947726796388945516638279192284799911317033222790835135987551303153677408253039123562771888256011731365103675390285832584940500583065375589936174925869388601763410560861208636408480153632848530374288613483283830743552024471594134947176163840638280831330677010180361616603930332423487029366931635383684914498767924697740504588479030847857527623022034468167877701047353253351641988812916298730962528445372930283532568826560992579082252710822915999194594488618673114697339824590760372337027809326547887843420487238907545300776955179209130775118062559544710848922496951049044376422941398214746001488192400848380563696638150510162466924783950195480175738713919650289384021658849982557403619513026597943467859083284709190620017185869397142476766493803312336089719293537399726242833229344032057206576304560956239297095404458262964182065683949835713546722246450476254143751192747993509939214879787257526001093588395712777680894730533250506511224808314903402861565874986992148257204804348979638703925564605804573851596402892105826589164357841522152371622055221418089741976622771885416325762997622400296131822592056156104712117802676116784558810125741402831815070613740382014346723873967928438735873441578379985742526592551283653454905889057246645472917691336256278878452545850854389189396094013849765868214987913252844144776329873052183834860155067861519856967590936590509098945241910602015713845653566955117534179709978975271185899033157692014737154506230697888351920717544186279283632910028269878300434269035273527413784967002414990324595753902453074076157559079339154774066282753896023702881658067358936738822154134092198727330737632714646449572841112585828431359738414102909531459493249704300163823148687051404890387807225414960616430169555602454993043682512903769208392206913784040234284439410700306496378881681592816923493405058758094645214643472781546968202150049799666579530329229924816251215194333639497029872531402799722197097761316324906742560264770716265926887391723695361842652072568750515438848507572699232957992477538113701675288754366248802082587307194684918344945561232110979358500780727727735270369217654193281552419483561284588766895971684777626592673653736865251148105393305129170798140738459453367192790458466693503671504539252538043085874666647247811169533433957138859359169047037621035461233148337086305639113467095833934179374171871089960083021720121876608161911079227089359408325196122323090277526217409928117602089978511951930308510601936657803312217791856315842626107789433495187248753198660535315366620829597741283534329854802008095054300704015131884740278552215952790391004522317418386293808565595240250094938503015538211327416754577149155160313873600000574337514058252392141242162746625696286599801136786227600810780783878666067376720473140073827571435507839346079874111026192857090286236047694139186383431627567967507501868503392955475093324084106629792758680060398919360521478672431659199448439875428460336347185184052010485956920457645898614425196158413617880643544463155823715545178945377473203346942699447934888889523564158896307094441160529776928706745800742897257597130100560414721788063913244824172781737695705044353635652188107088742819871020221457869477728939196318268544168705800437142368694009098949656802962402634903004785636989262881759674378595223124214953002288819340725990266006058824104773706119871342720263839820924330194280353699528596477392404013121958186680149732813991846895295823678471262701780039071180012916926442524431150816633917462897039297895094904176715653424249509205637972108756561515716826488701417349090507316785989911205701548273747159084325041819760692663684580030456435647804335545188508373865730955997605754753532494615247974664560631877742747973563859294780110966832661487972966554148771840904431350293504026946107584989728818644597079847285836285281888725313163001950222704683789949615818491796709236402627283566026100382783867948873446105908049610542024785152598003141094521310617973427430375107470415544175632369892843368582485401340352922933077584800555722658675022953676342427404835888645086207048244038213989431975823100573474769795568885492408043208677590597197171321439061998646357229069567100136098926398268397425508752205029340158822310828620176533377623972246470368376113580318175890382032275775426318005901112419334427386263682663903358418201708288254413328862295024215039675101316171730770092415481137529465108730012557129027297698492216170521994437579647333398145753901134372307320222470493399748349402155808731407000258312251110077917540999436443936103168748980414594224255430106750666201325654952404835156381254222324460076502073592967370702374789309576567976777932772280638418100695118363398603718861381048715604711844983928930210634761805720869605900950387955048770823333421804035550957400539408746624679867017142781325090767912524271481846594841499673172210359737277324308117432260364818150929514121935495186137106646656400260835888253034492253987366959887294841903978297653328718226184519414850193633355704383754970614936518043757296164029711274822676897330807795662971891338953554988107346472964702500951676495432044306721940712650551890434774193692946898400980330616148354730998416247573484353186377190370298864243030961735386155902003869806030955438712098296407452708656312891955709822846319135270511331835912235083484056008928101444953254488426144549940400945013093379707111849615678757589864728320801151171762779992253542445818304329253357336166079693001177431654416413764023920510505446033747999095773735142143167101275468231238806986428062608543987170487883980778676579451993258398366113059591103438177641835979723056163590129031566896117031925388955833335498603719153958420166503138160559960972387520767442948728202439237252428731483370522959984611348639008043338580260492832033458691028203213717267882189460411602757615911084416151389480641952731794824160454075412335559348161196088304734966382467220537844768196510510517639721121682586999067916386401412541051158761940189798900863605127471529815212894563273577086253081746181248543350764871259737347634998576379996012004068919868900532380040624222578644692774102659696065348745801906137762052453006633385763152182285195828911114174948315738114171947011293376741033424417738348247949996006580980915612101104906046929127350316978755277402811419364095410544271009757186551341356170079962525628952267498855107669052515586036300236155819184569329890322861426927550847691819578372092888876627422789547915076339887963118714395416214150661307378875734439529683509631352770007110657328764155116666232315537761608956252488931819408998277619335514454314934057295746240901938567298602106131136107815536896221712787535497641128973012606809318374609667295221012222928375066124729807611529176782937308859169912853742146636292832046806916574769915414064428751490224878604049187412129439342099144295474265118286597428409574359650986152855909358896245432416515817506266771477566737647701150922288764599587408244648781788377134568803030618636942862874605636540162920322226037501642160959047957596684169982553179974736559712966346677986479590210085098400664635014045748135242072718029589928858465373990290064223812288433814072796671802553378980133365896173640875350096667173497408187139082853784619344761878339956396518474325582040510656330321429432428599673230752856067869901471107445217294329068205820436819144537505038023451611440944542209609351686194138524971251087798768583410460159209394682782273791158976227869653308286243406192541794776964233600332766141143242630719411955222513339204041677605157083554689227274009339224212314899326571846158161059786847714087034053235650510862000516304363743003558700201341699665102233403928043411734203212917064877668745369025338388426687333269480290618917893644448882746423622077522939045482974757788742504930089126529319192259130061719243045491081055744394596594509134541932821824522159862168894146355187498093558917427012270213328920046371660006160117542045512710679593194970929216738731895489222345619572727257938882404777373264307850121518602355417623841020233625703475067341634235753368038480112312596945664443076501611601830414571624710423423759361457101200181340389182048506866051658491114340480003221202673484936410736858675594776370650716425657369845785241737071004004917613211000173716386074346159924605215466511875634207046599459758372163074376891482107868468442092617717004652394372429705959487100118078749372702854797324829504852431542896110775816697634912467018043846770288484033482955153900926864158219925752850713516090445431737492455973249360386416267699833535981437255907250748481609968888698818253124879280963471421210934558100959925778032827867977136974266557094062312705403444743912455962067342855703494823798718077555241424673378136590120564248057872845360526977460806033225855740486658541398520900477375318527906100602653807216632503431842393308999908358166380131342524257079085364454751411327702781759646732949348782918681461395960048491442722945317886463505527665561094370755586902995116226568333683238650797420128364160002235796569548902919984938229430090422205028222830225617268810372374941494931858128891123612480094390659410102129194851924733951675822071017351032132406915583630399970493632884956472903187315341990695430675784050012712278424074414863878350944463342437476479113766138791469221562685036985287134722315612018587225351011881421244421921252138799845268073883237684640934703790125756175895809716113943038393121957754068279390198553350021105523755740978169086128537467470470477076908411951450554473827965938717467199032684472938323644331408544948817271112347063275389966908460646525119727470157524346364186002573659403342357739930912427929829125432883274789696871296035170452734163321687575685546614211057388029157374002810202493741247029125118430720756860254726910414515633823616657174257063374533910266014275569365432473496549433512547029158113600795238529587491612714121734108832858437622454429365394192299825732919504716137990329375688314674644517816034323475292297860890029734731701827653480358818529216228605489847134131976815469316945355922507929523051085905374717587610576080409189486059385528179309593875610963295253883540971854127423696146815957008825296584727277285045378061393150829014794028237934673858183098819933146160511291129315013462810507832772691584638104309606186735226095229666512817531008150615531626899836543403467645667971917028686438846752687871512102859602792772063739097366459399203388147267424410345912715563597644475370350356565180977791174849238778028158352334491792169256670980411121069737157462010001511455884258265990554285268539314092109056325969629299473543088481222772628839630989321173104047097650857524741631112005418553047345450952117177678473046699174744775163625309303996781034110019058692442320331957702525794146662498533845567228472256712028651114052524304436002348728481448599789816142874681399911181935608480780745483010557854414592968636156983528408796160094269991161496467638722509321787318803991225828741141246434243456354639242062278931800350186608699508044441956707833591749141193243244362514547514062045654306410214932493476914501376706078279438148744396980795157076225616299426629406241498663476023329059166289966781317999183098278529620286579853984208311450846227532299622239243017820517890226483869360536354506821918702061265278963043856424557392937124768048670795666831089492275213418226311579837629909796227163193831794918075840847947065146366861641524847522318895383855402831616868788827175911591912172434095053828137975935117727965058589302166986078139041749505980000923035881473536147532221018723046036908853860672996315588595258119019505988069774827668697900568387740073590212388686638627922809726656118101972029254973123839188245788439407923207658813818158865903739379924261765904589969394800247138318152283830807605258265591472703505640806540328980911245185983713765763140712094828987811125273825938975210950613774867786998666737724019610686553306717042285842506372234921665224014602690612467187004500881279195058282712559205180220084599527721654390870815879404851644453942276882172385906207057592045072572533646518669521475173287746913858191460723298951603420129645021106611205402357235725630899499081204743685291551179357174878524305006802310393852836129481043315753709987000580252787971138897282958719190851438005028045930912456169242819343402723733348777744184477482480783820047659301501510181416790796150199579420483738791077572076774080279168008602032971567153260604126823771058248003409650822256347061364929516393956289768062068792521837375096291689093631568789357974324667361887274867924108424287228487959525408824456337621997150697280813203615400123377916569589393243865500627292903552783945179797765377304320608185542561855588797733345069646475734723056129828322097050837716538077946032615424005760689828187741867550259744939159315513520108682670737685910976833292209496528112933160782279912240987791148518073040069766694428841736414047811958198034670036282537748458250736491891017635554769107680549309469466760195136678237560876078075707784650514329804977980332465237047580362460472490933552456009742275046262819112099197307555202466766642759117681780879865826796496314703421309072886064479026794878808720255563201676015755875724835578038908316487946026166190654622822358234401301290621800500573434112950181603667658478395522860034364438897869407042469485830179985752098633794490110723124165162706466822196602839986371313212017012844300141763854922745089892473254423745941136722718278240785801779226832050885384450909896571629888148217049203504642028743322147839899072150942428119724570836452142869892907838440269190352737591313246660372417516272684178166013502750535699024497909266606784624601784107080532023655639116679986384358846383490645543483641868643727307304052499045727639055916259965570478266379912362377447390427405647279907619455392277763581294504377293458569717414393251842997348463393760840851588607640036839865284472578190400580617854523654156104242936854001331253077354078654080189510815377234486386485056792325290559664548646361216207608677471499946728659159720956897047978038108878047168071096966694200273418522372643008155929232689480251785054329171184205828478066429946022459266877574307035732342287618490383437999664712002209299091482349928632056457159386293855427688133706704990803272523202035497766615931908135828035743563613065592669536461049996239368377018292076066505485514030526682501153787265660904285620981764584498235265829662162303608082599401085315110109887590380060681787587638612858020725608468346732219664059159629089115110886763391827904008230191702701090351728944207714253059973329718551363750032177942883167911886554189130799760943085391396896893798681188106224981085050217698489290677366194350277460435538383022110735276302100794902160622887872528416842944187788834723757689673383744398684079183729785042814632943422888240281189340984707388812452212548414419695440551016192770668217200968444829010889973348768445608362517917858487873904537940487936042174810950834676229539062417823781718926330959114558066769798166459894598947185251720315623414581562957120990563374956779554351409060637378113295535960833457649277118963590827577644696381585439191172299813471264887683822277896501714140487559136823723490577351103941629388209299450788449068656003669537333781017728959090584334750776755567123946114722206037329824158555971599998975954624076171228582335573742050473540223460288014139907167998468510359995961840577998388340532395711759981524108903082973804796144849425667913282119408438426771226462998209337243982867566265295596151318722314929275204028130524970100075765857467219191320637703378071312490960737654851863027022066296020442077333872090142451620440935110224675483823734524807910838979795662513957610155111189636601605030214056835400959510757803063371408391969165882582482572090084520681826376541172450192208146555363865717462628426192561552993782130976506705120463640580060005071830176856679723542753435744209976356528158191793724508535526661162822128688522153581346790678316772084203969345125445892139731663636397722494240063363985590731575969075356189349504102653571401945913194875871648755014517943795395125704009644983031640568408070350414788706806111439736468397321924964503983434611858502970013246798320140447623553024323823932218844836689338060565280392633587216183728405564010886942164274674943467421686331222569018205985813173993941011407338632000119111439115515499825734736693558736078270915567392183565309946548818605199366925923635985203819094264857290725622736733361824885230609249298912093681914780254286203896875291420225960109972840472592050097933919504298665029763735605235555629691775686026548740486528530877019716043561616701962154963736103678061710390175413997521799521634791333921322977465746114122182486363384081895253042598877193940677024946146834767531292576831716181084676340218442634395981483514249290283696820774980505897928818935223680246689133858188588690918224305867514090872218044768721011655317694372224490381632110718146629396583963372402753877491606328031523624836682153370735518879801817568744834413459778961787842755776793796621233349711361328156026892448921087524275637305441480480773590808577529776657539074999547938857250427356607285750744908834312724248742806033017478037496019240695342568659588112291379835984976981202110455863002231166800579672818784488901187987256117421856465026708150760684780903455444690298095331307115689476051255070816200598782438261683313520621301552177457907375150126058589563472682040281892779495527173737051454191739802400260254872402317388346759255827223607942553489514122523568182686378636407107200504779989418885038533612675515330841453629787829840440772139155087509022447019609950403213023560026217646397922333272169127964495640767500655640112205142286547476368010724955333546123959053789725487687069898613143305918229706165861251818555514422710701260271379020992988977103828744390418970656909373447805478315915266781203067385823193890392729133957003291710996720508528828839203939144057556313546883064671840281784958314619212597485263461865387699170792298246446227805573021635403445613348674866196221709300158061916859322898559823683403451096880704709680215685252776113072219800745956808486342285483507283166171772476245498941234695696086702134545504620693915548510292113792554565702586813899744946645142364703667834875671326472687130816252416549381937530475805183561054747203543653788261621815132645450076219105656910180238171728246641094578983006461793805968377391917230091940083041748417105468782952672988857082069218869588506273293622163559572611661117662992087619678589696758366463112280276067022403191033910250814123527757934992420721958340570724445756092779184113625506732013552784160333950992721652098488750272852254303293263442221097206589108967784496602352357833346116102118881831552186783554194908021056466820583862487667639587195284515807487993377223906705839755736975980359272964107300170426129970363968937168205484414058887788393624773315215473828188689061243336792372816458864226273704269304662380237325206666973662851918416932626840603186928466375452952023641465811210926480974034715809822087542333685563234782381632939968070723990221365438534506967406323376319893559522644825975048503586291699473492261231181786135342132205456216175122259586017399911185925068941510961435679801001103139604635629388183262053102610805333099259606912023373332749862915246489621003193119176017709721822932667511619243726683973986609778367980420511594870052878193469209641392282983773185809837532186035947804836760287790035763454316629505933673731975038527111071689233542978243074094853198410825870416503712093721416315159206056342398611303478518422532339195241646218788391176462571160143014759401013835480534989387612835570824091141696814540540069383236056660663914906234042321803485236337989830605502950494737000594245314420905046422936347934409815352838240236319788327872146133699460106041551686988761082468266895521402277240590428259148005756100971625725705119816807107357139073780068981915332105959289776409987946594665376709972542960537736305596821643536320871888853581547916846869115933516425131024079899763517436222979573864338979135013566936190007039693371439651725272841742186769789039119487191278587341024898165481637038273473571804988973849087353545389107736415207284384705672217605283412092233948971913057855477238040866201677080622803264830842482318432644392975579333906777620134129127620382267851458971921129427241282873452375814439080301575578316769508576138789291530897631628456474443762687708115493287236562135001301137298354839127364011818237546538336263818540846066020684301384060312798046000272403687224311822326476826204013429757596276870119387271388608607478812545985651573140698184540499454961403733790698137390695893863401527162196547927786843521023032890301168791983418268285716926444671856137808877190451222079035742925537626303746821961663164853414875045640023469710749583158265988364236978096963955270182369420713195616093395922117070751628841643010365472864293675981003709284889675335729960664550853393569701484604997394275543998156239619063291674173416397696040177766018944248802478901668527900180014468913293606447841953845809142355619906529247929664027330498827784596943250711446424576760323213837564826429484970085405599207016792237862089648629070772386526150807566550552956519176906533384461047758970424030820184772494453407864446771320136002145162973144609078815023139613409062836176566410113306356450066689532045697814746744602517836762296485401914040152337707616452114316140157973097283936114240527161119907023865478443655828421866093893516709337858830093158185854231654507429214203439910712570168163307043055387917827278171778720215454115461595450434549156476010466383567725673634481575993345624829927683921163775612423345871188060322326085088889703179720694259440723391830114306087819307446422835493883579687583680593753200660125293826268362207243772754765223622681724075859628196948848407306666469752357834576761562574242182113044678928001191346218131289356216814365267585623233965317842628059490280064410362558380869895567143735171615808672107510687886968418039756581810751251616636655460607664748446434968965098237244507820340736051355991912457038087122599136984835543092580399332415710336804455123787704103413958258619666795131612814818866836383434614408663530554048958610189941685243480863298859034800962475152953352656791926302623647823690605704701551320651893496366209123486708984333533599289930837201159756482481296687303363575570983953593181479621907776884639966836365098492657962026388202221681968179791453927870368593419741337279838947339771905599731169732259944862540544533998864185189287806274689905808884345184268129372119838595805028313889579408622616137432726666178767272086115164910008570225818682131310805348648190138780941040270516639738728528413644619079686741573493573137491186632695390717619093900825215178843400437166411901028139624819541593273656021670749951152359557402404387788055591592568829011134848044858831742725089122697446200107111660708355845910389579762407295001632870594099725569275825814074082631874024174998333991948941916106680449592401867083797779358974040758606384390593525748985123715634126310465116970943388869827263864348626287321766622887522557574274382107546131745669300308374131440010314520485725582171422563198054219336055127325297377959726039321717276575929616545452222941870808930571325671356852454462789198783544019343819528885875775464931812931158705067760181192681462829832962005359133821964745173878445867188302772961917819054968160027312021506257630852856850788268847275638160247487596251842380737425707792301094861824748870225383679113603126693280489968718799194566117966453033124543205293338969232252607158235001280243052055902979254036291876939599383972519880644819334866899504698682687333481555931001589809448567879329914040071857540022218248534084651796761251179237878947518745174552108760155169128700194089416076137792321799066140084708300630544279090069516704719867308137606854057525336177576528370652987602605996223561892727697900846001813629788133679203937273583570369639005642166093603999202187842492118629234914670321689096925965596949508985610753238536099589965691055056853630916627813671088792303675272592769455956606755060908472793175813240610880163056056488379018585506861152228190863865900999117984794130236440952508073507086496808225847482939152724759473482076311392308549378462680543843691263010934896817176116706063066238295789061418348759815796898508026846273778320009212795896492860719653783794835020185420020927833007046406556384440227225131944332688242508435702285689715088754179542339203440402593053419539935742027254526562950545536637835662360873685308646400772151100106470249800852595170933897908344253756339535493745878790611311492848724965216040106430851290703606079356651692045306627160194818938938427488256517974161083970711535664835666989682626330476035718023254177543555372676507285440529033894678463412123113504148253285804159764967467136986615794644449822183750527733395637836255920909233324450511886559373088483052698143825896711866598425625871266736553141486093777713453318188502027031198204387394629249634025577722966685412588173512705408363571286832283399049536562079295819239179939990202063256504092773821714477010690824712667631359058607640079763588067984261213417117537751818120304245742386452341525306323248606108555561775869180190086818626247495120488080503127721550335880184585951863376318320307568745835314889731248121226961255250275533411056086405822336330544540130901099272241355207726479848328166653287123064176698488950735921043308181428406726951203294593593373300008084982089226963908395823417977299059452710647934212740576315760336601219983824704868474883789274261853981060865821323981850357997229296566967617499741803181112405685533613118942616389253217046705138179094332839762195282768695433922787274378931301108871257040680317852004021728676772592416377222538503847236977525875480825012747447586342051188539286051026157538653832802708605414526504008053421883318626871546371572406696281562755104426234049927655125045892597588289858592802754345228392293522147799179284058358537459402976356013380955618187102707329448067226156346589953401932611157591696230474083490860402602134999939525999047165525146941347962418958835271852084382225442881925853859975930064915577391174648140101824487817793683221919775259288953482288568006245875694531004008098059311373864209682756568859766399649652083398137938908412638477015518510589502955764947047217065465084784653136018518726920509793761011940615667061554375763721498818017598609596985896550053422716848036014542092590487654179596969442240744203910648478470537007111978171120800367452100691601303275435837456851643092671299157985269814491446437527717320690014395861033794536258019573314813779299294280997954043386492186457064289253883898342532555593823918728495813991755200770950602317959748067677543120326591231476813336435760357780441146190192428126260944716823280281765060244282003488185538286380019532123817473449253066540341796085896690086142064013826051492860464710665156497966436622022516716738980219036926549077898272266165372833980374741927147166570000364775844320351588645798092313049443991014129917632345654048145087862824582365130293851908973123000590077004491692887764053703301472932397998838945346220494136067578090551573636391227818325648514689770809840452836532414144331416536014756595464719358721243544239125157149685969729401456813980228708023742009873396437275548396996964752312350242230696055416342064872885875426018592481460132970126740261086919001101869499135846651985496853255796486565961612789102662638790735195289664646823989031395162735141315227802468692877004609602114100437067740366014187753237783191914869052646776445683455133825334105822853071380671306636269849602906251611644465112647854786003855065702133501875563714707910946346527589682451314041666919261347969143431776421656163900226561917121889786567343463047385858282632340604466466982197544327234404672691794013756741200178782687224707293828675193835822787826527561945275674730180680998338706488255402952365294116375171430361582835994376781155252907964807084662634086572792950326324153098322895345231396989028837079999896853523872904212830216146295865786358741777056669247489486561679985575337223860100337029817384352286349950611352130838566693899594051033234378967400682782231487548062102977528783542503350039289097596952893451737956749202086760695160264194661657836049910091567835497294767174578013296181690349656194605464902837994823055762130749163736203395368064714112893643549239310059901258464967119621545026660691365807166092851286333456816109750230767835080068333757895852688045377330419756833832765128120504361671703703957317176213606669185812299451816261310582243404502109614614353707681503784546815715535452788171878241829361861200248627537065457810317847421904827614391463481268524089054726564209226036118021440221360822385881307215302661952562269570454654172201482884149497406908428698881406606361128878294980347801979393947341869700463232381165817251897159905509500579352082797393070654120351068419118509729744374334826042147710194571268402334287958893401903337728115546699830691638425258265058342660638831955719937787817095038007364177351632485907266378741636974415230651402871102388086590834372589010131292589301952457796212876069610239563697442879618365144775928079395523499696920800764627564241920204990214212029990028805409606135327441594007730647672814344473393909225259494961282604986880485519584020824238308315466459104438795809817968852238374070673391257239317566554402907346701282931981059184516790955004793978174950794626600119620381209636211550457890398200049408436627903298094115966278871212321219297102795666525010586301906312229752431474545656949145716656187935461211950432572573419569407773135804401732084590289528163287401409720314072514151922699452682002751793226930902590343958538056098928722227783739242405683236366774872719867966763411852387664378550043161890343919345140151539280391559356578418563546927028240500887271544602363559429092199011146304600859173350548610086594678836781267925543790746602622855950692784758030440168870813411552643659277502644131453395744362884581490161918293328972720647289586967990183897229976757156837692769397747325330265030350266074052584872410972043319614575469343458291934264735063673010359603944970257556477244819011164173214584860057299778315577101920427400577950254482901468125642161435361331876814181660852182932500317599672809391217624774263887642728814512537820208228033636841022853898457901010540553877080135706313178376930830473774165989152628093220692005977071768291890313025274921952727591062083642816648445132198828383768441370490687779216416015371791605464916278446480098577493713403699774123150602530876097004805335365548090263876531988039431386292796807181167304830188329912209793225441735253762017193020954493685377006424240552886148959008725617015872227022312953894245948486171417655466332898854686622887159967923449603863263581659450163327446306467652961987143152159370550438144888590747613605344135000337173417977780041696925473323604991318060705015986350438034612670786478977298445412824967428566666056757691714541228590644545820422709535387477729920843455431570779954371664086760203964608014755076879167914981011559999918833124973646789038390231803567534740733309051714323044284121110804029961826385331497140134759328954744904617188713160179415506038800374824597600673075967044814253122528862866190683179505022450565883376507155502659397628862406075977533797379158548799276354580765390486669999439961917108493626989654626502034799411506105826827998119473851767665634596398901547310289745420084231388946958173722476935919174999021668801573684743638048632978555868884789807889924598538071597441259621234029255246644461399752871444782563460086840707050338105463084239861927446563771830144568194926828255680486369949219004111089812040340244227746596704116046059270682523187069342773272781085217739370836753516597582180317143637291053543636529334419492295946002333133369405293397551546700010059559856682508609892107233780304882494725932738237822599912663944026899219986801619982540241696310405952599184291414600096721857435091724678607162245367396055391059472055739373175802074025863598859890178104340465452176131434159072304707864308604081197572447501309523960158000926123465917644482419020178920355163163185773782938519214829299744226589685255095150190681507520200125988577533074682758160369759259566211920017778649555412650982615287390329105225933123283537650934940607867791880018507862559536587498782757072440743023031840137175462859368720661728833934975955995774578524982577551446915048919215823305555089715469690994147748891311608015160466987038231589332473333187132448411741743645724473879377478674494496646824782926613248056987599686769513070239395157754678501127979912151934835619718011243662113743214697343753968621883290918213138616641582736834983767172343874581916460523879089206566450408888564166290841516526548086175352641531194354557353596589064051145757982891812753990558513378819959352426502038043506277059061162603995266046184787037256027308983883150340047987876907574502945027270816349328886929448012906680694573401579342124027309141231799408117421234138831008159790192707650536183222205681472232344484156821248437349382793337180667328866062004869511605213042393695921728603704059184528672282285261921116727619404137212775996139781273285561373307994780994284094494880432245949711407845546164041484387831368326459111534074682224067929885106106472709092700132789941763787119738255675634188399248117820582584919219447103096700058889859249501476084024335345314985846153817976696942252905780702669405798704377980636535290297241788691755018970152754916632502518989125602679162375438174950024276389320835939819634127212366493093081766971271741573333444710760358800808992396418254206368623871641034285683565531585783101163511848402376530159988731712792978028490278631933019350806578732987764238746452548870921142250166327833840143177384240090079382184720851560635277766413251017523713129684144395635897745977195196561834802730247805272240799503492637023018837327595609289856553959777603724658986151315279465770786900970885656732472353531634430814393742411219677238568591219491432644124601406173743450164632681600517523054386747548612039245729172693824205867302924549896395863134610641595577010182111129235743380907525342374738569638803413342231691417053642268680924797408752818241297823072496929146871536435029314771648649316809707739476332598253835236180792299745030797970971724454868372408133637049759034543001012230014929372929975456513319808258746413723629267268684631366058406043655640376586300723094923426064611762843789179811303972689091873985174128268828942229801322233160964761308437550262421358527523588099767197234144572147372808365634815050980212545941503230521224687534766664952917020406652063552740144691796257939215866497926113645225424516428819080755026723882612378279465420051782354699902545598240520126799778120008486826975015424955811993457425698087217885781038108951475892417831077219141387331905221128863376869162902049637808215486578543782262519945566982661712463750755193183884528693611839287261468473247844306289451123031996979515948074257631664889065212199556246097860296490127886385837664447780766180592830996588170378956375744990733352562590926783044182898091497390613588528132725937066452343075303938013946525243396781399388611898164061150004362827896283364951815779989557261349995248488718951500854027321111547773525003184587931482453308809812737505975159939911056674183093657786016108858158397602463440131131025052626675802179927116154258724079973332147172167310671465996312637471632004697913749278178890027804795698958795585608607294504168136128063327090622074136089306354405552039662717421136044722563830257816300008144515523891956813177706512126707411571533157796906550928824577624453089294072476884729373924932172308760800056184956751498048737282470554702482754041083868868226876674713173251305167951699280532574240526738413784312469351618603916570256989526420821724094444520377917871606643988860363842702188737897072420272298719995965064246067325130788813641658504202608891426627531930883827179347868068932434695619900613417589210362470288077044794434054515224342578892038627109031419238248289696228428397412226118376064380412817685096018353049132396689562781558831900105709556823102198572008901529653616382534105441630908566868841270657069284845875426808918108939954648146845408654795961679224456605497037954135472200079071945071152207793707461666451057773376439687861256014876612443007877194246686972573513735574410152095767241638098254319840173605814089520872645214291015436478319731551260694323715324138383494643855975939443378253603554472422911386096790855296915574601255432232437598646259390172991850146462201052258708496594576848837429902140100240615957164063612010605872316813718435771300929096343385761454035458191521589516857468997777235070070721600196552437440062264065764518139287386944409844112909339727472890005917814380528777112497166072873112693348689364320922950522951057293081048265963003683310883341758111321155103769416109569549141486232593758246263471255986310890339684354865846548493611094150341050324685453958491607145336619939477829697320027552344131342400907211326911565282724899029675161517644114911361835444529354984339667117698945075619299460642472138555914351929212984680618100264518856203369350436050987956955943495206385105613320049517157118755360773725865318646137930908926783479819051673669106503376416699499591500056223587022931546781842518875967600846936868405067196435448105670867799433696323759375298464907464295255272698204560930056398235301140743197722223289984641277358759551891226764273400989722145008089819621720080171089641045448637058493130491810303958549561851343134886309656736158394351288194068469442965180997368027002884899959591904637685846958525351334509245946002034005578858198072904457273739424629037065457837871373857066622490769196710684566527412563635016778814595406368902498901936271582342252821744382074193584133223701376642119147660317300185608433465748650386265072709009281114471211696491018570773973889846042077719652285434126700593080179619885430335510148010261455731450916962020826728145766938933198336832640729539167086111809792495119030339770618092907163189086351409461017045155035831275819502086638315243002777923583734262830094089773958672087306740790183873238227569362534977107878994754351516848326306948846693607354641189089863603279129060620874624378721636308179370466987847531281212866508347019371882550563177744254628395663372220756871938633508388078192847832410470254253396613530267217403173603982971788044261330561921287676501641309114090789205676810187576764827642627446176715850741864874094367669419318081555001898758470828381028634008859865375740959639308957001438785733953883154648160848274926840136987648869535329091119294422901902501444258335763327107227578579937816920901201257473212693834981101096077056814370060764231229278927169648742100813263500536398454586758127597843525444384140103059495297062588030905880062726436771190078420192212283730062109703285551143727295672300092865275333197436024222071069135476217035939976750935092019315253256798167212956678902804063677856511668278028085507131863805185849780523034848928454770066966436239796449101523988339679672743329357704424973860277353599773269616167945838149980148681401558315191345549743223000050794831625159936371347364940606386703975056678924162067977732927901048526675430658330970849423954975161787964788824959581965908134304481804306380244841165019425079576052550441250746570912701020151047715939829437217903046719315369402742382489452718571746283393544154129817465652440632680633989378962462056151788427229410079138166154129986932910681125865038624349858628196317743195708470099101871664976716914885122663358601138677639765292079031655533471838317479972683634799226841204358334943732031030275575000878827145306402049045951255535049979757191443903261295632522772556590614866007699406312928861666685010406689038169659090973319046497094521332691092313523018383277509873401426433195431084186443922862949347673204223966726017915365032474869421628789269295050505279396754091255619531379299766788476402661119996608042003886001745747043660091259069951554007194383115838069670706633677018484414814058500683068901684313338942329171789565404094996935771343493875047136975442907082298131801259895648325328290508814840889843504577929557416415033924420004504366909558501211244476916187959637563259193959806999545048801065135013100499899438505072687183087960315948623610044073310661991541885960779438802885993877206502327132039935083594651056977580972747272728142693901944628830996769703811194097139319000403773869253978928298959366101521804415197989974565156514266625001981619310975124026478104580589386843683878377392847523083052783887778452733933070075662482497530914867683768732127160967267981489146753342074159282674019237148436002994472047212099595025016880300967590268011470769589573149301865181970665244139132062930660579604324348925552281562243871964108572774070269438349574470676850956988964916864185155825936168843746085483914814230877370341135390169171530305111287348000817448159353121613453377317332387614594770175068930568553073695898182537966720796257643665957535520133366870938304508499401390347275392026304070670413890639305041460226841804957736812943036961692026325413325757980130636658801592283956890824636726995742680584421813582925189264502151183558509870390125357910747993785334243840072131274770344870584574175907881000796018745475194913949716502411542443161678641799173373077050301787827382865974371577793498499004158197209957621426384525774429458216902948242440214635881132934606262354540814781033203290021072462647306610197760112392258604347391021088789847922091181452231410150719480544468246823424617676048552824617309474059527232642751135919868172914200161770897539611603106476055179184429502960013026991584278170475156026048308999460782519275878787607807987592996242587694709181259489005573250246272260242737392049645446547662233296129834534641340956537376651033423355725898871824168255537587954026839298478303589285872733099227776290978945311216585295324173955702323483641638437036834566802530367879969238906322689220637287188937108219242125753326729834711122439909265748954488145416099976944691745214310407161256719321514199675865825091432238492812749414317838343764266604136725046809414800297212746217186509135148798858595899066253990693028574364214010194495123925939451263333998159353732441459990313906315026365222623755120132509723134312672745535332972410888727262417450580383485726352784381441279686090596039394113787453589857480721968017271508786561504260773584927841575895821107229991550563446375656067663575940689973892689445339286577665819923410970931050775633992420171066952065001064800858755947709732636420504178776359581525219397550973452398752402245428210156856318247782795568808186246080055713554081887995717911727976249893557569361734608518851350634360544056225012890256209847316647413890722228190153420199004212769239022389376940000535267077374479601340102658831922989125777510459506513621639007025563683715836830313850239570773941581051507157579690863295040081444851043010008525620730116373795709732300466734202172911322184585946507505242221400504012824221176444845025658646011354547112174450263874563916437394059792201212745464187315901292218114187345984313981523474856597009961217626460365051776637911683666013238726621438117037202077469584787456585383929030012980461300944371827775335580731499817043747670128535879212687366988123400346187762430743560755063595213881360295372420342202210867981075639401612760485106407877074443109381513489881212386050592720495728162145710911082971520406595591738821901818193664070433754981457191802747656042246989377294671239336836440703028810713570041517068937252745028819490488774081009270550343659457557893244449917995673853233486645462065147090464809475137469214994828018555619936800231112939136704665258494600517960722012265617492246557254914156384851503662924446574527352964940734819977636216121529792974293539730305351861336840728829594632311156511891003342983258927976241839877386874993091733658862138249174305679343788684627885291805775950174508348452344106463092473061820847176961204441438354418226657534130296697824878289701225539701760236893405001741725985668504144161366943187847597570109380888601745315940188721732803405067434950510635966310059755118566643470264467034446528871995893252023643982473165307495560418291769437110514347454709051013756177983660650793159877371047175821418013102233536681934793034412734893925224013696548584851279263808566050131324129391485970227886539827486972408904833713135357075532610163493244117132047095610836357138927268586596488253076423702791592421639122075984096227772964135243059244143902867261537731736797620087810709589556565795836697604632095587192348158791975771966401823507812660588385507920282458316034669404901277563213860831729283481486652795793938104402816791001075880772416438587585193305887543714406529259877174442177665626149363961111262755929297423798134850366644912034598542883016334421073945666722597736232154989513812315540828158907654303527277955065204212560312255179826622446451956909088007711546091720315912607737301048730655655314205054369591573314425884812405832761860908964267359660075102449567598637620165820085234242951253024794784961344693343301993700044024976236256659266131964509849341208135553092483880411124331746183980026373937325386218157110195909880144594407526412524237993798326293940489175701147814501602384300949613649217987246486208128795024734885639514862429891369148308451393434575291581768424621629946786171611115623650483522017342788059640188053328294272906848543603219728582633959157936137281405489039702181579468472091723362953054383383071954494469298031448331002739658045147462100010836271817623550954904531772535632558263452621028954594457197537148120392759787743938793124510798797715326651691212014397245805872906491755427733697905334663522649281596528293053271268845397506685508050287524162745311914171779570283971121447783271080193953382291906740984170014043723788763373998085918177943163314352578860561426055906329913526756707685289198503819345231251377118215881522761149796120924546878204970122425409227279890057849205380520046367330177641528238614167468926626092819408483128829348547249480747256424329396171743317194757346400426582248635822958646882050651557539015076912722325703218013345476002831660700713376590920091242297236608079474981093154249511038553212927306770277365203156871771875498008344809254429382740378510274863794692903487521185455976888818023484508089301030319464317371666651618364376940058230599434628055292052286657835227154219765603671037521697565309896248945981458410114724824836848174522087663096452347160945306665169409082524344160169057202488655194819775710755993383136794220610638708711207745549325245770488195521453363355328566843542908694527454569959351666369688048985340183994350607640390761012528026232719893437151852124587525593479817499660575911524470838799282413922816582050898707034094433052571793002856809461140604154519391350741482290898650076306898360965303083015031769416554633185431307213033743344812750499657569754547250468667800755340986180885846589042468522531600570565269351835171570527929719288262964045014473765010453875031225002923731446718770946610665320755108903715146786136682023442764470477759023009422993216843621998159240030210906286150429531260642935704680457663643238044465777976627758093046663368996932373521096251944256535576816661535438443204643296577890541369075717107405680030780898992209380877845280845878513087396382541663838910375523821692225043877777366976560459392079129944685362681304214721168410071116624025857404205751569642340685696156066771350203591275009401595585665285266291261385424431601002875918714847202491405448362202300438387096392742068962068799284383476504337838507301799460916058555870061942164432354908696207671745430929218549208795571486443741194833608048072493945631768835744698856258387370144139325820849898654625586529867928259239080775167991925148164659015488571300243942005904816778729383157083148513746592600697375010467986357386707191005443077319369351310624392690015850365822928304913495462552532915809046202011757467838096735666142032257398815718126346721243936880383922955803433431823401668516990701238264179664888694264135144757765350514466692409072876138350686471582854453025388928698856879425493409169132609369963529763948489010977990793317355388657704777268254014257235679149699040784996898419657060924362146623950766445334018355694809889257706400379224446748075835102165041387192429683512410207609379211519730436166839776568218965917168901630819720918864029172818959705062304218020280857311909476741923517611337178976547340105603230910049973783937616703507115893712210232920206149639645260092125527116979199475225348076853875280254862329342191268987542826502570139674412091523290960457252679505538636483103830068747163228567645741415923723789398540954089209605619577079168198609248226392698444511772535472295000044112261724773812710495605438037500556839751078692739723790936828445533756694688495400291332212439041970753203237563178902389395566916355925506727377102394173289648024804937778754843304155683985811476426064636740252500837476567210453032710704730289725814490079194046544081468525725594388884557928184827257032796991258855105226814429502847682013160096646079072052441337535198832721935827495038199677185599987539431664702915433950743952023286069736126531655015914815141410653786611113907855209739410322378378022786379901089293236866843562971335556974346569109499973781803529420991113099051120538621670551487984848243682079314227300742447021552510373373497416240129924833358061281759714908138816510873873190638495733982063118968787810088630567935430790605571798278825657075433715186140124146073041777973973520565642676680787361458790651444506987375979038159404818237352983108319766619745555278809240000262003494564634972411427202835290496442398641934849506665660641130449818610091964794086867483551585672614677117214370001149203850921529153444271658258321832582170518699323964971287513572657631456960975124891422980541002733916600143216293099671863011183006195804410663110520852427125847128041225007301755922665025443517518862027058992059514321113510799568744734311811888927686212102935518265181380749681276218886789744878879865199452495148926795719205356673230785591452874915152860067181333967938368918200350027335987301168317129624419706535061848748442804086799214862882116695397825371970293446065248855387776776995036212447623225749612742606581024062955726829533412203640308289403905275290984693738928801709837388819322890578285340247668507424690027719783585873966907412676780129860461059923688668595708021670857945965425986676220254045808162316000809736846997071690228854738554327979956047293922161567602125955614902732516160814719096541212441757869452124938154891294128081777017619219318709694602681579744074253794980041193952729678290098875408956587519727427534384121975506215129776239572453597509599781923465649147867274324641610598792863936950107444647186148614587508640829327557764788208161175584161170675273111676582219626637628568131373889975696189989335075940132898402796253988793958238593505507277130702117143998000734716114705199085180722505090853504902396016626530527889852340293394679260320803025113976079472587480569571367697845195071562078875690901352724227769916205005100700110159130943561321608134018371992083639980181006518873969517227278236401066832490126866696234135978022855255406792883877637785463024247242857993153334684665993270248486479541761497557966430872486232744058191956308547907948593170816021775114331086546682878885992013806860840307262566986405615726592418306123090899452197018526212326165932709376965423745397401709356442453271858758120340467498538580146499834739885619598099455998463520396496027229873245224362492683334868629126027793915192944866252799032190569441475622911617381284346740347218436746236827871589741761473158483729149583975517791596044457178897191825081093921895408514806804536225768259279609274490623724812981178921219394688975991958716962519652897449424883104612515921335687114332988726002346662742704338800040014641164197314242691862867595906040217810775714071073308580870352611841204234268573064473435269463546698205575415176764395854419249650451159657577487954182761665235153099027508853368967924011322310209080173688821486189439671477877252242164491170099793284146226195969009760881890430352682899111270787209144545085730705239972161436360389830799865321973989688215388717945556199133330010681417690245628723433887224443904976255083326382893168283673813791641888819306155152731247680636956918354567836002389664048493376967244844880122506922209557873465846460314246695134288361965078051824108397726940951578861297984433790447954768326491015731082008511131188689463116651280102998161000764379810959765645785470335980360996297976958649461717968181016257657086303183857965381163467985987618883192690251012337919638166840944023712938892343699364505503588141780670102013273924416184925675005612109911014319308595940148364778620374303839751592377393163473065950989750843530163216614477833475454317436107480354134915975810269098918614719958813399740064448486994109659701723109261708323545182279620921776140534382528210371797102079005493037431518482217676400527959965504307495209333193510088417228957069848708611908638732484718104277471164109650837447172493928433226102544405055663926276559496413834158671828537535883216188188891966897263889236255541134245469463791011154478334228140322206277985875360517146613077249940404163966680845092802234643442294813047833741090580656418721578328671374212583765704669018224732421225265816174402142091280347366480811420995065224279347517808481918682033261735030826362097556333744726726636865620456436391872603775213035038529533465438360383696655502236692322816429843472119894300155876610828070473643794265980564776946316512342590557446092239500512171897862908998343880492306532092029848600029637606634290543533934946881800794364096416190303486578943597558952933644071845805453999175801048339174228180759242107689784701789407052748614023397733500017272561601985616360045076835801143704332614988407635586224477705419094441573850750889400093493205516391273691709209097495004275840929347684755565422910244972456535987984570215513388186281256681955938100073959046474695403712768227738216245343819987307680682163919883674954968639971319463245836932683476523471898108707743430036140580375025304408226511558135499829614599374617278534155460057937251298434436413753073477989395524032786814557313038860064123485357736092903953773678986345086052566017484766871133222446731297865230462756905849803588266364535747556081972008531631604636683813731491601721268695282262605403827309209433641321829111690716738793609834636790625265653423169852562512873936214715414698848560448985556922072199933082297618270672479614205473353982443413905197787180643379853706994825785293737660482657652232415687822264117493900239565146315729009097054759921297034489372462389561713357207401158078007022455683581313433779532052793076935358313002701887032496130114271644680644065225002004104907686535799558391693808250237149755137347962838418871770687850793705178670480985328597439051642554944900781254038882103145623845479594825092070966387823494388094403116295965207155056344573626903365362496491095715121516367649693037899417464737871052992140909292836772190127985788235310746764122518003634369780521737714769539081480424291160819107397900667957579887233190363642864166979098349518908651133888920102958625149470372976560039595799445210508378195570996938785074542865193332814896707117453528648443244432120299212305439605289806325045362710399966450026156307284341720474276016587452668584344189318155055899379241410910964811409140908663203278697575149752362947749003086477342556838588029494015919036620637405569671839016912488911464945493563950818899244453560411040026688306663719641978934247349655454383335572442304863986008734698735854247813831462668726725251645102848804178144944463760458703328466743644099622988216628329274685588570946971979076162098693103219175616873172974555237907212865158657792475730017715453726711095292079298398134271447386318249248094584905532200949912371736741295458397614140796039067238290372890518531218507779047931112778549474482678536121953416178772495784083081275585788429489753217529953356731033591599541739424141004211441180993141917425329769966350588170203673686455309315081164541691166357487220678710067258855355896972429404278082030966685373772654988178443586682110472371332160231274317960940846335476828473178594199477110781321553598998541891656106862001219501315971047676718639342828167378691982228562447430564835730271878869341010473417748923582734174682721406314479959354613085699742452433603386936318775470817891364206706881056943521975687825192649302122244604179870710015698918630524475808145339851590270742806417918356784667120893882840326947632500935422665652650791485881851995761488803211648742652532391750166244152052205175998697176491258717771554312763417862438240242486453944628079649270331866649581588870922546013294703323224367524760644466953255353828625325885675372541453217800821067299329254133291985636716869929893368144286039152824872207062870433202069922336228430470440931036338872698846688969026465997405013604938518929179429740367622721051464884598520062428510231658791728061156170929938705962976607823079953416782859667493810003888354355124000771840162169272533700971523995398797857187879900269191037063958785352769397239558562362138428183322754583845701291425459915722908375299218746446535474017436675400177476360570706501531448909085888296095102672310785397342618111767316389544556560845075085059535313792072098937626046927170950126795438435579448324280441099182575653469316797106506449113533382150877823268987901855806106468430325873754374848879407439099879350877783908278790019053023665390820418268170595708446891490362375071362094922029646328346753706413030866125801667447981930442684848946881771724874850777904958933995505948314231720681898302831645385075991503166572536353935637462926829043260356866662525598510195115409192304265113846740173010332436965056588933807796451397474328510475602632992483887003669902426779493692310694717995463149061635984245334849659212995344062371255645156414912246035906573212776398051258754782331622325281986961810774278266580997440821953600367125847998621225653416652289526013815790031514681440635833442873309979648155471793961240417749211241090107103040946437093538632937666807970993282034679254511988794322660812646719932797784588119427641235142271150257217885867025703942598024616390059111492560032778501808376941580881045759854538080430745015126050274426434862585978578406272024754532338431366167710875155682306588183984916567530039546989792003503779992718855487144175828240860742915122760315734289838753293259937894660991384255872185316896817209291210373679997996670195854149913856897840693635085292761046006307657259609660854776364419130467234430556518945170645513302725811074291915193543157691865574140461772741520740228826819816836305938140930237153291001574514311717441317180506318155728989698867775858266570341718942938703649407904689572611910762535061015093767413280343843875417021839668964934839089106368145422354061181347028236857767721382383441786581182087741020041287895759883228536094731534434131388103162738362903146235347235165950454429688286336063866736074182972685223574216956789340828601411604978856922632803102626795430189960756301760685042663467020031708783821306975203881710525681501726773916140872149131117681687304499973401492370076363196510988571094902659849696313650398548038432888413564291162373457983221643354152051071087413359309108030623839851863292026104161740975460583749036383816584646630080052577524130250644524395177518612623516895728102325706636606278299724831765866367890908317279780784430946990392461526206209025170580439432794326257756120798161123667241487645488763871326884369949748225365768701800388860829306117719217161966406284916685677629774206123956705337911024552825109346798471217299442995973986441218425599199518673837606483949313121304436993070613400463612736043493049878101959398279944352824512977143481478781488288867144131742585638737287650354870646003833474703491150101649763505906400283730682917217989738172488335182403993570672337507205544617901679672252915742296419023936144960816206212823554766774153966431805585003597636771401773678161771118196926810366883179195372656784623806023626021952128724022949639160752014647780506179041406201097503818350349667058048885946300294472658815635772773435306535438058348230743012742070238602486318770375133815914043319861655079753002304781456784221608275461959238701845989413877047973562553061569871592382550721921960094430493836761540583545365934744916749260972506631666405121681706610377196469707307154527367387819085198855528184518190109823539239177885717030919718966049725956861371864028946114016767510333483032547325177029891932367696998266760349013125494492567787408167416892052066012635533671128934174980767282424869561167128270917830619480127061597965126421159771639258758981621795667942699355859551759547632744646760855391299882050590938467984662042647529083802587227213139014447627476424794443307284878432913980623497181613121697241376693975678162856425141673916578531559536952278739317224789536920846830011116064839197575810692131363899189882190978701326428750842257388229351711942449661280346526518032257543257873385247635886743145371442890950130416713773562738473215867416495174344024102411137907672114149055871287245071586120151259395630692444742989424973853267104337862237880163150938580303783347801485539233433164552787389484567579222229881730468112608752019813089147032503382598617130990071271900906164782610100340673512755605924134839776667846903828087943650095574345647447236602457511167237542323756937491051782194575656369130906584312820886105289309467721301725438064252157592572052460577383428862509776421029797135113605447493563183331424944554029097206206789592338421301679171982946894832918967037689632329638399831098428824801180647707231618040204603510641985249680309182683451588961713208497479460651574191292543941023459529910103405511816390695364195045441573972010620771057496491224451948640022564863836970641192291052087104541565857190534142062428229474987654288420144838749612050997571743477428689553660705311718088918880425172158459712490425080010921684903720019270658514144945804844194465598306305133606008692745846626175753978230296607239607848199643557175078780820696103522379117308147567440015298457311537919528757111838241692166017209112620616658520952388942118529974012632523742510577771456877719664434373597785113923459758261520726289062352174816845032036293717715678008570277674783582822006763921201013564795662640403092753475588774993113987668113934157515578118090876527456715366469863264109511427639017219502471478416862955876241969931597223749567334470946153905811102259859672559728417918343037709209319703948033289361796245876616406707402862307308688643228548415709231204724604917958041480226619949952906793828334580513347857914622545457318505194671849871759209904530841230864082419444217442575745826280505014862167718581605574124157243922608272417535418977457963077526462739003762555547560280098084567950079101265112261056119645566478215006630064601068859570479362789508119677231710268724454337784005144649436493658542620110016406697748011882319077260106980887930285300176877845318392058198414446825544102106024942065168248250078323769650199748024202233386948070695182779856625342776781381107687568865021079125049184540073309320393474591229927053060063067265116896670281080116258691571955788503471720146684215084291914004047987800061927279518950620507177026577785575864090947488172992287783832738877114403331497995199091791751347780778425058942374376992997570428510753766371361398986573716010560537538776253638517353681591127620877168075674257716303935739911849482541971687763681587777292219774062243738861180282247309563109748634036888855154022350555733429856316770781250589284182311251423282420052354602049103213192237584961445372386302389299701870129797091508360404789715639869650283950727816546022357823468432014743733258721286402616638378285102556490862846465533054409482118775508532328831655438933795213853631653803860021875436262745433572776246215636802956226396433785839952611494124869403577339056606073410854807906225388519597003784058798079631081947751035639099841176177122033199166975057294795326599855554894095947291542903614988056726695142405373352087485291885295205278967042517465365373684866440629663542109117008354927827162958362545004887103485408471058477297867954127571905806961343061835327682098174463970769640611617573715782224162086034362758534733433961103163409032681299976618129123693043264344202854382186629184496424528090751106422466866890728864853367431280391414206065789817782250302661815157444983390258659960951934921286907275625320981645330608190668402571199137865326316257001379337775710627554138997810792937710651332299062545107733824181816738350230355337621221825711528342853455561978783160301478187155292765358566969496893150591635175274822297915108071784677055819991143786628617661876764290327153277747235421726468483088945219315696638283588574055087874252321102746195040396631514599828822446094030374553907772215870087961321548911276355105859519025777519365335269446955537105576899840644878196867226592528412695596425933986126826614759974415199273016013789584130054992761397824743305424770664666247090468606399520740133689211231522303577285795023500430281136003786278030279874506707575911383930235737689716825416582794632883911737644034289600034085118181059980937505620260649865255439055977471132872617627031028551052957136425123956815504114116905520346846957936929565551354207010532116147240694711578972914298492891954876272272669809747851787759701539950273950637689266378635127224107506583663899657742806073020550424179598854294551079742299876547085948164244006040393413380908597973673554867473966028888987370371971611155393936261743031480203075531261597680135103746833391717165101076425748593762669947884318938947440276826215608330583837838964098847166872241311909539966286141257262350475568517678886538552390093787736489395941135902906350674321016097255429351270243571393748131266335660817844250616607272703409679838440926306658810125673416913192815895081330145349229838848299274953959392401409082747272102895515062703277640528299384462124871009826146860816722612289008322915259801104743253253167002997629206330719614278705130094348618147346402052107882093840836024299273381956478678018472698492900078339359152509403051303504963520272295319212669332131276367253920436875307419011459396890572101561148528730033019151309127678143084087086129182877953791007266867392636892759410268028369989137394341226200088000762858834923365145455598890851527066204962560889613222272471179688637096610538245438999074718357174573407590619723735814259793700856617753131420626852251686186274135484455782257092451833504660733571009834723277243527468451514195214684775499594560470655064534918003289520010909682386809536499660217719956961403443744700334199327649597670772517234736331055964639748497177319471891061345035994393909642239347280853126399294544123809636280951177350891388720251695915053178510567426332765989555234600400363070636776229561087699190955568621637493325236592512859138578193646387966932718565284159973590296925815511719001499257184702209528275839974469070930660366275002128141062672052629415649349554921004304637729146050341076183277142699562036951380507255625818673748141980671656271126954115223791063314435582759131386880376504156321101975764904239902016693595312530847582152149920627693062048001885011470124003464944296141925589860441273657743827134854324923847911687287392756293974441854722400391659767360474073019360824412346325408293460945734776042819007507505718332933672641861068699570849291161593035412904108202587025105439841396996647952000798424352083855642534283550757768313250925457742409357276357492314081874888983623286276739089055519056345003602211007095622981771715945888749495713461599421181479609864785010066197517750475167892419563758447666921487774122237536351179398376874239926349299948817847896792993661424553181097315754325206564202842616217422759036263839435895488935745403084874460921315940882209727963126333058660161244779683126200409040419073456663747393883745029326218455653655478425357539211007352896529591556282499759357463657766275642262699043639607759532567647067619182323774714472717901634389212429990117937320206356920294267778643911267701137070261909384002932275812864725324963724681605829332086372874024626218457140005154103168910195325605174170113822135943589526496193442479162375156180551558321389593061311465215049868828174887285464022574241256346775694383433765139668883261194652225576571934806405355854285583378367066632692489338983869908999466222830902185456606775241253859155452825227605718320028442137488611926667845656585984564477076254984659463062187481166495035387591530524535016104637020372724575148523855861151016583026883668428939877862337615537272926712113803097768301575424259653228109857611556557470167815861822725101021215712388940801008217545204438138831499109061890546971890387172600806978357444353700892467469067139022274105930597408720310992577151229972720789397776040341078373617251240922256697275427841392241320328426320809621674291236013243942294713103348191260135814783399875895493185696080946785570393678134620766325213357121491098230509707220398767997705393426058857892305910947691659003949591878668075862556861676800695777733735321961593668324389832419724482241336836021684607488648766098867808463669720798888189141139338299244394020611176559383437573327708866758590856061292159241794239131587845180769865054570284231054620234280548174480626345887918402054786368077380218494110441014060832904071765323909096514960878533728315002916253766605201213394619578252902140546909286815035228616722930343024804206916550578735316959410178987399542915401914812564601368199171875780492018379114716920827180354537429291424060530346234397109644184766570186248272020072083484899780799394712393735356465514958248802709083662796227389675379140832854256046365202572763131694061705463298280560951773812163421907541534851531412650928409971182525559343331194485840202760326481237435861714414990319318224276693441983739719349793700399300053054036716721449604699585604040368533565104372804420038673884836366432282431463886071163827115661122242412220671715233054232636013388002842943385055354631519325182180816239377122818665330686477483195102699439540523371819871738378053829491797715122850753205897908788291868460497541629618028124115837376174144681101576142808465665775864672727386714116054449412972118800558603960486427363203781571141964595839668716223828843371713036587361181558510835187169188188278856851272302349170060837645597049010863352449255373958298432125865229272776111791365963496362096951426676080093729133431437700110517831809136638496380501202164511664566905843457966491691511372323032182774868342308753254458915178963407528956552032550610943839450333326615813244752652480991088613595718081489256644612948598771346771405315668308365473879395715710742827640430179758421813844155120742769154167631864395945107788647921183738474195099558480540035484384586609542240855715638930265629927264712622635478650488818251129416044268409458533526371448276334217716110433012801994258382526701155222334447909868558317231224964916605099275129045431897335422384917629208927495571517288953082461753301628809580764727302438435660730412022746914019029034175069127226515684664360035669508173010257779728626695181138635069844004533516647766405947342277010719036209968343114415640035662978770318946977410225859838579207890042771070250801333655574253762566314031307130132307378208157841217183450043142537398986313206045884674152228707204855995722177323262404588605422451861553515061639657782084031600802449974074799868805845664740304416096375032391302171070935379510667608690657917951994259786168502163720174800555915058834788585560754103319880347318358553775443590313378372596603005253353358130776470620714338099764823675524903985455160937006830997363834084719569099409596018544290538477283035283065462615509515246861616185017870464140887977406952747513733326011223669769816816924311375475521010699970225027138520050358093732415668953782497161640276437314589044919855490207741016348884358323291714183326954631090675984435284550277032584771842534817783668235749122299427179414162986484427921756662887898473375386435276071111223217472381798900684876414735806131591635166027965857692221083324091744779390672573806694956149763958188562212553538047351596163355341592991736166452671113189345741076542063607439530191558328727911281436601027253433820510581686496302274935787663372700905654570605123881201257459902592888726622452089046063981525397276776215296728148607102090735571452665642845942863871689089094092766202726041439403560082390795337886379880497104359116494378386134503536661889567696177866575817109873610632391264502025855067573547986560985514722310810495967695695655477195739728597505779546035726869355253214254942921879339217762774565609037221649855417046990888520176807362253505299488742354673380609420152953891016358388000756196175076190860257071320655682606283488631438895466363729211584274321141333921261329959542057974267847259943400193456083071664070678792430617572837123367003008582599549089094926791976659600516015817265064688517977227671322993912735352454133144090597791879314810800624974040528195310477071349967139100057675290338135400323678778158715734361950049797775162162463342814963948408801469579475031397424381554474331962635521634669228171225875790635257343278688339486023977146386079378092264751908219869583520436974457146955976469357936236348781042361563562701954156922816659090017454374307943068854458606992933531466195983291052620047830541866089336515614313817723779814899144088671086180725854707770578777288367801100097824873730562289921228837789307306785991878350906851279394791356788548624861778580130033433308088632121126788475090877566976617093069968838345155869979822690083879614585548483614392119317261545838858806674653887600062994344020773313603028491285461092308225658112004602789896847205340898141620759407596481712709554916400915072504369370638857247065560341082755316492114701456488219126997683621726919855715346925519265555406899021887170842169659526961088030674678459571770451558267132739868461624265213405751241941267922583968714059506830351148660328473877420442348968108444980614367169317557040930833522590914458148385266010457531019315134719114288432772132026100194330628818788725360641172639985587996322392858046637424621403298999319624341980761417353992414901872600933819278216511778605114771397860655552453781539355958308366054823689460910580251194587730540072614764652794168632992088419658643904013807912879305861064282618779341094753942516470895225395391546884365354212693001370076192003128813002202550228550703584473408368928510468478773703329006496887479115690936474837907104591213491847645635772466568475858610346962886115091105515398905160792520097343689579576644545692827808179018483909205481387848471558621639619739310823557066554348443330622479373183970093921603946223431698644018861224290408144794341332981215021568037519269941113820742396646952646227780158335982576410711769225100771301018870454092195776733713404148107209854319589837065912893886950050014475710487993022446871441745291006872583484904484016675160445051956813458270892987255426124306175981644376132387220592653115198680681599415113693846107513256265786664475140847171199232309959054040549598855540096071644025545380011378699224267386476094625609578175026577574438915560237756211631269508892606487361819580294024890517426145385688872651954375234810165851179472825610388935928343314335785818385432997502580690142745824069324425649841014539759184767894967852140084686374907191334201368157990663221612786915930717863137265422115004312379075387514424418013504845719273362491084343773312223863784612445642628457484755911240142045223588794434936758255934407627797798845984163284188234141748189720486131207717056787874274678817032054207599484868481353850654286432300662844441816881442870309092419819403316992624404814330147713999547016842431046229052730629787303126917772293857268526597971696075341816059144419632313411638449181598749615432759579786759904459572622376445226640320477789729847146666566964779781574324004793812839280030229232007558637553245678282157068798008508085314669870689849130195398091922282976451500332166436022690021512151414957785129353156383015463761369930764222606552674016373223818582934818892509634088556012701185083507277655888966206201268847021924433577267667528349112747631219693423767943100347365959873666672203112603488053804657030529742876405384887716362046781172053231820899207590785239828384415258263083028582559564113684357420846272102244137735093477854604121476555371388250264190889717076366274071301025760885929364633376584588230442845121463045361013138157808339913562413941401375742374666627588748360889092529508646079193067689760840038470807359331119790155318573039940125761744719901193983280971252356426699276164356430755767327435595581277436556093990874257799948820708344290211049007962421943973105555045159930855822217469417778072271746303787062333515206487466974481315510417519657509599918367480773519143903288411914837669284117402563448760236978912505543269217508204418789056076702197865969280024697222705636857488917141114768109239806195956872769333839370110383527779648319373993949397130516660700972382075257091003485905538248753312935659726374028427252994154494822554679888405220037106703527124341324017009859105562181145316141854806351443473807778280558036256878059701447237202448353936776909649821026917543567560773692437925727299253627160991683178915914462440504718352115344867210295393330717915575408864615194456867283490645079131690630718017819723395254267057516485838993338835565110350005300184298571975300766398453275836079941638790156561280143145862003564266119884971203371927192335856223470250672192099380943672201313287612067657796973701812243647111205044907750566236720530534144875991567131833231602134368948969654962072714745747846242468172708342959368947984451016916780542605821907925349451543030624862746609677334956314975924271278812594977124545339408848709611975738760880329255412918056637651780435064974190629735142197340486457138319864992583660569388455668520229971184951192982318248257039881335138196820619120696726970194064732342909595108784531128457487457498007597793491814819379168331296528228164688901155338922736098980265671513575272260777845330406949547319893601818393430956156337026797956460339045677403341677866000953522202275093632254919178458658459472195091739665597644897832819892434174109498452997852362301372372306663882809622347692111192792046844808615145095331479962873924541960982272751918393011338431827470418776056560760688919346187010426252509055065464462139372054938977509974421023595664173354525923747454534295965412501223253408377493500344720354788298763465342324551652630141199660172257040214324283965472256733765697068150215064559992299015026295793060385050096047392981013435912436529013921048892708145366913712375951618553786768587865950888353054389158605925985711484052069198585174750334992634862183508670710737754096438413966805476710163291566971204746332620905735000382033561111948891201139486282378973690052162376170249233110882464705295450052717622648652237688703144373433241112896696350235435668464347029647512048972969840162759220531405787241437773657803718910665280705818866522657171200779850008923815747564993648300030948608411874589729343655123688190721011364697571319514872926353015030327014241104626968650916044412575463145018535258492539349921281735239813245567165673306772597730383723191195358907377768611379768768189056406048268810047982682988921283346756981877792700940761929246405700634253027281423840343138129971886351154141537110330194034546317588812225542606205430428505821592618484467784002235896698455301786888595209827488244540518150926863299354817208980359717595520623718313709447706506909654298187052212388957710852082301764623444669627332616839987863160952492392513618346945851017824139133576153171296535489854720983975297291071823605252268841153744754688991455728705493228302277410383097723994941885081321689216160830389799906664231237838890534894534715142028953268225891905044940969084450630538386620866524111082810965924143980477904748135382161338205220383202590481377152994032144035045965068591653078459822999750514372564446408387454329819178346112922049767180079693869496851441346759234642782978193409446721571472801925856175255542034816223375438849926720104208642606229734089959273209357542341502241879071029445862064683337106421425072589218244576971835301346454171040792975871310196628470860463925781428716916092760183408022042220519939984693319647120405203942728078536483374478143655818072836480158271512006962983554870403735758384607726337646249788346044838922433434132998992208629409864480519209090891126574097515372550344632556928323301377616501646262860110961648902905677736060022153452865907875495315196522817935268341825832032550369706340782356435961714307012178576110646196039082209766922207242273288228587407670658511111177068015814027026409589185986333099088781256409596284911419353873313669051798093381203414697432818993206926005266607065419800884734097033804037936814759391828345051368508216674708790962632411007743696413169953935321618812563394455107814677910341227022177044848542414468152726631418952527071828271561198888998033815538042243452218195409330778081305762462509051573731685510900311158524861943771658929906261759287781780375889024786829906897955797791387673750204139770585930697011029000277164418682145022940440090789039361576901169032036761739715375712994458834256184894487797448979439639758151754510093641483336747504114265335348901196825560225544053488385879777640362505210195201648065889699261797905101300867627833998188191296911912725644385869058387032895813121755670995243704701341693602540529118542873959331088807071830787069238339223604661900299904222682965556932736162821655338455243350887089151849909958888126326583488148665878746975250127941634313409187565839953879459177381128312321476147450384978647092375673068644023529821444978171158291251216801831250190358956787315412121679969764813281404353820206520426694532064096703548557896502868609543507716930055709401459493182650373141850992340202204527450756049661694477101079913556771763264133648565820226213209020838865465728720247871456392098890985019133910931689076066632818555694828581720608870627784278489858556426460427834292292992175694639346619518247607992579945965221093658453383322029526570711876472972147037059881956044182475911485040673431375122789172893434459426377773166290310513945200194252259749444620659706539610776450362629281896269241758225987831975589107895705723844170563152004232545808656631072742542662146980386958974413596039582763175757801051077149755209708791769359607156223740649088206288818345808691135037731995740782506147267835956155481675958942872988931525978745795505413058388735040574362964048257590384727782847269241021171073426057856544256530822476681013260266103957968859564527391332893408991246561963871750456646062767581922429329810819219998690481060491602907596581007888362336860573513904449305067460480247433965594889367839611969721368099123160840874088945246993121193117913089145847991933663323148572212770716684751697051699817288573513823516417961689216545704668495543589720781183163715294055053843008869132710432046595633240534037503224306261877424167636124907898895443621818706284997930317655287291154774349450825730593385415334930106178379299158508025258121228625547735552180281147328226601018307710316146266607598401788126332443938948496654502899929736332722024643493470641796363382660428521185908264280784164069590744061104795793924049014074171041523281101080729843175823293815959843899307618233183500084660637109223994796160115618421826453311985004733365897753244683686681281472749134733170086743784720971280226476358204458628488050210506964103256940523593276255124138789486102160644539726364311356457444780356611013954412529134906833784952462315678245308816151837789351056323825281217453777094736944947749377208074012675902131158401088628440897430369159930224878525300548584268053372584339691317148839273152531170658863926128594822584178529534436354862147897483810120164643344750760598757504590822017994982921303823563354005647847728147498157930072552775474348153481837584291825113298920760282595049374757163189555140998626367753126128572606386403434852305989028691615601343128193874587147093818336856026145028730599920422075578601876697195979355178605818108826227034874896615365162196234088762747592501711095645227045759956632993201521660305226711194694489696065041284526763456734697749781812159865134873676741094478507695467805547337636147481667756525327708509160238837899762654598786405277013166913464327071345737259777404224720433643105906748091971606435164069598374985762393073437060895552794800064828675745345504828914665697113853703049975098908633943615612644120776563445684908550199575266701574961032450160539336276000567746534367288355298073847769339130254394773723558233691878739773017569965992148614813163191820383243070783590884257265525770435124408800396947856723989876629166120555235065911508121153987735333342057490992040170675967582771332232601288176924921412761950732784957249589471457878146094392275449925331856552349527124834550022407219625908915296012262713576756563930554203067659061386497845950732061906837292129012505005025415245447983941276359133329201895681360070257966375888759469137480743015880669166790848245056583062651601198152089721702224390925219371473306820839377766437966158190320549184046429778778523310742400559366732216250593271715719172635639592506088586267437915670959266694470361075245085896784699756772338271323275627895448549757959409006075168103623717726596950635640974543588094497734481808423004871395451820763773606840596875738969773946363039033497402782723317743307239336502922905187377441543520325473100170701842294482744351081493955749551247173288327933188913413454609181070248018562893677120582104295233439978596374303288913304298006542584709734349323449111599330074407996846419721746320124700013622464784308100693961952758935313744656097675875180061383356967570279335740691331395804407207870712119734267753188717225101708696244268835206151011834481338159859149053133452746808550340231425648577567333077458838748419824440884957215633472702009367462208212292326562672512393792049112126360653859316277045681449600401440141598155005607092466723754054095740954461863432475650685704310784058103015547417741819188157926306663194588094872494856615985255824892249832277999662279469379705630703316500385823598538737725376688850483298280630866735696454953398962950563653348948075156468431027515208004590717301362447617908892775773689521934203827117199576479294198205375471828953387445347848833844179223075283565853594996590450894138549857877601442387905541863630226940332939830148482881924427770921935450802132393478210188039413262533674841750439575708464831055876175070270873809220222978162739691539226617555257241306735836385910696670008161837476273050120663171703701649988315093773770868471543068205022809410390997222474041110597814815745573314666387965184918254842593475000427724314598103279653460047542240225963068787234431833261007536577825818472392621874818317307059777418478608775747903234890592219480710134848724728724019854167330793601212147824786046242230699497078054045608971413337412979032595749061696836675336187695896145288570516179429611454264878010417667637739544757468467103582779987748096416228256279241888379710914841909016402963765475225548644024308743362258266645204316211844873364345852923947266812206653648297506184063904147785901016755258370867348573364405195354133758227763926383065830237223566003215023452584310177506332005413260507381831340839741195446304256884694291213113102462293442663628428643876970818706671930269566334412399451761921131786161623015029185042030224787699652403458681935378328001098662414852994600382075595887881405784419951930041447438694176123663094154723119887676083242730641897291793331907013582808556499304829320254527585522279297511232884885697976019126895193685194638575617061362682010571120954855618838796831139617092952093905969009386471470773722023734493727715291568736313604676999591216488310923439436638962621010222563598203189725504225802832093220293669717904259652270054307409654246756968114609162244160782797429568568412590021314792330887121254580806308100563582624851511366637091287442025430288903180934706475377490756801330365890909332756791857297796959742286197495576621651264125527011228361271080686288307074815666513855279412847165163637293165501396042819851558498166517415640455148859716965830160847677113475922394305227760502005828257057880761714926361207768115540619005838062891191650231126669386527364157639516487870296185656165279330637679558675352512996978412578447608298027349249957521640111090196349926311213108035621318215827778264558617915983598686636882259008963074351957129223218364051863260403602084344647306407601304840136685497444877476465568365611835216370559979358198881497118238637019931778849028570701079308256352794747687263410340927331002343344348241756951528643375358049629055840149476263919498004839162777384200032452266694769028916185860873401672962295605619137344172877178948297327955392487650980090922702460165953300551831803777145398015108417387997102601256773774706990251369123633202005801710989182313549529886367064369193630286358048239182079095104410898638414243605214117576224281754953080727919051672910941838688254642465360208756167901802350358977325686808229867437439257338026125113387995877366009347164841769844425700715307845881333870013793667011176654250116641897795435359547362838166710552561984523127640301832067993558973905402301703774835714339496442997652386276869625568416951294110342509241224172465763294000080768141288165511512404156789659983016686107065206706108470813906867059738742155365593453445199842367452370676497313796505691521201004791670063817800040530289919860422362217945884808225618488707704580984988026214209482394706255011461778287270081892855196141857880076046516016307411654758050808104207107266628871483782482873771826117451002956678519037362392661355353793937820579130392897005700643034864209537521151748530321216923565184536687804485894157236466322256207088926254457422246852289618500893647006008322190965123287991277996481059405153285528901976847713989553449962443788751628226013180080988419145505076727768645820751430222834398256071249361729110837954065529404671404737932739071468745750867468049194183648089304015685762285833248983470635237306088169350312299715964255368223497140792601767748395054978414689122012334074466940644075472792899512123365772454488296009250913663278570243884471154120225058537332193444027038258033014000071521194740140933386930831113965496232158118155041397547340833304355894125928567992651378772877315104658165065773715469648202901170292737310146011734197786030944557930589690471591580481721969967221234568545234294135578382626423510221478070764661980740246963531533657232854954401589039659151322184590764481099935500027212766848074893754117574798856227234435172122522469941231510032897123734819507783564666076433773500163219002580205211126071696973987111365633227520751470813812758907999025508009671928253254445740814375878520992192646880239284405072420574744823061047083320036559339441064026298758483335251551543185675693081635762107518935477387751648720891129194926508536492677402004123613263713038486446520827174561389784699880186440097083019154926405122180608950201926894589493455271061793311329095159707767580324921909188189679442704406807035788620571353507839372927485923874383075571904116174027293891393736557647897027694049319489946425986867537375026874542535499825467602114196193454525216207972750793225877160718600205729963132467025677987326610918306933086679716256535289529432552612975285582295721803155984689591556852547285976815348715362712763721674743266744899136570374823360088994880308487098582426597273471346201407784038797076898753176233774340023244503738772319785667075440262524124050296666835518943323574238511160635813391788603263726291570626894274426566050629575902870344477282302207531173879264192971253475298379075291236088699353926216868068501186221080997756902402569972546128269657097923168768930069240456500780634201614308407088559540593848484584493159717803233229435982200402534768244747530489102803447429148385787727344259639233037526053014430244556507498661347587961197091348159424122705548425889201027279423447710219899620152980422807192832648880410499028100809473302260723209436815869641933976810207432622211700922039812538212710239232267678375498504399314299708870077452546103376060164185960442453743852790881631753747867226171233754670705479387711603408118056588511326002956292707322445853932074575816456589636100307289377645876792321709803064198467199300935398546692078247496101961544623130040601428941985059657754462062449602182645071703099473881428037420327062279271263784784671741780468051322127644732128696957235225895320087409242920346928380000376222003965520618788868967739847164647701929896006646884753142821440911699616074034557581291673916938401386712798488704525012486786447364014421799133286248079367416449804127740780046738641338235413956338268991324227334174097420092732666078370171805010968323921530096147800265203583102494039880926702138288984076577471027239202687386952250826776630332950098834259663607526607920108824743662202910148220213182769016637656628840122425570251629486410408572833550103182605054786148800400143216256165793648214721252205244394520645795841153370762168142776842667530709941095070367832492145835618431704920417762750244880157191075314856625650000132036239841483970578201839193424727768988956028479119153991052789954057487002923472658064996691554100145959035176722048508118597968623695310093423695053602307069486163456293832086233308383536666535070923976367974213146835382251353558962873705798697106950825655688760805301512617625885166865185993265562329180240033109775251253907442394648256867644022715263878539696119814741259901978571165843078744736106059784430085441549443484447097086291288503517823445332162553165459814992159750290968302707257562123060355618327517949480122826499292918047918214556478199789777480489206746617606535717265913819594745909480764217884103718521191518475784915006354614166457117914081077854041625123011179140805075692687387530346000923325586917936431389310874267404315672271532217336371764934145027914229393594445677186919341369228806026553023252276086583128798955193707001244820467469571305574454150245271801200663161384673985450465565521878095518521640762202271054410527404595094220695203253605192316877156007562989181501209201116271785507244475359291234422798666448714049550330487548556331885734961017365510169987685260642171209881889450913271462672610571891917333104487780778178792919193824953429782343157498162513112049067992607505854923520025927999759308311765886864799737074687232617831718654179209101118801588069855896957494389896709183995667852278221516066698289425059799516910179247557010143528080697854558580656416463017556238691010768579850016431131455602026255555608589682526399234860384967941798165637448676598549124535475845025507943599596727741262706970042412842808280815257722043686087091290538487557485729258374080182925869159877696113398900854144869286283276321268642561162771227968493788012325408717258039590010488004268888926979723432632634360277938607705818820765899992510075816465521200902471644171701074250089937180931360125930282713516738376064308481433087278220416085523500563304204445599684634546603673338610366472663916897308320087742181363551335009722647356366638451865079157411017629164014773475477953119481581935031495825847104775818654281857750113729650429109608835144045124718239854341793479760217812140305363661670365270001457942852115332297089542229659186724072727311154685283517311387103952868229831813325902196753651309330788060366772596645309890499001523306755752828289874372446513680252486334825347901958751914256196895032457461434880268444044728539616520634813707607997916613179390322989340522807363774498454929445362586886573801636709689951488384279539033350599354200202882313093874036429830782229585605523148894075650655044557477058810528057135924097585083034977784025196978099671782595770113543295483035276940411945350669967350450466614260914411943324591651587500718268875127336712760795461532655327528082052203636098799983600421447242537381780052860483613126687687191901923772738898947630983499372542048568541275063406940898959688775897783127590011673009076612850228385219524866976104308745958307522986624784669639675364980054134954312169456329264940430672042672521504236024542959367833441894911644086421418323513871667808059599443755034823952991679458443348722702653671382775303259393937186946367799342478848420135187579277043265690935694243644268128712852388993401998512081560645721283964923129315182468313401683734291377223366734126599719178504479772643512456414155949919806571645286968119308868526801460973402862635108063624561449361223668392128936768419663753232406420802645379658239118424106593088452060403058834326306204149127575015351699808906452749451348341055977879982690534045148194944446136173577939910399095994648567264118412455468959769764398187602050210096493671837633105771631309845995361030437944249479326379126560215960622178157422764976855273597043673928557966821993391672475212096420837559075740157999969873865469719482847180179865058191047190055531724249950865149452272437263155402755231035924000382629761019461387256874628876997293945316990471671986472373537310055952182726040716765815238502606747693475245639475769754426922335403959149712387103927029210935586276477764663398020539227489802579335640517830416206199795639838764090988917205163384742362941987148452473231155476618944198079525964897013785099094673935287669992318769664759897330573745917604062253822570519882347914598507810077023909137796594998491875674642258044948039068622259571363910480486547930090136686487144170215064852878500799979269144930541477958135893809582314840555809690242632078922107504162791598595005451295517492733509487153265332405199999355441557207422233446054491657298235167980400874997627522798207349432510350569884866484314038154158515005178973261179600752967986873939169628549395508361698763552673635288367488490022154339771063782172644777596235771222576003548209104241929219513264722074273335002506081604278038793519930430780687319180095248528636568804293649010417060944422266350242564444778609764848608578128598778527837934649948220354374251691933618440496237558383190703527241592109911107642025684203167734874783739529003694655397526680285652516727951921499411478759856097549332194817372895118999602496435430385282083713618171095526194466506806777377312173194792493816797186127212603939298123840447211957341143962940862550682669513078949830528945433628716522092672362284688736963282229750026972274136638361831379389654118183860124335343874694489279814210422635800713674263956295384529882047445794418344629268383918848025274214026916509518641034315949746333872989947054819599991630463468351908063695402744922711685218893870828229833818293652771239771296410865897397658779182601721711474047352678844620302255555727128281994696907065966334980208016495900439391204783434856100776667493754756924607029566370036568008026105319371900959796082589473047195307810770090256343037255343072424651926724195628144107757284989747221689407030159798444655701222575535063381807643410565764127765282865436522858519358519079169289478495621342541724966273937176952669844698597773911661562975340961965344784196913535463842642588820835206840849924034005359901993313179061760858522876225557842671905053324380373198386741638503669195936532697472518363311897413099019354801607172109920526295616068318591553231129303610116124794424859641586068662807445156389017645029884954832707142573998886159533949978522757479571013716293646614045873989316656038394149030352822276279869975428974852974573988089184697892446591930228635650734976587756167471278561564909470509506233471229603036471673778652719559841059492650263505640855464468496208744165709122331009652932113421766942003797275141926196880186252570027214857770891926337426404922142729272767202407352380747915320394723199800903952449886599607685472413075308156497172696385047532184390779765892201995462300867774788026175471283320202054277810190342288472035275880421215479086700043351056435348937639463244165080631139621892387843493309430129612609291643413694067109979337682881547211512242221683648614749003153184170009884479459702361624217557111807819692084093746455740580419082770284050268339620187508308582490141373550918017764370648533600939984138008340573925520907958092317166641364140228248495992547016266335596451722495837266922015170994179185949537709881560286093579605697225497697001709583182927504098511844229555861633680458200479268422767593117091592239916996812898021378169760756714879721958133800811627819765284139587232738683372144507111933663314578123017580247281652870592595978741493695831714724178572799129096602539842322648024443888964656083343809257288295440682927974731398620059244709208648853528526976433010954801202921726871169102537145389476683567577076782243991718740148948863015737362286494744617326250000046004830304842897984361142486961297556241899846439872946114784953268154123848069848659490169304465528108998556967549937584004233632621301671343898285662169795257777060524706220419500172474478811128558400428899203105438172024073617023213376368844953709356724728829068920031148073548607008885884052045554771125685937087086284485424891478149469873558084500833564836023100520495569486614725182694369239059818699692904130624803344692406822997442685463073354248279978631866697630240804041708603410736828372222313418444166876019394282100131919595552999015585184496826994293839122412415403027680496185145844014996271804021124503036557390984771212274247800792780076623728148343393883338069530089371933676645267210653057820165721649380296052646762076084288075805409769135329011963732361808878976232936339371165314824604256727454419205833280945760087730572524439524289333506922602436184232929193519426741666528526819623715898922121242910183650525819126117749069183247503090983061542399016526985117198569703871450799476559354733126227171309453826524571270758422574827428865131005024636693387976758260982320622410758720318110781709583420383513567969074474205049391145823226713732556346132763446024471165269744167813844893886614519868918635562983786745540673131974442766460579387632286032090117633003350419781176657216000387255242295834790668353090107977590396991908075352455712481181020673674307918695682405172873855191842620463229862489409405812340140195827389487825416234977132770763019601715670277028021458067466554996456198716785411808539204401797219028475059885445642212438552028807562889718317365089252372373805009585982542271458442014648268339640631262253594117073924172974223525358605448320744649973070861983127960725386091236720570825615334353991141787846028992361809638966175612257844458985423571690801709866822119933762720424150372885934664976615300839705773694883852705813007987572662112719447905824924452301368878677127293773015583751409020820523389968189637379255148968333756292204383706476190298656618032210243095288371690111490606112923797080004588632462535417525083991297468488477632906945033480915908016514856731902127774180056126358694451768495250266298076267011828628131863701508417090487894060094165450603850878623224674035480219342487501120846397242702746588912976977934924984360649504811892174225451391247359451469431040846455775698589845398258857773679880661134196663506304948776683299460862047473990040453814422348691656872811660709492000053744763423882154247571094095172732174484510527143137968554785850233056465283268522846400941983496058448720441650293836039143192682300769228250907252864259975387756328902910008341323370719716862143130486632123479016564978420760861505560068476601982886391663683881455264519410168332275509658669175075591916686211516299485432490878854038158934007552757228644073874193241570724028166991496319348273273699333145193470673461143956160277227980144776341006960562091548145508932162645043316369564848577139956290223812828195798950754371882685555662189164585191363969420929974872762289145731997357981876564155127689915884678336524166127076930198424797920066188995119328045744416279512992343387051306206914093818110667346674065617532619639988923784442092530588472054313669505401855294436432524073337187076363812269944861176101866212299065014942685543120817838020195274349442251293267356263803312106346966948132360004731687063817578627250642295446414390465087899511637779082879077990200144203112235366133501060902808506650499415903286720093641755304937254803100506343162436947664284767342009842348366682881356175963010175550886479468596787049673375229098372055128511864690001981788481101240941871193214558979372282602959806666072537245610672931606480275678477315654239022811636933147081634563009456555858451790083360583455514549112675515459118311071061153563176327738448659047023401094191779620895815567764910428155328263953946739727529125912920154504478984947070810153236730565949580491127166190744914908178760986725516423721343524769983689082232635736378686285266818704796167754701333596729676299751960477142948790946916743628465361168714524607359482687443012123516906200981563665194012370591178441958894251095114594897467160606099347224325061974039884999853367793283718202165922091314117066044345699795372270815061630337388090742085658851196286083936182468480852765096400759584688624485453944132451659561487382936288123343626269956679444607682848117108420481108069238831191180201079463566717426844686941918496412007803698092745343253928455836245741988002437095490600230654328986553627186650652838625288419284806539233135152677047642684430305443619603115625926112627901662056232871148581239099738596107579962411671781842069458501925645136738765557541592822587915673006799092941325379517016974638247270353630815065305376428205614123798127888704201413497478540701914678927559480697669916916946299425915645542476036179711255308273893319270305011346733710235807802086905897731850374205891175030708030415092463071162990346551801886868726232977377332289595956299968452486764171586546099310233688750616821380247852449664497673149759094145208045467475171924592824849687980806634587664180039596533691871352278809476495767586593377927905023374253090661194765059449562623963880909549295632140238229331803313919188346095118301690516948933619679151955187628987891655630450429733753384766518583992907816704572853603463823936119577758054183128927557876664604755735400658016096199129377940280118192423627086778410271357587101943880161541824151960949040360532736599811250498217207817810050091123623924514010770657849638539229053819790332570748440922302398981220835358918147596846248136079108061386264572296610751737434581715590603743960814127339928486763742686543866054455389099274489995172585699891950462321799549942685523028244658780989498148181343695652284601798028306896162115079458668842317707804797856968540191352432644558104409084291239860206400183900919958900346647045657329994666086275293078111731890016729091508679483689645708297788903776390458211693525762446720906452255475878684392778109621779221166434726808799379360335748768780267010251804156291187545925347116386551036023129520316431666059325108985057873226798283811112387699985343260266702514624809745566942054623700862462097152692903614937755060412057869498722177256917229155136105309218358628880589278905004871948045697903390391893432261352550685259997147903433854538069623736957133945710105488131475824633011071607041014856851548880163853986928651279230715049692262900745167246289994877696576557331563355196970380982440543176230736142019928014370009532720922766901396861895398599159486407318871765336220665057823279402333101453365374849027438144580458636621630524419681980067241290001867543708564733433131108919332529680098676087064019155175010633823200808240958893578762667783652905634371004523881883558803106550505424278603980352227633547511214051409374276481323845093972241348804603094348249593299990929958046532259031668212885441020747951403787938944330582487864277911314950965958742053375597895506366616381422234017848251887449793587518960179667857731375332619031112742824641411449447581089588878281128947962935885911827525596221408569353602225324473201447820507322517063987015456390615537362528959353118334280508078975477274189781311723901133209683659647247229670073146413203584176478636519378402049153251322210424665775192404860815741808521655245174704596156929533738100666058248980208609855326119964227360902266865216034102142806774045138381739902953521062436827743910508346068169137421866672845292464093352341893389843653145373968590762413239917091044277446596597767284973990624007529298848248529416956392016968693004654705910708715958532440906638292032092622862807339996164754739120248298727041103707472686806604755768924642267625175415877614624389435908446782083390471839059598537014276182467966126342211293454827735298348795284301421403966433744482523563861469443860663156117880522083775744069367302776122242108949141355788796908514357801048688145519281402021055434917287129310374686768552595187592770778754975307876389175607537169948836497456416555404590697878876368383415285040302640671455179229340931208558276260003274236321205422645291824546226745642995682159467274886709238441869522426308653478927583952588962715686696335408961551492660952875078534951517685616804978958852161176736589487123522417632268059983749643976797581575542420660381425616663758379876902399279404793795356967026751094042139089083072766230884085121707755456356678610129816144889146487922594316673087535991814292014395576552396715447585354979543101796533298168239263501541808654390792557796183005383922444994570873311743617473650996903369155680546182749201071222852052794406714550974469196171631738790214475932301021832575178440455643987090517648707297097100260807529031429085388912311463665262967961967258077179089571172646251785113523345362571632677380860678162382564115714747909665121147988377784805965171986916130555433293240847305524938304258216649583594366016128401615810979738452567760592168770199153655222672331797781030950217655440233239865113373069838428520912242206939187360040377384885528307122079074277079317674051181447566181529823174126862272229248445290237844587165726379452767290865702816313799665512621130925892590006753949284726445785630136075617880732611534533251354389565734457103082934227295246897454124580196058854368354018191764449682634911241444513583710957156352743742026502264095824972202794269367435723071478390542188322740127928760010693608546936583183825606288330605432451983362523764263492635292965512326542828243204562809285639546009762376592745759707288784411168331677046933166857503196618663500028572671011167877534211998982209520851507862221401064539997073233926223373746447064130693304356370779794853155450535135764668846561372203900801739809279078228880977686970870173686868672924471803173793034560461982877513130450137912195168024843755174514600726515836741908995668595477258115189874080928060603291404722131942912757065319917347367772531193153352296666711599768271833994618406672094120833052102624519512476567642211745282688448738690717065366527392025890925267836975525970278131726018110253303298090924546866061783353466743336262630444564759267144535617803474503688430009536965654092545146161113830129297762320663783228247561341175455052517828576432199595130587442340865501295571693307745532100655722691219031839578203338880541538033837223375531032647802770470452576148665697007498899052510733525233461711015561177661489145132113614443763497583341679941790256689510785225363158041641618067665674381077429416393360241871807694133125122453700919950378859182383954894355167793013830334510119820624661702447791117933070254297529361830752853716229950595199615417451542734771188975560634892342299248469563990050271350783012111188852723967628144710309396553349697956394288280031347654518303554649684347863220709150362351676125996216278851332066625782971349630704179467101707026907572909300315018362182383192250721851525643928440322994096299909478279651079070208559617286416901974590411188109509034434909275156337210858022634223121502103345011349863940450314011600663303896495206619176741528240231907259175934798685740059568492307589495739605862205881274341881758817374320034547683145937393351658952894755897752857503750277707397074243522680019487951774018001545999794138553226970117450102855714735451124408313225259696735472437310029173870700659685855534907984885347498140546418960348298073183833715254311910471741771777320544277754660918899341436776708498817451204025792037272783518368626196492778916132469445610440010136959670395160312255322319522474546805458513326005731916183287830099227169001877937183710278650809856811443625484070306470398451725477691264020781962634390878099823791875401696797446576807780529176869523421046360324378440511977943875332665662010766634854320641861610766487882837397048730950929686476755982473811217477501900560763707404075105201853725386778674537727448074278043399842810450159543088611644078779238995178546196872041312959891208648866295788644804556798337563651955785076733587740768775264486007323913980182351753198770393773652596011790853088011586026830502944374630494782767386600758503583219243157788105002635468848475330932631946430598848880105361881891603359735235478476808899154731027305852624928190150413627335605235993878192633038819383590660665610868085004561975589997247591005660630326340148343121598692093383565234493019341175147436146329493167410819806173667186957578512997300873636130658531275282345449066054241757598603606359623121321422569983232518187880887092041177990800989584416727643875263808982349930748296447546386711932767877484455094355470189858744242118373664350951973328611408797612004692451102012992799988452762997056691992511078421436575984448581773500662359243122674094024361321712826917562066547493448262708790921821232946873883040690529398644835882587813541834392152910980984900381387613773538964614752729070806830928388979145785093953946571958054852039729618931126487663120464537370008080717792320556808694085774908916692864114207661493960455374408345613878521683688452470418225813396545699362265755839108817440141821811763335038322630634708678790955695800022194794478900556446876655851588486471137636092245951388804032504982769952820439861009229387183492182914707936987710285666734396595035824016483680082175505164300066921150386464177988861190105194137129750441160373075345605643760172155645051392799729666159428074411166575276228328686125029201284666462690356624665984123170705960307408590549850251658154796646360014226549576781228649711436556188088216969027297256985718690127528048467442825864451864251820435806805268018232605375620848037157146880904761852681119175588042452315607867867857354603440919075788388798284370208360082582089883782755778918700429258956248405906329428647414623218258637258050095495215371336310140139408726765697753042608676063320992314831453058224586191590018315726964068715687147652572047813966961311427719130006490041128534004192419780388640911581786552557902088387438218528685689177930918118191672569824193604070335582941606276323138974146090995597743366881718398854908536481093987311166719362410093933251404690997078023285840400080153754596213268553216230325956506488399190740597533770747704048819317041058547226128683337879116746651853943086949976183029069727750486272689736109725489357153277720697150570864417453355619410655170861561017963994156246505224364393871980798129191956968460885247937092438785595998578949325438128210672228087822674211125566817367671620982563886862005012374967561795734702187370944916493089857865351265932675743479794651166427578848856684884625865196558275845732673451413900989560264339628143811064790972250239358256768896868133901171736256521031375688544476354877758196919584691344552856490417837556022307904976024739608015041424422463626203032192744391442911732290864009769979490476835346031511778271162339390508897897807593633934584352244579680799504369666309446822071197622242126529216248135155313651974871101117210431477065958282264653251250961416982916749398089736772527476519136483062985195995869956457436269943083626191461602419963647381114571985829674715620612998530564512581781027304262280441752811837907236211788179782351042784394974748124142457596055113405037890994704449300275054074644943511284920744269877012487193514716183440504457859219977039476019438756933751601778811773523699254401388675593366491387551905887847827846688573375871446530077165266841120267740942919456999732121222256721798961681222692337560947693910964887781173439696537208898287039359994845957243131327676609408708267058160680510802507514808527342602961224833817244384472809742218063889458184482368803885994241010802632465148738380155256360571864417064030752903304158731805866805443358958120503723134577996243415664994976784041006990271889589124716411446879815704074780677908812399668855315238982824192770837661723267164749244141959013179096437127487145817425591570788570430880437910464186976689266850874557610055337384184120788223188240993381689574217746322544093558648763940364495541904633009055246902492836747010491413266555538010183670280093836123752147462940707216384410643120038165734319285648087019501850607190798787780680739675067417752086249579208497832151834021149627920508444162189954320182973864101155101563005890693130942944010921753516782885458890655241689479160040108866021836603143591259979880480680502289376902817642975586944535266952329145492129966982378175612980615684879984825335881432547624778015927390483230582607646202929758387242274814893498699053685656761147020860602575371875914386637354698416428008369765323532064488556082307283409500544922611425598114352543318212606214486078976529163674930193157282807015818313491308958003185163118351425506024047915954909440947037443283934322933839351175260511008672285333543070514191209783776935324656824838098615866829364249236301683376397052065448660068012819234407738368990280313705091627427725792778453265469753872803627062882263760432301998090567936873333206767413990971618635831263439465493958410452615056883230238753126269624187361296579916347532749265380768119453832280999792476879973284723194741060922257165651158051371586491863794005362099843803796364783346552225376778315541212235543710840014162231867556252819173540138791404293595961981296068611858594673711781229213526906595811700402454018149976446352244225396558499322026293614847935403488130722489158805695191957708914100456872566459714965370149932570679199453472014500278058817831393505150551100000476325796429552184924390442057280594325021897327272118169334571074545890188736043376619928492017758608342618646517531399409729391938466113222103997477313991109915334108620447642525425795643549546647302957176949756914596420992337611228799578082122644598936148008105659934782136660276016955022638397954541575069364282943221552545163418774850192000684500042292234207006121369991597681324140120199817606811512610071994861934424604293273292434917525134008204051664419852403398557569253715851853546615572911045987654820694616530376289276496752684884916471867415586224531527130866717448502245260595808631117786644133331137093879762453238294495441188091871960181209110465195774995450452168469682334833309460153991473896290310605914493014096689646165057104514765638772572586405877386877634545475378887759589381248720007941903950488190318844543785191647230099107413509192288129169513414523493289268560275967452762727803682443275688208386060167121474548801308662402572116526677652316144066185510398504662311085059701334771779051753006744140448219880344451291252408581567278359893487332230760876477826520698575375403493757227016672609100588537498458577906547247142527393238646917638804524140114204179852776531612026726548116554272351397200127534731844222007506031853481897215420874381166710797447692476608530479483975605556017192883506407254174081986252152392085769815182957318557014305378786580934406076877957431752919224425069060063420116275744108995176487014172063237525534805152446990523911043313975187069594015066417920100709020338476852295362949639024957868725177419859885831455201621473687332903591563185180409031124770312344996815631433404171460729003780786448417523093530018909647417026818204221013987456308450711261984495150347905131637285073295305206638341804712000673010612500890958008421611554977173915481489534150586129399197466333683790831168604746859979247540098251570251147515684162318947437091612120438663233493651830283352941967388312994120506811643752730574563238166422527560642433616756098022273497193337135567618221020751190619760843705823419071521204351250843392023473975976728789946249165775690860587337426553065845345412475349022511768507787650107585607587717314421955906405206156931954504930173990582425962764090917344737455484893117023705420951870734783282685858608339663678136523688934737919882544708781614852337374228674457124673987330104502394393318895192316710220753861811548828977190379349884491495854141749420791807381168970529803128567090445443574026124060882554474852350819883572013248461747912919069902509987358663368568003878103236278157364920385311509977674617671919064257771002467912095444940616070935917172768984960084241850331841611133085073344073168254379180222786736117857094094236964904811472773035747479216986093328554804277781185678457092512656280884447283442677606036190525586801227018207472146749700085563185765474911208663785116498486436347509795849867425020510176164699613711436961523455261625362616989023550648087179850953201262821611564310011744204793871639580140366677691688944116178846835556471830599082074586020720147352136334059082588110619568989180732086972800159668278384216706423994548376151985518247094339366348288720386623639773364806500969771517874233203480796304453016194713976572257805305496879094729009581884581062811715865785252020130312940579250391947515995262614331059296336567425811240637883262263067182694818799730990039724304202867090483439054663414770499298966631309017676348417445829424674149839501278216646129256921033573490869978077648801006176813240687402030083613337115939103988085215114754308327747751885127392589955426603444088553929650045532512273664614389646524786761628832594216156335154507476689211057004056612351602011301515053167445687498537571018170747081208681047561367886982496778061648618470249881943938500202650495768589524620974045741067327590885147609150537462894540482565725843605152153297861580940738410444314812191845765034563671121508321915863226877962392432814425749329236867701984192937588632371825964556870256569481995058466776560451124576464611988151966938254064598049090789655503434899839665538487809878087814508554005649525072449242226621653240435227412225820069375608182124546231116197245887615905757128311408620358835309184753957300363833947681888874180846871723744269005473247469377439547218376717190280665724891728131769446989555980281387286490456714917549352432587191637002615138959378250254070219889702559120810105888939166592611308846457585375619092010562791513237425129194566849790373261636251108635210789792289324072109226273446115925576117786221826706888352625955636793492521943418254349388920993232249917911457152937860566784287656929594147721891914830060005875933094718444729674295536915208763161181515231833589474428129390591368657224473315636476173753638061405690474240666075317380789615455605077201157014796287793446621277499268106386910108262744383178312270169478543283474425544765278732610377394135561787313655196040900992662525131203571855497895265322325750004896951748531474234221491856011983915218214530286900813895558495894921013168311603735172356680614777271881471583127423437107216799637035199310057656284193212351581920583633106962484707477757700222554351940951816202201726472793573369572656446993446224030391342882398565005059644675935618997109284900245836563978041990408572195279472971852290490194535062105593317283990535323834352526934498720546826753051343623428921203006432112554996071416784791703501326384583114448850430376558729992522589634979130294785528072165758963170921682838859384907302053341179892144333804195449527408594203019227898981761193181204269393048070617629791868585288553248077503047540754042340647361324891007981834125905015718251494414856152750997337258245402280774178558461186184684948404980251204382693651279525129580097154475728646133203858016162266480394339673787046439693332688641185862411906554788612206767283012372443858209451139655220694995347026445801519061547255243492110314186531873709475872796996455363705776276728344184957851811505385365653977560483612536784326700881210213310411830617736411394344402937796418408461473018172604726535108386529235600191998426066441742294052156859935790147887637967570651278887890610540958435216584663881258874960860389971111006697135651849537758985294773186841963403541629143055729226156707888766755637065224725602687600628521637718615428560935752826275615319265478674411765290805368298311864543614221739482680123231716035685464221210683538179932739894373288505415710979354839136387488410043040789292301443389584264625909424382051876635500166264004837405855706137722303419812610421523618949825401139607374284673698443035633182923493182533813130048803398744025931933991420964601277814544964574007606829223040631635812141110889839485574147754879004870754350056866490647667566943763077141515420491327373224514341260269427984942311348195886249233491569994771976411103828866449408044002180476101250233180931239912101484289744999948075191143454122235582588739516491958188804512827077059068943584848319560974152515338760661790684985156055664523757487615279416865600270530363733623825281485834563976488484158265979308299258988148689084552582403299745892343553802693084996799305329235231525282306462257360828059761492192664107039726639864000546474703409022739573627751000120456821885072822466237334620365496559540443437700368731909389106202103094124205914670565675942681037359554276963515533750692383682425626970833315978976062119681268582060244585402377180616617809437176498458351702894041397377006114938076548002565256215393589884218805163460632749788540112478756126615889354881577913617291377571002058800249081943940975098860856449749285232171870091534788498841229851672624339977686803302276068172594496414439966160655964187414384505119706830090774176732223597734103195029735742411140701504047717484970356150044912008629263582722308280057326118188388084751727555062173977052039956170695951057594086232204939048737915315018622346526447386038812714081411925640852762275998212325830245208917851166754364436918727871902130419678445535528177576659319873721502543368906450637078326668915014190284903958481576526865992254284814608203395647164526408977488685759597923668888083436793283214790530648271443929587199738096979551874435957436777643083945186061908961218320527196798144367662041212276730093739695660535383237618080015316455727956444212380497788303622184427321507495479100550301724822602835717311880654719305315994457894063747836168756045732583320091278061029084047010218061434489868281199257532805642837757088713324600321636410024625619593946289094084422034870597779511245568367339016102281767125107665275766690607018046395830939317583869690167723820946919373333052459073700344009880702630880281096244976655891887278856267607304112912134682885298799997815522678993168806403043617645711251512276360212121441586364455491386215965799550647197611191402820472071558123910851124174011732715280606147455278673437829290787172898665539829084714123586964781845883761387913206179435301793726703250246720551789423248649615776401422408082444681091735901270264113865829975842132668604310397281521079093614456199217121374571588533127801799016443013940060676593409957922449322131143457328310089492664889152300497579445233532756424486147336598671205990889773183503792077095778206412898009834589237733080485235372291803994825415522612821983510119740707913796968444677551792755979178434397937574500266898598663762618464431674206152226000756008536831615706491369720747051245451339810158219505012011327780786326609291512251836963825850570960598164287735499313053990023291613160150505643358694441663099013840363254996866603278348393471711263537205814743247471975056661225413744538308453288534240835749005284388344463474095149411172916657074634516551668969619937256834287057366387099302036382864346713931945698923247053616699071964680945314905586953430467071709583742355352624566888842419904634361552556451556691397002389045723398367128853407112195321590174601489947398470687373680486701213126550261650321057572679616016618422284489299814390709197705088827881470123419785493876807918988707149755361797555297375205733221271937608562611657658935984799071619673966167104876498343841376892428886233664093109242372541721606864400975272983237036294923166877090754512593075459651143067933517596793191541874595058022246741939698133968185375890585421487893913248623156088247005598253692115599134337073693499533783586546548303861535180005861313365598266532192581300070506662081938494653794876527708477782185995310828122842185615352503048067841181548733012552017717220309292242236631464192966366944226503715587228851730711860141413808161698283335489498586072080156913117094431097687174835060223320943860800328751642739778612168014148745547836821589677804637908905472940733923045937594701706398260920993204575573532736579033874638423656623939200807891499847871525315318666518787858012962440232360806106116883413950619431092638927586524969663475926480790060214161047381862049280126465204377049861118894683627782712547584961745223335616013818307014758468582661802505179756172862854701120582166100185836000894332107316506503645074488613749677503832038250100348840735189210536302220318422072656944571274303053518167002191942848568643722234257489513718242342073389945226020565217857110551143784152226103458452888982062499006516706781753547081299005892643158167065932650921185386013729445107736864533562681415341231346754037488621305134474883841704528171118575688866949370402565746191347994499566249374746413877251085877564563390790463001952842546199212354488134858372497428156470349230832989376329391967015238231620435488475064011731761915535686349270298942429063370659861022780224472996930963225086586065853367539274795076092485474582838025038474056310680497508993017060760954613781588563840665535001977090799217432481473306689169383909957635733723078280560216249482716184317854385737892591654547398088816592457123844156039922242571442723815319757096445918718194372908336986091743847324386580683085614983688999493837442005066289785868839630622393160119667702884495983861096968424740238010926287628476093014583272410616743874914595905926629302881775281935049958483193197723513005619353154619686734899977530943171367763655516919258482865574700885184581673807549396706101889971850699286179179959407017912794660789530440788559106632272567645395799701810153848884533930641972430485257179171692358605110145840578737772325628147672801216665215974841815342924829049140980495411156248760398495450699762907108772864172308114222774715847503907402721364200423424680903504023900418227901750103385676379466305229426973032321455624071687821289894903808678132880552911761686870146157395508493471407383691474820048801407397128685500804626706736773160062911693313452205739396711825245936348104396870461530261283259609649600035490411383654035438652045855355906236197975836974110748322282565013114354425505623659430539156687511671817879403999116115181721721208575430162616177652817722866695795576948582225525858831485036639655770724694453131582552003142340145372520970359526558579827153595834664399708953280177874321790798951457247570211601658712372646613628626869363583496033502886255369951355104055739950935044250108292489453304539591380833766145047096334129683600164107032752220135469903444380692120532727265675589067783375130620258230137966474118527895869616144408326951096740194588431463295003657146997999163011871679887059112287876593188885186446032052330686568095659062117270405781446795994806675259307514003503359044858465986954368344859257090159386707610922714317225893158432697091115432483918618533376130892043837480620714178782177644682112213905696861614229816183045160823202395302839410253010412266512630610502532292431339487994713446788507994944248427148977161757407150678233321195723532055425747442992649030683854331567609593247498883727719894578757390999568127240359733313088888015727366902776854046046940162661642037050764052035367128742005466178464535573074505213736539966081213814355861759656147008798635847899705348849632427642733646845029103066577190441900105324449427967827262856062373948395802909495029187860328624178727918068766460771345525093303373332505415267821100594895104957398151545910487899445791768196141527634476608469212615879831853899984496293189243214230592053197265098009619402721151128831617976905682016455956922340693453229126643560434502104998142350588012285446791858864301293670533193686830123148370797807223276439637768111676978223668974418623376154131416076620061673342291447780159142724643777760821262149079044842922822790482948367914787149305879297427446812394417114068792097251107476595644444394075577900678680647150286856671011317898554321677457204138137792484975391465036171780102976441850953128132226589812766778760375014141824687083907832667869255346469424148472732591702649084912920436347632874968353305718028667087181124377973835334843494395244901542245053247069141739372188791939479256629934058703477385738351859011360515482737256640783254530743229976934842360102749374818322807072259421998005838152893670863665392766825020196118852594486449380624088547888311232913390994769709681082555661577258466125641823002637183418943877305871806021060628864213352461353739540714655920689546954016356629618178394669849663068130764140059637032366339290387016707019535293668641430323390579872548668459332259707096384585462996794728700487606207822977169070006787896956427756916703310874384346212260942036456725894897883449038246236393280755251689923950038832366636536970540642809353038969719691312534150605140859530638238914575533580620279286276497752947730337498147333543443147100618949946812616502105678105484954346891371865149833562374740454172604853335995607371332128352598958013245463899601989265565627206188106893931164225425188802093732628210460291036124950859594968251964524208896380972993107658340928931614426887073406480002342315839943116550279156476695691215124313144425291296573248614944736149136194752576859370966858582858020630171709457912430297518658459738399273545114516573599407148763681584303414273846204820975220362286592244579701429515294161350463135640082948612126562585659213917207239520823354721558396342094406539226034869669702793347769247392194775084163088845461793506934677537280311869774899280248577446421688091828065302060789713469652037916447518939705910439993985211415726346081300544060893655228064408432973245085507902858568491478245084620621307246816050307305912309992821495556699372281772883359326703648543978770304519185183122476282349507689358681539856311858612494481794147272012146510009442417532001494850193617075012707044051419918935183736813270145336848295201235095901726673274023877986484380740555994220044432376155102873872547657549065659002036163225335670989043435794495401901541024663880812539759710581136374711933528485788773040544443907796556707620610719823427561800282369950867428895182517645975528153108485790043679138410617547525165947683355084780067457483122557689070728315476997074646973521778647962367696901647910111738188342045772049241269711913695746741440505207054537012698368782262547114552435231416800706667763187154091624332859917684885381064188640632259557210343983714240525649318811554861995863706282934254048688935829259082886553587464295038037981770876682200587351843129869407083011862612546370052107309593147740876304604605289700973852207015271422597156564507609781815832494695849183700542193237811177793143959966914948347827095141436072865731075327342256300237359532756814327490191266049885039173622695732287342617661104625807481776003029811126733227341105009154905909993617120767956935975114570582730559006462422337634612975552610228846743975210709289396607907297844518539781472695839866990720283779245060943764929879049748388077501845984594682260424156615218962859022095708736455893461235060267940714437972209702977385064065133619996972875667589196588779635591713054974508312834523461670358565663814377801285146527920112445748408796878999175516960315610063193840599111066431405720758867845994114810866174603574261722435151906336816289026613383850279903091147606661821423045356943809317503602628830257936535922172829309458921075567458217577411032996860791163532319254699686720842743543847675752859116131160300846276949039638393122927784151778771235081478832707791356586313107563919637032468229355666208320693026564285505221021284248488121007678577000965119889660674043722645645859060630654374146005677303586337074146209080954968842715732282112659167347898723189348017720038193582357621266700819332337224660208306955474261315116144387588097677286202222658788553112001408461464790852727232504455262122630372800817474398095172569741240997783649373713789962617150267632719256883455808568338076966646273202653241184867689712282044482110386475550005546198480643899087111857802885524624527185689394392961702030156626598095377973465533100584804835622772142347878826312170761788343109795680476217894287190732249569740747782500885186406495847520993958802549558028875740340232347214889552821645507018121348276831597759131635847818637397259546186445998016054366075813084022439187949688515144856860546734672804061763275049364857075859823347675426622055331763409879849111508867586344383713167373509801750464747848689726286568279519670867888745660573847923625193013871246985105844005368847912942749249101160599901003825349493539112394917033392541546010010443607234409732263201640451802127981745140061819605214047908481656645712425511203656599972620994311007267078408183830946094002430393249299720822251839841289612603443127972246510429456962548796546133430625634524409882734119131929622574201015583821960213749806398500397641233164354609251125940488555182116324427720312576902247786073554333612601488747288022750677142035925911171873732458890602438093921816402194074639468617908495874149566061398557546898253332785493101643705238457306510035981934035143449099220854936528020401064113501240421534058625740351206383104029074211273806272998676098601147080884267490196237311648224682822926936518061827548280575197639146449314877593593881464887255291784018053137423000413244951938476884900855825719716044089607462755527489151584203509767196437410969594661345930939660592589665534377101451434926233315112134535824592011876081851831386344461186167704040154681895320059307088719706066217013974273705196389632294824494943564804383354400745596194713996510556947195430601010450146868951671041226039832890041413181991477389390925458241425320085602030131838562702175724999747084380905104179655911360697659600166947969595266973104341132567837163961459590248199352488240990358119809554884286118580265967646994487908218138305012520222494017330099088788544112565177865777488981576450395518471897758394591444563492137650503799760367476492174347166102969421038464993612663041037019087016941719658372902870898028553266179559026931376842000661024283405137720108060123906782558369180872411200534225271616301440283357348038436807065999594856593921147623313972114947118275203539377970298094140863177581506806077117112620136660084582124212611633830762893334851629871578919733571437682283111952601001896312889761693351154056501932839074016513914785705057510358851789611152215395982601971855776870256222352081771258931928556872864972060621097123548112288288706745358589408228426823354446411555046439124912821059320371911183009302728530041866529391458390727753494821548575185475312054749677219816234612865481075299660650798167618971645678737837811328322535822925284149799953065850956937810182571387872123789377303132603586425455540372843768056378959528913061923175815024689067907641576926839476338229658037419510929946695481506497092391163868878414491021986776481909233129362213372024277990355125727786791894586379284606633297963894288614089513418399678419765878005151552520848331216230541595686780902506327102639026040672485690621957276936785944911133733955624338390949837257241517451650719235383827491596229608164697766650789891786437941908563054798575062778277289107928534649404422526341797359543698744176807026705989803506432634874011880306081375208731120295812954748551643137694511430471271667352179738011978979577252208061710790950912357220995042186716964844652014163635643703528752932339900429027877982521749992317953710178297558394825589166550742782831343814766915720034603595431321671337120541729052565532074774977146358582428126175270383681394659083670669075999792790590980647500842782350787512302424421862959562561212143045564598630993820240818452706803682674591169275707687861907865939088255096658815082266585057834359968785926493286609172209768387757211355131951014568398358960031244573191929934367941989754469890135615145466337968776029945016043302804582160599535639884213054699103135128197475955392760438121949615241921971856793402520894334069085009973421346671807793054960141280832217261868553193937964695173077592872540035451668837363735259851242374269343749846962098090122456165195751359519200561732636696959276256012307395733030684887739625013901719233449555204659356721325141027126585332946753482457769595561204859804430559256991636251751101627208805077245354223114793028384802836854475796902290141548070157075105538427663316960649602014089999846815497620865253540233317711893204851515486640147486301215685382661116386904230839924938398592865457493220454123100827666979572194870168437893470738756806110971001580232869119697528493366490551784897471584347239141429264660265278462230556597649597064093535203739087970278907945723690613397419556183661685470230980738740308936428953683683750985231057628745349248474496206135786544259677106205135970015074991210809990384555218431119002364709341973212048457065540328323569489551703704852118845040959955849966030527835354378645809748311722864705149322230379322018268292858990247064349302485999955220491207019040299075951540965337647835436114784675662999792953244725427506547147625602027932990437184535043419251022443911068505450966392233412049232282095852762690276578015270015953191470495381610174050796857476385132234698604204566665040418177796200212666184277256490061774153957132024849739843492878483140141398482663797608153294580597965045623890912394282333167097219129312972457314300369096611925083431190771985857612437294671854024197166362637595598938538422445958573731908627681032424588821478455934260244092079374315797296165758791245546077061295434850221207123574592382739317755838131317485390967673809525147179638463318654658866937395427579389805295425787818075654726922758651505009637501355762108190144634944771086053665872148951736650899300868254113378438768228641046389324968543171969541334563434000459359900827865562269622098308803322040846103763859034481990278226480433919209797097105416259563021161357319409876404440885398749925924059632950053153600614210293303184884833469305264628683620914837414599291757570628360940498406687305849118045452959169535557794669658669959999845471846996658692001508176386271408699557010839881335537312525109093493532844157988031133729085857599570503890476936459537052379488485060415397670575797449914680605503196899017772940609128206059833890773697420173514320114553823124173012414736867981502835483912584409828497392814957518066732706969725688279424216118602515815825215906365906787454746674765916021725855670544152584035821997622753399490228457410558507993128187067665097373252809473058672216745175366830467714313447156467041559205606970091441215445626633975464138084436352608417324867534547576603079690148178544254031924886707010851396578222761648744288260159269105636285128354091607162825103885804292588979711537004091460427119669904058725685162496720220589227432504376351534525613415194282117236329907463801033274184491897646453375114163075296162728051352946918511018439709861893595905936447189931123857979629572811928449518023459169335721478182617502265214023772473510713559869014594120399106399537533032226399707167329930457771131122351656949043941684743673815639908413171455324186528200206702325780999281819964780664057697286015444752598523304662489553089880560320081588152223035772303824189922907322086173585378307707271472949224274624847995736489435896524405326831513280281038379733906151998653045293943972897475032599156512026719740786783418753560955265095694204733703165793649154533202448997450557894933056922741824738737213017871515449365224038837274313355009769105745812610097605287573559305360946458605807563568490249633120037013037670209587859304679305690735528120576354974745632122327669416810598335169892776144890994295798598579748214883643329626386373474265633930760354889328940108267289455495578963782058961542252802689779498652132545039589043473262522937599910669161473517117997854086301219329153704895087346038382087465412673735090259411498618136205096354651967606783383152783719186419839741922559760878954006782023144361889659820724774284762300804518758769612994121954404072348106633236467328666470288595246507803985476141714061144995802526675528100471044679597873109172913807111179164104597296691536481289807785424755928526877869207223200105103719508306103483766798484121645971400494782923744143986477255880628266989119653844627077289164764904454892554715372508072404006535926098454046070589047702373092682562191365718410311150947889341547752894553964283898523571910439072719418535312753132918772994508182172481956976295412589639111360589078971073798590008195473166086965980068290635787456050722386355937208964723673035053887363396117451121951878606833357788381074326296256229032414975238975689269548903582518658551846067316893989355614329725202299739632140773757125233815560427314594543308129463473845790249056941820359493897950396351788095383064891089167331577623229696629177297673897418574710537494662887756503725143726391235426886283464403249002253939908915367310512670996089589191269138930795517142092532935491218882663636521123814631615931953980486803033392464815958125635679224740889003075091643055386141139612446879720649263087548167919841287345578106713719421517575508354673430571840606812640520927916015797033199010098522213020626737929546012970337940651170505622533623333092034060727553606310861188649624298135921904696058018256323550253727796963810814059131738803111416418980725921751361626393443969008608595141630163961371308058686310877833411340863606101629982976345499446982095203875263614413210707443214627371172334613466041274827168152380582075873477853819967331835666611358034097633988627051646298166656164900262073639054268133145131769111353809030569894993141594676928450113221673993328007317654497791385326631602780905065742405528779064228794724040075779492642639091146639430677607312557967369643594139927863375034243789253834514160801349979956156956015085350234990472066740699185735993263719168483226409328476035598533945048078214363462067149378474059533588985007572785058971186161341680704186897669992509225415157263348437729784689857318595822486594176163703559497427001992016458779775244953932565941954609225319622304202083686450931543866076028376207156140488581804253336992687731590087926331756395195062186281270549058257549009093145892020187244019899620905810514241689247164231692707441112513595144025706008324871094245550037018244227539094758733803024171089629200466305758498751235884878534059438756642849518604069057334309928984423187241563215419757965913140700081644337216174904630363519432163867343527216385319990560546363211093100123795524600735961469030255217397350043982339691442707827895387296405796633754606338857682721202984183539074069774918757837024494413160969780020348507279561607218622827030220804510179811738581209846526194275917013060630382230614864123203080794839089629168510254851415046749233265349139996024359796567898976615075111653426285211664074231666980935595466257756927517073816061035906601878350505656687073309761672205016243922902107571774010882999953320571047041302143981469796501508742090119761028764693377955238694369482642101511094490838831202139812154200454640610279686487274736149757668228863762077713513623889556294124836652869338758515592794508426081199862997380178380232635746620267524120056044784520925344715952180425629374417271904778548979142395947960547174892637410260397954763196575805836846472034153013072271118067507972001832970666310983330025613470894265249300194845587596461774175540784961490827017153374204661773780239672251357200679033803690620539106246204156257351328705223380183589264362006744713796706168814227960227419251635822030234299791473144888315236809235783587428451472851003585155117533868276029579987000993715915528448235274755979371296077353152963447446603148644616914905894824285030340294122588821649188333165225575333866956355750233599521327791206827156676845085195953771798645725871364334644999531346163118437280890404611194195470405214540626674037396638821903473370039909151341111807878280236651799760038938785843657549168058582045820183083776452638191304816682900346389949964929684666674977068187121474680480117907319220633285217597200253305443837006410345864889392813114651142089184548209160220893742428208639297959636342214830271343887053443493898710089236669485266513797701283854758283360738084698333599967188757899702781529544575479161937848624472688543574825246057482914198651406575773971421757762407528671535733972148352591781593096856426750912153945017622097755701407059225823755280766307080773166877949472288935834157067817512648355170138783049974713578214715530475171523252150999542101140273350748814719094357964284143674044076609844995565333586930017737366258905375091148571203609411827683745066186355417790998486313288786415264337656758395234521075199913223118238781968595726390229559558973155996072378756157515106267010331064267642213750799346797384102852469872413956494657270694816316809456398107624795821921001907369194669901590449108603057532754814762667112456098650869142363722650175197451422705979197785357158867570539099563665667857236421670313112775327612152778485807156829048116118026659967236920312864879198400724593587519685397106601341447826530782445872792949058234651289727485708125001566168614186565822364765801734663857242813556988159077086493932037845701909684410839633701695768142353654443747462312508435404698320305268688074978970984200942628076249723612240813568247732316207479932141352686998065103585252433217764008022699852864259778220099637435992715995449682531558419696363798385376770887370512143095770481009087473148948386326201209468707797374043512665092437292001519036262849896830949305646285931496692744260157890166284022145200840105370145122322241690822796801304101441756644468153164694713101091116017454878089703414450810441951335122574812654560625376282205032122916877357426844966487023145943750985368145130549117903299703493724518991551150461427653982751919082267539754376268510558375594081945110106674736491804364079477956016967897973217054584320026886472388580745151326976717518558557890898149287946128443178260677506590968412580322371919250749645192334952996815911635545614621046826235912286819461013478750547693602422886167441459578969597945309946350518315393442842819403485778864912863824067633494195573674862793271851486809443270869638044860698210736407910677850379743388810850864641838615504701015739400994956426476139508588483262254601674702751773527092753107797831278477472915580817262833830895698363069263505838592709557899115739831087687500021713083592769914823125241859483864392630663986570037151503851319550195037089485426662355192770234833469088403121249200739328184081035944178099239606189393418193190050254848657503411445764303541255515636064298763478797278751512129795042747626481873909484266706832589935641504724863291398835637839532853766410399833484402356365326128342470484064026143269134186805079710410769214547271556125842034202854620544528481887968769507901605362441457648841367031548553093731120790297440625084341340282901306796480416382983216530664931447798129748691235234944429373117267974976125985945679201619928676912608431136331194497259857950744511221167483514592314847491314569800970381465962280038048818256930081732869335018914662284839228851495645970369088345050373497192787438500279053096401974139726417939786593051870360504631514154008676647715832191400940646086305273690664818002788665091980700128794403307778097113701779252075740605474930385101237633703870956517945294600714004273917005191111879213422028053823886780834096053049719549921190564149740984060787751951174142999177865884369804400881934306924107415106419002980817160366387401959541538719051732342886735412142436295668377198605784362870752895944682135237244418112579760881440770766936535369086369000531616546785313390471845160822907773404450835488131457179336816745373336180760764149338292142422669436406381953837705811397806543182857683409353438071619126752986496021519072052291911461520613737951617787054370824812059388245428865863443558208854848707317464096147461457826310632766327594550031739800803275149619677054449303042266485683082358268394734420430682641670119166972112971746587069810211772494745157245388163762765294121907758658564490007520305339878338241339082835734915115984289016891825170200920746460273536238251963173569998449479295228143227702474511382796191809709694697095697813863251612741460528427806843445061070683059247868491407613534288560423465073567209026357951778749556752405626969536054022518416766910511714581451927383431889753971052256315866107047739983248800972953321168957605595042285236224031188365799227476541473262035305014721683012788407896689174481714961373880051932241879386076641987648445593051004094968824724036171860702104038989429153757116392979758609939039348401466574647314920217598764456230174737787958784118449396808940117533357553167281710038787166915935136654433266149531934374449116921199474314220842238577140713810435888349428547786702583733376484632673735469019797210741710707205328102955081302256645941829681282416518685098551542987232684855010526578716079378441354663889168202965800432226272065758568248058634014552511328462576889889987336062842746924858428212355817081252744556076503778290336599436585680430114318801372390440450421062462409670563422074177362069488028486685329093912669809293852314234356059292573270843952131367873263413394904137518527757216961949880288524426058792337099846301566692873862192863425104859472528950291179074602246007783470898610452719914360207962298585830774835432044896235882012309202109759757550809728233621416093327152305654725299460299369641020475699960913329168296128762767979792462025754427158405149077912407470724029735305377777095489406815814221662877672268849018693125620162103542701220872271634044580676579303847441865860710045647711209287962093725841257677678115884959027749919337538005162254923425265762160537074616337663753564992189593926075916677254203459488495840943975592972801372161857465982977057207281040895026686186946939637177312067656993336895408866030733749315438697850853421922537456762293493020151539990526037493216557079685927993022767096547604972810638287210542811007074680793516473884744452985231957505601415577600417627948672350617486127502934821327703017062618655354649637952459558263752593443095471029174797250449570511598003713614631525822583664419017150223200940451846950828825230365409536213452049810020248120773917132633996812975461849607159052106119931190305521071479106044648500414972797364420852656886254255842724123280541344446029592665148153725838270006145377353509604642443064496877638507137121409530765937166052066561283063211620374000736647250608483848776713499339935168200424887961650283417065028740585404337919705124310652876800253628482078450822886835353106027216900679528911396337672073575357088144863569400742783982329222051217734087607902473161276729562235867281132972638678593684726276117991653555195405348261337155545257877400538460382435220071866516321273429521076463868122112764730983387692110439732679315521919028861065687173554939336482058026657636434705426807852945175081999474604339060977771930094254859994784580520821447390539395675831276054269640084536573268692005376355795635742599096059937580699806079348237701860668385298544296098636946780042166605826372007530982587458056960692853869482782964232103571061599850268376462879091579293494919882942962301819314541144191652941908463631511908291734510570094689603648592179987510465731446715813192309293726080307398557069490461931527297747866657175130383403032776948771418550612600500151829717061754679165760183437025871114836027722452662573974237427348431056935061169262045275517251829248864387442442906784877668357020491491610451918126270179042858853791329083442744220617398281018368217286704071606039275104480754254366625965818112182534463150284699496863383971679417826359874596898984434765640013006305391112212020465881301747217694782602412322540007633523085704110609798818683403464309206908499021440793598510596936565749555779646548888749480956907285235218833102883992359573114922760284834338182377713191989160606962425349092515214984757057103825059535229624769613328117649042187213998159273974848166818660035307758749192359012462335554405612028267621627340641232538042439578359592128270854657946939145600850008018010395317291266486539205818196197323245923851981402462938999971694833833620585376006733185136403890093077894876606266017685666174948541253907561322891068704249037255837416763549717272166129800233085150493354995778518095592404099509957557655646400498088458456119160670148279927703502449931900436885872153182033078876414639865410345872541737360225837191296509255431947788223385641778949734438708129865354434512551760465319974990063563586101421897038077021099071234757744294064058615280945600421051433680018204644872701450679470378011086035457036978927073538354911152150120511647936943735658128413223493687159312234612884302508098819236319848361054896465390420645816759643373421846291418575840819263768119029518128685695538487491847522148194163035882849172459438464221655230799809040995953685375102903714670265300030580775056562805159338684692008609809864173250404265753806594631533427192219266153841295484422594469371307607013344281488079721685561790814154264226240748986950021798320976363336805464672767099160156393235742495028480349404236479960675049212694866814458459345573528339288381268859371371647489841984874815639645613010117563639589406751961678125361628499666807173804498275966781466442149156079998845397208489771718114685280214112149853225688133897298504537917493151912757432299225286656111859161340902683873420190821706494230405794251939932903376015947222989611553156762841940645786863234379906036575665890725072576491423525181225134198243547139085328258253653327531068574918195781136874617908163070427551706653599903021662774201072341974300754967039314087982726464157596088665928316521592880815537327666045511266502581564673899811502939238190516386398290516839001412071235849432601485493280095913991063075383029528811748408652903175734640417555947577451520907843172957103849030041612681587526822759911041002673057167808433367179347448414698784673938976725113421296475349681859188346499443812091037491044726377614108424283325323080486827351469941928386016524495849183361994961640234918311580811089902662432776441609122007821589652326411402422752912279287945039481607872383655754230494731476734019861574030916935401933943910756505384938224219856861048072740060864983451348905049721115314898165737085758520362332328095122761968107972222740995587278042765768381640339293397283130109692552983746708057528553580919264923119973036932929708620585370748253957883479714440553515214372768300927927548029670750359007071334266683891423855072638018210613502884704389967162207202890838159547565369962521723957005014912913153471823580862830022511373997901218186519517856218717319423891169055396651346852076540513848454211763212197300437382647614755065267394050598621754206164807929603080305735899968700450211987148462438507028916052346318629351080950927615835336013053413019430540493836777557054616423832858554648369235190003523327493369097364788741782338210024175935964607254647846968651923777273712917978674979260958126266182110880663260623479768175317420084716951071937388745333190693566703185121404145380294672202262127158863465229421010332315049465759429580046592878327592328379400893938552818336233833753969569158517652888700494131019362739714323946455788923937079805641951178765091376241110029203593356161014216672359896782837539906296442762634550548286512350665288939675181193285211061747726368003493918031 diff --git a/2018/republic/10-12_d1/pagini/tests/44_pattern.txt b/2018/republic/10-12_d1/pagini/tests/44_pattern.txt new file mode 100644 index 0000000..996dad6 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/44_pattern.txt @@ -0,0 +1 @@ +89849 diff --git a/2018/republic/10-12_d1/pagini/tests/45_input.txt b/2018/republic/10-12_d1/pagini/tests/45_input.txt new file mode 100644 index 0000000..e04df0f --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/45_input.txt @@ -0,0 +1 @@ +704729045574344446557907857746305396555297250115352699268373446290743249063226267672167162393020110012436920802243023114044350531078752953831165577579077367738086885275658126758349452911778763369338705693841495074717471660160937934004811959169520665561647872252956127904897591407761661909419396133663690321449399108468848019130297716965104425941615692255864892589458685242327655721812376275095806898325326299657647122977318129577597854214881465795866611950200746008393077781075097440694252170072365280548757032576879314706621036928432047055818529045548039521895373075555874453609612881898691915574509940758469815773875841571313569135616773408849832845776657968864691599076545497140494288411084653968570408099154585370976316592706220570358339844099721865391811164553000436533950854507383906570195064365568808956092541305416197960006407475418956798999074114094709310082702313314464631334894695101127393472629380044433644161278869981851302989780496460139610770612887562621881751356267651923403772128035039740780176126855188911750172559740882824611411586180989596136452957616553509333355723727442372158916347556863468384494742393516425295012633042359862781623770253539789094173923938968534530002939652088964271008717537245026485397727220815681108384911938194210619704491726351973978796253152812105544453979079480252448590896953009768340313269525631158576296173873620349934320438974096267868064632212965481436616930948951141027496463222781974302498864526134524991316769981309837125682827797916432782499981121005153651241269204443515284669463008723396744018367436878998369119623336307541823990469887379908045580199864223976129583178767117490997687747633017628649755360652329096883960556656920843055737529059560692693887747598674576434354142716090662604831461361406609031174552283096761448108108444636517860297706590556925029381637404648542978435167662335260747662226828928724990874071207199030924901274972654770273892122403224500211581248579944767530694259994480309360912516470308439167155709038080692401885282314814917962893252136777429209251269767659350789205356344299270600246776390033122861912283172629106660139234973690234835858878823187038521978285657223044720138420654937042279072151418747381907057357658900878428251085813766325813149395116982571610359455306201761057365635664493417452856642861050396994674574990655923875976648620321060031831448406682538659302759108535695136861525123889836418285385564758280581764000366062101495338128877357897389838829624147830069140178078041376746417177921193897017495665005451595983992084132026691291118404523657969648256607928154837901681491193794883707361783094515117610970938376539121820954048921856884692584794604342350129063883420781311965657739376994310572813133101548573487420928841407948047308583667474281791650996216538833623428871790217267153891962983859228663094136668596751771511277423771226118679928367515567505523679964386471680922260405076330532167695955185310542923234024864147880679386389639446336107150116161428394945633711687516676257761272463003759552652248921988895630190773556595158012697091848991906676146189865439255302783987990050002117453725349512856252963777437931805253994316302850745541977899597801912519371257982448483650448593981856027784277700651917396882096624410691641856592981158479370380440011698223152898889596828737844555623778621062572745715471758004098434125786386367063532982658536644598175946961388714729605712182551496477719913315540530991401480740073288013815737608927694108201487874661250797183064910614341325524288155745955617329041897271562548047647543256021668511076482716952652648434912699913832067094977645049799024244448855817556216172365135145839517867931633691470267729247010004001542371058057553508065029800355170821544884032690528881999479721969324129169438335986548474086961959020209232799393999424271955568421723079556081627391859063795523749678618401703260097165322088322461918339984017439314556816701098518422574977778507949471081188425742213421654476079528285614305352829550200132820855213494761858859482966926412212784048496075504022429533917988791045879702143021668256027217142425829422386945778054611092300940599426425487943029545328127328542866578073515637466874498676121028976917135671504283204740170507125585976653139840735658052662447847890300842909927943258610232461827597203250777542718019086531989037840419902836811232674410542103123325832772851961185823881710828350594530075140474524482289357170944781580781719183431063896538716050242208444718217588499709028501780557650400461775446519468500151374396312291190123770918760050184895234930941005342841578286543162052796303480192674127279195193595115219351963397366819347617798057788866152888401590757721142744646491396311859892873037920684749917439290521820798222971262433132373422258923115557482954159043725884005133733412501736239980687331455037134254651850031263340341287269657124169449031541019114564101255356984819326427240625825473134924907726364720247170717231295023025027909222061676341941386120027514329876884058333144367417258399831400851751972618708600205278074785264779562767920320945658982659967462156838054446581727354391858074980284589588670054716264417761677107823042627145682606912368117783327732001828611745545112919411998653376663690971867943324685045245249058481085527033207090219973645418049174101740406128863993150997718603505795893406174144933939692697809697307435394999461478533446348613243018158582037805216506469126421073336861562558573280200660721934744168989350706011660167409089386849527090893848324964308473227135701675572566040788282863296017421456257182442945566890106405310721825998108054099148049962580375850934146580578172801432579779341486858868451842940821636567469252313825336341035697756305508508027898517643915955868957729662011130589087629813617096356477449260532086917140617494169961415939016447541015455010256314604430639782012558975643340106152931451186437276443212590870569311321880923258230408868884459601632446941020937290714059346705830693951644074720623285903600197339826684038495943425945972582011364636545212874953509698669139230074239837271157292016457721893726775260936062659513723430385809275723245361591410629409345137900391897878263148232510835122021837487978565725951056017484219861085142064604437964861598853150705496197914828979393355630617377026169149439572671282640453448350370649265310798475148534608793893680676743420645724433919035272757408394107847456157899143405682788542981882711947271749004219810272892963310387643015013506294104209329963779295171881141475515213687408143363546206176911837918271992201394752960885542692271209739279547724943238118952907048373308191222852901240107746096420715037858523740453165945842239281810197881002141915897716918299482843223725234384030612356256058376697268829279069629420999650204594533310204645756996623566976909118698510473426727123719888525166534674094212480953197950864504250322737003070803193933005503183518709792279413562716643626328179770704251809517336340726882912284117018928566663577339362135889291732909484817457298136736411819593962316978245767430364842812400588293949844255173116277755217032181386531154380980702225157712961290251376032680437348444664858313739110965826746624048095013269896584202462156799307873201389606108391438529860831044364926220580347008160592601511850423539467321712829513251664991720587337561497838549138433872851469535594993672269711580728755139868101187658427975827474936773649914140389467067398992740957219838660427843081361841078715135394479549305153783996808036585146715024915488155960231926676046860749899202591890936360341260349823667975655176825397150807188566972005232798501018270892833081674879659914017637265265300885024668452309305616406529859038027283486360284973520249710130056801622966665430645964845276445180621798788635855385956628574710755813131195854624073904013307230561190220796895838387995891919096967853020108634751508679194253687446349407211994344035991993696500712598771724341089221110969529046345829586957469656314780434218856401915457179043977475719173812593232155399143163496140387916139242318429906894971781458445105187927559070930562474872612558604123243563151282144716302885654763002021746413103665686792442813749063187833397620551488167000828954317976500927556225857122763725550650878608779826672509620973376108580818592398211716075903833094215940945811539563782782250401126747785618701464816062067516191975335805286679403409514590777101178511018192224579519408451163964898864425913416074492947150400604577421006509693896292639296898862099288385048959415808043837688972923505474712454839690281181440784203032680965309619129861242716357661597399705240446701792759867612014360749696086841594876399745200386531420142657566285577877576029087732653696463035511089913975800927706168191478938568827920402557439316577306965596612338766575081547381344746645552000673890435075655124651281523825123667421535006541316002236278530097903741310071810572645963696699162479348585635538167039396328874123561922340774383878144592245875235344270107097815391697900676689480101574449696159865025077723152727253234944621605640895237085890270602250872019439820219796104991518051966078877935448967620468020931573763244763811865199327354233409177555587422881312577591532192531228472256503280130298265296595189971634044945587140259151496160369072358400874245879799108862727991951134102627626512389641554287869735473408785533337470214501034505759659739710469547476949570842074756820139741976092902695229720124987461529649314066591939050023896690712043800357823830038092119512174246590637739325683682147569665580005172677080459269143160812491126707715324534176149036029581049635736423745228870946736687026495270178720105834521106229461912758671953818573974790695331879280979670369583293207330483835758959702451499361658048506359615665866802450798843226603148168148954824193839515848435936922713097502015186660361874488248074293340684567153489630699800768452864188882368269120223182291195940669233882533720238063404687590308508008185950654658544847005400388301790487342566030695365402556005388820885711235618111889339006025267734724148117336720048463989669696938714542960988981998300873153385617482777280351172993950791679451569925577654966639859374920821760752267317795400790977480584758574342299336389117647297315280274627079498561015308985234284820190686427562712570472728651932603015765432749510649138628015146817664406040084158441831950131887114988537748128388942420416360600407734440027326219722158053514069354388412579492045059085668514331832658919349509839205757312442553344182780387767794765345479355417842933404878688854816187884280987399992154455427572212841461764725758701796397479974781903617761605793310240687421060781031316462897990256845577629155308593916191746630537334019434642323095537850163814147189947502664298215294344635878651056254664884961303183467248440500041865855824175507774034163105048575841262133523185876222900470331963212609740791654727119641611862804079906710309277951017691699163454117152724850161201734598057447622421916625982603895964351613396206957159559452138400784916043739160378313442426677881186474769077684200351856765170169392199045102996731667300339602723433217478879855680896823380421245780427824089954382752822091427679290986193229654107984867941923828627196922202069035052130109722059392844807661966498765296328293600692895458859149153152865236246836757842604123648654255549928963835303669717621999858986494132265591131549648641567195270868848840200604020113988414008501298507783824276730870369715469923935532390771288103979028210309828659857286018123504427350096226750516944649210140345939678137606137407982868215589366835265701363653693115844042717931198697249476369464006622500605295482352760127302233587714165809564059994831580536877716628239886672176822707956976552109871312181783469706453997099827747652917350386348199356479582900118777463198456118380995245163798311855053854182054785038159113362261564612437481713479068026776573118680909596445634694835759894313303759299445151610754191507276229872603838753556962032682244053795503889565769080076375111713589776069907340129264983524157985879793402703513678651409658423426199984494109725428802327498926851345730776454483819704198325289370355556433053322196165520366679762020866911769462629840722942659953036396624178522728171697177904828800750528680049828401006077491129994970536256003584277288122003288958674908827483249534289956981627554029747363865004209736750477613487611707906872400676256602454037304629039200649425516592261608562580380956715993355174357157633454949487877181151628552542251432666125566398011920213972840216830444743309089159481074990862247402198528724372747877326282064273076290307782014414524295282045970927408074439939075033632759899183673623535754493366358005476659034301443995396174417038506877364574053304329590734722749068903542255595697083851697458479594676206617537589161850368284582884861431124001611705772258455402902821736703945063766539620735259672672007056829363222265564394526625125338046243721949157399266633117937194021560540988389998168149708482853839103345426960901297808949848380034990466586593507319085595053773678190304263248119380206438663420542861745257392164532152961658547426613032564638450617212100743212098740427556639880076509746827409248490489980856254060666280595038668210824395526833011213202763257746608053746687747932533181379043639399393439856391874849679784892129663392921184758396166659997160584919015832760059724205418208800161509509016590331267614190893433957513833995708205858560489568906625143371047099179432203128813149970832954143967622575547918194691628509193093898263250024868302037791391512485343997748285697686599589268165746217320958762306719905806171877355337051740652974001049192509266903079721261544550997185108986694689620606473236976809057815375194775244656895662157280654599198101124416643758134977859112628275545764009068963749496934296382763622588199011165775262544887853045843213304336413259032927207304974142275623825708166136514666126052607085805098213785636019697915533055536373804506115753863272320590471218152016956369961039180814631969828292534452430310314375505120480502156029000981370235833338802862702627214205631665222473161990053232407461188238822236021341292910968617407383381185247082188414114413007622396030059616010358005454516717927499798005629116177890647989121307113197930552814181815498830888130589557921341648280505467825000171172855964421887707649624240882164874112644905700102477434623591921353378061021809719527532417302471141987283165593745076619836916847109061116558817869279242286703654908101117882664623180600971944452090809256448770525019365215152051573956489189476606352778883436170142214342946702681565478140751563576964056815758987878861118892270000953727582029740765704547647711471263961011749070091417634508319201879147480580330829796579712676443130316659630909138059874723033109833382511470880122702611009836920937977002867298712327842121186725562391544064124850066139497908999372544651287701012725673337003822872440394931657901553157587200514854143650459561111039748808733166865868876783714502019854339942352531943709045485167168916795333318672673355882161376212357126444631830333847302721286284904939801383409389964986120317232197969937403771522930032746139310380865472482469856214542091093110492922365644719490679502072426127869212315289107550160775970579440224529481193773730118515956251782763243347825937556812241475992588157727524952656467263547212936904458121230809569942560326736535137161906865636256761054281310819903791322088449983391792347218226880516797224482104700407216170564727190267608608139341781973723959873991356839055640577731410215044486857088050047227713935227310627829943613440258004470602149528911479646432010829825092669499004095443467634136438903125053874914182818736505160302717826742534321800237835409516115769017534407610185616303981513201440485849852629871563268872441211577573516446000904394468257054897186500393483646060121068470891133595677676806066854316216488134822998730173202936016857237496221850126515383298997070625179051453871544629015164261984058529178640971950995988538300702318405213821784263912882194935972156710868977518541000636373949074120666615604441086692668630361192316808998678966057375766979943760952158422253686753746524277809117060418090789650523806893043756440281143683481299706501230254649371780008493274506220207363120580759499643118154835011158404427941775340268367915639998547659696846603927219320271217091022954259189993459535896607010243989888088708382934369131959976052852385633330032498655453900866817088758409373795513698500418195671498602178095220365644720889860477382126909249641366665147729703908057689554928762931508385710113711444534482947956216694747862241920460571237753408990577761945166744654425371694509407439337737211923314386107874963066593140975557890473954450176143540923219940461957420975195090272264366709247041077001644265119408271209935657226408301245384518573010635539631219631976339994209915738430326864100777404968165364127924855278926469345556027432097754634636895158737699289621226231713094050353737610041776662350832688379927502131582759541410723671885885078243941030433899440347888606467252221124286881199030609043065467294711414443191202555489509819198799264151861643499506919686698672540425135756907674551408984856183336262838452950614827021402832849439077080774491838538986063770909703778802598141670905281511499630577414300751290538129185710476993111900010197760883339881487817176818503898840306247012096855226404816730405281673553790745953025887195960304180305906312235226580198031893787279947338900336653501482172284347966363451173133637941204150993541523997556670784670563548752080521666656739776930999996166928145404612266227134509822805822011318522325388030337548826645329918861245047012393786709190811872215910627824171511615516100795847648406319575491845905401993152649412168373832387502182875097083380889789060963079816849960919749056058886927987885942168456884971973284608387563766984327688655751784188671221781118529753730411271052922173779471119165518539712606199257332941850035696005934267365167274559441146745066233039638506487786207899924602743067329006035322742761868873505210311817570476973661000778076758598344392310635408024894083910207280299340704967750156020648515305186025801260552646169201013303951450417213969606932200640246350565725104633277973742804856358881945399243696182932259550011818265117498594655375429391861945792118708383049338814053132870599758062616833254216959837499552250322835918859721180024213593599341910750697750447166477384331229450121968604401714656883480973842676521008414298176917789488505132044460657497028369055278327999587778467713497402698482119800124406771059627865165760081759746521621252374501343858853468322757137500496818564791218203920619275504102713674565955836810917185029693881015262882921868107146286550604239157011937062526408847696115568713188804352441488126114081614913967914908416964423566732048341659910646366401963818409171685529803526298906449401267002108570701538428771936510731975337550714750425847587012970949353392385910564763992190615386091506692832714680080408190812159206277823712599093996203950848096909844732143117019101603945850128818838678939840462231852903053342895636904334150903260780834997615015299529126145564271021784383828562386288865769017097476310326520776641431777932370497918315117836374501904907436625193642450264844273862625698546622790888282434687270021350200720062074381876189743339615041838786270801654957337285566658908305411583540766388246717643186003253770639177921972087961377345718727632030345701205983542878894893412403900240186051757759046863797459320966709786979350629777026307459966320522571004301772964793810757639166152007710404242412539487503592038589281456389398986554482166722501822272351204475406195307179308896517753761922514009480099941760705528108619868008128684639069027441943936862733638327557405288356322906787248887347893845208134506643762618578728211720954804104943561307802115090423505713799724770342370775813696033376982452002103714976174570368357915701011920193502347128997655967138600522142355271562704940160887987814954994391423083327644433368828032735305761822430342194218854173416641240046368636567279281329472300041932401213035967490179311016962244582326512479412336041344409078612550130034603537133412514936280320779522637778631537682728360850851032315415449749504255679280637212119368718594711698113348495707301059951786390693659280135856510705114097984621864959357478793914159698600854110179362189389531834496020884331364817116395412711089009774336797007794762152394894888957282159954307144162775160019007951288181557157212755192042565630013751655982944806756698758678345330223691286127748050399513244555304152241288637928380800697008780955958070362137019677054775844150518698578561702220190219233289893922176519014232438061024861095195012274441400747825389083239814834611665897488816360099163559907406496995806796658635440284769592283572248532562436146097242469757254534615998596742926502097689187056031856997428410933496877259741883292475490841906639872059091236882227497689391884360131195122313572747126087695837549558430467741903813486315142133378877480582550115023205514347284181628594229631861144681252148765248334939437852951260230118396807201209867915309646949743474051242933342025161893164084344220511510050399139544141175033916398616208584926635433586772571819277561153600101158278905342101515966562566279620326439195053226310042456856754343477826071817502439693136923224222880274181734414511672105132186511822472030783679381696270116655939442907146585067824968076098424569493663164556188781191530223821394227003622714468089398264619647795774858831481251996947646272825700573871181426945633827517467345762766264895656038408422300310907352660831920777078045783224682367210953207944480336372174847699721731725827603102267366899684790352684796419890643320160418933480718274138180107703336596322894542063443336606841260506047847228153383606466526002979278356388093395464788142936000889023142857044238679979843083847894521550297437710345163362338111475544174695409391391387390726486690716378082081943967176115860396047776552376432589392769333862533074777116377809728109725249050199320705401927184400338370170944114620061272330503138957742515215443719335211613088269848516340791504535450533879695922228002930963831696422949693298334161578172314205862002039970082977982079048771103625758026109116644566182047188208320656711129470755565226760615567321725587018604588709439412533528811510438057109105796156190469465986113428064168805048892423772675177902700066682302707410634917312442898632014689761015672042050299682077818496671396083135999583657577901513889459794714211634412511993771759573895147991360400730213533383176929949866522117849768802276082803290457691067994246987305294582576671834344146594764117221155444190544557840723493523431807928028367834489016103973376556018733062385602379989770574523054456974992017036744432210456378455058314915729191498186841957412871378601093805540169875052336562925733309562654457680009030408162065897116673704830708672774326282162013829516164443276551182543983953180027157162093536480244991855170134247871649658770421468656087985054579992142443160510131576066820801396095454326513978320282225519263102302102992884203763782071073172193166375479385404744566095120312178591640011201341963992497910742182402780919009156790327550752944987580371672217524928526001511642308441103406959344825615623266472118331565327644653861159358158951498590905131423284419785460370846162382309702586378326883636916383220549320498684332121661603846042054451186144303616073599711880287686929758782187318350838940219585999571888686211676634309539508574931087092759484388238684515669973080997395250157460964912078311992940604300972470852105601136644583217556114747390071685412440371955144267267464908033710451672495955860097960576427867372311087341030672428502768871363371469048964099233460667990313454734819826622883097868254053977597597865081862048854774075474027970327024546805566671354633264999372453859992901405819739559673028419070011993244667904344112302428987630195911274964717019323054535679964213942943015582572740788450035287335471324886635644929303823122134347533915345209156287896385860191527450174073302870885237537272926011863190427530316825757533592261098053237224010637109923251201723552373290127013164820257832699364694678166640220822563154069790317869919210159256896872682307208548207706918228944678207408010049644890248908089430939717357250787009275276084154090677109034969463031941803556164949049331491595480313548705029473275564014892591418476259735082812265516185906255538956382536862654009024174500852651938888256477850956610466564728885883985126770965380246348817656000527049499486160233164997063270547815799782279924193491421318177737825441828439507644251987047072461598595217115274443536502273502990096805884931332351794238264085008068727654772070879699078634409526823013834344539977770312106072019963323197961636379933247882308857571033593405568584958602360529099870903863761490016105507651394699435062370025941994212716007668847284499791777321770861096137979851545452934110282354570387555678880208684916994759655471668436190924092447711195570823732683590204742942762697207832086737389970750065501449835541627180543844078582278691278421970038132880017622121542065678310123178841334944364696773338501824020160149743802300091374032629871846190686411743553645230633845850324708054249608264478164917329158472384141727129645862193772424899381473807025003466166643323658220348996837101210958737227771118628753142412261374779158498461150071261383494169622286595074284828246918646920995945323914957453316602085297682608774533329029057324660146574796580315510545184700896753215642440952143356868199357171037492904565202597444460557839379827150182665376010248157520698570293455583618014399599406233938120962522523033735705453405112347931903436539802245791911293926657417240695959656385112636086338501113666660527205356081366834709432721611036640833217866093364150362945614899779216310161899846891704285645281061014900072603704849456023609665077491926876925389105545776313404503680411406753139449799603577177994319690651216561052989117138533926635621617197834158476568048220081824494671373679413518163156973108789876965488174654259254153162263443009546272286414982836730756118587065395518393208507306814247138198470865114835866819658440647391707695787860376443281081463464893666546866676271576954504954662669859235939395906948762311499549485927333482488351163635996311333792351215414451028386894450617902317989804994481415242360621631327222811929633548333202301667135024163680819879340176378058571066490833211754306059218979890556362663091106474679607677851451331134657643744152071417832236489770169318899805224230955312584569487625800714235855306974100274159009263557170389378802233131688231975384873458296805800236312313922872222379380402506190724662180728033765906200477113539510287879435964192296148409507229161527817053973899341323760192541725123021320178252113611627034053952080379115411360356876560251305827561690079366995767771793831864838411617271680698746292067882416940992822548176759083441946487935932615959919239045616809205506457387554267133468233297461027300073189193763242332253311985597647305131473094329517154853233805585407458218960599775456940721294140008880346706839216573066022405705507863793470431479664268358984062704524184902751067311538363702967152793122948016739732787762251703483639981118924255053164659221833919480979186794902201528442609340971456733409580251753175199236538720710811720666887433772113672979022201392107260775889369467964890930394334730516249542434962260400931683561026222298510664938695093541952065674438290949655272055223471408446771967691971684942700494956816247391582124747932975769549389460169535291531774680237077781414857003578586213185588540233464713763884600821272705846583819520459810584267897949295085497298905047396936649540420734741409141765354963754609328008327460317940470527374775826761301939289534120581400447295251011006584432817387048133291480768913327993216532398671307915551561863139507806291118443241041834276503701868139653169612804675529909535949029953655700854368996549718621566254222485768504437041474715052514119244437174200569607624561429556866376493254660398475681140649521233634660504940621308651805609475716790362970131762721958548020564844668803661548546093380088571366191514863839276456249625409785262551820309328504470583463670760352208087067896052773277415732358410298158602449783121858340263152826479804575930576987371976972292414716993741032590559784085397002633110037073987882187811423761312170875622592712760387277612701314962279247192779044804476162440499497105448650819884181836924360979914402600527961643037031895888222672283561645434258901263605200939982734102910561074190529946405605744508814127556655518549885236579427603169967049094495502714592278627307083849348479663147371189575000047866561667940914373961820671926016685249141622340786623243086960798704059111801603823518604397381341642018121337436653747610768417026118848518325949957799098847427311773556381235336595212713508409210295853643587062284114566617182795981096962950578256104134519089164208266968168488939541043417732666158289790500239739817911367691242385671708292215174655517117803086548522738046533671006716729385084941538353482810410875073605703462079503456625480682261593028055708143327263180242093998999612813421722087404201188959732641932304578688574350077604196875199212789826073926492753277399544218297482544824918210622079446193724741197171286968838464659269859118583861669867746543485857289992440216172728728982234891408802903356219946235658440200424219834658268591415011669589705706539847526806542099135747222084981451032168807937297697754747018896255309405958574229860378571289790285632488588961485961952793982520425900992600414466368483400820555504057874406500136207684494409755126411895103769618230718139081630469243379989608814169801441577963855962759421200987663498431439377525321336022306825904822713629658039219259583176633829266331603020461847296969540070594442662095946544120688465118723919728741734127082200963365914417325398652877036836184614419457176429109080750548796972239915016995194001556580977854034948958430562820349985262965120979730719138213685321043884428584134123807371166706489524040540233369181881276389471774724686590343563582626153949880310035316942332726578208989049995812370427751289060487836995131104630638067123729751193459342348257174045573634915663304919976196855648463322287016037953815294512355886034459374975025245387579888533499262364676393683375474939977943551935618815433577485404684750175522932458740586644869863246163583800392682973486254167036358199961000540613236942464988258483546435083039199234615528925490742884846085218780637801732635173277594142713979122906474497754529587902657430438803090978795147562395022269879078134452794669143566074683537455861384551332708412717713192170215372106308935440137938393391445419929815103695551874857919442992378541173418734462284181812373089482424966435978506508311534828816567501107759037321525248886270909436119477140001227669666431232914360540222888035629625340843564714529203081067171188827159872024552551459639984030568519869519551754556809555211673812020589306364847330908863289495005273222209468723375262541043303707176783107246033253620349573428168683611613776082337483532814463793106568284042116642944723311148922875338661526368702459750475690574336102362969882442673116559714563435582469372269321227293167839724325896987069940929046617602437679752391301177548608541554557335262294640716443737987929357014251045345726845162467626413853586244906555750828681535214056115195479662844524520647760100914588402539579569876860975130412962889490246907628776247058003994887126850280783054005654931458334988943599921924683307314382985305841342704220344049217711428050954040867756822063535851829129438446908062754413783672995441014800301645300765675358932244485672663125492098979627664914520787877360291992642401557043464200765682485024905563507604146228278124467261753135662020818539101698676998716539341293389548988620697430839832573700496374520550829363389442235837047518778076415178443728033742796942615750533910307513132823347092808685148603704547659956807220949038067607484107070625156376062265415102412267532148607301400650740165546800932403223835345396682217010296034768865172718390649404725514659668442763698214055585175954759001508658596599398514362055732280877659728475777387198469267527212045484494337218779610923166058248550210870667699043379267362189502982406330051283314592905142965923231980256380033956837472824757373776839846192952178349789384934062389392841420921701910114343549892871359331082068598176357349313414309167205675125632003848580701329916776416433402590183618904144103914394887685975961092359562325955006971923115599135291457778262356715301650399896932002585126096556207135404608918821023511347902049947793191931748994745388333037782321988870883286929680091504276926869378648685030527484054934755735812097556416659169356074113153602784899752169826126573253286177104634273178614888832058416023826123506474206421114552427490713617434367941295240530383479494378150005220555738099285000705013940275945449699029859048303226130861917100000077374593083779080566633126176959429448220843748151941296174415842918519624539248126409415662624790909164178268769850382497061542476396282625245569064011166891727486664782762937553246530059740495447949255839259236002532759650113835180670643006064386884745044835226592909803304112779159440658882560012145853459325020042697628936177357017210447188461214332923263582436259174719709259599930059734473767211083224267456160323316201974085279030102439768296308838368998877361390908117983295609614873084579136928062174276669776252795905890106842748212891347897727605506908939703395039596571446759415669498496342720895629291555360796080328700599132309872345147522913470455668475228541680305869836151887885896590396186566955701094427040012429431948341498073967157684837715358144003449109766408295368076161051143915611698673584527640944789610683537297013654987510591252508956240717418093229626241929303542064266519124812686395343152487765556263868312600548969560041525175109287838721665066813538187322623635650924734557670149605859262757406016051200711317536145849473342929250980051949495560670071486224189495494496392556512229616117578358850021541036554688026593513073983590638371762949006167947237835879590296655207632387586101603802363913526024449342120949021143070029679175151322316703049087750514732768975579645943750612695361557997975534819906877089376390612943288866790940225247440522744295639272928364446014970610621848193103860315852308554315855129989506485459491848480771198694365552586332823618791375979390923306873055087277598845851690138639508273359163958072893792494743954484645562807088340478606571003966871670130385910090911336369491452227682723896639266265438546855753131587143427776505519045434433613245227897331444078489879878195820034900670464771450030065169067799410147707734427664834668327927875802052136031328785445083527389340593320015729294002138972425424028078901157576367687768339706361590201938968192348495270533199638632582048224866712674468747482685096454927735380914802778281797004345380348381673251630979611724696136647093365970585797050855540555508206946682527062007465503715419457195649370379569210938615750132910997742632143213173446238347720575234633667656577830649551560788304685104773370334389516841012439693600015463327174009605859492042729552901754468587148785457468404208245219437390155542638461115078872767687300315955011154605068753514415478603793509407822583091190984226087785797476471589016791897082575778135429574157619138065892932440360880384075559086782362324470314649683931544995527993185842337591738842319566288370042408852451728123645576708505083132403795446686542199269937805633490032627577092747568590009741399497124880343557344258573829926992042195812595591814220503833510956002403272553252133061571322565126696234065085065078401050624008317205323354260482624705927327502751821678805728211694358322165029467549989100247431620978605741307966052059973726785746677983733141090888305549591922977838084459131302367243948561580395203957963609207275695484034570676061041850743968566410796173814528676014282893530378897662347398921042645806117199822938877005008029252657135797762188167437878214907234604575607105780129544276814173512206089514833849545349103708183111284096134257385431643962457035568364837899657256481790362483041276334736051473058752448861496163349571767232304513196220821406091515979104485994591287550698140285251011015108049762001393146682549634849103706039888661244506817955898419978998547345465818446734265556068441509507407923270103383923477802134565067550627616350886008287122373849114384115116221045126264377354455374881380961161903243809380068079412516825736244621045527124217557009003898351194634263253539537316751496722444755001955675808965516306043145989347390677246701052335842625322758987625165877284908525937940544474878470969350907852989663647135198929988451799054252524876010627036950838407857273648086211131407917818163066200274738726011801514339932418304544962154569854894748989586887355780771051155102273017697152960098663597176989769904344559736840842419415125352259486429321635971223336865731833156779730199826435289878734513430005815559752427838945764545451430162215440549011221252034191514170863275003986959004733588467248805136562252207605844771174623836058065367843399613174818840712414568850649701935813017293969398267432410014491058767350742030760993308917768077587134135010086221730904214900256581106072880933576783845150808972958464211653791646681207536061088730910815760851980527963615217600846862175187083527394897820976142729448485176792398835608588037010064570064339832415847726939922920796460218362074349528355152042307417714676366114559080456880688896721073706321595736232957145468504200896404447010736176347807706014899714542575344363260675255831771468750902961058833670082664978692394534858166151905608583903813990368450717746686611158122807040188557942536023723220121580787436085303174235548147864617736907974341711949556837781393615192751095707050539953394132620520701176242503227321924363439020974075516762409090508163806516132198739242448194504183684581935972237681337503891251919954872821407100968067289153681852101297474330494851218427035272290442755134094596527423112609909622220392082927586299292453562426461359074520894994959333282579560865761968800087702627100032743681086886375746891003669423978385374273847328899062583041889347929939501079507401260069919666727847056510871517645400630496769687521095149607341476197597522911569297064739594674176693866141445887103058851458619886352370662207639180817236275283737943706840600445590912417286457125046988751836796258847025475386701393873815456036290288449124659069783575684812927322533720692641625376457476836388302327962452152154688488745302664559487592205758149441479535053206339419545304822302127553679050815382807636620800627767293777925983170997903462635946144572091869785547323138488632090314144880864570190266690339376328939897332566659896423135980863437534217779263881426201152873720431177907541566270007382096790943620457161620151041175110070794620134077131291180729713345407652882627425704410300765205745853289119809437706001979307986389512219302081803505321320192735419567533263862454092458639820002378017983352964008601659890299986705667411017317447401201241544941782235459294244486713781380379408065751322682186792146317759606142081993505210406297477824348034974284211150823859399811592024045187798319721918018715243067485931018685163789330391533886372446512771705433587066058376770563183020361024682323789107053210096697446247934268105244067706444455475106088442658651709440398935804532589276271736496828598597604908916494396209907748916186169056565828181286748023658628554240667177657762656349263441562427213656277667087033848851077493503234965588356780338769286843263850109248433424938882739413038049880337294470048131988564481345037265629613006684831146278742126188660840295678683260958323173597930231006348504327752087162810518721098247507531309244917335631483349550560006141855852716126335471337213597590514096961631884080272098591462712180369557784049081878325236849307874295471557123045084805057593716282478328815153680282079959814449423416360854721136296659845980860475684366334258850813498865679167099509738311392081647145538533330829330937332485883593473174485456602060674247342595007920040600498504592317136116828185980940352460539931773134672865336088820692417666617100132875941864890913732879661594207246443499259839084352241778814073381180598066471182016811869947301731247152616568186728998220364196873319167483717989681304509025098655405914361270809100762339729780208093531495338519641837970166627292740759571963547112313220829929909677337992161887661218392679373075473612340662185190402771944641370294882915951109718206881735060940423050599112719263000205177794380750135388886543496923393949600055473901362090205560155986716742301814879978910291285990423482598346039870460124516184685801695537875850224015272846931664673752641347757841261851049042260865610237611108237699093535255777282395523513455172657170672229098110007382486919109653460524928060266806239776940497181988190173930304101467558807565346796991103716025630182616940578414598862822183687156760362085257944844251061225382276635825781582330410823301595397227821126832127010085524876686512744213896754109173239809877788357054082250091670200776313699214438477261046948698423915506740742220818880813733420644608669783308586280680479188820930838245737155536790325441410735753165084071983252137341350948950711184969642705739465792042738620472192925247603115942343329165601353603480092749017308949357699155888939197105748933325001986267590413993814117882661147999441577444333753118309558313016510782956540214267956948529704885214142636266967457016822943210684955280659933098600976319819521791448086373783568823973094438959065387182781544721923612672945662368074567586718262226665872877480279813810801087762636466934160536817237617713600483539658799856720567896913514078129519471447952459094733146326062049491807117500299546936641732800814203601157684357070870619723445993264175535957091663220429459728475210553760611663469364542736475462172528509061121325675782122754431398142420193230139342103318326272907075015867863697270113370748026286627394818523537891004343568147838839066328226021671651010674311029393283539498051041860454408009690574901736168835827221121112023236686219037221055734032777666239761878888639139203871378493132759144564707361547387102628728014837047793020358031474059061942180810317757918343001964930548200104330518699924459519891920052793192522139667290614350171631485765296108869694982962321486930636509618928622673098863400203332697169771998465699551133495240421238898301297781748863170916681788308052126511705149133871475003648586748438355060036357435028622162946414482560207027391194637099343616246289323819037319197636423002229798509418763003640018879804342232869885484334186956880656982326391775296809099292996009050285606320356948482089046593959106744240794544557025228447422670450984028162233283482266497939287916419723799967535011705481237562039187278586821300084608042230566452261701964908748637045022155497351120140583746047989028060321783485174964039358440031175501761059291107518158899115950532145982954126772266356664397797279899530628340336202674641172155379974573276697756844091074882090593460230396666170895246767768554307236118361126847373675210140018554520107112866189440606275479194558345387949335329238411225796364376289555167601521296301329700445968651211873683844627660656191956975951398982957155294192727101788184896094913156072252490472969787011935045790590489690085163694850749838605607094710424267096956386512879321804057599217805434141985578899290246009319164222831043147547923585727408859730984004782778936593631045238117408436295504589878006676553295673392895480875811310193263857963954090753146901870854067776590043915432248593122240773749573098713439771772485496343881017876815383000106691861175850306736380797556784821080305011493990738518864698095493103923770496040158708100244563079570163673132133387766988897488764156514236062007379389841651596022747315297513921682552905648144642437329642172010869592346300432002395421565858179008706769143553177571894803842274197817476254634011594976567460734817710467673296274633653910250599548115660115984403818490552291797004661978227900007367256948230093146370901098800567232876795399720159006218602364625049172158406303129927748669258915662429079895042205435092635875038121778113300499416899985639375416156360875744764805890189261792408453617745977017511044607617067474057710329848417836450433055079603399243189865094045996078276191461186454078527058299858245493470006717979023283122229523907229409192991088410997291087084478307129567290473668455233033706227134539610547331796145610103417690318912169204009651405176160159587622670698284008602516551934804621948968364628044337345575903307649153248686736517229828457936948941069995971225889644864149927438298560830868332478239867588762788634751385479152419779322983901470338328128197864427749779584623228436160713816001203732137989674216286642860109393211281755741875538965382981600477909859568980843107983684956190460019668194350951831819885878719183799382000303870833688611064053567266651430542394470420545994423518998733198053035102947722270256639016714352072197073072495771591174777410228116827462816464092433990273245255130645864701666149192118060907175668948789111723606705199791788459717437221694689615953308255386295501206381247242252382119473374538965224958563273632839633788041893728441546272706548676157608959593631013035249348053643646132638842237093069662113726320318678099060516776279342704641258009122038164861866608930666007542227104711129873491771472008586954126375540118731183979989253475214348405103835787009782836740711082694053021047662602616431249754421545998031197979121730315472941067285795710693807462991378261700932768043779528302237103632004896946662505780557201584418336233032830024001074928528921780879860479517686124395246336592740203981391515028506835343473641513464358665150505951464071423103937248221056922730127960702761118774380125056204398312570396082515776199980478345173919905615762860882884851501609214249358231603433882096896258420630769041021824523923205200340219520622108437536897377294147542395564317832019014538177673400113202545969837030802780679646804338415962387268899285589230493406159722908076731057815411229038597741825495435389378431096369164936295800235775290038375804801444458859908989160461543606528425290111302278320838030497208102381742467970649522247793154543369180289724982115483788107577684661212155363530378693223678430681896023157078621273690993819901241996719974339673281287784708345816492976342778782817681138910531145584934072773369551516572330515711835336409301988851518958897919077323287357890383770859779832226929138584427865379541623624832273007845777881183643539870123906270516475910375987001363287217629278217912014451107597228273371802333348609484709514329518009455393282138474819394446974103364816295400208944185486614613948492642678585217141735277643428067073189801607855777606539772208096649719971522338343915357248692636061127936659315297659942099615742442848035527321296402571246917724216651608063324582780119515943860486931147992667586695196988227040109639091643812435568982011324457899392654077466946767645027418582267004390118213915120094941026624054309606711274559512949443405126632212918143898786914511409413914675617805037348252507475893072732852860231990915388973336298250502706797512089501631883289947653644700781683637070326709100943948152172657382009522057239443680485968845143884817997415281141446047697176510423556497053711338210529023169448645745217895728234031122850225666371596536210920858977496917108887835015503599804943198306657876017571693729655036788383380997598588176207897452650732896343607467335324564121973445461326437019587756822238095360294503829352798976830550514333666942929754476210407871051793139763084287319410815822015777199753947972679711538075978075695971016362363516203802797301225878412472238416658282815913771054984610021343244569483092189745988861322199448080229909180971393668149183777038278777129509096041385448030251506235225147710183893874332496270685854022168515334718023105159629187433586983749031721008369450336056297156707962910405339005468992262024656352943493180305735548504096360191658038483799335652411070262086123891860102667001915403669063089244327625590235406355404638391049598938076706357323931440586594147515582516958422459806820020103699611350449363450905465485091814041502727793472793195790610366149604239229216944938902733529127671395990511029462517102162489682449043118794257033282875675372897819495409224075953240431270532372805833387845165267209485647462888727199910249299501055133124836734134776331020089530516078190288271053543055816522619001540267083462832058995427200357748060749576919639024091224869018598375927552651615072943832619476947890748381553760823872174531770258929964408318421069488183839824726156631426532430145418214341511805653524188375129105836116229696850852533732105394366988328770145155266361505468368504060623948477042386859285257812322615030599342268624441193331095532906728816352998027498851284450053265257699881230446016890835785263688308521069952472903038425417692943149047435246224706559585458002758642655454724591719890502274336608700863588249948882995657765801252302472057483371057229119570884975216188147867731419373056564278896289111300382898172340183023931650009544939223476079343897103994090885952699681292108929779794623557146847113635540715495698532811045603502713096241371696901138076658522542241154813361602727160461625171646426943393290454309045167146074740541231850643744439012049031066379418192412755125442976051363700960477674106728822138215816621959872430849646362002378986562071167808634601134842315841902884305421522136568228394307875815821880955362986178422297713795553572681818198273902699388776529315722064907010463635664258608545203035569700704788354378545271901439510082654388795582347084675578348261869278341848590363864125685987549500276577094295304896269432840877604585501117114096080777189841960597921978189541682260184856622910708563620446741460770504769333253044611210218558171838110359685786549366021911644241193689830092980689702611434200379136833756105699181188361769532340877915207930327911659763082624578191685211419769575586058769850076328836242654683444404653987445624674086166065007070891870024837307918238469655482428375580310125596817514835892230200786368471904283761484763353221853076928984677035616458017835943375008711318757386476352015357838850280200906650557422255025605403046982224695746466815924121769265519540499476683953208183694251018615769523756086708371440160482655881980690004991028311907200787526826377572817638824232223676990390394876373524633877227449435507447830754785956346117732920913725888047920158479474099414933384866104576028740483732931534600539277032846614178061754858681063402534113641050826485495101689220661575211093955559544474839441050813825520325084577560572677530580886317829036088456488577053780685689433364926752575511029072582931351727439622882961027642696175956138316324795500033848837816116278333299930473547918857765171399929243223371871968568738552741350324492192759779330663483342692398868950451581244362271027987116613652807203163290915527792231413391553865145674624914262787355042249116160984931722389483767404396322376380563091895776560879794213221899942105616014894154055631389717687150363698624363538551252878411021785696618189269667890130535143200494573553356125162802029326729172951721068125692265898719010230998609483589828812524607900366176582961648173895838363997916329502244935413087800911745649008333279598716624400329631387190866779011041557046200203868639703718355279382523129431786100224355517349393442815301736954207448606460985968033815310190942622386915044772563756116171961080007795788001197321762434571627426673728249382110189174736677722936076876621163492672241107329698803150924349753882697170244495989245762268901285649807490577495303868614496436633857438756377624485519140853791352839416644982968498343062279347856236025624690542029833737596061264501499878522306761493104490943765940000168783427693818323128828892877592942865925146763591325391366480432475345971000112387182580097704747209200227330558907926785512857754188874568909941834386440074632668685281554920510294674400544586032074617272942143343304049033481267541335335713449002144723726447251277424558341443512060588567430162470599187417403253221791519609145500128750674497035398281202536901696722956703063656298051365899346633584582401105213378494798482153703253086126175307548049138075994527949527016520801389814821713758144877283864034991755711208422075347699005666077793702697624570455374300227016624466057136329441355136483964648315861826294632304382255623007672760661193264178689718745134917847576536217085226828049763970133866726522709889230922361882756222991823343228715537012486136995775156170321946674241616763992771594716799172082618456512106989187259974190545005801770752673603829701966395001540626503203242906915256715572646752306392493919467512873449004003078025963722392211994644202343254845418200626709944897745035938826897649464769935213456558160141874123042264091768862016790238858799753157390202099256023140495117493570983388212399643237674008171649909912848805179860138726788590439160318966120523557128993297200391759373177087687017349746703237240515198864980929678737217831565740121296933775340006623137563271925997107434489119770639433687831638391011774779524498288590194205016932810400456111120610174723115735177923254327346942094834374912233227919333416534170576653691389841189672620058831455986108496432340625791681081119389609998768915232895915749298895151749524238252574831736647951956863156636410117566684930484546234718302483035399141999620666399629294331987733657646807360423724394239350180237516108709101460346418507166597155659532982162353663471069188390224442474109466242135859326848134220161813096123132410803844927388001341312926076491643938980299752175009172827317399179457850998509685689023626302295709739207764129519969962515098566770390913873173834521764940669761901387168773074793894477643204539267845190662131268585096790900687644188578717331460233397787021622232228218891905568567762874756300344430207770574183360399784624797395709975747848396772051115319005938925831463894949714417573225962302041071506025765053191337647889748948593578215097150882945097347496236779649515495902091132805511633384265883879905346106625870393680935424637188885770213656211416842235881881395381783965048951102367732934427777267600744337558307565543510721331328972326078309900670043639714747303903822207318817922683910790154213450514922082595277431163960006937160197375162216242928736440832090845892918832954956231548320443902857869425454499320572675545175255935987845775055163816502541854628372329232287488556421824802091840673005835145419845321461356132523908092704561598551819668057697450439201684345745667369956458888070103547434688888291935978962599989810420487935529939660456846595949117241214691563026808093364398397809801859098595647766559454165702899450486330551991949372255395045112650089135155952771709285440694449450276756407755968252127540791687187999155931447065554642831631088540951678154902618264547489807084105965618050809997191062285123037422164391088566864749294257148148945856815987236821954024677191006145634290836803267526834102001540109409302109275164785739802240238990172249550560793380660510035034002648023402718759056327486495886233824707465868062956318456573061345911194483381182054396641215838816303011054773701137360599578401799048206053893683897562179600920470659965817685409069118167448924113432078879672078201725672548441932978557350321239970127280845635133611545765249838052448013325344683286436095368530049286736095374075881324805445519368301250330247330237642536144989187877125690626838228433142176918171653418054897934404961553254341001733048110950697460128394007290149914918648808783246575208279627704614721403122369739820754263807478294043514990222251699675788250914598858266345363778057064725375824626300243018066770609975394482987313205119722831807729401184282360804790194345569323211330241489777307385232745601679410298712050000451091683382681622966510443729906073311819215289048587470116543566589839976387234509194077466947077481488162813331914764120574272923856928315274118003748370760210221399463803417101544916526502283553345259537599551370978177654238663482036302983248592699063024695973339318438800230049490481528600215476983489981676045445913434721120020500648098415739474544689608909596371262005295995876779680991120992867014354187974688408534555371208474815836160111540968810534186754393591376373708398298140787987163230752751363854980131247145855518827895339800726742101015320162362873285140116673479320078137903976652529831015509932188982616351501707320425146395673999956185468151341020582724826954092913332376507064969196630743292904090732346296887524584248823606676630064711733730628789316113772824156820865442198333583196800221987830340951417890417860743447163814486934807545324647253832713120187265228460846114005456400274519243645600847256368288577575189451520215297772595873798965986852596593040075564192666019250259006031251701758400204769039464474878083900807848506088314801280438510213374691634016792011956950512212304749613198710931358209278275950651635792489670932978136050216706996442806298779548102004599407551705748091969536881854919247966999768036678337474593367021011504115968369056273302507753904258372236802658216565959479933563020122371985844564670182601987276682644700820502535654088282771430290330383909174621888241179751950208422121820252373397613439877080975496001606269578900602668921621783629722459370585452416292373830340638225451895377021755791700884909872705776913236158045602493489876355831369117540865474694908287250307914800472397353156711144404256980088607769974403549723617063709550613754999842039001397956653853425980142526196038549114664725435392992157629398768636965126039474961598461734005473194596573160065221906328680848371867454562233977892869044503824061739502276471595281263087602808370166089452864787563644772706003852001908032698385543921248492363994835390506190582353691926548554078597526954366336007904113143015474211680084963162992609480750752504753674241411945668240795197144455102241871238270254716429540885621345630163303656561782991560401822316906669918863095959464866952333821384252973640155882447000260928050064750259661456814764707324609589320093631401690641271816455900265006492750335204287273940200051367299690923957347339188501260058132504593381458226536793718635169716912452470465445024782081319849102010601378830167930322427369550641488592942880419520266558228569160237202674353471894789869012274213573902424715503553499432991912587005446636414093793081982637120443763019066425682162241932212010314853192700188335236533241559668928228323772714102330861582487225265729963563987281714795181052383637329088477239144331308047882847094703689865482871817306374401289036484535092876850377086430249230888558044885702146310819454630309581612630310856235958307351177233371942084424812526578239951154678060610987749979591035497810169295310471069764017155035720413229311883043035802938788510826528813303109856577883415007836532693426887647253668781699052353445523462915686231486104496168942854488995481520915176239683043672007747843449783932110565284459490766256235225510413630361794822567689723800111502640327048683703635429664409891382377799308427380523280604763000809722480275300085359568337638877004754169490538731437005555531878380717150296566252387340806135754710106268799776698308430615604303079095129460366252315528279937729925743324010840075720042321958737905843002607095697642550312445699956326290815981828981754325204285200151039558033795165223990484853402046642081113044992640592317370620164148104044228300512168650230510399266496006483575779705611108275567782415750748605424261033408516487401511972709289226846672169754781822489184373296866017937328033994376769685374859119336444989230983337182509513250882954935279387884753973547240420328323541414815287571711425484846757479374918006064872452633754443022942667977569849572273970243667223907904215208642669827667031698248298549948418072406439452049705289922620369407847275286231755955260788535358598618698389888760772852023763726972159773837467174173178550846020233045193734789035572683129876982766924596452049093098970530485520325956774071887646171838863185337984990591353059908092572206708541184772656397896476166364835516318534804079023662716310449779182572010797209452614417199514082056466432642566774478050917880713073260451959203666680681512101581178439452704990714620792148772121517201288881842829949779736577743402613563974337707587322196266048067725581173631855965361242335296275235426944946487658832295676344173242026422722826041447956698511670994606499068456447295167604223154975786608553006708891080853944355370497350435889990137105351228097337362115135598487802137167008935089199714010010247257923416732861168261750378126497137226704427706541319599238553871841441837860353885251207744263127662878648372658906082548246544788283473287911921776290732178325421553202264800465904730973088483955037110431742198202975804582441768550544116668684054157025479158493719480715820711502180651202040567955550032913617589676910172823406974618343317208316617861178439665494572148367674239672548684414137851901149872351087750401930835872324854632857230486350889292773483383842959453845164633228623818373484283389264322159098705122546528680541448319550254932290035417443488149739686910111133621048325039794812827508846990853169509460808210670432153034922771673984623536116498149505449708205151871350223011836265596378938246313440714486030765900925227096069667212188886578113738105557087658617106758910475589913239528609507840384603373125350725990713943525274609001076292371398253789334109394688479254532408434539298111444152081686874512125757494197997354717409227107022396744231254813470283031647417549137962909327050560658406702723081052326167311024708822810585495581946543120136518452567716320127470047494451746149641795489066083344101221681386386446678367617584147008963749816591708762267780456989489230801632199581915940168312657432414073222329127133276052202190763412903450620151082217662181770625712441013941317345690545041444517954745583603459391411745896980618387387818981425891314402651751057571986788617422485144440464275069406023010022369641411824965711219054358210209437577678808564041335901863324003612266395098056672089497745660450699787086581298130118899174779395601767587098387597901172739672371424351948787319660432157114482354405142282474060590569174015633226197073580503045463589839439758142257902100959881271103987713545593642129248048677970153613826722838256074575908594440025268440845590009997006045650833279010392127840632536743524184119002665191585056698044364449040591371733889005843288556989949777237137606815064510946269524824416524182846409380918574935484469930510815282985910628404673079218848463616172333300722395361279242454096680081243192494162935950807090526742776689269451227244819135795874944447787316919057081343225984273541669293411587353122320579467373242107437553302773240908737970330140520657332440710134498839127060587406485386345938540809573206059426129133419080643834480531355757896560728855864555441777273050229760729581773020541223955928684623044176612304236431446628639249933285725099637616332921762664160673538852550670839535771533998900597684349203018737367531869126737536825747876031901161357392854992773093876230012204090202299141004553650964629760697865449724653978214613171115338044163987205953024406582010779523993632158339407639117074807092670221829806412376988035011490680860134412226727856142902872787828088730260842462455732015084378149020732876356735056745504315116236059865694018491003219443534566751033564251184809093152850829555737650067533992611471559020077939647451785517446527294547097273122297343608094871999648496788456149602524429437414358223151352146567544425640289587591873410608206035370271752028479793359578555517814664979398345712151185704066986912704984365207152740094265261138350863533838325248442252710533067890456294836699364836761749989798521893993408579424361367369076830216949516701735589876890184891767238110783395479325618698350147079105414676567996409775441959714361021269692213775541890230797167732661738330189431126579122668621398343837003405085072941060019859543383489609730892842208159668403630728779872459162720905607404843859477903522903283166823120959965204295625842750743440177709006617652098324521091247253926511974080671567019256203980391794154256201933970071962116081423742478644285933234741231211062738394068446641800451270557075921400347815454239197993884258499208709856089163331204012399752868882326702564503304766576363858144366543122032382068186948150528029271802757986056968132740220086741470243044403087730838233718514434213788721702193584855882663412896783646436956180707643871569267324475435246719016078736823202145156371590212292591694042303641775098037282795564918407967657067799858280295427924963953725763643413762965546669831043942672111879866480703819100344090013172224678880698884079354959179125540499224050370047685354613906187339671120875605717178447887404656470265936257738389228791550549798289005678943284435362569343482965931171522142169680934911333873796130826534606932240136797285216915925362340892327755577367547082289295306287211233770935797383871305327121627262457766826850604878716431571119870349790569165924144669452385654261573713093356042865945382072112414869214290652280301749920213848483699633335603141582818842264574733188811609155983153421732181147352005118842123176316385883375511961080852665375403112302930708423916803816052565995666221939052872920565451943847130750857343630027607737700487181953481415001733056155105696477148366851883268344945135165440512528062920232623791780065168128201388857192184818239156608634468019259955574937954082408468591366675533915269396133546936747752015573450923542878021500226137820398794240019936473663711441590214343255198052192015194158042165774068374242110350819301628589564520949191665526825844951852127710727450765100142005370348903287659047402668396225119819979783562449000354982560802043559546098864810667486454476162706734551532558784140734414434304749353073626419028060541283750624311435637399136752744110945942918299570612330754136770350770857146288970366907924057197145765807435466757053125646797530255810100578614832395386665497596894111339824382425512686892778621753125658660997890660957059335237757847599305631556859563832872618897097253390696285904477702044159932948268976669131861906326391301473646070882256979894762786643531979535170475220745700929180814608916050015600955515254977547849796059086999335158193773189013023485212817823145762547762791269417069019967135196287239980068543778109656697117974904613831009165641913667912671740383218235224490377325486375938304932311724359738248644740485686398924560328771332363805560522376812039610255897793602829350382080832061060073842872193264176224629138852101215449678725161452531613898994477136318441389926841372593944028492876476328817983014536827544964375411453711748323475012327560524570204532128468244883795769674438701157793001029875076809170202058642398818727534671913591410293974738156718540123044242242625193036775772380683134179264895550989578350426534664279466123562261859652169290845530143691829602019731135896527896439140235631392491581548051481337147724166304072987952345078356890196022948353554250206438328214157007374995213397618651753117806315365135210645040068776455826660484846063640155065781145473592373119494092810454357854225973406649705739759840735231970864962448999403474279927192745244716182090575880390822044523338233681409685859081461662034308285159797343817449950175543726895213213784911270962670157797844286870881363732390771672071355807887967092693655841533516727682237858896742405097575041090278004694253887606856169148330522728027962867357100778128617960045330816244342176220314476777460138885382765062802085994215568469808076651645060356459116508822314683965740577568611731640953765723386331472299371017557424168228018650428542782190751592111240733887791417625925294710301952207742405060783270642649406176774038820050241434614476029766162816462953147035838737404164441255369542515978625060193226953531566193873469338220012975661116205188569208979541698553524639833554639299857595480383438817205016228137553858719356171565149008622973000884525929240409099027939127999049161303013404768122128407809333080925076873715231758860045491866726860188617520100069152805350640760162536269784883856163365740161518505445875097934962421400207233561284050730665589768624374861055804431876544500671971052335630152393739149722053309112519578710257048420025319067233962387642266732231210316158880417533181280311423463184149646525030502380153901387345886939942287489770127158231466187169832335801693988125298774574310451485843632388762981979152238739625911829696740971478626434810829513838909625338153989228333814032406115712788090371317802752191655005498817592372637686722292854514565153475057550486286798169212838348861083276661253670483099678852447321121836093514730712805527039687843884329770456721827808626707634087932219495484114231590784058474393462540754804345458474189699399540741518998839547071323242793775157068839718833702893429131352589309020947332490421010275485626542574709720139713989158305711431027580169185311342013443068254883924645669034059219876772034880344770757419790392336637910491624336822412776386039940300216416093834959300040028184706811569792447426679759194901751920843199683334290426689105016198736649683443741065550174350297017005999395607920669734636768416502833521018336549954159129303772040788157319033155057754751943102546248170136466091093351201060527174358168072525475778163669654327244477393172639773316607266649473826411321193593376201701142860237487544159594952308610022334513568864560083389644974411341420211792628060531036664369759788287053692347428700505252218172680648816784625761566415177609269490627969144717193189376498203745744517636624401655256277840463025199959787347429193939011341245466879062020507539657270830855137407703015461566166987507163905664942989576246505022225808432435421427018658144692976567340818744600664899283339793591820100811645036384361875760557231099281829062307083989685332728185525016675483684098394171988733497584178313141382235237701465880363999515719785398523599832412639571876716420152282980933009644428180133200023792642828051595485466658590683780725642789588588614929239029355089767476138223571869728734817716159708548763295829487360466479273491537883605522427015180906377663632578218488646938232400282624811298018752267148688698845887831383104102996216425206556180556370353995191536269168440194373727634078109568722182081511744199091364723291168740903263121192779075618374839321404530674575306997451167048205029624437048780024039403318492635796471227556670012318134319625189412562804556309041392728005311761833703459908449630743620290027544809003095382851166158473378562391842721377587594898505268821051406985737183067070007573402864124451899501709348864752066000412308969982018454523084727729845946820594735462356306400523328062969636070908991801066233001559593197411091464254883454354868310932333904043607014681590318387015091999833445107172326569535109408534067273365740008851148660412445063111235036811195996474879849489330928294487699056934543043486406947547083112162303489406745016474736703628069672790375306386853018812028287216662754135777333963439268645163883379252376113515502590624639964596053473381799784468237081729125909053861388048916098950037276960453043055015153839997475234904513039111582912125657161673552806400072670422492787920731327701425081193903234577236292714590708205028500976481688891964898092211076256146391374411654145128743751968256077183066878004134362742817336076711551676386735775373869964230110783188673736634682578888096356933130368336019511714247215953344711220531940561616396087005221121013912041597254494467698579269373501212838592910459847896677465613105175476359992014056125212577855651406649820403827644154350137863870061801058166092252308302013732742794580347099433877303178934199527782574937451162314838226777711876069321261341849245106362754457829120289129311144201989015905758040883018752344938533333660894179129346718654430406115207125306188876239019448708546569707468075427306030022358212262765857225116921091556682276570362043135807294158050707232417428983906066894249650744147036855884750751975648302736779852672006130890274852554347165001437288395390743418205258579129485106888749127503642732055448004218635585631840485502185777649015635327020502157543746517502356609844146573062129061248292462947964654288549642191136017544168648249675684984780777524060397002038472257161123986449777202628406324755572129711688467296670678018269401613380737150006317244503166499457987047034969424562198634327875550003181411095644249372743755184390204213154615074193714944405035228453961304254793465600609168887186590308807255910917884991481484457427089664075530629831071585679617681102882732563168594531365256346960283464050351290290156832147216221502332896348111066838257327488672582908582195181365229967057503089517899782794713554721912635511681450503906037711973957768463825637512367151306122898865835700536092593094488894794365424107674663508817027836576069016021171615184125981208564260485872929179066492014727665767664745821146550005376879388880890176438906667140376801128867756736675343845528480627957030131176967495847000506393887198989323418837294459214065877566601206699183812294109018220524280893352135762046436464539238832481674342847611122857805268840116257388465241627882902399523396133027418914794283386706183880783526924313526096294744950775724805542639887458377136318583715117426231199071343514643383487609553158796378768583966709126530263797652472245945167951265665127090026531075400169298569842047537989936086640851921904578425101197263316364828227300792201386200016763376440459913820487731843088256187588502686375293532608537310970027264157008689650755028480676748645248080976709424659084097754505927914153349102230033035855324666648784404030569602577299265237810656796886884562842001365239605484459682455774683984285584416985000011454957282393860940172529563690155679218510558449004625614873426484317772358678453084961426980333477726128141361313766038262084129807725983503966046598053030434218664859478323720142037236730339349202853679708748068752331357183808653014854201611287515187569357678540923444451474362055954071733355722858939708897528815108242492866015496226856095248339042863023827463460126655961692183952134904169756573079246559148299555829692674506165513537955980121081742760390561228429339981528557876059549810204541116457818699690857363645624636244919282099006586906077644614020872028111865896238359185778668964610268539776646980926054157437556582789043913820187579921058383317925313058525509625022998997450662822206490365079771223750207264233235065237939835307811005340004557550529875434918993027506645098819007305586210049069756460522287306417225003704876619538204847019511699419704211018138480006028055305851113568747888859808979370400421401463116098582109203993212824001921219512831211959360444207961196366857330232460073230120316977042852382630727148170216344806863098150187203011730075102914560512024450550680448965218236803748237632902942677185609699672611101814237410396635257045686047529128168754011209623762602285830692190003331697704342022821308252673495658674646823626326518611446867747007260346976523268901896489875325285368967104808381818360665861621377017697398533098909054643362313740592196628080930618265547452707709966069700014822061737759545583260005461261770172023465008496088489614123879550404547382837008394273272780163221755884707790683181688780301700991351547447924138766732445928410313934228415694869581972850893856385438593780955322303492888250510802104961599262865905148322555187662684281668812223662627030422415912778712890940511903864848477857105860167311262855616008366282893495251801746927315806952143681052323401413785532089531608152084947059134007608740413166386268162772540113458777218721997542571539138539449198961577947711078433044731179889533407455415563915485379130419632252432700075679871874703518217842498978671977383258071367513907079009694315023473232823257373407363384716644389430760143012098965045186151699232238617435678309054972257639659512178822452253725037976187518582211144889616272528082675846953273069099150212348460161596609605253901098066074107048082132457009727473370890925363076504962497870221228656631158314065412080689352532916066652449043190521940106661535475348827548283176000906965970677584936062446987526697242646557001521331099918735567932636389372731868514838693411064888571027288686919695614028762753967443031820650627994504350226241131627435063359446528332007501689424699245352295016767243767487945844908113038996942557718332816884505512296459552935448386721485568329485534837103344751526254544004885209489175286722579670023105617878484548773515769758272224091008833352521965834192288283739631904666409925538022028109054916708734684245035017612753549676110201597382270066049028613054170197449780527654113504274715381038293146368935717100366310493314523325648162130687385615394682670261514927784034113813148063359001329565606115371529211401252976994617888689880570323617066275299375652957915528902066155681780158844555474382483324482597597706729427751974836556122088529648690447200481924258773341474174606356241447965097095662631900985037035546374041944224663072690121544998507773515050406682611866301169175867151221473351148071632637373608518617828566589678952631654060533808286432347487345065636590765793651472562490103387333328681342562227397423773092236442987762032328298144820079749066040706106837108356327462559649512828556178522810629787774113926383644729648221960792872822377438855095820804800038969254322322997232694284726754673040031755189014051391768705554151638268683142533065957046210295152514281348901741530571440465532269398759675630819520437423672655236210663048560124379356303890248714676934339527642238396348472031963391505659780205981756680647365421215152388019757993534767408626318690184350118045806810503194679049435706527555047324847414249982036708199268047003630196045461732877997146198578177529870982793152251244730073181538685247101879158531539179012355580449175501526667991399833990020026566925259592611955675159958602741187795359324545679854200570353167148231608848963559691473529113980761053870096553189185682408058323117501731800239833161858897665451093878129931390439113227766137352597623094780677672278974012877203360117404423375336467666364593356745462741825549930310078409846152409786838898131919771759109072315508998490255890521937639011827339520081418221050425160118892578142525251625169780132713053993138754183703812246327582919708756963828466475833039202794276926640314379487620898103753329901723045445199126018200268406701653927663783862810149834978200093476074487754325129833029032754241327679440361488034648518919230460345214991908227308994927849700756414983025976268425662312471924857742735836146571152723390851843336386872988198838347314181090019931337420921857928367704097334567965658698103843123686794286567755271054713404978764152917877156643460232989771296071583157383606078933848447325969790786046733632167607027766972190126857002200497066882187415293660369335076129575196097881443635069949337788979662204769816437271497528021077231550282804171691054777808035214663210640151536431746585027026377997825620855970929130414750010295350979038740922793021945058574271447922063774590712902146367584338188769812221275510475089978561223794934669136075756455328166005327459734238934110796650550961386759706469916154275277692823055500410820134565322154358064043846850940618667509942357412603818769367534560806399156594348400897791206124772697236638416617466597380259768966554629052833077772627701960256388491012889047482384799671273779796543912152953854083139614173053045786517154135627902545911412231398178560740656343818556823251217163228845181085310900484467408983271784015136887676331067485351757063208479891610380566430095546098406285164741006817294879399934487166042547955753544912230197205480082933164273691429820067459829112603029272622125235345466580854913614653038271620181752179985874655026317704090785548376201402961856250705038679381638155620730978420823096541598938374018131228865431998159894855252861106131053984492664364709780601883960301663468985947659445744267116580180342506505844125845000458496969664511342165088381587883777546585910691177594972503632160860078633331301447675447069168516651023259576741015169274677602127371093425397095918954596788909282530536279264579058851070156308843455026206593736991834358343886514926682017850304343133185422603863296540778910658811058640059557764466011201997467082265676574798704808975370782165875757247066494508071648615742585035273606249616085170599876750514099074194504491048670357634260332615223496556587723058312548001567497003224663005909829551622938628772619620004767012468298251575033838772982893788701853297066253037576710596303573103466595634894140881018323055419983838562547038083042493326279155100718144284109499122370788050407684028949291715932055919549509328212914677411755872260783168900742329197130555288472898378116464953764709768846771415776472337412360085052492159221674544824790447953445036227704383220248861202822008584298602019174517717135781596156988724918748895086758517441199502327578190409762121776880440099239306841554191441875865703261440061410616706246995440087458414089346594046977189917028754475626128168738289654484924832015509074067135565357168545647363491181426972151637166185392172854029324054989223749497171037785957482648119420020755883825062455798991484646115403619006814839465420956422425549986627000799853766193824849940985320480042609410625586585422808580263798130156910501499439858269254983750815924603939608037556108272159268892434702188169542276169173054244556700298173432802367381062777640133824330534448219595314595371924621463795456063921726412429304199334174235414897993764525707852331102656675239768329611155429374555366886055183083500141438041728339078382411913614604314646970233252740019247837292611496575722463832013493575928976624895421784867948817829841054794172313825665326824699110902546452124523620458604296355938103848201053901317380838834236224648630938447817259597468137019375617483025590981575852981796431923550088881323236363517560393850798798660102798627628788395180461108325760576238233228434959500854669535502114216923519381954169608255332342837597613011870565823657805848483333811091817086522757314499521992142245848493823128572429257636783524745873886948931234107765147881628559647904436500659758988765402044410727463603241523999617230582116232605437902816450849825601955047220659490699111682059145850740278716746223090161827757334899340980092010190603261574824793674034859818676906007791126436657195888172614321444751451991623532154487403194480776510793392317883564108500977478922843476203954305564670472566839743241691235025973361077515808413046385636993084792147209501278582752387220444445388131870530446950324217107437373490059404095375182792003122578120879230188522388306523418891187435293693927782556269026375034048195840148973075897519878960237802859256309055884756384268148837497004014518154747020614539898064226278236615517335454386008589866562361709711359183301597023631810984029813796787279837419331936124544503265609797970263089992302473313746216412927175328454028581283567763299053090802984083088361644954721472033518719855129995501038999872328185564712322398810438658557699859459584368088241965832044638826838626405938678341649364089135457280957662098883347838752617259001292356139983079795619597717436113675510723527619749261174247580920417482143091251501220583988159761611112268581861639298696284826679752924179929378255062025032338609461608157585140237837663441932680676875314046328195711393518093053155084577803300111413366922256549370807220524649770100486304886047334212715298265023156628177975514448332920721471059383695491337888746486967786363459929136174048995592253122280157163852867151977689620215359086718778503622599962014631160373244692351666439514078071892273091299691956630743879489828230248171903081951278617562251189967180735875580496788680524762016169572852528297860323343769732320471145412379422927310413338357494886825762563598720746670577802914581519451759160767912146012364309003478434647537550720529314661999836137503821032497302101076786483390156573410530351044364166965525323670570119608185474468600608448701283551586356860804607039172744637364121480447442615769977746197645160452625289007613652746607715440401130629947270760488527025096476517070274636107430241973424938099378534275854010701324562583533474711468868184315330975572100971827164309898618301094025336801041894999670228118799631114353898940781350033754794327942566643343729063906989857142355106171831053030366119210794683727742010303408186876177981981479750349167414856288790375657172837112260447695410273675853846918281896295570092503897932160281207211041979144699152649404640562672760681137738040106074483705626109275206982745777649817395566170508535776047122540186681355179927757791716731216817465635071955585392027398346649127496357350764826712646420905257512857877148047641782249139703349940613882815141561534739172126101980116622661782176444235091942787544663312057648925740405666282588546946567931543408317847176610769454180502543677439617332411912973908751345900610806190982593832088913725189744382124927862118438737248761238965990331992116477747042400275194153210226435577244078019242613597200924432649756096917850149441331536192398693179576145275948851377877808031248924739740129316948796503982074599135489522269227195359598184756213226236917216589936258876550639449272809532121348385384855929975728745478170775840175647367690742471268855118861956651708285400633349110781754763049992819025633631638426914041956607225098856144578834752159541959229609895129763198924361370259854968561037305077912603579896996093894994187360358701310502141995919744797567890550816952110702251533665650031948975173902089555939926559878707846194330691189379621892878377361846756017686679732693147389881128271671365509149975009382353664702499080222667867891067947316123081853109293587398250281960277707965253523639012861400607384956043781085113348176099950821927701832380107513236773678104692674386858098533730190382681952483824840668125958883280617346250332679659296155468678130453611877016208399132907771290051889699129071273833154999485908798284448585484983910572070256288539261836845771919240989745857904260155781408219448190813429040417845258981978035157600217699346587081839275893988363630653508928908510698814803595269323787096643729062139850568756729383128982432417353046071490074926509806143969504672169358813749129738982166445452590404117800766323449747022453633853696452413362037896918632655258619146318059763476279268923461357928096240197505200349882095277282549766693376466996169655975275849242574281470622051764303919056382638712359935011008471276654905499564213963134317565118383967339592816996642007114275080052561299227759043534982692655268791761187350615061496224572310526301110721367609017381131108744482495803558905036433032557067982196929783482992851247781194604151993027219305735062110156582280952047471995111532572334334405386264424154180516344265460374732845578646499523099699479972581552733205624986175512196738827210888065367239892970152811770712642556576353980683762879605308593991658463469271754762094137931136039526437202746067394736320238928434425851415924166713839015265748271126389946755890695323129154565574186334306619666618778081863584988605278666527214746915266300809617792949937322719033464383519676878047007443473498744500387178042900640783975939346985260272883013652029741687005190364990026105831823391318900325118929309660092451578252561895275355898452698163706679424145017670179866261284914434177175101304510306382872163353817886001079022778389194291876744662919154047687264478261801666289309827724058975254174773623134551609788787505820639498290932388375012185120544212925767172921621432337633702054248198688779117413686854156675672701479763890933903055267027949875231419565310589544587717107869263863312122515453363658391971539290868666467748184223706866624754860511947598128778373812835885869640565054875818518940155553224888420528326122806116833090615586916066285073209450180892193673786969138104698917738346740255507579493337948288625555857452955213023259570947171771539780275183677539751888503057243651487990138752754092255171396831672032800651386104654149187153075037518045485753424667253331795077931394984336901250871656915939835837650252576553708555715230657105011964334041376526119080890232657989283556921180998469222903779227337690056760772528196187995532082695195213712265572190026086788814977201150505646407933472499750082558939224959165128786886406805948016721959076298553440460750466078981309523421318172754815149513144021930388663707709613585984138113050820894534084250363858982358008095700506197207106582014279887817307491293610346592553618175322879467114018061845373524290183603070892014408029162989609578021342153983486789387525989664506568992254496738485842027821050080773847236000597094245049974257642930011280688265471919543113822966762037172980880356945654414640402515293640142805096141283565752675953705319534137726218032108277245048663342353212752485987759469381887034529392441006276208969853949119064547815192143383693020973280808035380210441756443692109655823714581732528854222731294195913759279400597916533799580862299410798012172158775955020584623428164899079459542199781321299477733474970790785505985535271428889169596164718435278123874130651675126843891650972289350374878284152073907398165037322804258884195858785014428219785119191099710847929823052020342385187963927036877260998946123122695916178714040803691046853341863695830970404939639086466005011772145280299979424664690806441709707221268107268720552026364247202908408011152613779061010351367226371506130764075699712187379524606158526866359384014061968716950137300211082092617641636703240143185837551923184241147070282136230317739445620439113030479492506824637177591621617568551765477608679610454077122878339623177031018875607940763053591837542033351055897827831844791842180062738729975409343440340013225232212964336546247599046216917739280766295822319029730312254742589021016261866756667833725281266204552521461699351636891994285144946308715705937165921109455987550935916479899103585463384360285075278284523349432024857553737069317492140226219017483343440903276296250889380693957381463730967541086634056233736983367951104800446144931915333370175437510973793763325224779428285482581679059507332390842024847288260461159169157253720153429029793785828295492677493459066030203144587453682559781963168383496320210246881588380239245893150180376075775255156946514011369649988865980167200997238934773660055765322846090207445157879214305664017495805717257118422307069264913940398251607879057301514077823220785013293637368367268223763738930964183720030359926474253351848740065210934982772624414368850668217791439502880433655461262412851601310458096655961770201519953358982286891218288113370347554135598904555971915225363693010375483861719219830307004179536334012897150509449216242595573823060969956022993780960021362339409043660455534630870138831094980883356976052500674071186283450829092839662176372560759424980596346082705828903984498379910277450377064569904568009047396647759989868050936490649660616850397326058302226667295089466339594536321844314292349941783786694979992177369389970060919732512312717279791963299270851361747355050349535235538745012840982350067653005689388618992925704567349861875855097588848425577379320001016847924593636018960499039170294085950672078890345680268276154885125976140839346300602055395543634675057242637064948695715210725309334597208267215631306261746379394013044607473613491421553122924435206563356227219463899236475723440558923519202842133014218774766347891333146258537695366260833620998653990725235223505469609008988620718287236374830872892094007945560077424603167534251209000759530365387768288372151331034263882478398341385977293968866306609105423776289991048010079755563854971940446087523456090468982924273754039635796129696387251951270680484172589944389808821158381162267813188677578618739000484971950579305039976653021439978295507974734824649504364003656071944283242185114865256994377872965136209202076153676925758182279305042807051636346975303279234365879367459616659172157418058789368430647011850202656110439861760931161833437589856216609946137985012150259824210194306196219493627180965614698579879004710908771777997742659897818270576942901676060077788092720592759239512946998618000093379389135534865938826030752849444791418735237883094885014916754350163498500771706688732038115609636187315670570983798796100238030012263341042661931244984793724822544838381024927226924619081486606904526372317259148394512209334692923902636578481329817370688694353865041738484488100246970652582626648020688883577270147111944850529840440863983218063728287230847070506968683563901115313489252452364577984412855889782982318379770007633018961099251543712761018490611330205330103020185358527934612548641300022588148057303515306497369778236020720921565666955619433185612232152422771825876552412204867903524728090757366008266432862259959453095817003924145919137164399200551545140308862580437408840516961651848536916858780134335263081331141145205171849283622757107337572514134397829251453918559418823705938150893345777090052986083954432033405366656236985644364881684347649610819935968381276607046452944697718427753699823947995779059445931439977078883155176938060529312159282015964180266648466757831496701090428716370505501890475062521711482459147415112710288840657851094806382191814993017215186893337947201251368067864221659612770993963219444252455885038688246134521043421537901206345944327962484624804046099805304382477192611247203904351426047761445359668773747217071618059309339823433624633087109335316715567528618212969695201972329448503082357571181579457175940690506410445267346541212297812646164232499377085045300502353131362068351353634166623678290984839626676510882655590327336553494375815009606738669948434165848372009989650755629602855194691905524731398672890668696714271870052578755899125573146354153823661870830902019226320612270230589142486915875970934004961836292717297455331333088183163261775515397296053695607580582632306835512581583724503534065048156558473559816696070168662884648813634960182632004388886555281317791302770169505060062469516124559550243859367181107562747699365026359385826443915974891322072379590942544540594908507313968822639962672623175862934921374453054631060007844602033234781185996413420783468560697788160840497185483411025992044409692062980019629069107918985043012406839270012192188959869865720037914028225451832966826694179574573103787565773466211125068853304196157339576745299817087272428602068055240208189863363082678278529037024059475633369890067311194294483200693916804771714437557021866035595179600551360936297838897954698542439326999510360979509172196520496789621107967683132305877057996657946000633365143558207900970790977742748876005379219917101974991501205881126724607919486387830162486444457983483732998450138104450391380424732069108435448352634525393334710772703027634054666745176757512439042427426464572223478517696982377925815713251416970929278993641605822833100744032021855464825181598871965414245450245680566458348185774304857887737008052979738046170893645153761420064925829602635332399575941376158064635747195157770996068983804851523174467581501578167242913995589641507228679532189952403007311572301234154943526921934373643055605562022792699255085008794308913141910967362566874876207993170129836150518886345140903338008802607638480561376059552420499207356184442286658072942380650221992399340102812886927707372904260637194013436360545835577373185865111210943259361351242603508066556379942980459886389926223220714094989850556591390285259600237096855055148835212621653067347931039667895979891232850765366349373093799284888925598157298906763606897075158896780294947730914946979575401133435590711671476405530851705746858766451592116342931910300444165666472189857352691134007471453458037819323996114165497211819416858110132479688887061298496848273026902386619288838547074502252110040045127888616051450876964290673215019198077355087774921867277451168412244145768787860274952741341507163795993914945168681906718512194642613014839714067758066780072508025018573690245740217468513663214394414733445420194638417921126945437349386272656492354078417603730955513765802058235778999074624500870741395955311328761232569951897016252709861386216774703682060842147315996537250633746705575027088085355197380617555523517664294821810348548720035707192428899156286022926649197884324121509001739319151959229455559973208028729319764144605960393827203035849079985950458140417639188679267499282211471263948498856151125710285473656408790669891808437704076626337246537752399818055578873836003745821920774736346350220579538448043948157397040160113327285346645289447482424828397775852456891097530049761137688873531097681812937983440130411094474485678524074962315052051253830353255850134619833176892471853947946912360928243437268291151767715797621382103088780198810578950583984165084909731575446508376059400512199101805228846126088089981192620182928876171296601730954636249769723280384435341588468596264414801233238462284129259845882332318512795503117391160435314341359702233335471959440733608489864265970856624507056508786351898546370012620811796894445455448822628968397398939887450563085318961201524901858372761580209146340451903437939508675009114691730240616050147145759620130405190442645788716690322416129097343845306915308464098160307601196278099555485485397767388663756261367665377353151420302170569382186418188729243761285645692860446855761157707502947358942863466748411746701623620634112743628467592073862142821278713790015109149931939050799822480258865442793133786250630417415302820197748353851041801020101164674028115272151431034486037640845438716057483353084207164362855286146219320391069057890341518085355666997199969368771838788944778338965422589077490686783943406798385527918822580281061454456049679136632243539751391977031786790912934729189303374179837211727615000792385261587249713707663883970608985092927199351214026336342486343360209194491232368524620131813582965756661972633135091101893259182521159425584017657388629840204444380146236957393434763600064835620674850296140253280618592578828970680052439277526590588875598401453759403840059813209151136927326150791255837797974962511275988864664794047412048749321325257235717474987327247300904128880598369370821016941151884424840337069070345623261377285856946382850542984025074734379748732901831997318956361680597283725714049441320650985915313203361924027136463946527287053587240481022724317320802629125001434594795633533977870080498673295776570017628579542817959387543914726313008593325130527879936428435446508544952832430203895922126199498506830755177668325673748424597269855669279314223079815042007097083401968482062297007004472355020854483655937974690990131725690273218222466625076914613255728729046198374891273193826380975239258096764316374417380001294495214075960523413366625822256302940075522995076858574168468021130486733034153162564314016325215200630917580395678245925109057064160837438260061607251475322977279911131614200153422421181814048609959129787269792405825753595652682094199136040201881887205432348764482532439163548558356106386435210454900818476281874514110319074852555940584077806814267401137944168626440476169267590970509568683178540026801678446312688626222085967385154320632929564646041608447328000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/2018/republic/10-12_d1/pagini/tests/45_pattern.txt b/2018/republic/10-12_d1/pagini/tests/45_pattern.txt new file mode 100644 index 0000000..61cad66 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/45_pattern.txt @@ -0,0 +1 @@ +89708 diff --git a/2018/republic/10-12_d1/pagini/tests/46_input.txt b/2018/republic/10-12_d1/pagini/tests/46_input.txt new file mode 100644 index 0000000..6dcbf9a --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/46_input.txt @@ -0,0 +1 @@ +9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 diff --git a/2018/republic/10-12_d1/pagini/tests/46_pattern.txt b/2018/republic/10-12_d1/pagini/tests/46_pattern.txt new file mode 100644 index 0000000..90ef1ea --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/46_pattern.txt @@ -0,0 +1 @@ +99999 diff --git a/2018/republic/10-12_d1/pagini/tests/47_input.txt b/2018/republic/10-12_d1/pagini/tests/47_input.txt new file mode 100644 index 0000000..1bdcc4f --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/47_input.txt @@ -0,0 +1 @@ +100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 diff --git a/2018/republic/10-12_d1/pagini/tests/47_pattern.txt b/2018/republic/10-12_d1/pagini/tests/47_pattern.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/47_pattern.txt @@ -0,0 +1 @@ +1 diff --git a/2018/republic/10-12_d1/pagini/tests/48_input.txt b/2018/republic/10-12_d1/pagini/tests/48_input.txt new file mode 100644 index 0000000..a6e47c6 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/48_input.txt @@ -0,0 +1 @@ +999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/2018/republic/10-12_d1/pagini/tests/48_pattern.txt b/2018/republic/10-12_d1/pagini/tests/48_pattern.txt new file mode 100644 index 0000000..de84858 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/48_pattern.txt @@ -0,0 +1 @@ +99998 diff --git a/2018/republic/10-12_d1/pagini/tests/49_input.txt b/2018/republic/10-12_d1/pagini/tests/49_input.txt new file mode 100644 index 0000000..c6146c7 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/49_input.txt @@ -0,0 +1 @@ +2108998658083080877967676823296700385767623780446316186738285317237203851370624415729418719144976053260258077676359991268137048574595421489041091639939563978261724043032730783291621209813899983912849654312036817961585749414615642981431809625454259032531390914075472023310616561580355492753650355968978600236117327407397303497066381833072659724061245489099704832834957158183371037736091930150750041436725951093010280396230218534657828513413843631452064333080189979065864512832369842780027152376122021395081816104595556296159505440420076426513174931411456797807009840092745689045962915733058933015081443609283872233735213379168404318937543885900911087693052474248359549669401807841558830173770866731579965408922103781399749513588043231739651650758780993491077057625717322883667241979006355895212034200766334153260121571140942421835911953178168171378295096370934403313251771755013424304511579046665068147624126181251936047496195544946641236359140780040762360023081825259317524705748021840965013250218397477325772859603996946328595243614219750550459443460864362619336746212454627470452880556379287674428789764485346620696483949878359506313463060628763683638280931303490215682859118224708675546005034854058774497800458702310820734545302583029275054329437603632492154764084615639970520995997379453805849483530313125203081942009410768416597610806999997646370862683501427289993610021591808874964877581562189671580620711662840366150703753161421157859998128028832835152725637888934822214497656451900745573041651548601007322626768304758846585487083802922861538335212894595159391321389357801045269800323316108296686008264279128492054421756145648177272638580768788244070120248387066510898666213171822269475835658520493740380201190011928635050934013736718567248165303090301839871785941006112900014176617525682838082416513639741361176078260688488303127206354415149087251398211794027328266703616624989961841457338869366307109608410435155941135122581805487930630348352615807669639414495734821237832804397164032016516005876823384577019989995513313420717148940239778321953480746582607416619910895604380565611868249591750073849171379576474199713462899593578670307785768038377365267294579901747074274974791631590481302061580260535325056531806123222120247609744277315039787464577875518390387477659407251278189221230669344434539547508624526675884624618470428801061253032007962345695300067869509403134858048930960311501389724553477346293940665607367878125607575795607164234663511822137074879207383844410492286802846906792803754239033045276248216540744868755204765602938071410663601420688362859647003462362185827236504255995225910734397080713812050546133295721780938937639322562160433502323741041832059567479063009824722302101251320212132768342531058322682909305860720433031364157992925648598495303899926911267509829993045360334422679694217832508487639190923201785823860221163209741714324436712790821014684095861690742679121830845038488860296830876675063062092216110240110283769102713140619983482314865238100409743474397946912307556944016817362160160848073485473496033198477475443744275701279753800843895949979194800338179257991812809953894539040365340323568476849324556628306113080925932777100900380453669278709633584418201541992515815740470563078616272373068877276292732897381527835372178230228622445656185453659378545640640605763486904667805644767381749565769830154633805906573709452701403854297159276371257965285586494128729883415706945753894384210777233767957590035846270758670656099148368249041176838497661818095747419585430276363091265411528508093261372843399221165335600564958201128410917468372344262039632262996955100712093761046935936060120563711659167784749454582703489606530758462113898587708661986279479785830303697388961752752168022242032531564763706577820570600519731956902377645457551334607479065421172690677817244475539331497377018104844119394299966780962797058547218998540154472197255837116042716522078494403621115404831967122139450666812255412254629327519149829629684745707962627507843793236962477181177671879760694725008573530635462810638937185491777505449714140962638844708825157913993409883169461450135561043460419441180392656772455539223626826796740860523074089797939338060751933451862568606505049691948767813367425775073691402788445113486895453387229882726435503402223547722316375258172072490975493373993071881226613949085555337138015087264280831600986272666364810366098695931744997068407688715578716412218753718786788807777123300013138961927905812318218412549940976276506931927085815837202121504538592570897490886468847871733794110366430664386008171531517484251806640627993847204830476801454415703209961221509329526756691832566756762000408555451974698615680976157293626116779908152504566273570419168385688394120422933076981447007267273136271578705026658783442400190390657272292914360074069580886674014517839089171980606750489676423702096324208852563274134741357344679770376053483832430947244922877853048154323126087494495898588249216416099047134630371923860501680641672092164864064202431266588811768272496006688614298889416509889146579693813239196033115716794323276436518374125862069774296135101847382514429545697382494658986578188655482557785939757883770910763645944746631463654272906212509854473250052944243944766499505677526711080621232086172464266480434101246482699966835520419226057307151615477594012672780295475146189826069846615910797200715824094927312275012409061785680078332704377992498807185511563690215818474554499769976508751485832609221628010971232844415737701235330901613233581886811269359738383618397604522145618344864497750780089769845006111277016041432195633714473368171548201531014189952392675133090520176312286826100411985817781253358723048206684732940921181075668311257751812297358942074616853651440422649140750168981506769634564391782896449149174815725543210537867779212797586996471577934198862490521286014459518107758367298608792519430428168236137213282871484553674604224553893996267997342880838620906469080515605534883494235402613843828411993993984038780798813679340423271630426203707023079592441709102604426620193296721061513514333673254333943230814573170150014331598468378682059689686707354054107592161781133575525320536156287901934983042685516056293690178284989591718393757058415071832178948597939403448129593530647877356348840026837623400270042198441445226360932355070507458476857073757198104631837023081893934771364633243379616388048018338132188771537636971415311229839689960788846276884799232514521954578477859585240154433560737301825261374635708023847247549129924286562629679563831089176903655853278849173076558168233212616495517544738358667724380450310455516416976550990767516340298739212383885072143840433847859224124039163929164384388580311942432078413964848669192717033649952580464706504928082128104573441128343679571761424364621944835359043539010845968661824927028583627554596282410482962593273118894913227804169899920079789117575976525031847079778548790289735182613604204536653473513431038123846203966042425034855781708083414933869786826212695694626383228053821340087359971591278036404965020960537854736787957545679790032253165369741584686796302146392978697732102828442191248575742618742927190410987703351652492934981868025071496099620467468711924368893113707617161658756814562920959298612020765364334527439067026225420317568294299676172315454255545499023903822130063463124445408432827804733463762539789009428383522744494150248048288707368140866267682868363751535127749800306304401104156137337457409234468918681735848672687943109054433209785159383152253461058866622395662869519690397833253949255345220133640369252837950220946590673114726521779610335467625739750888918587529475483031857977751623371097034197803722727121056102974639608758170768005425596292411185367339558214101988357193927364019492999850300857236364564582439985765452072434205022836493742249661211172400449125858081527529454202500892369734999903481200115770329346333592498199162400859240594691263725970761910046910844766911433055841160129158612084090997098068969659857100760967849821827277754684892832445312924405417307121056728112590430845246894700308716283890285485439084584097000055440844056017541752778488191410122970635837593233522558638563679859098711192126062954643250519620276876717167814086499811751467961130443466027749180477246879266455893740212196716863925969885688426768547128960585450028226131055414494615490337437054479284949474852870320840608409887703813132419476219800820444143910594327073646475385755133142472582577894090453051244811992468816308423098418504762689314495884874133845189070584440282869023016158001178445523293012723191440190846205951328597013002096142622961681649250134403981439819544028803761019006460373612550135631888104660210389781687144267343131165423788096258756676683071378208160463324517623554848963560694018946492035777774366670717853916902166097115066695265751437000229813197832761600006999963776117394377192974096466020577396617547328319187576165878013154419866544833958508382612690638457662218798987409607247823772844453996297037342195864426541703616349251789059264015828655831523456286378764891063775422970140314888144994066705410835029487687342764748220869312600425967296276703206006058352340181822179291075332725360842330351109536423430576888059360915763505973064876646222138859066269829141436051510403182557295379783727229820167058314257962311233933388180430272276411912305661763631426336074384142662070677713665993441517500991430647431885902362119140095209506112405742439123717497095085106301950108725718138217856541316560714144627509056010273954824760656120709077792283603079872411157178266098744108099283696625761286019728255771660200201103122818535113908297447200251081704777257484172039889631226856360811508417165994819186111117896026547366951859941403890470408181926142124288646786722500722260394864664816761965647247389318396377908462475189155800082303835897986927337313055110178074396412512302517794378799303830840521815534527407697638599761252704337859532106560911376402251588203043814061465656169102050203404896020209219832265487597987822464876134445761987051301612075475614614624931688405974406917911505323834145204180472817488754192864348742990247659427778045847492612067023489243834678027437206047762212286455581619554002923496978874638539500131875861732768096814598380812513343866491125246886073959129165966743009417039495335943225245555496118610404964620112033976162522700778685112101365869103390951578527925727764404610676603601338841566442358838060539517492003560459604002496454578984586253772526948156460714841253595328482486800845246139019743406519410848008736053772646355250600555961459080956885779004333253912079147885561723875423295415925741228024770671588275765863731216478535838119071067295529112528711041130177424234435461582333988748944484986222881798991227485450720229609390042754911001269413734109779880898698752659490926438667514983600907885956009314419856105375034890115071711163853914338637272763678979759293199000589168329059557477389906879899363140170189902467511356671938678930040338269618000511168616256415439204794671169152332713964346020367443653997341359465014277311498242718585495786006669680120070362249759268107855891337542061354586992831406111539164687305451647153094698465515702943524788367566960062651797219096738011408707898715475569276345829087956881917929186938786581324270777517535641824803817910127061098773837876772214437896303667986824887376743470288292981813580247646046333902506805885236839922367574657571216840632868345874733160413183739568994259379089455299990506270131082633340847019076317756653184183785524227273481695040032279848763742397353313374537856514184359091984755220858467678777173937279110740264563009984492110036806378228482116143776355475162292896219331679624839664177849636223296873607098511338352555917270903942758902530108013344308028602469191484819154768001852340182402090229888038169874999132709991662563728708291997560475798708738016710917774445028505782320984924968562356758706114533620778093530400893844298737150678678605115592708538693760386624167585353592072923973749285955688052401676279883158501835732707190989232636974862930291404449802023254787496217047036782285514585616756435457700875860548348763397092092126910613594576296311684902061393696835264830493083411187961529620513110500848668096168663834650649076105888418001476369411772258510725413489620885331123428127954200128577980031024467387500280225595757644369561837280634890785217598111267350625400123853156995686473656779531875369364748079012257641316609899297212700708819481435201232921821843802263321829393383401228986824839686216400001650324338570669065796502948999944210650887335827496906046177082113438632426541240207910584448129568214596465897916771042100083280150588336548540396654112798467301925718771427709211969841169793425730158323960294005207620651963380665238719903289164190052670265192800348354477060132909007690580655417459372792608803864742354187064242085057787498589799856758640401148583004932069808038951817231621624907972830492740331246751123902403812663664590557643888573435310386321025085456815641304663136948045956620974895401791102677045247489905402287183886193155398932987040798833655555400955212658846838401434751881584152082016941163739205252404219147273814070143898213557517041161693453967800758028833161908831700491801178171236566853890117666082804843673819508099584279160692710629397711219917017404770702167270986377858316469348257327069469661904112676917285838201354635433933703084074132364909071346644389815629579078185323122095384666540801968777777874536092535872439474484086794977755771266966524221786393241867732728125833159474917991261911103037061761574436993222877594588159660803879521126080887950336010282745114426028561115200989127314598786499462530013291367220697824575787962598159068091744341701151582957185138448776320834069361872806945085634921921380869895967587794314665143190182537774179858345843454586238564251783804681555228819857921386656770677224399573325062754664323279040262989027113242947843013508744286727617494731854871370482269869320352700502273484091532748388245580470416652369084970064800457108291879186130933955213240810804386014784955155959108208070130694358852965813854602439881490895642371771913346012867575327484580972253095371487750673114722734687393042419689313724071619710193400066340753049351110202064337037268922240608079783665901234385308793816100632389432388970464906041561152531687213737958641640928081712333433896423255463407629229959749249616067769039059343969995409863054631939574099101975147889005416394636279928807996475043339970103280960311669141871276009360303087458870650040234705234618486387787257860647126571926133300750701324582905646961826644693262255580488431609628863025170749540216816758111103822608542443899305448169353312189747051609875415914593259404123697601662355465768969336700411982570781324671453873590778746499146703365717991681233587610533221839539326808574224838550090608107045453581041231322669013700551393634994393800654651482193266094579659930585128487202296232578012869365211118602541785458626509308577604428083570599507941256344348728832532287223542830961242048822429010284826251604368716481945193629113677243044638411976475778538378344274989947623750820936434889767899293065617775365156311050924202079016527438131090479764385863633915211571797650209267687503003999890445980981341593394472518682751350077913001182676144949848908994777035760115907294051465334986192430912716604550579796976643110046210324183254433606460635353381987347837053856246973734514031054335726820280853269983969179904720208542943086645028198881960867471529516875816316722499962313603027564207689503097410122458496572239587934369884428085348101788557321205493353698265242986295590602051765976196116316757932935674103492952376690012891178321503181997696471424228192442948914157092218786378212470921362653913245556979462222538195063693341242218780484676104997181816072330997738049149925109997242997643386675016227373632493009884247696089201650318833489493591211337201534677713961748745146366187459519388074204287847540007410647097140621223415752798082267518000366147681470989119307245734133793122702824611362990443365893991291957192914097229984290949633189080819138450892443207597616016164229769836269471741115677775127830275385331998758234404594828499912552134233250283398952033672130293040510523624741149983235260504577957004990332206147633507298415692027498984608076770250710746722041436161546810239303670721754841430417642086263136427454864105253784495288474894976838941452672032908936997243302021375253591271029129977040543436786989792014688993761298900455198368770080847887978338364993940355082736625810127577602141143337184981461983294287323060988795880792883448704152819597047541186378732949400396843589945778895867684507657407023806800380198789625122059364924143809669263058254223795997467242616413300598795459851080141427021672326755533827467141606155054508198529578889122680055673402749099945059082687677664183554687318866263644981425315921019872016476973157224472273893358932936287507605362932075363207227012420199296214132043473691722876398507129299426619777249740453248088430935255126369107246086831673262350757638619883711703926932530987911310200869082901789069736539518751919275169897138841672105745449311145657598914016861122928142542864077347253618917291224150069128432978981736138501184717867491695166375933849090867264418749209900761368397840143065711896414329718350467917784297483238687912040860981391327396760570261133946784003261273913753721046158315009117359641524391344082844219814864460037495321614493861829607065283682254437219914340302722868381533423360738511690187858994309091686784820395393021637058586069524541338913219561416050229887642262758088251557408901501591806579386942658299062349292439825301576254018327962617049071227810467440916917425686665889141571736559150915259229258743895922834514953638375542989690371955411520734921980967310909537127986065840001303861511584604262145181819197850573018855430570036633087062083137696931711838599065650208561380493650735458916887266058485497191263138269668684368545992270154853818639127925236199032316736314033763219050562658142445584038563542665070128278473415025315043130597076624118278052673727004830604410096693801763964686127774599920123078526021638537558073532360432878235445691310419814438189948042320091320369431484997230843565061149754343548424132030851187146503297215470338866531260897457285583276270438451904545632965257068746087011969289304583139481131985711068468935489051692659490847720786554040135610866452633038391858762921519041690609815414164076406646345366343119082778895441485431956469675392404314483409440464885281627973984868792240037757416694607393605964404048108391645014487734980759065654675178374153213617417626979991568309402712607091495605477700631297809076093850696265028438001079990209134982154988700780432153958131991787481688243644006772127611887117820156886126397683092475490550841628350515424008915467567876471045020799526372777635772167865214839505122808157179949185827798897219184399801302125141657491729083486743697725215399431515098385995795514681515435465213934972157951272959410862622453086639398839007966428085683010182769129575134720360607632171637006040822708936345116756933876995285431207977506328630147338257305991348543583081407643666393855773731134199791056735651533945132277833312683408497245364441744745034221528432273446971146768113117753609406057691197661302765810612870129970928467416470019004791409089805853339951615610163449579900069991685716602069357768699632494358541755884310594635548748197138432629234664536070527982967704685907494400530285198240256593305056078846206243168077343016358784793696579354268547367186761085678416316485522689916216718320181087061216569935605695901645190326266251291833095016075438298016349915549843640209991056277691947740768936797659509937529311054928033535351795672454276649492220339357549615501934133866761015504258288691912624878824724860639759388827430445166258704966967338143733435572946305884975232381704637587383804080769505558949457271561414671220084771224649711815355070456442575972410313342200379006060910252181929863048473465747284379569429327046253114302834395631358081385538298792395291489960474208861775708846436310702673633508323459380837903054831363320716583242548536337401931846757359592530443437138421914203309594415906204428107963198354909657686073162305365542121818224729818269357764026028001993294433449378587590553399433666884351711690347034184007255083098728897164960659451520855612604401482013420962645554417284264059979908215025077937922731603579698887996857918162899703183781895437879486040752545570880744420530403884130210808142030537667159944930344257923759019964593405236863543641336538903816094106586241302882473796885263594158507224755612016203034432631119728146729042901205059010027506199111351633770336330590991236718181908265992892440890169183835110298612211714287934557178578603569064658293719787553583212535800143530156350504187378285623908056360114397614668768259913576952176601961318229417794848519010450905983991405490207458894018534384705068861408512707617599113369404141773040713248513434731398460276920975224830527262194526560280303077702629284788032500818639587390250757412515885474206723525601149665100384802717277492139681376386959058269373595340870812202980943678256641995389124296903617947269237228768853435604102817693475488772082436653453752112134494673982263101889358514194648719383817249911093525877790833715672734309281940330979176935926363608011927920132804350523336690903435819070957400866463355665306709307329147931743523569839770400756122987211480611927611729279633222960468625930211461976837619857524840836194464058358006510268827530762803607818148242887546483285764556255510099564384255771692606323129391488619767136437473810759759219804527301605807404560432197600662919559773318790082750303424271644472080680917309153505096525189153097381765041325010067294145934264455320609078559183158701376892942011705630740734144878255167141430930982946764710893442426876595540694682134251354285912857961544008602484161307088085410776964789828228252819011947728456956258589040990455019293182756824165290205387286827770693630775275276685851140361836269336101840307215151482130780923464509208207153840587583380744991217874514933990653513268700281620377157678206507378493345549162708383519321851672456719246686488108699562240780069096803499494384058206589343545566405776777044974193939141448110838675645708645578458971034269385349937913067051317368688523491433196619038791997507163982060679913876076858134039567352087905086543820117791981091310147007669134800073643960941193018069400576937254252021370951425666944893576568376478367943180021028379601890362342796206287033071052249020341219969267359641551959674505141755107892262942310245742679924171293533757520978202410929946250472059913222451490357391650021933717100318112385102785463418020614818798416331132806668086230733599418539937432787560237944939886124326175389933907041048049503126855625712662470550630509729764439712154907650467942955653628252455336272188968772638586007821163228753215712115104439267456013399882654191853394720858073516087353407096295547876757583777981794038745650559589744933314749626932379977995478754371652613802901404945627120889447554733231717264030128614873440547166637489956229855995618071695730464740893685964190520815988058083242989142507839631565973434016609042980369649572031629245680899000848568816238168990350655012167719258200503711655177041577900591403295388393087381466309351811927803164493184259117207566223544054522915505636886972212775984800448177799788006691659163969994748548016727414554991625195234705513612599229244759260520929881361170982230213530411433431869630109964875779559866305302398608704699077600890226028650937861413266130810653664465162477329677775731450574551884213002371422122974475821647637030342139990778808404424045618440732474290246849717937618369700951641116723258873940659020574558819199325105110232233988123224162384159460326229059990631287895681142449981786616436324295448973414590758518754442132407652170338782440040974936652707415950907006227585189736879638016228463316137392437377835417461413156942923693775418030838250440728518079843067351970044862600003456448963043458384008920005154122246472684150572578251182547569179500498991399234238177192774290315972504042318256760080755938204661926752290860981840100477741673098632716470312654454595429189624520360333860498713383244356960871113963427368205759748373407075588675672148173921329485868484757271557584803148589065173535104029148702006173652507995179872700259087241473852721905376359725898173178593560749221545138373136025136324015253767063972184605762869408776891984216221340139136606710743123534397533169260862469273652229059282051925909576778781217376497806000593091381096306841905142808421500156348704513428041686653143357853555386326474483065743781940477789053520532126788024837733685900294241177066113083978877947894180891852796533233997743995371481124065092882045701552520003028221794213081831244107439970221260064905856714607682639656329780772068161368598993984636801453665642613561616896006940716072329491311126500711205177770206113176215290290537954771741168610830744656480215301780293597765383953295724531357276360897154588943579503076227018160020024716191934303560834466082060976408220566863019852600947384753570327295780336145702917635636843859633111367348369890563785548608399212994447226649471865195884020556118209938057738374854800026317764105880537345584004218972339734513433615566128231200456612561535970115221989676627211229798632547968448141212938148328468097653369746735793198575206356131117390912468777718283210090497066515096023084334562104501979165653469743762415984451844674218672379772523928847245076693900110260472101269616801239950109939339292548004378237344528047923121307477520075546115120460367495779822066666377315974810085626494296100379306156388572891606281412920125582169861849494415613138655841454474996427938225053434816961327262735534767794201132010326413508562431790376735373040201349443544084294424010004961317054267294512138270706208919876031139537201647987534912237475164420705717202897606652042233666367609111462708432006411937855629632883345943320483001814353346037333994807730340556269001951137028282752277970348004801812731435604675829221005117805390494824568400683022626780198479807285233593741539073081359483890072790413804535092144084308997802239457636991379182661842308775705905381036114830194827252020482762061944716985590673243677626342368098053863091143908639800187973673334894289179571615979853089222933784817294898281002444159777184341206039584463922674167775788773876981448623499289695486672451858826281522496044872852414819506192402801173553433242378032550438594957646650287062664465283428376244455407959960943128504957576082798096307576764035326273701939698177319029082411141230597468339721981433329911972389963393705106464255602046893431655088775680482837177752563188814614737017285627994776385053201704515882213418767800282935915539281155900548132499121616901914601262407085135555320495118281638712517496951551050169575449296095650951275201986198653322926030163116749182822996962419670092136138607091834366597321586022217989384873768896071337128593485424937560675569096867668604089706356492609314293353242764929005971354360753677334980131526231837295125701872951497053737801324758222888892160706751144221894810234771926842457997066959402504653120476468576592783614563346715639250777605863888073839077627220857121915804480422577352686251349694523654721292181621065921664645259082976970013253887655611043746043370648533708359497035351161657249396851849863147601253608015511996449318911045052529311889003572703977040554086057490356082123530784007785376326520812413726639257070366974876484484939129573617187272527357546009693636686188276234735050498417072578394573659950487565350927034204629158408107813052980931247660135717305539681952300754270338210561583140164921754021341629068276282205061030226234738246282930222428600818649842538871536951104758353164460992641625772907004661141311504589661151201013270993392955428382759128256343968669120886868637465222985140660676102227691994652786924554557397245257998000654619770720470085687267553964749043533361861231336143164053287685308284587316251807758210042567876486997787692965678243677939383223557433287228930098921621053697649211537257664285910404629741739894624828489495137068110036082863058209524145616663344847387123982765402098067073719390617133096518578250609936176922902787493191514958043105624709489899643884580189586330061806909045050660163388381587387231579555094743744069932267194438777899129156737727976914036170621578161290486623327934720776266903637410114568217774897053762042257420497418142474828063975631614192098052737617485237224148882791745004009529229531733862651277794606012780093494256356324886081122338841852364694835247869198125270647151489463683023519224563680817689068457169784462041069138017815747292144056310108057785639917640641038696756669693006375494245117159300770466027255450253152026759597126824676545036599124949474136895361954567601380597369274263144049684565677742706205181651103472317085476603297516647419262572833324045454586843291506314898764141857226420906067856583814724156982682486469066893149967476390282662381307101053215945842747214726010430448170999257407224248618707093517192037381714889036671030731956001272978883560588047362937382977546469395983442465167721109703046501815552191579155962288289178654257686402230751487627126692787964925977218450284505629943829758916466505402088545897109978258359868728071967672363379425918364789246864689945516485773311135087309755834004651294370665747137042630405199940477225726374437140906503683213559305939172936856573778828135505903811947549380488869620346784257739858291933036562516296069495689523384750404925042947028668088086440058913036050772616014778609483725738409747444460829489932456529682781461525974439074076459161169986864828429921030884947223149366103876627027712036036731614773551900017884536531377434961527340018796514551365336689831757856730328060976238941080598268422835221840389291126751494481188559127769557176354560584874267840391400493515269990203335319293214958457673089008130471562614862031820440515753731671402109908037493793630349809553843762617916950017896032843255683791781906137598266951432662136102293063055957645407769189366097051158514889119128028588134515243022156181471786940943528592883541209623825913291430976282113229483938718119288442295234494844515098916892908146068294135637790950707892022889665570320713528291804028114854491555557061350869661940317701271821084791282599063332897739402401950359290011422226912689699252316583541357024880970609434609929464318696067220771924926711295778517383479061372125543962306629098395362026043751396744507453013196183020495791463958265890617759975863252042247942834393852081639789531715677291993206430972712133650002355485079354258081792681571296300185001270511783553588343034886854268457319300338202391175336244820260183428386387977275878567724994128331728831436577640215013999356644524909423003158439906426300585703719612571157997236479415846360446835997090989039608804719831996203708579599922257244321371600014429181017211465781172545384069986112873084422315799743802746475409605194240352643611580541755295655200769772596786574456752655508758572617894550151330261571548794142376162602683338277140957188323832761933314034383391426376345384864091410781185322856282004743597381672020634540598554373441645154219508856020832981475093062006145745077243924018058746668716656439276988149490872466650303834216682774470121975413196612947685311501326229124172326612038729032698290375802342777707072306405885763754578362554050804685422200210998247371293901872194449678959197871855912915284359144749402409413184312715446973279361155937632386560083287791671975937792661915094413968837056965336641028456442528019849239582264459980709899486663439792862067124534331413358383451522085019414339536693879739030911143909836624914930655741435176027313598152996179678865621133359906070188873502987790342603539653880108116693666295562893076050908234336521781637541820939703735654543739202335667964428686719039554604439625386403869920432038769771735619590354431839814407978033266945646142892917759884386972820173392905856470733661140993528493491167582921047503607230298239510866124664994430796974098124402697565976305876737563511439575802653068221131451743258494224202341564469052617282376711971716228608299442740707242931124310704632491790129498766953237637862709214437828815348550494255757403652821441030894479204222915717391441101090386265211496544461965411750731105600955067959723364601833271201706008693501453205755445398979296244740157839834723669964494691943401624558209263976897498074361102804251820960710609341127435093243664757137615135893225784634552991127485205608675714108356053117742313131762766431669694941019779262911027865902138861343590096538741245956752398880619131306074137672105055490393239227372888787950510521749586229846015667467434154122107415669450619034778410791920080327160679111974455492164099380882938072287185347575766944625997555861389415603842415464243191112638185677280033948783350376043919458643063068328679378230737523766108787675670812340661040358051473258127385067304356011766194899228838712935613236090696966711625252836482763926471293178309039257684368024768531117298480488989562269732166634208552129094285504100495931425481568533385099024955381778613330821262938211774231570454878306999498676602519485947175206205393442458006951697305181297447500899408319494929182344968109448227405169189403857806531687342411566426555263009665366982075435120768987824718523534588678242753293695918195291714029388286216864326965478601027581770625099172335112346704689076649777358598345421728037245236040812652663923770877304704193924938600369130670054535646772188639378818414683351846634365953016352649515304549631041951072741551671417276273816782731281925165194552332814063024022545033924986471701120689801241797440024367923086162952820933447443987784372586049674662972388617433733321287925225692694539972927854268787512789560280576366416214677298809270012162369027528102320919892050962683844912105342281521756313632893131063918059245089631486355695099374584782131692618944613433574056765246062103404129646684529592174642580249211278555491511290484442846550569211656182550707269107111717972682942647211852260594111611227497718784452914033155781849685231053894327145232673676277935273782399827744020420248296346911910136692135605504033394029333287457946556957308875872199768101568947802814710936710663477741987239730144847204321172982947990806870435314477787940133513192566640956869975508225185328053058796579747442220246915784797301480375797764565250309538636251797260270152650247433520360500058632213035729684176875372964389589262324200034029018391467130134977800137825936357151964913552924535207000262732170209549989638815568970156613904928661046120737413473105597472366696314231714264409781644993015585701984030200676901502912319372365260183192946575158711947620334918862137729953443691087389684541028622411720809805064830560610329563004208170390475275999552398777113644508309299169857423198099460915569261633119287642352747288171436461439827533765847638015005280717884325870754160428049220708161671681630869899802158054076594427755595074612042067647735845243345259723699456840705639370759242039242712444518270181374068875902482741133296686275483704073651685213597063049021725444847962927930031300280250606496652902918938357869610362864940231056023729950645821248110903809345127272355084143217171435399299212965656962487718980904474368502043991469556002105984646807266595350939370540185358176666899721154367276264728943098789117232694969274725208894844764201423049668666073467602341545249737988942301981747733012886382393528273442767696139472339656305883566270046297577592310224328484141814186677123551540339110005776532069409705167344661408215485624985988206850600168403904189215883193540823297628486014613316545733094623095114052139027677489377164835285037679500064910351485979280086233288949675403368017960337550454905176872811900228264603433897410424816058614117038643304811636205709494640234987610645556966721484464406377392357500912701610847052733874946165908671794912356293815451456173882686255138203903067977223400869575257980896361474133826542198820744073598343312034240690206198299147098358828866289453208379524611701188734323983439844268218761588221326363036193774476789448867787939344282743781091657089841535199670969550495878870731669028723920784397608153241892943913937315830279110812827400106704899862380354258418719379170709012800319892270930866201883723841080559316877797753735663047617615461746217880523058175344543020295725211431603709894957879540721006894503944469468076158819839323923660382169585899981590432081154123748167796419629438254307083457492632602224379397057216037438087113792889408185734072859988040024579080084226788651236985161897597666019625318679981015936442032079878633605735875025439750390092855197354468793319317909177773182402878304086423062594260369466666162739342119221430026589785902692063482759595128767802369634325192132556264025623299522304302342800020756852943091133434143697242309198182577460857513087867811182669925703554770050924683128691797056735945518726314392719303535140908490229919748753420327705233718504152643773979504639900059490715066973020397324041275577856648029739751420743757327998132144218659399934827656679212959574538982449192615505973057667168579394849123337266651393263663454430921285186194095495837857630375118197343984500658903806349146537900192724179749816310118909947251495308753696912770689887686188302196002279107134874083998778845097158178839660745373839259988109256459064227672451927457553551881728842225078584934066286537840268992004987394942219396967308589847489711984936794442381766627326867668335332004075112459504678487445578447309138528559134322982962802630772985317114469423346447760226927247886888263913714253661916834611408563974843949976095516298461449141490835673547170613259164807604603663979431261019338281939909255416499145922103477512069801394478190452071193237249641435550183816773928459293812209367392632240719012549426779914342903869301590842578281500012073392564131994308183664642854950742388884002570581480546788030422494653968745193261954491963599573663832692927659883751571592830482575120715072307946801723979694253180993507007201180487449113620393148696661271945549952978344121801002661629981050912555117566280063555286389055391085181855503235570941705559181092116882243156323085145215707657302536481195512856358153397198905198737945522655669624060504900929918902252854630180048898954983798126355451651878285987700248497580194758325522945553005065201950152503862087946140795299903328734984010624521869835085861070042684776576510373947726796388945516638279192284799911317033222790835135987551303153677408253039123562771888256011731365103675390285832584940500583065375589936174925869388601763410560861208636408480153632848530374288613483283830743552024471594134947176163840638280831330677010180361616603930332423487029366931635383684914498767924697740504588479030847857527623022034468167877701047353253351641988812916298730962528445372930283532568826560992579082252710822915999194594488618673114697339824590760372337027809326547887843420487238907545300776955179209130775118062559544710848922496951049044376422941398214746001488192400848380563696638150510162466924783950195480175738713919650289384021658849982557403619513026597943467859083284709190620017185869397142476766493803312336089719293537399726242833229344032057206576304560956239297095404458262964182065683949835713546722246450476254143751192747993509939214879787257526001093588395712777680894730533250506511224808314903402861565874986992148257204804348979638703925564605804573851596402892105826589164357841522152371622055221418089741976622771885416325762997622400296131822592056156104712117802676116784558810125741402831815070613740382014346723873967928438735873441578379985742526592551283653454905889057246645472917691336256278878452545850854389189396094013849765868214987913252844144776329873052183834860155067861519856967590936590509098945241910602015713845653566955117534179709978975271185899033157692014737154506230697888351920717544186279283632910028269878300434269035273527413784967002414990324595753902453074076157559079339154774066282753896023702881658067358936738822154134092198727330737632714646449572841112585828431359738414102909531459493249704300163823148687051404890387807225414960616430169555602454993043682512903769208392206913784040234284439410700306496378881681592816923493405058758094645214643472781546968202150049799666579530329229924816251215194333639497029872531402799722197097761316324906742560264770716265926887391723695361842652072568750515438848507572699232957992477538113701675288754366248802082587307194684918344945561232110979358500780727727735270369217654193281552419483561284588766895971684777626592673653736865251148105393305129170798140738459453367192790458466693503671504539252538043085874666647247811169533433957138859359169047037621035461233148337086305639113467095833934179374171871089960083021720121876608161911079227089359408325196122323090277526217409928117602089978511951930308510601936657803312217791856315842626107789433495187248753198660535315366620829597741283534329854802008095054300704015131884740278552215952790391004522317418386293808565595240250094938503015538211327416754577149155160313873600000574337514058252392141242162746625696286599801136786227600810780783878666067376720473140073827571435507839346079874111026192857090286236047694139186383431627567967507501868503392955475093324084106629792758680060398919360521478672431659199448439875428460336347185184052010485956920457645898614425196158413617880643544463155823715545178945377473203346942699447934888889523564158896307094441160529776928706745800742897257597130100560414721788063913244824172781737695705044353635652188107088742819871020221457869477728939196318268544168705800437142368694009098949656802962402634903004785636989262881759674378595223124214953002288819340725990266006058824104773706119871342720263839820924330194280353699528596477392404013121958186680149732813991846895295823678471262701780039071180012916926442524431150816633917462897039297895094904176715653424249509205637972108756561515716826488701417349090507316785989911205701548273747159084325041819760692663684580030456435647804335545188508373865730955997605754753532494615247974664560631877742747973563859294780110966832661487972966554148771840904431350293504026946107584989728818644597079847285836285281888725313163001950222704683789949615818491796709236402627283566026100382783867948873446105908049610542024785152598003141094521310617973427430375107470415544175632369892843368582485401340352922933077584800555722658675022953676342427404835888645086207048244038213989431975823100573474769795568885492408043208677590597197171321439061998646357229069567100136098926398268397425508752205029340158822310828620176533377623972246470368376113580318175890382032275775426318005901112419334427386263682663903358418201708288254413328862295024215039675101316171730770092415481137529465108730012557129027297698492216170521994437579647333398145753901134372307320222470493399748349402155808731407000258312251110077917540999436443936103168748980414594224255430106750666201325654952404835156381254222324460076502073592967370702374789309576567976777932772280638418100695118363398603718861381048715604711844983928930210634761805720869605900950387955048770823333421804035550957400539408746624679867017142781325090767912524271481846594841499673172210359737277324308117432260364818150929514121935495186137106646656400260835888253034492253987366959887294841903978297653328718226184519414850193633355704383754970614936518043757296164029711274822676897330807795662971891338953554988107346472964702500951676495432044306721940712650551890434774193692946898400980330616148354730998416247573484353186377190370298864243030961735386155902003869806030955438712098296407452708656312891955709822846319135270511331835912235083484056008928101444953254488426144549940400945013093379707111849615678757589864728320801151171762779992253542445818304329253357336166079693001177431654416413764023920510505446033747999095773735142143167101275468231238806986428062608543987170487883980778676579451993258398366113059591103438177641835979723056163590129031566896117031925388955833335498603719153958420166503138160559960972387520767442948728202439237252428731483370522959984611348639008043338580260492832033458691028203213717267882189460411602757615911084416151389480641952731794824160454075412335559348161196088304734966382467220537844768196510510517639721121682586999067916386401412541051158761940189798900863605127471529815212894563273577086253081746181248543350764871259737347634998576379996012004068919868900532380040624222578644692774102659696065348745801906137762052453006633385763152182285195828911114174948315738114171947011293376741033424417738348247949996006580980915612101104906046929127350316978755277402811419364095410544271009757186551341356170079962525628952267498855107669052515586036300236155819184569329890322861426927550847691819578372092888876627422789547915076339887963118714395416214150661307378875734439529683509631352770007110657328764155116666232315537761608956252488931819408998277619335514454314934057295746240901938567298602106131136107815536896221712787535497641128973012606809318374609667295221012222928375066124729807611529176782937308859169912853742146636292832046806916574769915414064428751490224878604049187412129439342099144295474265118286597428409574359650986152855909358896245432416515817506266771477566737647701150922288764599587408244648781788377134568803030618636942862874605636540162920322226037501642160959047957596684169982553179974736559712966346677986479590210085098400664635014045748135242072718029589928858465373990290064223812288433814072796671802553378980133365896173640875350096667173497408187139082853784619344761878339956396518474325582040510656330321429432428599673230752856067869901471107445217294329068205820436819144537505038023451611440944542209609351686194138524971251087798768583410460159209394682782273791158976227869653308286243406192541794776964233600332766141143242630719411955222513339204041677605157083554689227274009339224212314899326571846158161059786847714087034053235650510862000516304363743003558700201341699665102233403928043411734203212917064877668745369025338388426687333269480290618917893644448882746423622077522939045482974757788742504930089126529319192259130061719243045491081055744394596594509134541932821824522159862168894146355187498093558917427012270213328920046371660006160117542045512710679593194970929216738731895489222345619572727257938882404777373264307850121518602355417623841020233625703475067341634235753368038480112312596945664443076501611601830414571624710423423759361457101200181340389182048506866051658491114340480003221202673484936410736858675594776370650716425657369845785241737071004004917613211000173716386074346159924605215466511875634207046599459758372163074376891482107868468442092617717004652394372429705959487100118078749372702854797324829504852431542896110775816697634912467018043846770288484033482955153900926864158219925752850713516090445431737492455973249360386416267699833535981437255907250748481609968888698818253124879280963471421210934558100959925778032827867977136974266557094062312705403444743912455962067342855703494823798718077555241424673378136590120564248057872845360526977460806033225855740486658541398520900477375318527906100602653807216632503431842393308999908358166380131342524257079085364454751411327702781759646732949348782918681461395960048491442722945317886463505527665561094370755586902995116226568333683238650797420128364160002235796569548902919984938229430090422205028222830225617268810372374941494931858128891123612480094390659410102129194851924733951675822071017351032132406915583630399970493632884956472903187315341990695430675784050012712278424074414863878350944463342437476479113766138791469221562685036985287134722315612018587225351011881421244421921252138799845268073883237684640934703790125756175895809716113943038393121957754068279390198553350021105523755740978169086128537467470470477076908411951450554473827965938717467199032684472938323644331408544948817271112347063275389966908460646525119727470157524346364186002573659403342357739930912427929829125432883274789696871296035170452734163321687575685546614211057388029157374002810202493741247029125118430720756860254726910414515633823616657174257063374533910266014275569365432473496549433512547029158113600795238529587491612714121734108832858437622454429365394192299825732919504716137990329375688314674644517816034323475292297860890029734731701827653480358818529216228605489847134131976815469316945355922507929523051085905374717587610576080409189486059385528179309593875610963295253883540971854127423696146815957008825296584727277285045378061393150829014794028237934673858183098819933146160511291129315013462810507832772691584638104309606186735226095229666512817531008150615531626899836543403467645667971917028686438846752687871512102859602792772063739097366459399203388147267424410345912715563597644475370350356565180977791174849238778028158352334491792169256670980411121069737157462010001511455884258265990554285268539314092109056325969629299473543088481222772628839630989321173104047097650857524741631112005418553047345450952117177678473046699174744775163625309303996781034110019058692442320331957702525794146662498533845567228472256712028651114052524304436002348728481448599789816142874681399911181935608480780745483010557854414592968636156983528408796160094269991161496467638722509321787318803991225828741141246434243456354639242062278931800350186608699508044441956707833591749141193243244362514547514062045654306410214932493476914501376706078279438148744396980795157076225616299426629406241498663476023329059166289966781317999183098278529620286579853984208311450846227532299622239243017820517890226483869360536354506821918702061265278963043856424557392937124768048670795666831089492275213418226311579837629909796227163193831794918075840847947065146366861641524847522318895383855402831616868788827175911591912172434095053828137975935117727965058589302166986078139041749505980000923035881473536147532221018723046036908853860672996315588595258119019505988069774827668697900568387740073590212388686638627922809726656118101972029254973123839188245788439407923207658813818158865903739379924261765904589969394800247138318152283830807605258265591472703505640806540328980911245185983713765763140712094828987811125273825938975210950613774867786998666737724019610686553306717042285842506372234921665224014602690612467187004500881279195058282712559205180220084599527721654390870815879404851644453942276882172385906207057592045072572533646518669521475173287746913858191460723298951603420129645021106611205402357235725630899499081204743685291551179357174878524305006802310393852836129481043315753709987000580252787971138897282958719190851438005028045930912456169242819343402723733348777744184477482480783820047659301501510181416790796150199579420483738791077572076774080279168008602032971567153260604126823771058248003409650822256347061364929516393956289768062068792521837375096291689093631568789357974324667361887274867924108424287228487959525408824456337621997150697280813203615400123377916569589393243865500627292903552783945179797765377304320608185542561855588797733345069646475734723056129828322097050837716538077946032615424005760689828187741867550259744939159315513520108682670737685910976833292209496528112933160782279912240987791148518073040069766694428841736414047811958198034670036282537748458250736491891017635554769107680549309469466760195136678237560876078075707784650514329804977980332465237047580362460472490933552456009742275046262819112099197307555202466766642759117681780879865826796496314703421309072886064479026794878808720255563201676015755875724835578038908316487946026166190654622822358234401301290621800500573434112950181603667658478395522860034364438897869407042469485830179985752098633794490110723124165162706466822196602839986371313212017012844300141763854922745089892473254423745941136722718278240785801779226832050885384450909896571629888148217049203504642028743322147839899072150942428119724570836452142869892907838440269190352737591313246660372417516272684178166013502750535699024497909266606784624601784107080532023655639116679986384358846383490645543483641868643727307304052499045727639055916259965570478266379912362377447390427405647279907619455392277763581294504377293458569717414393251842997348463393760840851588607640036839865284472578190400580617854523654156104242936854001331253077354078654080189510815377234486386485056792325290559664548646361216207608677471499946728659159720956897047978038108878047168071096966694200273418522372643008155929232689480251785054329171184205828478066429946022459266877574307035732342287618490383437999664712002209299091482349928632056457159386293855427688133706704990803272523202035497766615931908135828035743563613065592669536461049996239368377018292076066505485514030526682501153787265660904285620981764584498235265829662162303608082599401085315110109887590380060681787587638612858020725608468346732219664059159629089115110886763391827904008230191702701090351728944207714253059973329718551363750032177942883167911886554189130799760943085391396896893798681188106224981085050217698489290677366194350277460435538383022110735276302100794902160622887872528416842944187788834723757689673383744398684079183729785042814632943422888240281189340984707388812452212548414419695440551016192770668217200968444829010889973348768445608362517917858487873904537940487936042174810950834676229539062417823781718926330959114558066769798166459894598947185251720315623414581562957120990563374956779554351409060637378113295535960833457649277118963590827577644696381585439191172299813471264887683822277896501714140487559136823723490577351103941629388209299450788449068656003669537333781017728959090584334750776755567123946114722206037329824158555971599998975954624076171228582335573742050473540223460288014139907167998468510359995961840577998388340532395711759981524108903082973804796144849425667913282119408438426771226462998209337243982867566265295596151318722314929275204028130524970100075765857467219191320637703378071312490960737654851863027022066296020442077333872090142451620440935110224675483823734524807910838979795662513957610155111189636601605030214056835400959510757803063371408391969165882582482572090084520681826376541172450192208146555363865717462628426192561552993782130976506705120463640580060005071830176856679723542753435744209976356528158191793724508535526661162822128688522153581346790678316772084203969345125445892139731663636397722494240063363985590731575969075356189349504102653571401945913194875871648755014517943795395125704009644983031640568408070350414788706806111439736468397321924964503983434611858502970013246798320140447623553024323823932218844836689338060565280392633587216183728405564010886942164274674943467421686331222569018205985813173993941011407338632000119111439115515499825734736693558736078270915567392183565309946548818605199366925923635985203819094264857290725622736733361824885230609249298912093681914780254286203896875291420225960109972840472592050097933919504298665029763735605235555629691775686026548740486528530877019716043561616701962154963736103678061710390175413997521799521634791333921322977465746114122182486363384081895253042598877193940677024946146834767531292576831716181084676340218442634395981483514249290283696820774980505897928818935223680246689133858188588690918224305867514090872218044768721011655317694372224490381632110718146629396583963372402753877491606328031523624836682153370735518879801817568744834413459778961787842755776793796621233349711361328156026892448921087524275637305441480480773590808577529776657539074999547938857250427356607285750744908834312724248742806033017478037496019240695342568659588112291379835984976981202110455863002231166800579672818784488901187987256117421856465026708150760684780903455444690298095331307115689476051255070816200598782438261683313520621301552177457907375150126058589563472682040281892779495527173737051454191739802400260254872402317388346759255827223607942553489514122523568182686378636407107200504779989418885038533612675515330841453629787829840440772139155087509022447019609950403213023560026217646397922333272169127964495640767500655640112205142286547476368010724955333546123959053789725487687069898613143305918229706165861251818555514422710701260271379020992988977103828744390418970656909373447805478315915266781203067385823193890392729133957003291710996720508528828839203939144057556313546883064671840281784958314619212597485263461865387699170792298246446227805573021635403445613348674866196221709300158061916859322898559823683403451096880704709680215685252776113072219800745956808486342285483507283166171772476245498941234695696086702134545504620693915548510292113792554565702586813899744946645142364703667834875671326472687130816252416549381937530475805183561054747203543653788261621815132645450076219105656910180238171728246641094578983006461793805968377391917230091940083041748417105468782952672988857082069218869588506273293622163559572611661117662992087619678589696758366463112280276067022403191033910250814123527757934992420721958340570724445756092779184113625506732013552784160333950992721652098488750272852254303293263442221097206589108967784496602352357833346116102118881831552186783554194908021056466820583862487667639587195284515807487993377223906705839755736975980359272964107300170426129970363968937168205484414058887788393624773315215473828188689061243336792372816458864226273704269304662380237325206666973662851918416932626840603186928466375452952023641465811210926480974034715809822087542333685563234782381632939968070723990221365438534506967406323376319893559522644825975048503586291699473492261231181786135342132205456216175122259586017399911185925068941510961435679801001103139604635629388183262053102610805333099259606912023373332749862915246489621003193119176017709721822932667511619243726683973986609778367980420511594870052878193469209641392282983773185809837532186035947804836760287790035763454316629505933673731975038527111071689233542978243074094853198410825870416503712093721416315159206056342398611303478518422532339195241646218788391176462571160143014759401013835480534989387612835570824091141696814540540069383236056660663914906234042321803485236337989830605502950494737000594245314420905046422936347934409815352838240236319788327872146133699460106041551686988761082468266895521402277240590428259148005756100971625725705119816807107357139073780068981915332105959289776409987946594665376709972542960537736305596821643536320871888853581547916846869115933516425131024079899763517436222979573864338979135013566936190007039693371439651725272841742186769789039119487191278587341024898165481637038273473571804988973849087353545389107736415207284384705672217605283412092233948971913057855477238040866201677080622803264830842482318432644392975579333906777620134129127620382267851458971921129427241282873452375814439080301575578316769508576138789291530897631628456474443762687708115493287236562135001301137298354839127364011818237546538336263818540846066020684301384060312798046000272403687224311822326476826204013429757596276870119387271388608607478812545985651573140698184540499454961403733790698137390695893863401527162196547927786843521023032890301168791983418268285716926444671856137808877190451222079035742925537626303746821961663164853414875045640023469710749583158265988364236978096963955270182369420713195616093395922117070751628841643010365472864293675981003709284889675335729960664550853393569701484604997394275543998156239619063291674173416397696040177766018944248802478901668527900180014468913293606447841953845809142355619906529247929664027330498827784596943250711446424576760323213837564826429484970085405599207016792237862089648629070772386526150807566550552956519176906533384461047758970424030820184772494453407864446771320136002145162973144609078815023139613409062836176566410113306356450066689532045697814746744602517836762296485401914040152337707616452114316140157973097283936114240527161119907023865478443655828421866093893516709337858830093158185854231654507429214203439910712570168163307043055387917827278171778720215454115461595450434549156476010466383567725673634481575993345624829927683921163775612423345871188060322326085088889703179720694259440723391830114306087819307446422835493883579687583680593753200660125293826268362207243772754765223622681724075859628196948848407306666469752357834576761562574242182113044678928001191346218131289356216814365267585623233965317842628059490280064410362558380869895567143735171615808672107510687886968418039756581810751251616636655460607664748446434968965098237244507820340736051355991912457038087122599136984835543092580399332415710336804455123787704103413958258619666795131612814818866836383434614408663530554048958610189941685243480863298859034800962475152953352656791926302623647823690605704701551320651893496366209123486708984333533599289930837201159756482481296687303363575570983953593181479621907776884639966836365098492657962026388202221681968179791453927870368593419741337279838947339771905599731169732259944862540544533998864185189287806274689905808884345184268129372119838595805028313889579408622616137432726666178767272086115164910008570225818682131310805348648190138780941040270516639738728528413644619079686741573493573137491186632695390717619093900825215178843400437166411901028139624819541593273656021670749951152359557402404387788055591592568829011134848044858831742725089122697446200107111660708355845910389579762407295001632870594099725569275825814074082631874024174998333991948941916106680449592401867083797779358974040758606384390593525748985123715634126310465116970943388869827263864348626287321766622887522557574274382107546131745669300308374131440010314520485725582171422563198054219336055127325297377959726039321717276575929616545452222941870808930571325671356852454462789198783544019343819528885875775464931812931158705067760181192681462829832962005359133821964745173878445867188302772961917819054968160027312021506257630852856850788268847275638160247487596251842380737425707792301094861824748870225383679113603126693280489968718799194566117966453033124543205293338969232252607158235001280243052055902979254036291876939599383972519880644819334866899504698682687333481555931001589809448567879329914040071857540022218248534084651796761251179237878947518745174552108760155169128700194089416076137792321799066140084708300630544279090069516704719867308137606854057525336177576528370652987602605996223561892727697900846001813629788133679203937273583570369639005642166093603999202187842492118629234914670321689096925965596949508985610753238536099589965691055056853630916627813671088792303675272592769455956606755060908472793175813240610880163056056488379018585506861152228190863865900999117984794130236440952508073507086496808225847482939152724759473482076311392308549378462680543843691263010934896817176116706063066238295789061418348759815796898508026846273778320009212795896492860719653783794835020185420020927833007046406556384440227225131944332688242508435702285689715088754179542339203440402593053419539935742027254526562950545536637835662360873685308646400772151100106470249800852595170933897908344253756339535493745878790611311492848724965216040106430851290703606079356651692045306627160194818938938427488256517974161083970711535664835666989682626330476035718023254177543555372676507285440529033894678463412123113504148253285804159764967467136986615794644449822183750527733395637836255920909233324450511886559373088483052698143825896711866598425625871266736553141486093777713453318188502027031198204387394629249634025577722966685412588173512705408363571286832283399049536562079295819239179939990202063256504092773821714477010690824712667631359058607640079763588067984261213417117537751818120304245742386452341525306323248606108555561775869180190086818626247495120488080503127721550335880184585951863376318320307568745835314889731248121226961255250275533411056086405822336330544540130901099272241355207726479848328166653287123064176698488950735921043308181428406726951203294593593373300008084982089226963908395823417977299059452710647934212740576315760336601219983824704868474883789274261853981060865821323981850357997229296566967617499741803181112405685533613118942616389253217046705138179094332839762195282768695433922787274378931301108871257040680317852004021728676772592416377222538503847236977525875480825012747447586342051188539286051026157538653832802708605414526504008053421883318626871546371572406696281562755104426234049927655125045892597588289858592802754345228392293522147799179284058358537459402976356013380955618187102707329448067226156346589953401932611157591696230474083490860402602134999939525999047165525146941347962418958835271852084382225442881925853859975930064915577391174648140101824487817793683221919775259288953482288568006245875694531004008098059311373864209682756568859766399649652083398137938908412638477015518510589502955764947047217065465084784653136018518726920509793761011940615667061554375763721498818017598609596985896550053422716848036014542092590487654179596969442240744203910648478470537007111978171120800367452100691601303275435837456851643092671299157985269814491446437527717320690014395861033794536258019573314813779299294280997954043386492186457064289253883898342532555593823918728495813991755200770950602317959748067677543120326591231476813336435760357780441146190192428126260944716823280281765060244282003488185538286380019532123817473449253066540341796085896690086142064013826051492860464710665156497966436622022516716738980219036926549077898272266165372833980374741927147166570000364775844320351588645798092313049443991014129917632345654048145087862824582365130293851908973123000590077004491692887764053703301472932397998838945346220494136067578090551573636391227818325648514689770809840452836532414144331416536014756595464719358721243544239125157149685969729401456813980228708023742009873396437275548396996964752312350242230696055416342064872885875426018592481460132970126740261086919001101869499135846651985496853255796486565961612789102662638790735195289664646823989031395162735141315227802468692877004609602114100437067740366014187753237783191914869052646776445683455133825334105822853071380671306636269849602906251611644465112647854786003855065702133501875563714707910946346527589682451314041666919261347969143431776421656163900226561917121889786567343463047385858282632340604466466982197544327234404672691794013756741200178782687224707293828675193835822787826527561945275674730180680998338706488255402952365294116375171430361582835994376781155252907964807084662634086572792950326324153098322895345231396989028837079999896853523872904212830216146295865786358741777056669247489486561679985575337223860100337029817384352286349950611352130838566693899594051033234378967400682782231487548062102977528783542503350039289097596952893451737956749202086760695160264194661657836049910091567835497294767174578013296181690349656194605464902837994823055762130749163736203395368064714112893643549239310059901258464967119621545026660691365807166092851286333456816109750230767835080068333757895852688045377330419756833832765128120504361671703703957317176213606669185812299451816261310582243404502109614614353707681503784546815715535452788171878241829361861200248627537065457810317847421904827614391463481268524089054726564209226036118021440221360822385881307215302661952562269570454654172201482884149497406908428698881406606361128878294980347801979393947341869700463232381165817251897159905509500579352082797393070654120351068419118509729744374334826042147710194571268402334287958893401903337728115546699830691638425258265058342660638831955719937787817095038007364177351632485907266378741636974415230651402871102388086590834372589010131292589301952457796212876069610239563697442879618365144775928079395523499696920800764627564241920204990214212029990028805409606135327441594007730647672814344473393909225259494961282604986880485519584020824238308315466459104438795809817968852238374070673391257239317566554402907346701282931981059184516790955004793978174950794626600119620381209636211550457890398200049408436627903298094115966278871212321219297102795666525010586301906312229752431474545656949145716656187935461211950432572573419569407773135804401732084590289528163287401409720314072514151922699452682002751793226930902590343958538056098928722227783739242405683236366774872719867966763411852387664378550043161890343919345140151539280391559356578418563546927028240500887271544602363559429092199011146304600859173350548610086594678836781267925543790746602622855950692784758030440168870813411552643659277502644131453395744362884581490161918293328972720647289586967990183897229976757156837692769397747325330265030350266074052584872410972043319614575469343458291934264735063673010359603944970257556477244819011164173214584860057299778315577101920427400577950254482901468125642161435361331876814181660852182932500317599672809391217624774263887642728814512537820208228033636841022853898457901010540553877080135706313178376930830473774165989152628093220692005977071768291890313025274921952727591062083642816648445132198828383768441370490687779216416015371791605464916278446480098577493713403699774123150602530876097004805335365548090263876531988039431386292796807181167304830188329912209793225441735253762017193020954493685377006424240552886148959008725617015872227022312953894245948486171417655466332898854686622887159967923449603863263581659450163327446306467652961987143152159370550438144888590747613605344135000337173417977780041696925473323604991318060705015986350438034612670786478977298445412824967428566666056757691714541228590644545820422709535387477729920843455431570779954371664086760203964608014755076879167914981011559999918833124973646789038390231803567534740733309051714323044284121110804029961826385331497140134759328954744904617188713160179415506038800374824597600673075967044814253122528862866190683179505022450565883376507155502659397628862406075977533797379158548799276354580765390486669999439961917108493626989654626502034799411506105826827998119473851767665634596398901547310289745420084231388946958173722476935919174999021668801573684743638048632978555868884789807889924598538071597441259621234029255246644461399752871444782563460086840707050338105463084239861927446563771830144568194926828255680486369949219004111089812040340244227746596704116046059270682523187069342773272781085217739370836753516597582180317143637291053543636529334419492295946002333133369405293397551546700010059559856682508609892107233780304882494725932738237822599912663944026899219986801619982540241696310405952599184291414600096721857435091724678607162245367396055391059472055739373175802074025863598859890178104340465452176131434159072304707864308604081197572447501309523960158000926123465917644482419020178920355163163185773782938519214829299744226589685255095150190681507520200125988577533074682758160369759259566211920017778649555412650982615287390329105225933123283537650934940607867791880018507862559536587498782757072440743023031840137175462859368720661728833934975955995774578524982577551446915048919215823305555089715469690994147748891311608015160466987038231589332473333187132448411741743645724473879377478674494496646824782926613248056987599686769513070239395157754678501127979912151934835619718011243662113743214697343753968621883290918213138616641582736834983767172343874581916460523879089206566450408888564166290841516526548086175352641531194354557353596589064051145757982891812753990558513378819959352426502038043506277059061162603995266046184787037256027308983883150340047987876907574502945027270816349328886929448012906680694573401579342124027309141231799408117421234138831008159790192707650536183222205681472232344484156821248437349382793337180667328866062004869511605213042393695921728603704059184528672282285261921116727619404137212775996139781273285561373307994780994284094494880432245949711407845546164041484387831368326459111534074682224067929885106106472709092700132789941763787119738255675634188399248117820582584919219447103096700058889859249501476084024335345314985846153817976696942252905780702669405798704377980636535290297241788691755018970152754916632502518989125602679162375438174950024276389320835939819634127212366493093081766971271741573333444710760358800808992396418254206368623871641034285683565531585783101163511848402376530159988731712792978028490278631933019350806578732987764238746452548870921142250166327833840143177384240090079382184720851560635277766413251017523713129684144395635897745977195196561834802730247805272240799503492637023018837327595609289856553959777603724658986151315279465770786900970885656732472353531634430814393742411219677238568591219491432644124601406173743450164632681600517523054386747548612039245729172693824205867302924549896395863134610641595577010182111129235743380907525342374738569638803413342231691417053642268680924797408752818241297823072496929146871536435029314771648649316809707739476332598253835236180792299745030797970971724454868372408133637049759034543001012230014929372929975456513319808258746413723629267268684631366058406043655640376586300723094923426064611762843789179811303972689091873985174128268828942229801322233160964761308437550262421358527523588099767197234144572147372808365634815050980212545941503230521224687534766664952917020406652063552740144691796257939215866497926113645225424516428819080755026723882612378279465420051782354699902545598240520126799778120008486826975015424955811993457425698087217885781038108951475892417831077219141387331905221128863376869162902049637808215486578543782262519945566982661712463750755193183884528693611839287261468473247844306289451123031996979515948074257631664889065212199556246097860296490127886385837664447780766180592830996588170378956375744990733352562590926783044182898091497390613588528132725937066452343075303938013946525243396781399388611898164061150004362827896283364951815779989557261349995248488718951500854027321111547773525003184587931482453308809812737505975159939911056674183093657786016108858158397602463440131131025052626675802179927116154258724079973332147172167310671465996312637471632004697913749278178890027804795698958795585608607294504168136128063327090622074136089306354405552039662717421136044722563830257816300008144515523891956813177706512126707411571533157796906550928824577624453089294072476884729373924932172308760800056184956751498048737282470554702482754041083868868226876674713173251305167951699280532574240526738413784312469351618603916570256989526420821724094444520377917871606643988860363842702188737897072420272298719995965064246067325130788813641658504202608891426627531930883827179347868068932434695619900613417589210362470288077044794434054515224342578892038627109031419238248289696228428397412226118376064380412817685096018353049132396689562781558831900105709556823102198572008901529653616382534105441630908566868841270657069284845875426808918108939954648146845408654795961679224456605497037954135472200079071945071152207793707461666451057773376439687861256014876612443007877194246686972573513735574410152095767241638098254319840173605814089520872645214291015436478319731551260694323715324138383494643855975939443378253603554472422911386096790855296915574601255432232437598646259390172991850146462201052258708496594576848837429902140100240615957164063612010605872316813718435771300929096343385761454035458191521589516857468997777235070070721600196552437440062264065764518139287386944409844112909339727472890005917814380528777112497166072873112693348689364320922950522951057293081048265963003683310883341758111321155103769416109569549141486232593758246263471255986310890339684354865846548493611094150341050324685453958491607145336619939477829697320027552344131342400907211326911565282724899029675161517644114911361835444529354984339667117698945075619299460642472138555914351929212984680618100264518856203369350436050987956955943495206385105613320049517157118755360773725865318646137930908926783479819051673669106503376416699499591500056223587022931546781842518875967600846936868405067196435448105670867799433696323759375298464907464295255272698204560930056398235301140743197722223289984641277358759551891226764273400989722145008089819621720080171089641045448637058493130491810303958549561851343134886309656736158394351288194068469442965180997368027002884899959591904637685846958525351334509245946002034005578858198072904457273739424629037065457837871373857066622490769196710684566527412563635016778814595406368902498901936271582342252821744382074193584133223701376642119147660317300185608433465748650386265072709009281114471211696491018570773973889846042077719652285434126700593080179619885430335510148010261455731450916962020826728145766938933198336832640729539167086111809792495119030339770618092907163189086351409461017045155035831275819502086638315243002777923583734262830094089773958672087306740790183873238227569362534977107878994754351516848326306948846693607354641189089863603279129060620874624378721636308179370466987847531281212866508347019371882550563177744254628395663372220756871938633508388078192847832410470254253396613530267217403173603982971788044261330561921287676501641309114090789205676810187576764827642627446176715850741864874094367669419318081555001898758470828381028634008859865375740959639308957001438785733953883154648160848274926840136987648869535329091119294422901902501444258335763327107227578579937816920901201257473212693834981101096077056814370060764231229278927169648742100813263500536398454586758127597843525444384140103059495297062588030905880062726436771190078420192212283730062109703285551143727295672300092865275333197436024222071069135476217035939976750935092019315253256798167212956678902804063677856511668278028085507131863805185849780523034848928454770066966436239796449101523988339679672743329357704424973860277353599773269616167945838149980148681401558315191345549743223000050794831625159936371347364940606386703975056678924162067977732927901048526675430658330970849423954975161787964788824959581965908134304481804306380244841165019425079576052550441250746570912701020151047715939829437217903046719315369402742382489452718571746283393544154129817465652440632680633989378962462056151788427229410079138166154129986932910681125865038624349858628196317743195708470099101871664976716914885122663358601138677639765292079031655533471838317479972683634799226841204358334943732031030275575000878827145306402049045951255535049979757191443903261295632522772556590614866007699406312928861666685010406689038169659090973319046497094521332691092313523018383277509873401426433195431084186443922862949347673204223966726017915365032474869421628789269295050505279396754091255619531379299766788476402661119996608042003886001745747043660091259069951554007194383115838069670706633677018484414814058500683068901684313338942329171789565404094996935771343493875047136975442907082298131801259895648325328290508814840889843504577929557416415033924420004504366909558501211244476916187959637563259193959806999545048801065135013100499899438505072687183087960315948623610044073310661991541885960779438802885993877206502327132039935083594651056977580972747272728142693901944628830996769703811194097139319000403773869253978928298959366101521804415197989974565156514266625001981619310975124026478104580589386843683878377392847523083052783887778452733933070075662482497530914867683768732127160967267981489146753342074159282674019237148436002994472047212099595025016880300967590268011470769589573149301865181970665244139132062930660579604324348925552281562243871964108572774070269438349574470676850956988964916864185155825936168843746085483914814230877370341135390169171530305111287348000817448159353121613453377317332387614594770175068930568553073695898182537966720796257643665957535520133366870938304508499401390347275392026304070670413890639305041460226841804957736812943036961692026325413325757980130636658801592283956890824636726995742680584421813582925189264502151183558509870390125357910747993785334243840072131274770344870584574175907881000796018745475194913949716502411542443161678641799173373077050301787827382865974371577793498499004158197209957621426384525774429458216902948242440214635881132934606262354540814781033203290021072462647306610197760112392258604347391021088789847922091181452231410150719480544468246823424617676048552824617309474059527232642751135919868172914200161770897539611603106476055179184429502960013026991584278170475156026048308999460782519275878787607807987592996242587694709181259489005573250246272260242737392049645446547662233296129834534641340956537376651033423355725898871824168255537587954026839298478303589285872733099227776290978945311216585295324173955702323483641638437036834566802530367879969238906322689220637287188937108219242125753326729834711122439909265748954488145416099976944691745214310407161256719321514199675865825091432238492812749414317838343764266604136725046809414800297212746217186509135148798858595899066253990693028574364214010194495123925939451263333998159353732441459990313906315026365222623755120132509723134312672745535332972410888727262417450580383485726352784381441279686090596039394113787453589857480721968017271508786561504260773584927841575895821107229991550563446375656067663575940689973892689445339286577665819923410970931050775633992420171066952065001064800858755947709732636420504178776359581525219397550973452398752402245428210156856318247782795568808186246080055713554081887995717911727976249893557569361734608518851350634360544056225012890256209847316647413890722228190153420199004212769239022389376940000535267077374479601340102658831922989125777510459506513621639007025563683715836830313850239570773941581051507157579690863295040081444851043010008525620730116373795709732300466734202172911322184585946507505242221400504012824221176444845025658646011354547112174450263874563916437394059792201212745464187315901292218114187345984313981523474856597009961217626460365051776637911683666013238726621438117037202077469584787456585383929030012980461300944371827775335580731499817043747670128535879212687366988123400346187762430743560755063595213881360295372420342202210867981075639401612760485106407877074443109381513489881212386050592720495728162145710911082971520406595591738821901818193664070433754981457191802747656042246989377294671239336836440703028810713570041517068937252745028819490488774081009270550343659457557893244449917995673853233486645462065147090464809475137469214994828018555619936800231112939136704665258494600517960722012265617492246557254914156384851503662924446574527352964940734819977636216121529792974293539730305351861336840728829594632311156511891003342983258927976241839877386874993091733658862138249174305679343788684627885291805775950174508348452344106463092473061820847176961204441438354418226657534130296697824878289701225539701760236893405001741725985668504144161366943187847597570109380888601745315940188721732803405067434950510635966310059755118566643470264467034446528871995893252023643982473165307495560418291769437110514347454709051013756177983660650793159877371047175821418013102233536681934793034412734893925224013696548584851279263808566050131324129391485970227886539827486972408904833713135357075532610163493244117132047095610836357138927268586596488253076423702791592421639122075984096227772964135243059244143902867261537731736797620087810709589556565795836697604632095587192348158791975771966401823507812660588385507920282458316034669404901277563213860831729283481486652795793938104402816791001075880772416438587585193305887543714406529259877174442177665626149363961111262755929297423798134850366644912034598542883016334421073945666722597736232154989513812315540828158907654303527277955065204212560312255179826622446451956909088007711546091720315912607737301048730655655314205054369591573314425884812405832761860908964267359660075102449567598637620165820085234242951253024794784961344693343301993700044024976236256659266131964509849341208135553092483880411124331746183980026373937325386218157110195909880144594407526412524237993798326293940489175701147814501602384300949613649217987246486208128795024734885639514862429891369148308451393434575291581768424621629946786171611115623650483522017342788059640188053328294272906848543603219728582633959157936137281405489039702181579468472091723362953054383383071954494469298031448331002739658045147462100010836271817623550954904531772535632558263452621028954594457197537148120392759787743938793124510798797715326651691212014397245805872906491755427733697905334663522649281596528293053271268845397506685508050287524162745311914171779570283971121447783271080193953382291906740984170014043723788763373998085918177943163314352578860561426055906329913526756707685289198503819345231251377118215881522761149796120924546878204970122425409227279890057849205380520046367330177641528238614167468926626092819408483128829348547249480747256424329396171743317194757346400426582248635822958646882050651557539015076912722325703218013345476002831660700713376590920091242297236608079474981093154249511038553212927306770277365203156871771875498008344809254429382740378510274863794692903487521185455976888818023484508089301030319464317371666651618364376940058230599434628055292052286657835227154219765603671037521697565309896248945981458410114724824836848174522087663096452347160945306665169409082524344160169057202488655194819775710755993383136794220610638708711207745549325245770488195521453363355328566843542908694527454569959351666369688048985340183994350607640390761012528026232719893437151852124587525593479817499660575911524470838799282413922816582050898707034094433052571793002856809461140604154519391350741482290898650076306898360965303083015031769416554633185431307213033743344812750499657569754547250468667800755340986180885846589042468522531600570565269351835171570527929719288262964045014473765010453875031225002923731446718770946610665320755108903715146786136682023442764470477759023009422993216843621998159240030210906286150429531260642935704680457663643238044465777976627758093046663368996932373521096251944256535576816661535438443204643296577890541369075717107405680030780898992209380877845280845878513087396382541663838910375523821692225043877777366976560459392079129944685362681304214721168410071116624025857404205751569642340685696156066771350203591275009401595585665285266291261385424431601002875918714847202491405448362202300438387096392742068962068799284383476504337838507301799460916058555870061942164432354908696207671745430929218549208795571486443741194833608048072493945631768835744698856258387370144139325820849898654625586529867928259239080775167991925148164659015488571300243942005904816778729383157083148513746592600697375010467986357386707191005443077319369351310624392690015850365822928304913495462552532915809046202011757467838096735666142032257398815718126346721243936880383922955803433431823401668516990701238264179664888694264135144757765350514466692409072876138350686471582854453025388928698856879425493409169132609369963529763948489010977990793317355388657704777268254014257235679149699040784996898419657060924362146623950766445334018355694809889257706400379224446748075835102165041387192429683512410207609379211519730436166839776568218965917168901630819720918864029172818959705062304218020280857311909476741923517611337178976547340105603230910049973783937616703507115893712210232920206149639645260092125527116979199475225348076853875280254862329342191268987542826502570139674412091523290960457252679505538636483103830068747163228567645741415923723789398540954089209605619577079168198609248226392698444511772535472295000044112261724773812710495605438037500556839751078692739723790936828445533756694688495400291332212439041970753203237563178902389395566916355925506727377102394173289648024804937778754843304155683985811476426064636740252500837476567210453032710704730289725814490079194046544081468525725594388884557928184827257032796991258855105226814429502847682013160096646079072052441337535198832721935827495038199677185599987539431664702915433950743952023286069736126531655015914815141410653786611113907855209739410322378378022786379901089293236866843562971335556974346569109499973781803529420991113099051120538621670551487984848243682079314227300742447021552510373373497416240129924833358061281759714908138816510873873190638495733982063118968787810088630567935430790605571798278825657075433715186140124146073041777973973520565642676680787361458790651444506987375979038159404818237352983108319766619745555278809240000262003494564634972411427202835290496442398641934849506665660641130449818610091964794086867483551585672614677117214370001149203850921529153444271658258321832582170518699323964971287513572657631456960975124891422980541002733916600143216293099671863011183006195804410663110520852427125847128041225007301755922665025443517518862027058992059514321113510799568744734311811888927686212102935518265181380749681276218886789744878879865199452495148926795719205356673230785591452874915152860067181333967938368918200350027335987301168317129624419706535061848748442804086799214862882116695397825371970293446065248855387776776995036212447623225749612742606581024062955726829533412203640308289403905275290984693738928801709837388819322890578285340247668507424690027719783585873966907412676780129860461059923688668595708021670857945965425986676220254045808162316000809736846997071690228854738554327979956047293922161567602125955614902732516160814719096541212441757869452124938154891294128081777017619219318709694602681579744074253794980041193952729678290098875408956587519727427534384121975506215129776239572453597509599781923465649147867274324641610598792863936950107444647186148614587508640829327557764788208161175584161170675273111676582219626637628568131373889975696189989335075940132898402796253988793958238593505507277130702117143998000734716114705199085180722505090853504902396016626530527889852340293394679260320803025113976079472587480569571367697845195071562078875690901352724227769916205005100700110159130943561321608134018371992083639980181006518873969517227278236401066832490126866696234135978022855255406792883877637785463024247242857993153334684665993270248486479541761497557966430872486232744058191956308547907948593170816021775114331086546682878885992013806860840307262566986405615726592418306123090899452197018526212326165932709376965423745397401709356442453271858758120340467498538580146499834739885619598099455998463520396496027229873245224362492683334868629126027793915192944866252799032190569441475622911617381284346740347218436746236827871589741761473158483729149583975517791596044457178897191825081093921895408514806804536225768259279609274490623724812981178921219394688975991958716962519652897449424883104612515921335687114332988726002346662742704338800040014641164197314242691862867595906040217810775714071073308580870352611841204234268573064473435269463546698205575415176764395854419249650451159657577487954182761665235153099027508853368967924011322310209080173688821486189439671477877252242164491170099793284146226195969009760881890430352682899111270787209144545085730705239972161436360389830799865321973989688215388717945556199133330010681417690245628723433887224443904976255083326382893168283673813791641888819306155152731247680636956918354567836002389664048493376967244844880122506922209557873465846460314246695134288361965078051824108397726940951578861297984433790447954768326491015731082008511131188689463116651280102998161000764379810959765645785470335980360996297976958649461717968181016257657086303183857965381163467985987618883192690251012337919638166840944023712938892343699364505503588141780670102013273924416184925675005612109911014319308595940148364778620374303839751592377393163473065950989750843530163216614477833475454317436107480354134915975810269098918614719958813399740064448486994109659701723109261708323545182279620921776140534382528210371797102079005493037431518482217676400527959965504307495209333193510088417228957069848708611908638732484718104277471164109650837447172493928433226102544405055663926276559496413834158671828537535883216188188891966897263889236255541134245469463791011154478334228140322206277985875360517146613077249940404163966680845092802234643442294813047833741090580656418721578328671374212583765704669018224732421225265816174402142091280347366480811420995065224279347517808481918682033261735030826362097556333744726726636865620456436391872603775213035038529533465438360383696655502236692322816429843472119894300155876610828070473643794265980564776946316512342590557446092239500512171897862908998343880492306532092029848600029637606634290543533934946881800794364096416190303486578943597558952933644071845805453999175801048339174228180759242107689784701789407052748614023397733500017272561601985616360045076835801143704332614988407635586224477705419094441573850750889400093493205516391273691709209097495004275840929347684755565422910244972456535987984570215513388186281256681955938100073959046474695403712768227738216245343819987307680682163919883674954968639971319463245836932683476523471898108707743430036140580375025304408226511558135499829614599374617278534155460057937251298434436413753073477989395524032786814557313038860064123485357736092903953773678986345086052566017484766871133222446731297865230462756905849803588266364535747556081972008531631604636683813731491601721268695282262605403827309209433641321829111690716738793609834636790625265653423169852562512873936214715414698848560448985556922072199933082297618270672479614205473353982443413905197787180643379853706994825785293737660482657652232415687822264117493900239565146315729009097054759921297034489372462389561713357207401158078007022455683581313433779532052793076935358313002701887032496130114271644680644065225002004104907686535799558391693808250237149755137347962838418871770687850793705178670480985328597439051642554944900781254038882103145623845479594825092070966387823494388094403116295965207155056344573626903365362496491095715121516367649693037899417464737871052992140909292836772190127985788235310746764122518003634369780521737714769539081480424291160819107397900667957579887233190363642864166979098349518908651133888920102958625149470372976560039595799445210508378195570996938785074542865193332814896707117453528648443244432120299212305439605289806325045362710399966450026156307284341720474276016587452668584344189318155055899379241410910964811409140908663203278697575149752362947749003086477342556838588029494015919036620637405569671839016912488911464945493563950818899244453560411040026688306663719641978934247349655454383335572442304863986008734698735854247813831462668726725251645102848804178144944463760458703328466743644099622988216628329274685588570946971979076162098693103219175616873172974555237907212865158657792475730017715453726711095292079298398134271447386318249248094584905532200949912371736741295458397614140796039067238290372890518531218507779047931112778549474482678536121953416178772495784083081275585788429489753217529953356731033591599541739424141004211441180993141917425329769966350588170203673686455309315081164541691166357487220678710067258855355896972429404278082030966685373772654988178443586682110472371332160231274317960940846335476828473178594199477110781321553598998541891656106862001219501315971047676718639342828167378691982228562447430564835730271878869341010473417748923582734174682721406314479959354613085699742452433603386936318775470817891364206706881056943521975687825192649302122244604179870710015698918630524475808145339851590270742806417918356784667120893882840326947632500935422665652650791485881851995761488803211648742652532391750166244152052205175998697176491258717771554312763417862438240242486453944628079649270331866649581588870922546013294703323224367524760644466953255353828625325885675372541453217800821067299329254133291985636716869929893368144286039152824872207062870433202069922336228430470440931036338872698846688969026465997405013604938518929179429740367622721051464884598520062428510231658791728061156170929938705962976607823079953416782859667493810003888354355124000771840162169272533700971523995398797857187879900269191037063958785352769397239558562362138428183322754583845701291425459915722908375299218746446535474017436675400177476360570706501531448909085888296095102672310785397342618111767316389544556560845075085059535313792072098937626046927170950126795438435579448324280441099182575653469316797106506449113533382150877823268987901855806106468430325873754374848879407439099879350877783908278790019053023665390820418268170595708446891490362375071362094922029646328346753706413030866125801667447981930442684848946881771724874850777904958933995505948314231720681898302831645385075991503166572536353935637462926829043260356866662525598510195115409192304265113846740173010332436965056588933807796451397474328510475602632992483887003669902426779493692310694717995463149061635984245334849659212995344062371255645156414912246035906573212776398051258754782331622325281986961810774278266580997440821953600367125847998621225653416652289526013815790031514681440635833442873309979648155471793961240417749211241090107103040946437093538632937666807970993282034679254511988794322660812646719932797784588119427641235142271150257217885867025703942598024616390059111492560032778501808376941580881045759854538080430745015126050274426434862585978578406272024754532338431366167710875155682306588183984916567530039546989792003503779992718855487144175828240860742915122760315734289838753293259937894660991384255872185316896817209291210373679997996670195854149913856897840693635085292761046006307657259609660854776364419130467234430556518945170645513302725811074291915193543157691865574140461772741520740228826819816836305938140930237153291001574514311717441317180506318155728989698867775858266570341718942938703649407904689572611910762535061015093767413280343843875417021839668964934839089106368145422354061181347028236857767721382383441786581182087741020041287895759883228536094731534434131388103162738362903146235347235165950454429688286336063866736074182972685223574216956789340828601411604978856922632803102626795430189960756301760685042663467020031708783821306975203881710525681501726773916140872149131117681687304499973401492370076363196510988571094902659849696313650398548038432888413564291162373457983221643354152051071087413359309108030623839851863292026104161740975460583749036383816584646630080052577524130250644524395177518612623516895728102325706636606278299724831765866367890908317279780784430946990392461526206209025170580439432794326257756120798161123667241487645488763871326884369949748225365768701800388860829306117719217161966406284916685677629774206123956705337911024552825109346798471217299442995973986441218425599199518673837606483949313121304436993070613400463612736043493049878101959398279944352824512977143481478781488288867144131742585638737287650354870646003833474703491150101649763505906400283730682917217989738172488335182403993570672337507205544617901679672252915742296419023936144960816206212823554766774153966431805585003597636771401773678161771118196926810366883179195372656784623806023626021952128724022949639160752014647780506179041406201097503818350349667058048885946300294472658815635772773435306535438058348230743012742070238602486318770375133815914043319861655079753002304781456784221608275461959238701845989413877047973562553061569871592382550721921960094430493836761540583545365934744916749260972506631666405121681706610377196469707307154527367387819085198855528184518190109823539239177885717030919718966049725956861371864028946114016767510333483032547325177029891932367696998266760349013125494492567787408167416892052066012635533671128934174980767282424869561167128270917830619480127061597965126421159771639258758981621795667942699355859551759547632744646760855391299882050590938467984662042647529083802587227213139014447627476424794443307284878432913980623497181613121697241376693975678162856425141673916578531559536952278739317224789536920846830011116064839197575810692131363899189882190978701326428750842257388229351711942449661280346526518032257543257873385247635886743145371442890950130416713773562738473215867416495174344024102411137907672114149055871287245071586120151259395630692444742989424973853267104337862237880163150938580303783347801485539233433164552787389484567579222229881730468112608752019813089147032503382598617130990071271900906164782610100340673512755605924134839776667846903828087943650095574345647447236602457511167237542323756937491051782194575656369130906584312820886105289309467721301725438064252157592572052460577383428862509776421029797135113605447493563183331424944554029097206206789592338421301679171982946894832918967037689632329638399831098428824801180647707231618040204603510641985249680309182683451588961713208497479460651574191292543941023459529910103405511816390695364195045441573972010620771057496491224451948640022564863836970641192291052087104541565857190534142062428229474987654288420144838749612050997571743477428689553660705311718088918880425172158459712490425080010921684903720019270658514144945804844194465598306305133606008692745846626175753978230296607239607848199643557175078780820696103522379117308147567440015298457311537919528757111838241692166017209112620616658520952388942118529974012632523742510577771456877719664434373597785113923459758261520726289062352174816845032036293717715678008570277674783582822006763921201013564795662640403092753475588774993113987668113934157515578118090876527456715366469863264109511427639017219502471478416862955876241969931597223749567334470946153905811102259859672559728417918343037709209319703948033289361796245876616406707402862307308688643228548415709231204724604917958041480226619949952906793828334580513347857914622545457318505194671849871759209904530841230864082419444217442575745826280505014862167718581605574124157243922608272417535418977457963077526462739003762555547560280098084567950079101265112261056119645566478215006630064601068859570479362789508119677231710268724454337784005144649436493658542620110016406697748011882319077260106980887930285300176877845318392058198414446825544102106024942065168248250078323769650199748024202233386948070695182779856625342776781381107687568865021079125049184540073309320393474591229927053060063067265116896670281080116258691571955788503471720146684215084291914004047987800061927279518950620507177026577785575864090947488172992287783832738877114403331497995199091791751347780778425058942374376992997570428510753766371361398986573716010560537538776253638517353681591127620877168075674257716303935739911849482541971687763681587777292219774062243738861180282247309563109748634036888855154022350555733429856316770781250589284182311251423282420052354602049103213192237584961445372386302389299701870129797091508360404789715639869650283950727816546022357823468432014743733258721286402616638378285102556490862846465533054409482118775508532328831655438933795213853631653803860021875436262745433572776246215636802956226396433785839952611494124869403577339056606073410854807906225388519597003784058798079631081947751035639099841176177122033199166975057294795326599855554894095947291542903614988056726695142405373352087485291885295205278967042517465365373684866440629663542109117008354927827162958362545004887103485408471058477297867954127571905806961343061835327682098174463970769640611617573715782224162086034362758534733433961103163409032681299976618129123693043264344202854382186629184496424528090751106422466866890728864853367431280391414206065789817782250302661815157444983390258659960951934921286907275625320981645330608190668402571199137865326316257001379337775710627554138997810792937710651332299062545107733824181816738350230355337621221825711528342853455561978783160301478187155292765358566969496893150591635175274822297915108071784677055819991143786628617661876764290327153277747235421726468483088945219315696638283588574055087874252321102746195040396631514599828822446094030374553907772215870087961321548911276355105859519025777519365335269446955537105576899840644878196867226592528412695596425933986126826614759974415199273016013789584130054992761397824743305424770664666247090468606399520740133689211231522303577285795023500430281136003786278030279874506707575911383930235737689716825416582794632883911737644034289600034085118181059980937505620260649865255439055977471132872617627031028551052957136425123956815504114116905520346846957936929565551354207010532116147240694711578972914298492891954876272272669809747851787759701539950273950637689266378635127224107506583663899657742806073020550424179598854294551079742299876547085948164244006040393413380908597973673554867473966028888987370371971611155393936261743031480203075531261597680135103746833391717165101076425748593762669947884318938947440276826215608330583837838964098847166872241311909539966286141257262350475568517678886538552390093787736489395941135902906350674321016097255429351270243571393748131266335660817844250616607272703409679838440926306658810125673416913192815895081330145349229838848299274953959392401409082747272102895515062703277640528299384462124871009826146860816722612289008322915259801104743253253167002997629206330719614278705130094348618147346402052107882093840836024299273381956478678018472698492900078339359152509403051303504963520272295319212669332131276367253920436875307419011459396890572101561148528730033019151309127678143084087086129182877953791007266867392636892759410268028369989137394341226200088000762858834923365145455598890851527066204962560889613222272471179688637096610538245438999074718357174573407590619723735814259793700856617753131420626852251686186274135484455782257092451833504660733571009834723277243527468451514195214684775499594560470655064534918003289520010909682386809536499660217719956961403443744700334199327649597670772517234736331055964639748497177319471891061345035994393909642239347280853126399294544123809636280951177350891388720251695915053178510567426332765989555234600400363070636776229561087699190955568621637493325236592512859138578193646387966932718565284159973590296925815511719001499257184702209528275839974469070930660366275002128141062672052629415649349554921004304637729146050341076183277142699562036951380507255625818673748141980671656271126954115223791063314435582759131386880376504156321101975764904239902016693595312530847582152149920627693062048001885011470124003464944296141925589860441273657743827134854324923847911687287392756293974441854722400391659767360474073019360824412346325408293460945734776042819007507505718332933672641861068699570849291161593035412904108202587025105439841396996647952000798424352083855642534283550757768313250925457742409357276357492314081874888983623286276739089055519056345003602211007095622981771715945888749495713461599421181479609864785010066197517750475167892419563758447666921487774122237536351179398376874239926349299948817847896792993661424553181097315754325206564202842616217422759036263839435895488935745403084874460921315940882209727963126333058660161244779683126200409040419073456663747393883745029326218455653655478425357539211007352896529591556282499759357463657766275642262699043639607759532567647067619182323774714472717901634389212429990117937320206356920294267778643911267701137070261909384002932275812864725324963724681605829332086372874024626218457140005154103168910195325605174170113822135943589526496193442479162375156180551558321389593061311465215049868828174887285464022574241256346775694383433765139668883261194652225576571934806405355854285583378367066632692489338983869908999466222830902185456606775241253859155452825227605718320028442137488611926667845656585984564477076254984659463062187481166495035387591530524535016104637020372724575148523855861151016583026883668428939877862337615537272926712113803097768301575424259653228109857611556557470167815861822725101021215712388940801008217545204438138831499109061890546971890387172600806978357444353700892467469067139022274105930597408720310992577151229972720789397776040341078373617251240922256697275427841392241320328426320809621674291236013243942294713103348191260135814783399875895493185696080946785570393678134620766325213357121491098230509707220398767997705393426058857892305910947691659003949591878668075862556861676800695777733735321961593668324389832419724482241336836021684607488648766098867808463669720798888189141139338299244394020611176559383437573327708866758590856061292159241794239131587845180769865054570284231054620234280548174480626345887918402054786368077380218494110441014060832904071765323909096514960878533728315002916253766605201213394619578252902140546909286815035228616722930343024804206916550578735316959410178987399542915401914812564601368199171875780492018379114716920827180354537429291424060530346234397109644184766570186248272020072083484899780799394712393735356465514958248802709083662796227389675379140832854256046365202572763131694061705463298280560951773812163421907541534851531412650928409971182525559343331194485840202760326481237435861714414990319318224276693441983739719349793700399300053054036716721449604699585604040368533565104372804420038673884836366432282431463886071163827115661122242412220671715233054232636013388002842943385055354631519325182180816239377122818665330686477483195102699439540523371819871738378053829491797715122850753205897908788291868460497541629618028124115837376174144681101576142808465665775864672727386714116054449412972118800558603960486427363203781571141964595839668716223828843371713036587361181558510835187169188188278856851272302349170060837645597049010863352449255373958298432125865229272776111791365963496362096951426676080093729133431437700110517831809136638496380501202164511664566905843457966491691511372323032182774868342308753254458915178963407528956552032550610943839450333326615813244752652480991088613595718081489256644612948598771346771405315668308365473879395715710742827640430179758421813844155120742769154167631864395945107788647921183738474195099558480540035484384586609542240855715638930265629927264712622635478650488818251129416044268409458533526371448276334217716110433012801994258382526701155222334447909868558317231224964916605099275129045431897335422384917629208927495571517288953082461753301628809580764727302438435660730412022746914019029034175069127226515684664360035669508173010257779728626695181138635069844004533516647766405947342277010719036209968343114415640035662978770318946977410225859838579207890042771070250801333655574253762566314031307130132307378208157841217183450043142537398986313206045884674152228707204855995722177323262404588605422451861553515061639657782084031600802449974074799868805845664740304416096375032391302171070935379510667608690657917951994259786168502163720174800555915058834788585560754103319880347318358553775443590313378372596603005253353358130776470620714338099764823675524903985455160937006830997363834084719569099409596018544290538477283035283065462615509515246861616185017870464140887977406952747513733326011223669769816816924311375475521010699970225027138520050358093732415668953782497161640276437314589044919855490207741016348884358323291714183326954631090675984435284550277032584771842534817783668235749122299427179414162986484427921756662887898473375386435276071111223217472381798900684876414735806131591635166027965857692221083324091744779390672573806694956149763958188562212553538047351596163355341592991736166452671113189345741076542063607439530191558328727911281436601027253433820510581686496302274935787663372700905654570605123881201257459902592888726622452089046063981525397276776215296728148607102090735571452665642845942863871689089094092766202726041439403560082390795337886379880497104359116494378386134503536661889567696177866575817109873610632391264502025855067573547986560985514722310810495967695695655477195739728597505779546035726869355253214254942921879339217762774565609037221649855417046990888520176807362253505299488742354673380609420152953891016358388000756196175076190860257071320655682606283488631438895466363729211584274321141333921261329959542057974267847259943400193456083071664070678792430617572837123367003008582599549089094926791976659600516015817265064688517977227671322993912735352454133144090597791879314810800624974040528195310477071349967139100057675290338135400323678778158715734361950049797775162162463342814963948408801469579475031397424381554474331962635521634669228171225875790635257343278688339486023977146386079378092264751908219869583520436974457146955976469357936236348781042361563562701954156922816659090017454374307943068854458606992933531466195983291052620047830541866089336515614313817723779814899144088671086180725854707770578777288367801100097824873730562289921228837789307306785991878350906851279394791356788548624861778580130033433308088632121126788475090877566976617093069968838345155869979822690083879614585548483614392119317261545838858806674653887600062994344020773313603028491285461092308225658112004602789896847205340898141620759407596481712709554916400915072504369370638857247065560341082755316492114701456488219126997683621726919855715346925519265555406899021887170842169659526961088030674678459571770451558267132739868461624265213405751241941267922583968714059506830351148660328473877420442348968108444980614367169317557040930833522590914458148385266010457531019315134719114288432772132026100194330628818788725360641172639985587996322392858046637424621403298999319624341980761417353992414901872600933819278216511778605114771397860655552453781539355958308366054823689460910580251194587730540072614764652794168632992088419658643904013807912879305861064282618779341094753942516470895225395391546884365354212693001370076192003128813002202550228550703584473408368928510468478773703329006496887479115690936474837907104591213491847645635772466568475858610346962886115091105515398905160792520097343689579576644545692827808179018483909205481387848471558621639619739310823557066554348443330622479373183970093921603946223431698644018861224290408144794341332981215021568037519269941113820742396646952646227780158335982576410711769225100771301018870454092195776733713404148107209854319589837065912893886950050014475710487993022446871441745291006872583484904484016675160445051956813458270892987255426124306175981644376132387220592653115198680681599415113693846107513256265786664475140847171199232309959054040549598855540096071644025545380011378699224267386476094625609578175026577574438915560237756211631269508892606487361819580294024890517426145385688872651954375234810165851179472825610388935928343314335785818385432997502580690142745824069324425649841014539759184767894967852140084686374907191334201368157990663221612786915930717863137265422115004312379075387514424418013504845719273362491084343773312223863784612445642628457484755911240142045223588794434936758255934407627797798845984163284188234141748189720486131207717056787874274678817032054207599484868481353850654286432300662844441816881442870309092419819403316992624404814330147713999547016842431046229052730629787303126917772293857268526597971696075341816059144419632313411638449181598749615432759579786759904459572622376445226640320477789729847146666566964779781574324004793812839280030229232007558637553245678282157068798008508085314669870689849130195398091922282976451500332166436022690021512151414957785129353156383015463761369930764222606552674016373223818582934818892509634088556012701185083507277655888966206201268847021924433577267667528349112747631219693423767943100347365959873666672203112603488053804657030529742876405384887716362046781172053231820899207590785239828384415258263083028582559564113684357420846272102244137735093477854604121476555371388250264190889717076366274071301025760885929364633376584588230442845121463045361013138157808339913562413941401375742374666627588748360889092529508646079193067689760840038470807359331119790155318573039940125761744719901193983280971252356426699276164356430755767327435595581277436556093990874257799948820708344290211049007962421943973105555045159930855822217469417778072271746303787062333515206487466974481315510417519657509599918367480773519143903288411914837669284117402563448760236978912505543269217508204418789056076702197865969280024697222705636857488917141114768109239806195956872769333839370110383527779648319373993949397130516660700972382075257091003485905538248753312935659726374028427252994154494822554679888405220037106703527124341324017009859105562181145316141854806351443473807778280558036256878059701447237202448353936776909649821026917543567560773692437925727299253627160991683178915914462440504718352115344867210295393330717915575408864615194456867283490645079131690630718017819723395254267057516485838993338835565110350005300184298571975300766398453275836079941638790156561280143145862003564266119884971203371927192335856223470250672192099380943672201313287612067657796973701812243647111205044907750566236720530534144875991567131833231602134368948969654962072714745747846242468172708342959368947984451016916780542605821907925349451543030624862746609677334956314975924271278812594977124545339408848709611975738760880329255412918056637651780435064974190629735142197340486457138319864992583660569388455668520229971184951192982318248257039881335138196820619120696726970194064732342909595108784531128457487457498007597793491814819379168331296528228164688901155338922736098980265671513575272260777845330406949547319893601818393430956156337026797956460339045677403341677866000953522202275093632254919178458658459472195091739665597644897832819892434174109498452997852362301372372306663882809622347692111192792046844808615145095331479962873924541960982272751918393011338431827470418776056560760688919346187010426252509055065464462139372054938977509974421023595664173354525923747454534295965412501223253408377493500344720354788298763465342324551652630141199660172257040214324283965472256733765697068150215064559992299015026295793060385050096047392981013435912436529013921048892708145366913712375951618553786768587865950888353054389158605925985711484052069198585174750334992634862183508670710737754096438413966805476710163291566971204746332620905735000382033561111948891201139486282378973690052162376170249233110882464705295450052717622648652237688703144373433241112896696350235435668464347029647512048972969840162759220531405787241437773657803718910665280705818866522657171200779850008923815747564993648300030948608411874589729343655123688190721011364697571319514872926353015030327014241104626968650916044412575463145018535258492539349921281735239813245567165673306772597730383723191195358907377768611379768768189056406048268810047982682988921283346756981877792700940761929246405700634253027281423840343138129971886351154141537110330194034546317588812225542606205430428505821592618484467784002235896698455301786888595209827488244540518150926863299354817208980359717595520623718313709447706506909654298187052212388957710852082301764623444669627332616839987863160952492392513618346945851017824139133576153171296535489854720983975297291071823605252268841153744754688991455728705493228302277410383097723994941885081321689216160830389799906664231237838890534894534715142028953268225891905044940969084450630538386620866524111082810965924143980477904748135382161338205220383202590481377152994032144035045965068591653078459822999750514372564446408387454329819178346112922049767180079693869496851441346759234642782978193409446721571472801925856175255542034816223375438849926720104208642606229734089959273209357542341502241879071029445862064683337106421425072589218244576971835301346454171040792975871310196628470860463925781428716916092760183408022042220519939984693319647120405203942728078536483374478143655818072836480158271512006962983554870403735758384607726337646249788346044838922433434132998992208629409864480519209090891126574097515372550344632556928323301377616501646262860110961648902905677736060022153452865907875495315196522817935268341825832032550369706340782356435961714307012178576110646196039082209766922207242273288228587407670658511111177068015814027026409589185986333099088781256409596284911419353873313669051798093381203414697432818993206926005266607065419800884734097033804037936814759391828345051368508216674708790962632411007743696413169953935321618812563394455107814677910341227022177044848542414468152726631418952527071828271561198888998033815538042243452218195409330778081305762462509051573731685510900311158524861943771658929906261759287781780375889024786829906897955797791387673750204139770585930697011029000277164418682145022940440090789039361576901169032036761739715375712994458834256184894487797448979439639758151754510093641483336747504114265335348901196825560225544053488385879777640362505210195201648065889699261797905101300867627833998188191296911912725644385869058387032895813121755670995243704701341693602540529118542873959331088807071830787069238339223604661900299904222682965556932736162821655338455243350887089151849909958888126326583488148665878746975250127941634313409187565839953879459177381128312321476147450384978647092375673068644023529821444978171158291251216801831250190358956787315412121679969764813281404353820206520426694532064096703548557896502868609543507716930055709401459493182650373141850992340202204527450756049661694477101079913556771763264133648565820226213209020838865465728720247871456392098890985019133910931689076066632818555694828581720608870627784278489858556426460427834292292992175694639346619518247607992579945965221093658453383322029526570711876472972147037059881956044182475911485040673431375122789172893434459426377773166290310513945200194252259749444620659706539610776450362629281896269241758225987831975589107895705723844170563152004232545808656631072742542662146980386958974413596039582763175757801051077149755209708791769359607156223740649088206288818345808691135037731995740782506147267835956155481675958942872988931525978745795505413058388735040574362964048257590384727782847269241021171073426057856544256530822476681013260266103957968859564527391332893408991246561963871750456646062767581922429329810819219998690481060491602907596581007888362336860573513904449305067460480247433965594889367839611969721368099123160840874088945246993121193117913089145847991933663323148572212770716684751697051699817288573513823516417961689216545704668495543589720781183163715294055053843008869132710432046595633240534037503224306261877424167636124907898895443621818706284997930317655287291154774349450825730593385415334930106178379299158508025258121228625547735552180281147328226601018307710316146266607598401788126332443938948496654502899929736332722024643493470641796363382660428521185908264280784164069590744061104795793924049014074171041523281101080729843175823293815959843899307618233183500084660637109223994796160115618421826453311985004733365897753244683686681281472749134733170086743784720971280226476358204458628488050210506964103256940523593276255124138789486102160644539726364311356457444780356611013954412529134906833784952462315678245308816151837789351056323825281217453777094736944947749377208074012675902131158401088628440897430369159930224878525300548584268053372584339691317148839273152531170658863926128594822584178529534436354862147897483810120164643344750760598757504590822017994982921303823563354005647847728147498157930072552775474348153481837584291825113298920760282595049374757163189555140998626367753126128572606386403434852305989028691615601343128193874587147093818336856026145028730599920422075578601876697195979355178605818108826227034874896615365162196234088762747592501711095645227045759956632993201521660305226711194694489696065041284526763456734697749781812159865134873676741094478507695467805547337636147481667756525327708509160238837899762654598786405277013166913464327071345737259777404224720433643105906748091971606435164069598374985762393073437060895552794800064828675745345504828914665697113853703049975098908633943615612644120776563445684908550199575266701574961032450160539336276000567746534367288355298073847769339130254394773723558233691878739773017569965992148614813163191820383243070783590884257265525770435124408800396947856723989876629166120555235065911508121153987735333342057490992040170675967582771332232601288176924921412761950732784957249589471457878146094392275449925331856552349527124834550022407219625908915296012262713576756563930554203067659061386497845950732061906837292129012505005025415245447983941276359133329201895681360070257966375888759469137480743015880669166790848245056583062651601198152089721702224390925219371473306820839377766437966158190320549184046429778778523310742400559366732216250593271715719172635639592506088586267437915670959266694470361075245085896784699756772338271323275627895448549757959409006075168103623717726596950635640974543588094497734481808423004871395451820763773606840596875738969773946363039033497402782723317743307239336502922905187377441543520325473100170701842294482744351081493955749551247173288327933188913413454609181070248018562893677120582104295233439978596374303288913304298006542584709734349323449111599330074407996846419721746320124700013622464784308100693961952758935313744656097675875180061383356967570279335740691331395804407207870712119734267753188717225101708696244268835206151011834481338159859149053133452746808550340231425648577567333077458838748419824440884957215633472702009367462208212292326562672512393792049112126360653859316277045681449600401440141598155005607092466723754054095740954461863432475650685704310784058103015547417741819188157926306663194588094872494856615985255824892249832277999662279469379705630703316500385823598538737725376688850483298280630866735696454953398962950563653348948075156468431027515208004590717301362447617908892775773689521934203827117199576479294198205375471828953387445347848833844179223075283565853594996590450894138549857877601442387905541863630226940332939830148482881924427770921935450802132393478210188039413262533674841750439575708464831055876175070270873809220222978162739691539226617555257241306735836385910696670008161837476273050120663171703701649988315093773770868471543068205022809410390997222474041110597814815745573314666387965184918254842593475000427724314598103279653460047542240225963068787234431833261007536577825818472392621874818317307059777418478608775747903234890592219480710134848724728724019854167330793601212147824786046242230699497078054045608971413337412979032595749061696836675336187695896145288570516179429611454264878010417667637739544757468467103582779987748096416228256279241888379710914841909016402963765475225548644024308743362258266645204316211844873364345852923947266812206653648297506184063904147785901016755258370867348573364405195354133758227763926383065830237223566003215023452584310177506332005413260507381831340839741195446304256884694291213113102462293442663628428643876970818706671930269566334412399451761921131786161623015029185042030224787699652403458681935378328001098662414852994600382075595887881405784419951930041447438694176123663094154723119887676083242730641897291793331907013582808556499304829320254527585522279297511232884885697976019126895193685194638575617061362682010571120954855618838796831139617092952093905969009386471470773722023734493727715291568736313604676999591216488310923439436638962621010222563598203189725504225802832093220293669717904259652270054307409654246756968114609162244160782797429568568412590021314792330887121254580806308100563582624851511366637091287442025430288903180934706475377490756801330365890909332756791857297796959742286197495576621651264125527011228361271080686288307074815666513855279412847165163637293165501396042819851558498166517415640455148859716965830160847677113475922394305227760502005828257057880761714926361207768115540619005838062891191650231126669386527364157639516487870296185656165279330637679558675352512996978412578447608298027349249957521640111090196349926311213108035621318215827778264558617915983598686636882259008963074351957129223218364051863260403602084344647306407601304840136685497444877476465568365611835216370559979358198881497118238637019931778849028570701079308256352794747687263410340927331002343344348241756951528643375358049629055840149476263919498004839162777384200032452266694769028916185860873401672962295605619137344172877178948297327955392487650980090922702460165953300551831803777145398015108417387997102601256773774706990251369123633202005801710989182313549529886367064369193630286358048239182079095104410898638414243605214117576224281754953080727919051672910941838688254642465360208756167901802350358977325686808229867437439257338026125113387995877366009347164841769844425700715307845881333870013793667011176654250116641897795435359547362838166710552561984523127640301832067993558973905402301703774835714339496442997652386276869625568416951294110342509241224172465763294000080768141288165511512404156789659983016686107065206706108470813906867059738742155365593453445199842367452370676497313796505691521201004791670063817800040530289919860422362217945884808225618488707704580984988026214209482394706255011461778287270081892855196141857880076046516016307411654758050808104207107266628871483782482873771826117451002956678519037362392661355353793937820579130392897005700643034864209537521151748530321216923565184536687804485894157236466322256207088926254457422246852289618500893647006008322190965123287991277996481059405153285528901976847713989553449962443788751628226013180080988419145505076727768645820751430222834398256071249361729110837954065529404671404737932739071468745750867468049194183648089304015685762285833248983470635237306088169350312299715964255368223497140792601767748395054978414689122012334074466940644075472792899512123365772454488296009250913663278570243884471154120225058537332193444027038258033014000071521194740140933386930831113965496232158118155041397547340833304355894125928567992651378772877315104658165065773715469648202901170292737310146011734197786030944557930589690471591580481721969967221234568545234294135578382626423510221478070764661980740246963531533657232854954401589039659151322184590764481099935500027212766848074893754117574798856227234435172122522469941231510032897123734819507783564666076433773500163219002580205211126071696973987111365633227520751470813812758907999025508009671928253254445740814375878520992192646880239284405072420574744823061047083320036559339441064026298758483335251551543185675693081635762107518935477387751648720891129194926508536492677402004123613263713038486446520827174561389784699880186440097083019154926405122180608950201926894589493455271061793311329095159707767580324921909188189679442704406807035788620571353507839372927485923874383075571904116174027293891393736557647897027694049319489946425986867537375026874542535499825467602114196193454525216207972750793225877160718600205729963132467025677987326610918306933086679716256535289529432552612975285582295721803155984689591556852547285976815348715362712763721674743266744899136570374823360088994880308487098582426597273471346201407784038797076898753176233774340023244503738772319785667075440262524124050296666835518943323574238511160635813391788603263726291570626894274426566050629575902870344477282302207531173879264192971253475298379075291236088699353926216868068501186221080997756902402569972546128269657097923168768930069240456500780634201614308407088559540593848484584493159717803233229435982200402534768244747530489102803447429148385787727344259639233037526053014430244556507498661347587961197091348159424122705548425889201027279423447710219899620152980422807192832648880410499028100809473302260723209436815869641933976810207432622211700922039812538212710239232267678375498504399314299708870077452546103376060164185960442453743852790881631753747867226171233754670705479387711603408118056588511326002956292707322445853932074575816456589636100307289377645876792321709803064198467199300935398546692078247496101961544623130040601428941985059657754462062449602182645071703099473881428037420327062279271263784784671741780468051322127644732128696957235225895320087409242920346928380000376222003965520618788868967739847164647701929896006646884753142821440911699616074034557581291673916938401386712798488704525012486786447364014421799133286248079367416449804127740780046738641338235413956338268991324227334174097420092732666078370171805010968323921530096147800265203583102494039880926702138288984076577471027239202687386952250826776630332950098834259663607526607920108824743662202910148220213182769016637656628840122425570251629486410408572833550103182605054786148800400143216256165793648214721252205244394520645795841153370762168142776842667530709941095070367832492145835618431704920417762750244880157191075314856625650000132036239841483970578201839193424727768988956028479119153991052789954057487002923472658064996691554100145959035176722048508118597968623695310093423695053602307069486163456293832086233308383536666535070923976367974213146835382251353558962873705798697106950825655688760805301512617625885166865185993265562329180240033109775251253907442394648256867644022715263878539696119814741259901978571165843078744736106059784430085441549443484447097086291288503517823445332162553165459814992159750290968302707257562123060355618327517949480122826499292918047918214556478199789777480489206746617606535717265913819594745909480764217884103718521191518475784915006354614166457117914081077854041625123011179140805075692687387530346000923325586917936431389310874267404315672271532217336371764934145027914229393594445677186919341369228806026553023252276086583128798955193707001244820467469571305574454150245271801200663161384673985450465565521878095518521640762202271054410527404595094220695203253605192316877156007562989181501209201116271785507244475359291234422798666448714049550330487548556331885734961017365510169987685260642171209881889450913271462672610571891917333104487780778178792919193824953429782343157498162513112049067992607505854923520025927999759308311765886864799737074687232617831718654179209101118801588069855896957494389896709183995667852278221516066698289425059799516910179247557010143528080697854558580656416463017556238691010768579850016431131455602026255555608589682526399234860384967941798165637448676598549124535475845025507943599596727741262706970042412842808280815257722043686087091290538487557485729258374080182925869159877696113398900854144869286283276321268642561162771227968493788012325408717258039590010488004268888926979723432632634360277938607705818820765899992510075816465521200902471644171701074250089937180931360125930282713516738376064308481433087278220416085523500563304204445599684634546603673338610366472663916897308320087742181363551335009722647356366638451865079157411017629164014773475477953119481581935031495825847104775818654281857750113729650429109608835144045124718239854341793479760217812140305363661670365270001457942852115332297089542229659186724072727311154685283517311387103952868229831813325902196753651309330788060366772596645309890499001523306755752828289874372446513680252486334825347901958751914256196895032457461434880268444044728539616520634813707607997916613179390322989340522807363774498454929445362586886573801636709689951488384279539033350599354200202882313093874036429830782229585605523148894075650655044557477058810528057135924097585083034977784025196978099671782595770113543295483035276940411945350669967350450466614260914411943324591651587500718268875127336712760795461532655327528082052203636098799983600421447242537381780052860483613126687687191901923772738898947630983499372542048568541275063406940898959688775897783127590011673009076612850228385219524866976104308745958307522986624784669639675364980054134954312169456329264940430672042672521504236024542959367833441894911644086421418323513871667808059599443755034823952991679458443348722702653671382775303259393937186946367799342478848420135187579277043265690935694243644268128712852388993401998512081560645721283964923129315182468313401683734291377223366734126599719178504479772643512456414155949919806571645286968119308868526801460973402862635108063624561449361223668392128936768419663753232406420802645379658239118424106593088452060403058834326306204149127575015351699808906452749451348341055977879982690534045148194944446136173577939910399095994648567264118412455468959769764398187602050210096493671837633105771631309845995361030437944249479326379126560215960622178157422764976855273597043673928557966821993391672475212096420837559075740157999969873865469719482847180179865058191047190055531724249950865149452272437263155402755231035924000382629761019461387256874628876997293945316990471671986472373537310055952182726040716765815238502606747693475245639475769754426922335403959149712387103927029210935586276477764663398020539227489802579335640517830416206199795639838764090988917205163384742362941987148452473231155476618944198079525964897013785099094673935287669992318769664759897330573745917604062253822570519882347914598507810077023909137796594998491875674642258044948039068622259571363910480486547930090136686487144170215064852878500799979269144930541477958135893809582314840555809690242632078922107504162791598595005451295517492733509487153265332405199999355441557207422233446054491657298235167980400874997627522798207349432510350569884866484314038154158515005178973261179600752967986873939169628549395508361698763552673635288367488490022154339771063782172644777596235771222576003548209104241929219513264722074273335002506081604278038793519930430780687319180095248528636568804293649010417060944422266350242564444778609764848608578128598778527837934649948220354374251691933618440496237558383190703527241592109911107642025684203167734874783739529003694655397526680285652516727951921499411478759856097549332194817372895118999602496435430385282083713618171095526194466506806777377312173194792493816797186127212603939298123840447211957341143962940862550682669513078949830528945433628716522092672362284688736963282229750026972274136638361831379389654118183860124335343874694489279814210422635800713674263956295384529882047445794418344629268383918848025274214026916509518641034315949746333872989947054819599991630463468351908063695402744922711685218893870828229833818293652771239771296410865897397658779182601721711474047352678844620302255555727128281994696907065966334980208016495900439391204783434856100776667493754756924607029566370036568008026105319371900959796082589473047195307810770090256343037255343072424651926724195628144107757284989747221689407030159798444655701222575535063381807643410565764127765282865436522858519358519079169289478495621342541724966273937176952669844698597773911661562975340961965344784196913535463842642588820835206840849924034005359901993313179061760858522876225557842671905053324380373198386741638503669195936532697472518363311897413099019354801607172109920526295616068318591553231129303610116124794424859641586068662807445156389017645029884954832707142573998886159533949978522757479571013716293646614045873989316656038394149030352822276279869975428974852974573988089184697892446591930228635650734976587756167471278561564909470509506233471229603036471673778652719559841059492650263505640855464468496208744165709122331009652932113421766942003797275141926196880186252570027214857770891926337426404922142729272767202407352380747915320394723199800903952449886599607685472413075308156497172696385047532184390779765892201995462300867774788026175471283320202054277810190342288472035275880421215479086700043351056435348937639463244165080631139621892387843493309430129612609291643413694067109979337682881547211512242221683648614749003153184170009884479459702361624217557111807819692084093746455740580419082770284050268339620187508308582490141373550918017764370648533600939984138008340573925520907958092317166641364140228248495992547016266335596451722495837266922015170994179185949537709881560286093579605697225497697001709583182927504098511844229555861633680458200479268422767593117091592239916996812898021378169760756714879721958133800811627819765284139587232738683372144507111933663314578123017580247281652870592595978741493695831714724178572799129096602539842322648024443888964656083343809257288295440682927974731398620059244709208648853528526976433010954801202921726871169102537145389476683567577076782243991718740148948863015737362286494744617326250000046004830304842897984361142486961297556241899846439872946114784953268154123848069848659490169304465528108998556967549937584004233632621301671343898285662169795257777060524706220419500172474478811128558400428899203105438172024073617023213376368844953709356724728829068920031148073548607008885884052045554771125685937087086284485424891478149469873558084500833564836023100520495569486614725182694369239059818699692904130624803344692406822997442685463073354248279978631866697630240804041708603410736828372222313418444166876019394282100131919595552999015585184496826994293839122412415403027680496185145844014996271804021124503036557390984771212274247800792780076623728148343393883338069530089371933676645267210653057820165721649380296052646762076084288075805409769135329011963732361808878976232936339371165314824604256727454419205833280945760087730572524439524289333506922602436184232929193519426741666528526819623715898922121242910183650525819126117749069183247503090983061542399016526985117198569703871450799476559354733126227171309453826524571270758422574827428865131005024636693387976758260982320622410758720318110781709583420383513567969074474205049391145823226713732556346132763446024471165269744167813844893886614519868918635562983786745540673131974442766460579387632286032090117633003350419781176657216000387255242295834790668353090107977590396991908075352455712481181020673674307918695682405172873855191842620463229862489409405812340140195827389487825416234977132770763019601715670277028021458067466554996456198716785411808539204401797219028475059885445642212438552028807562889718317365089252372373805009585982542271458442014648268339640631262253594117073924172974223525358605448320744649973070861983127960725386091236720570825615334353991141787846028992361809638966175612257844458985423571690801709866822119933762720424150372885934664976615300839705773694883852705813007987572662112719447905824924452301368878677127293773015583751409020820523389968189637379255148968333756292204383706476190298656618032210243095288371690111490606112923797080004588632462535417525083991297468488477632906945033480915908016514856731902127774180056126358694451768495250266298076267011828628131863701508417090487894060094165450603850878623224674035480219342487501120846397242702746588912976977934924984360649504811892174225451391247359451469431040846455775698589845398258857773679880661134196663506304948776683299460862047473990040453814422348691656872811660709492000053744763423882154247571094095172732174484510527143137968554785850233056465283268522846400941983496058448720441650293836039143192682300769228250907252864259975387756328902910008341323370719716862143130486632123479016564978420760861505560068476601982886391663683881455264519410168332275509658669175075591916686211516299485432490878854038158934007552757228644073874193241570724028166991496319348273273699333145193470673461143956160277227980144776341006960562091548145508932162645043316369564848577139956290223812828195798950754371882685555662189164585191363969420929974872762289145731997357981876564155127689915884678336524166127076930198424797920066188995119328045744416279512992343387051306206914093818110667346674065617532619639988923784442092530588472054313669505401855294436432524073337187076363812269944861176101866212299065014942685543120817838020195274349442251293267356263803312106346966948132360004731687063817578627250642295446414390465087899511637779082879077990200144203112235366133501060902808506650499415903286720093641755304937254803100506343162436947664284767342009842348366682881356175963010175550886479468596787049673375229098372055128511864690001981788481101240941871193214558979372282602959806666072537245610672931606480275678477315654239022811636933147081634563009456555858451790083360583455514549112675515459118311071061153563176327738448659047023401094191779620895815567764910428155328263953946739727529125912920154504478984947070810153236730565949580491127166190744914908178760986725516423721343524769983689082232635736378686285266818704796167754701333596729676299751960477142948790946916743628465361168714524607359482687443012123516906200981563665194012370591178441958894251095114594897467160606099347224325061974039884999853367793283718202165922091314117066044345699795372270815061630337388090742085658851196286083936182468480852765096400759584688624485453944132451659561487382936288123343626269956679444607682848117108420481108069238831191180201079463566717426844686941918496412007803698092745343253928455836245741988002437095490600230654328986553627186650652838625288419284806539233135152677047642684430305443619603115625926112627901662056232871148581239099738596107579962411671781842069458501925645136738765557541592822587915673006799092941325379517016974638247270353630815065305376428205614123798127888704201413497478540701914678927559480697669916916946299425915645542476036179711255308273893319270305011346733710235807802086905897731850374205891175030708030415092463071162990346551801886868726232977377332289595956299968452486764171586546099310233688750616821380247852449664497673149759094145208045467475171924592824849687980806634587664180039596533691871352278809476495767586593377927905023374253090661194765059449562623963880909549295632140238229331803313919188346095118301690516948933619679151955187628987891655630450429733753384766518583992907816704572853603463823936119577758054183128927557876664604755735400658016096199129377940280118192423627086778410271357587101943880161541824151960949040360532736599811250498217207817810050091123623924514010770657849638539229053819790332570748440922302398981220835358918147596846248136079108061386264572296610751737434581715590603743960814127339928486763742686543866054455389099274489995172585699891950462321799549942685523028244658780989498148181343695652284601798028306896162115079458668842317707804797856968540191352432644558104409084291239860206400183900919958900346647045657329994666086275293078111731890016729091508679483689645708297788903776390458211693525762446720906452255475878684392778109621779221166434726808799379360335748768780267010251804156291187545925347116386551036023129520316431666059325108985057873226798283811112387699985343260266702514624809745566942054623700862462097152692903614937755060412057869498722177256917229155136105309218358628880589278905004871948045697903390391893432261352550685259997147903433854538069623736957133945710105488131475824633011071607041014856851548880163853986928651279230715049692262900745167246289994877696576557331563355196970380982440543176230736142019928014370009532720922766901396861895398599159486407318871765336220665057823279402333101453365374849027438144580458636621630524419681980067241290001867543708564733433131108919332529680098676087064019155175010633823200808240958893578762667783652905634371004523881883558803106550505424278603980352227633547511214051409374276481323845093972241348804603094348249593299990929958046532259031668212885441020747951403787938944330582487864277911314950965958742053375597895506366616381422234017848251887449793587518960179667857731375332619031112742824641411449447581089588878281128947962935885911827525596221408569353602225324473201447820507322517063987015456390615537362528959353118334280508078975477274189781311723901133209683659647247229670073146413203584176478636519378402049153251322210424665775192404860815741808521655245174704596156929533738100666058248980208609855326119964227360902266865216034102142806774045138381739902953521062436827743910508346068169137421866672845292464093352341893389843653145373968590762413239917091044277446596597767284973990624007529298848248529416956392016968693004654705910708715958532440906638292032092622862807339996164754739120248298727041103707472686806604755768924642267625175415877614624389435908446782083390471839059598537014276182467966126342211293454827735298348795284301421403966433744482523563861469443860663156117880522083775744069367302776122242108949141355788796908514357801048688145519281402021055434917287129310374686768552595187592770778754975307876389175607537169948836497456416555404590697878876368383415285040302640671455179229340931208558276260003274236321205422645291824546226745642995682159467274886709238441869522426308653478927583952588962715686696335408961551492660952875078534951517685616804978958852161176736589487123522417632268059983749643976797581575542420660381425616663758379876902399279404793795356967026751094042139089083072766230884085121707755456356678610129816144889146487922594316673087535991814292014395576552396715447585354979543101796533298168239263501541808654390792557796183005383922444994570873311743617473650996903369155680546182749201071222852052794406714550974469196171631738790214475932301021832575178440455643987090517648707297097100260807529031429085388912311463665262967961967258077179089571172646251785113523345362571632677380860678162382564115714747909665121147988377784805965171986916130555433293240847305524938304258216649583594366016128401615810979738452567760592168770199153655222672331797781030950217655440233239865113373069838428520912242206939187360040377384885528307122079074277079317674051181447566181529823174126862272229248445290237844587165726379452767290865702816313799665512621130925892590006753949284726445785630136075617880732611534533251354389565734457103082934227295246897454124580196058854368354018191764449682634911241444513583710957156352743742026502264095824972202794269367435723071478390542188322740127928760010693608546936583183825606288330605432451983362523764263492635292965512326542828243204562809285639546009762376592745759707288784411168331677046933166857503196618663500028572671011167877534211998982209520851507862221401064539997073233926223373746447064130693304356370779794853155450535135764668846561372203900801739809279078228880977686970870173686868672924471803173793034560461982877513130450137912195168024843755174514600726515836741908995668595477258115189874080928060603291404722131942912757065319917347367772531193153352296666711599768271833994618406672094120833052102624519512476567642211745282688448738690717065366527392025890925267836975525970278131726018110253303298090924546866061783353466743336262630444564759267144535617803474503688430009536965654092545146161113830129297762320663783228247561341175455052517828576432199595130587442340865501295571693307745532100655722691219031839578203338880541538033837223375531032647802770470452576148665697007498899052510733525233461711015561177661489145132113614443763497583341679941790256689510785225363158041641618067665674381077429416393360241871807694133125122453700919950378859182383954894355167793013830334510119820624661702447791117933070254297529361830752853716229950595199615417451542734771188975560634892342299248469563990050271350783012111188852723967628144710309396553349697956394288280031347654518303554649684347863220709150362351676125996216278851332066625782971349630704179467101707026907572909300315018362182383192250721851525643928440322994096299909478279651079070208559617286416901974590411188109509034434909275156337210858022634223121502103345011349863940450314011600663303896495206619176741528240231907259175934798685740059568492307589495739605862205881274341881758817374320034547683145937393351658952894755897752857503750277707397074243522680019487951774018001545999794138553226970117450102855714735451124408313225259696735472437310029173870700659685855534907984885347498140546418960348298073183833715254311910471741771777320544277754660918899341436776708498817451204025792037272783518368626196492778916132469445610440010136959670395160312255322319522474546805458513326005731916183287830099227169001877937183710278650809856811443625484070306470398451725477691264020781962634390878099823791875401696797446576807780529176869523421046360324378440511977943875332665662010766634854320641861610766487882837397048730950929686476755982473811217477501900560763707404075105201853725386778674537727448074278043399842810450159543088611644078779238995178546196872041312959891208648866295788644804556798337563651955785076733587740768775264486007323913980182351753198770393773652596011790853088011586026830502944374630494782767386600758503583219243157788105002635468848475330932631946430598848880105361881891603359735235478476808899154731027305852624928190150413627335605235993878192633038819383590660665610868085004561975589997247591005660630326340148343121598692093383565234493019341175147436146329493167410819806173667186957578512997300873636130658531275282345449066054241757598603606359623121321422569983232518187880887092041177990800989584416727643875263808982349930748296447546386711932767877484455094355470189858744242118373664350951973328611408797612004692451102012992799988452762997056691992511078421436575984448581773500662359243122674094024361321712826917562066547493448262708790921821232946873883040690529398644835882587813541834392152910980984900381387613773538964614752729070806830928388979145785093953946571958054852039729618931126487663120464537370008080717792320556808694085774908916692864114207661493960455374408345613878521683688452470418225813396545699362265755839108817440141821811763335038322630634708678790955695800022194794478900556446876655851588486471137636092245951388804032504982769952820439861009229387183492182914707936987710285666734396595035824016483680082175505164300066921150386464177988861190105194137129750441160373075345605643760172155645051392799729666159428074411166575276228328686125029201284666462690356624665984123170705960307408590549850251658154796646360014226549576781228649711436556188088216969027297256985718690127528048467442825864451864251820435806805268018232605375620848037157146880904761852681119175588042452315607867867857354603440919075788388798284370208360082582089883782755778918700429258956248405906329428647414623218258637258050095495215371336310140139408726765697753042608676063320992314831453058224586191590018315726964068715687147652572047813966961311427719130006490041128534004192419780388640911581786552557902088387438218528685689177930918118191672569824193604070335582941606276323138974146090995597743366881718398854908536481093987311166719362410093933251404690997078023285840400080153754596213268553216230325956506488399190740597533770747704048819317041058547226128683337879116746651853943086949976183029069727750486272689736109725489357153277720697150570864417453355619410655170861561017963994156246505224364393871980798129191956968460885247937092438785595998578949325438128210672228087822674211125566817367671620982563886862005012374967561795734702187370944916493089857865351265932675743479794651166427578848856684884625865196558275845732673451413900989560264339628143811064790972250239358256768896868133901171736256521031375688544476354877758196919584691344552856490417837556022307904976024739608015041424422463626203032192744391442911732290864009769979490476835346031511778271162339390508897897807593633934584352244579680799504369666309446822071197622242126529216248135155313651974871101117210431477065958282264653251250961416982916749398089736772527476519136483062985195995869956457436269943083626191461602419963647381114571985829674715620612998530564512581781027304262280441752811837907236211788179782351042784394974748124142457596055113405037890994704449300275054074644943511284920744269877012487193514716183440504457859219977039476019438756933751601778811773523699254401388675593366491387551905887847827846688573375871446530077165266841120267740942919456999732121222256721798961681222692337560947693910964887781173439696537208898287039359994845957243131327676609408708267058160680510802507514808527342602961224833817244384472809742218063889458184482368803885994241010802632465148738380155256360571864417064030752903304158731805866805443358958120503723134577996243415664994976784041006990271889589124716411446879815704074780677908812399668855315238982824192770837661723267164749244141959013179096437127487145817425591570788570430880437910464186976689266850874557610055337384184120788223188240993381689574217746322544093558648763940364495541904633009055246902492836747010491413266555538010183670280093836123752147462940707216384410643120038165734319285648087019501850607190798787780680739675067417752086249579208497832151834021149627920508444162189954320182973864101155101563005890693130942944010921753516782885458890655241689479160040108866021836603143591259979880480680502289376902817642975586944535266952329145492129966982378175612980615684879984825335881432547624778015927390483230582607646202929758387242274814893498699053685656761147020860602575371875914386637354698416428008369765323532064488556082307283409500544922611425598114352543318212606214486078976529163674930193157282807015818313491308958003185163118351425506024047915954909440947037443283934322933839351175260511008672285333543070514191209783776935324656824838098615866829364249236301683376397052065448660068012819234407738368990280313705091627427725792778453265469753872803627062882263760432301998090567936873333206767413990971618635831263439465493958410452615056883230238753126269624187361296579916347532749265380768119453832280999792476879973284723194741060922257165651158051371586491863794005362099843803796364783346552225376778315541212235543710840014162231867556252819173540138791404293595961981296068611858594673711781229213526906595811700402454018149976446352244225396558499322026293614847935403488130722489158805695191957708914100456872566459714965370149932570679199453472014500278058817831393505150551100000476325796429552184924390442057280594325021897327272118169334571074545890188736043376619928492017758608342618646517531399409729391938466113222103997477313991109915334108620447642525425795643549546647302957176949756914596420992337611228799578082122644598936148008105659934782136660276016955022638397954541575069364282943221552545163418774850192000684500042292234207006121369991597681324140120199817606811512610071994861934424604293273292434917525134008204051664419852403398557569253715851853546615572911045987654820694616530376289276496752684884916471867415586224531527130866717448502245260595808631117786644133331137093879762453238294495441188091871960181209110465195774995450452168469682334833309460153991473896290310605914493014096689646165057104514765638772572586405877386877634545475378887759589381248720007941903950488190318844543785191647230099107413509192288129169513414523493289268560275967452762727803682443275688208386060167121474548801308662402572116526677652316144066185510398504662311085059701334771779051753006744140448219880344451291252408581567278359893487332230760876477826520698575375403493757227016672609100588537498458577906547247142527393238646917638804524140114204179852776531612026726548116554272351397200127534731844222007506031853481897215420874381166710797447692476608530479483975605556017192883506407254174081986252152392085769815182957318557014305378786580934406076877957431752919224425069060063420116275744108995176487014172063237525534805152446990523911043313975187069594015066417920100709020338476852295362949639024957868725177419859885831455201621473687332903591563185180409031124770312344996815631433404171460729003780786448417523093530018909647417026818204221013987456308450711261984495150347905131637285073295305206638341804712000673010612500890958008421611554977173915481489534150586129399197466333683790831168604746859979247540098251570251147515684162318947437091612120438663233493651830283352941967388312994120506811643752730574563238166422527560642433616756098022273497193337135567618221020751190619760843705823419071521204351250843392023473975976728789946249165775690860587337426553065845345412475349022511768507787650107585607587717314421955906405206156931954504930173990582425962764090917344737455484893117023705420951870734783282685858608339663678136523688934737919882544708781614852337374228674457124673987330104502394393318895192316710220753861811548828977190379349884491495854141749420791807381168970529803128567090445443574026124060882554474852350819883572013248461747912919069902509987358663368568003878103236278157364920385311509977674617671919064257771002467912095444940616070935917172768984960084241850331841611133085073344073168254379180222786736117857094094236964904811472773035747479216986093328554804277781185678457092512656280884447283442677606036190525586801227018207472146749700085563185765474911208663785116498486436347509795849867425020510176164699613711436961523455261625362616989023550648087179850953201262821611564310011744204793871639580140366677691688944116178846835556471830599082074586020720147352136334059082588110619568989180732086972800159668278384216706423994548376151985518247094339366348288720386623639773364806500969771517874233203480796304453016194713976572257805305496879094729009581884581062811715865785252020130312940579250391947515995262614331059296336567425811240637883262263067182694818799730990039724304202867090483439054663414770499298966631309017676348417445829424674149839501278216646129256921033573490869978077648801006176813240687402030083613337115939103988085215114754308327747751885127392589955426603444088553929650045532512273664614389646524786761628832594216156335154507476689211057004056612351602011301515053167445687498537571018170747081208681047561367886982496778061648618470249881943938500202650495768589524620974045741067327590885147609150537462894540482565725843605152153297861580940738410444314812191845765034563671121508321915863226877962392432814425749329236867701984192937588632371825964556870256569481995058466776560451124576464611988151966938254064598049090789655503434899839665538487809878087814508554005649525072449242226621653240435227412225820069375608182124546231116197245887615905757128311408620358835309184753957300363833947681888874180846871723744269005473247469377439547218376717190280665724891728131769446989555980281387286490456714917549352432587191637002615138959378250254070219889702559120810105888939166592611308846457585375619092010562791513237425129194566849790373261636251108635210789792289324072109226273446115925576117786221826706888352625955636793492521943418254349388920993232249917911457152937860566784287656929594147721891914830060005875933094718444729674295536915208763161181515231833589474428129390591368657224473315636476173753638061405690474240666075317380789615455605077201157014796287793446621277499268106386910108262744383178312270169478543283474425544765278732610377394135561787313655196040900992662525131203571855497895265322325750004896951748531474234221491856011983915218214530286900813895558495894921013168311603735172356680614777271881471583127423437107216799637035199310057656284193212351581920583633106962484707477757700222554351940951816202201726472793573369572656446993446224030391342882398565005059644675935618997109284900245836563978041990408572195279472971852290490194535062105593317283990535323834352526934498720546826753051343623428921203006432112554996071416784791703501326384583114448850430376558729992522589634979130294785528072165758963170921682838859384907302053341179892144333804195449527408594203019227898981761193181204269393048070617629791868585288553248077503047540754042340647361324891007981834125905015718251494414856152750997337258245402280774178558461186184684948404980251204382693651279525129580097154475728646133203858016162266480394339673787046439693332688641185862411906554788612206767283012372443858209451139655220694995347026445801519061547255243492110314186531873709475872796996455363705776276728344184957851811505385365653977560483612536784326700881210213310411830617736411394344402937796418408461473018172604726535108386529235600191998426066441742294052156859935790147887637967570651278887890610540958435216584663881258874960860389971111006697135651849537758985294773186841963403541629143055729226156707888766755637065224725602687600628521637718615428560935752826275615319265478674411765290805368298311864543614221739482680123231716035685464221210683538179932739894373288505415710979354839136387488410043040789292301443389584264625909424382051876635500166264004837405855706137722303419812610421523618949825401139607374284673698443035633182923493182533813130048803398744025931933991420964601277814544964574007606829223040631635812141110889839485574147754879004870754350056866490647667566943763077141515420491327373224514341260269427984942311348195886249233491569994771976411103828866449408044002180476101250233180931239912101484289744999948075191143454122235582588739516491958188804512827077059068943584848319560974152515338760661790684985156055664523757487615279416865600270530363733623825281485834563976488484158265979308299258988148689084552582403299745892343553802693084996799305329235231525282306462257360828059761492192664107039726639864000546474703409022739573627751000120456821885072822466237334620365496559540443437700368731909389106202103094124205914670565675942681037359554276963515533750692383682425626970833315978976062119681268582060244585402377180616617809437176498458351702894041397377006114938076548002565256215393589884218805163460632749788540112478756126615889354881577913617291377571002058800249081943940975098860856449749285232171870091534788498841229851672624339977686803302276068172594496414439966160655964187414384505119706830090774176732223597734103195029735742411140701504047717484970356150044912008629263582722308280057326118188388084751727555062173977052039956170695951057594086232204939048737915315018622346526447386038812714081411925640852762275998212325830245208917851166754364436918727871902130419678445535528177576659319873721502543368906450637078326668915014190284903958481576526865992254284814608203395647164526408977488685759597923668888083436793283214790530648271443929587199738096979551874435957436777643083945186061908961218320527196798144367662041212276730093739695660535383237618080015316455727956444212380497788303622184427321507495479100550301724822602835717311880654719305315994457894063747836168756045732583320091278061029084047010218061434489868281199257532805642837757088713324600321636410024625619593946289094084422034870597779511245568367339016102281767125107665275766690607018046395830939317583869690167723820946919373333052459073700344009880702630880281096244976655891887278856267607304112912134682885298799997815522678993168806403043617645711251512276360212121441586364455491386215965799550647197611191402820472071558123910851124174011732715280606147455278673437829290787172898665539829084714123586964781845883761387913206179435301793726703250246720551789423248649615776401422408082444681091735901270264113865829975842132668604310397281521079093614456199217121374571588533127801799016443013940060676593409957922449322131143457328310089492664889152300497579445233532756424486147336598671205990889773183503792077095778206412898009834589237733080485235372291803994825415522612821983510119740707913796968444677551792755979178434397937574500266898598663762618464431674206152226000756008536831615706491369720747051245451339810158219505012011327780786326609291512251836963825850570960598164287735499313053990023291613160150505643358694441663099013840363254996866603278348393471711263537205814743247471975056661225413744538308453288534240835749005284388344463474095149411172916657074634516551668969619937256834287057366387099302036382864346713931945698923247053616699071964680945314905586953430467071709583742355352624566888842419904634361552556451556691397002389045723398367128853407112195321590174601489947398470687373680486701213126550261650321057572679616016618422284489299814390709197705088827881470123419785493876807918988707149755361797555297375205733221271937608562611657658935984799071619673966167104876498343841376892428886233664093109242372541721606864400975272983237036294923166877090754512593075459651143067933517596793191541874595058022246741939698133968185375890585421487893913248623156088247005598253692115599134337073693499533783586546548303861535180005861313365598266532192581300070506662081938494653794876527708477782185995310828122842185615352503048067841181548733012552017717220309292242236631464192966366944226503715587228851730711860141413808161698283335489498586072080156913117094431097687174835060223320943860800328751642739778612168014148745547836821589677804637908905472940733923045937594701706398260920993204575573532736579033874638423656623939200807891499847871525315318666518787858012962440232360806106116883413950619431092638927586524969663475926480790060214161047381862049280126465204377049861118894683627782712547584961745223335616013818307014758468582661802505179756172862854701120582166100185836000894332107316506503645074488613749677503832038250100348840735189210536302220318422072656944571274303053518167002191942848568643722234257489513718242342073389945226020565217857110551143784152226103458452888982062499006516706781753547081299005892643158167065932650921185386013729445107736864533562681415341231346754037488621305134474883841704528171118575688866949370402565746191347994499566249374746413877251085877564563390790463001952842546199212354488134858372497428156470349230832989376329391967015238231620435488475064011731761915535686349270298942429063370659861022780224472996930963225086586065853367539274795076092485474582838025038474056310680497508993017060760954613781588563840665535001977090799217432481473306689169383909957635733723078280560216249482716184317854385737892591654547398088816592457123844156039922242571442723815319757096445918718194372908336986091743847324386580683085614983688999493837442005066289785868839630622393160119667702884495983861096968424740238010926287628476093014583272410616743874914595905926629302881775281935049958483193197723513005619353154619686734899977530943171367763655516919258482865574700885184581673807549396706101889971850699286179179959407017912794660789530440788559106632272567645395799701810153848884533930641972430485257179171692358605110145840578737772325628147672801216665215974841815342924829049140980495411156248760398495450699762907108772864172308114222774715847503907402721364200423424680903504023900418227901750103385676379466305229426973032321455624071687821289894903808678132880552911761686870146157395508493471407383691474820048801407397128685500804626706736773160062911693313452205739396711825245936348104396870461530261283259609649600035490411383654035438652045855355906236197975836974110748322282565013114354425505623659430539156687511671817879403999116115181721721208575430162616177652817722866695795576948582225525858831485036639655770724694453131582552003142340145372520970359526558579827153595834664399708953280177874321790798951457247570211601658712372646613628626869363583496033502886255369951355104055739950935044250108292489453304539591380833766145047096334129683600164107032752220135469903444380692120532727265675589067783375130620258230137966474118527895869616144408326951096740194588431463295003657146997999163011871679887059112287876593188885186446032052330686568095659062117270405781446795994806675259307514003503359044858465986954368344859257090159386707610922714317225893158432697091115432483918618533376130892043837480620714178782177644682112213905696861614229816183045160823202395302839410253010412266512630610502532292431339487994713446788507994944248427148977161757407150678233321195723532055425747442992649030683854331567609593247498883727719894578757390999568127240359733313088888015727366902776854046046940162661642037050764052035367128742005466178464535573074505213736539966081213814355861759656147008798635847899705348849632427642733646845029103066577190441900105324449427967827262856062373948395802909495029187860328624178727918068766460771345525093303373332505415267821100594895104957398151545910487899445791768196141527634476608469212615879831853899984496293189243214230592053197265098009619402721151128831617976905682016455956922340693453229126643560434502104998142350588012285446791858864301293670533193686830123148370797807223276439637768111676978223668974418623376154131416076620061673342291447780159142724643777760821262149079044842922822790482948367914787149305879297427446812394417114068792097251107476595644444394075577900678680647150286856671011317898554321677457204138137792484975391465036171780102976441850953128132226589812766778760375014141824687083907832667869255346469424148472732591702649084912920436347632874968353305718028667087181124377973835334843494395244901542245053247069141739372188791939479256629934058703477385738351859011360515482737256640783254530743229976934842360102749374818322807072259421998005838152893670863665392766825020196118852594486449380624088547888311232913390994769709681082555661577258466125641823002637183418943877305871806021060628864213352461353739540714655920689546954016356629618178394669849663068130764140059637032366339290387016707019535293668641430323390579872548668459332259707096384585462996794728700487606207822977169070006787896956427756916703310874384346212260942036456725894897883449038246236393280755251689923950038832366636536970540642809353038969719691312534150605140859530638238914575533580620279286276497752947730337498147333543443147100618949946812616502105678105484954346891371865149833562374740454172604853335995607371332128352598958013245463899601989265565627206188106893931164225425188802093732628210460291036124950859594968251964524208896380972993107658340928931614426887073406480002342315839943116550279156476695691215124313144425291296573248614944736149136194752576859370966858582858020630171709457912430297518658459738399273545114516573599407148763681584303414273846204820975220362286592244579701429515294161350463135640082948612126562585659213917207239520823354721558396342094406539226034869669702793347769247392194775084163088845461793506934677537280311869774899280248577446421688091828065302060789713469652037916447518939705910439993985211415726346081300544060893655228064408432973245085507902858568491478245084620621307246816050307305912309992821495556699372281772883359326703648543978770304519185183122476282349507689358681539856311858612494481794147272012146510009442417532001494850193617075012707044051419918935183736813270145336848295201235095901726673274023877986484380740555994220044432376155102873872547657549065659002036163225335670989043435794495401901541024663880812539759710581136374711933528485788773040544443907796556707620610719823427561800282369950867428895182517645975528153108485790043679138410617547525165947683355084780067457483122557689070728315476997074646973521778647962367696901647910111738188342045772049241269711913695746741440505207054537012698368782262547114552435231416800706667763187154091624332859917684885381064188640632259557210343983714240525649318811554861995863706282934254048688935829259082886553587464295038037981770876682200587351843129869407083011862612546370052107309593147740876304604605289700973852207015271422597156564507609781815832494695849183700542193237811177793143959966914948347827095141436072865731075327342256300237359532756814327490191266049885039173622695732287342617661104625807481776003029811126733227341105009154905909993617120767956935975114570582730559006462422337634612975552610228846743975210709289396607907297844518539781472695839866990720283779245060943764929879049748388077501845984594682260424156615218962859022095708736455893461235060267940714437972209702977385064065133619996972875667589196588779635591713054974508312834523461670358565663814377801285146527920112445748408796878999175516960315610063193840599111066431405720758867845994114810866174603574261722435151906336816289026613383850279903091147606661821423045356943809317503602628830257936535922172829309458921075567458217577411032996860791163532319254699686720842743543847675752859116131160300846276949039638393122927784151778771235081478832707791356586313107563919637032468229355666208320693026564285505221021284248488121007678577000965119889660674043722645645859060630654374146005677303586337074146209080954968842715732282112659167347898723189348017720038193582357621266700819332337224660208306955474261315116144387588097677286202222658788553112001408461464790852727232504455262122630372800817474398095172569741240997783649373713789962617150267632719256883455808568338076966646273202653241184867689712282044482110386475550005546198480643899087111857802885524624527185689394392961702030156626598095377973465533100584804835622772142347878826312170761788343109795680476217894287190732249569740747782500885186406495847520993958802549558028875740340232347214889552821645507018121348276831597759131635847818637397259546186445998016054366075813084022439187949688515144856860546734672804061763275049364857075859823347675426622055331763409879849111508867586344383713167373509801750464747848689726286568279519670867888745660573847923625193013871246985105844005368847912942749249101160599901003825349493539112394917033392541546010010443607234409732263201640451802127981745140061819605214047908481656645712425511203656599972620994311007267078408183830946094002430393249299720822251839841289612603443127972246510429456962548796546133430625634524409882734119131929622574201015583821960213749806398500397641233164354609251125940488555182116324427720312576902247786073554333612601488747288022750677142035925911171873732458890602438093921816402194074639468617908495874149566061398557546898253332785493101643705238457306510035981934035143449099220854936528020401064113501240421534058625740351206383104029074211273806272998676098601147080884267490196237311648224682822926936518061827548280575197639146449314877593593881464887255291784018053137423000413244951938476884900855825719716044089607462755527489151584203509767196437410969594661345930939660592589665534377101451434926233315112134535824592011876081851831386344461186167704040154681895320059307088719706066217013974273705196389632294824494943564804383354400745596194713996510556947195430601010450146868951671041226039832890041413181991477389390925458241425320085602030131838562702175724999747084380905104179655911360697659600166947969595266973104341132567837163961459590248199352488240990358119809554884286118580265967646994487908218138305012520222494017330099088788544112565177865777488981576450395518471897758394591444563492137650503799760367476492174347166102969421038464993612663041037019087016941719658372902870898028553266179559026931376842000661024283405137720108060123906782558369180872411200534225271616301440283357348038436807065999594856593921147623313972114947118275203539377970298094140863177581506806077117112620136660084582124212611633830762893334851629871578919733571437682283111952601001896312889761693351154056501932839074016513914785705057510358851789611152215395982601971855776870256222352081771258931928556872864972060621097123548112288288706745358589408228426823354446411555046439124912821059320371911183009302728530041866529391458390727753494821548575185475312054749677219816234612865481075299660650798167618971645678737837811328322535822925284149799953065850956937810182571387872123789377303132603586425455540372843768056378959528913061923175815024689067907641576926839476338229658037419510929946695481506497092391163868878414491021986776481909233129362213372024277990355125727786791894586379284606633297963894288614089513418399678419765878005151552520848331216230541595686780902506327102639026040672485690621957276936785944911133733955624338390949837257241517451650719235383827491596229608164697766650789891786437941908563054798575062778277289107928534649404422526341797359543698744176807026705989803506432634874011880306081375208731120295812954748551643137694511430471271667352179738011978979577252208061710790950912357220995042186716964844652014163635643703528752932339900429027877982521749992317953710178297558394825589166550742782831343814766915720034603595431321671337120541729052565532074774977146358582428126175270383681394659083670669075999792790590980647500842782350787512302424421862959562561212143045564598630993820240818452706803682674591169275707687861907865939088255096658815082266585057834359968785926493286609172209768387757211355131951014568398358960031244573191929934367941989754469890135615145466337968776029945016043302804582160599535639884213054699103135128197475955392760438121949615241921971856793402520894334069085009973421346671807793054960141280832217261868553193937964695173077592872540035451668837363735259851242374269343749846962098090122456165195751359519200561732636696959276256012307395733030684887739625013901719233449555204659356721325141027126585332946753482457769595561204859804430559256991636251751101627208805077245354223114793028384802836854475796902290141548070157075105538427663316960649602014089999846815497620865253540233317711893204851515486640147486301215685382661116386904230839924938398592865457493220454123100827666979572194870168437893470738756806110971001580232869119697528493366490551784897471584347239141429264660265278462230556597649597064093535203739087970278907945723690613397419556183661685470230980738740308936428953683683750985231057628745349248474496206135786544259677106205135970015074991210809990384555218431119002364709341973212048457065540328323569489551703704852118845040959955849966030527835354378645809748311722864705149322230379322018268292858990247064349302485999955220491207019040299075951540965337647835436114784675662999792953244725427506547147625602027932990437184535043419251022443911068505450966392233412049232282095852762690276578015270015953191470495381610174050796857476385132234698604204566665040418177796200212666184277256490061774153957132024849739843492878483140141398482663797608153294580597965045623890912394282333167097219129312972457314300369096611925083431190771985857612437294671854024197166362637595598938538422445958573731908627681032424588821478455934260244092079374315797296165758791245546077061295434850221207123574592382739317755838131317485390967673809525147179638463318654658866937395427579389805295425787818075654726922758651505009637501355762108190144634944771086053665872148951736650899300868254113378438768228641046389324968543171969541334563434000459359900827865562269622098308803322040846103763859034481990278226480433919209797097105416259563021161357319409876404440885398749925924059632950053153600614210293303184884833469305264628683620914837414599291757570628360940498406687305849118045452959169535557794669658669959999845471846996658692001508176386271408699557010839881335537312525109093493532844157988031133729085857599570503890476936459537052379488485060415397670575797449914680605503196899017772940609128206059833890773697420173514320114553823124173012414736867981502835483912584409828497392814957518066732706969725688279424216118602515815825215906365906787454746674765916021725855670544152584035821997622753399490228457410558507993128187067665097373252809473058672216745175366830467714313447156467041559205606970091441215445626633975464138084436352608417324867534547576603079690148178544254031924886707010851396578222761648744288260159269105636285128354091607162825103885804292588979711537004091460427119669904058725685162496720220589227432504376351534525613415194282117236329907463801033274184491897646453375114163075296162728051352946918511018439709861893595905936447189931123857979629572811928449518023459169335721478182617502265214023772473510713559869014594120399106399537533032226399707167329930457771131122351656949043941684743673815639908413171455324186528200206702325780999281819964780664057697286015444752598523304662489553089880560320081588152223035772303824189922907322086173585378307707271472949224274624847995736489435896524405326831513280281038379733906151998653045293943972897475032599156512026719740786783418753560955265095694204733703165793649154533202448997450557894933056922741824738737213017871515449365224038837274313355009769105745812610097605287573559305360946458605807563568490249633120037013037670209587859304679305690735528120576354974745632122327669416810598335169892776144890994295798598579748214883643329626386373474265633930760354889328940108267289455495578963782058961542252802689779498652132545039589043473262522937599910669161473517117997854086301219329153704895087346038382087465412673735090259411498618136205096354651967606783383152783719186419839741922559760878954006782023144361889659820724774284762300804518758769612994121954404072348106633236467328666470288595246507803985476141714061144995802526675528100471044679597873109172913807111179164104597296691536481289807785424755928526877869207223200105103719508306103483766798484121645971400494782923744143986477255880628266989119653844627077289164764904454892554715372508072404006535926098454046070589047702373092682562191365718410311150947889341547752894553964283898523571910439072719418535312753132918772994508182172481956976295412589639111360589078971073798590008195473166086965980068290635787456050722386355937208964723673035053887363396117451121951878606833357788381074326296256229032414975238975689269548903582518658551846067316893989355614329725202299739632140773757125233815560427314594543308129463473845790249056941820359493897950396351788095383064891089167331577623229696629177297673897418574710537494662887756503725143726391235426886283464403249002253939908915367310512670996089589191269138930795517142092532935491218882663636521123814631615931953980486803033392464815958125635679224740889003075091643055386141139612446879720649263087548167919841287345578106713719421517575508354673430571840606812640520927916015797033199010098522213020626737929546012970337940651170505622533623333092034060727553606310861188649624298135921904696058018256323550253727796963810814059131738803111416418980725921751361626393443969008608595141630163961371308058686310877833411340863606101629982976345499446982095203875263614413210707443214627371172334613466041274827168152380582075873477853819967331835666611358034097633988627051646298166656164900262073639054268133145131769111353809030569894993141594676928450113221673993328007317654497791385326631602780905065742405528779064228794724040075779492642639091146639430677607312557967369643594139927863375034243789253834514160801349979956156956015085350234990472066740699185735993263719168483226409328476035598533945048078214363462067149378474059533588985007572785058971186161341680704186897669992509225415157263348437729784689857318595822486594176163703559497427001992016458779775244953932565941954609225319622304202083686450931543866076028376207156140488581804253336992687731590087926331756395195062186281270549058257549009093145892020187244019899620905810514241689247164231692707441112513595144025706008324871094245550037018244227539094758733803024171089629200466305758498751235884878534059438756642849518604069057334309928984423187241563215419757965913140700081644337216174904630363519432163867343527216385319990560546363211093100123795524600735961469030255217397350043982339691442707827895387296405796633754606338857682721202984183539074069774918757837024494413160969780020348507279561607218622827030220804510179811738581209846526194275917013060630382230614864123203080794839089629168510254851415046749233265349139996024359796567898976615075111653426285211664074231666980935595466257756927517073816061035906601878350505656687073309761672205016243922902107571774010882999953320571047041302143981469796501508742090119761028764693377955238694369482642101511094490838831202139812154200454640610279686487274736149757668228863762077713513623889556294124836652869338758515592794508426081199862997380178380232635746620267524120056044784520925344715952180425629374417271904778548979142395947960547174892637410260397954763196575805836846472034153013072271118067507972001832970666310983330025613470894265249300194845587596461774175540784961490827017153374204661773780239672251357200679033803690620539106246204156257351328705223380183589264362006744713796706168814227960227419251635822030234299791473144888315236809235783587428451472851003585155117533868276029579987000993715915528448235274755979371296077353152963447446603148644616914905894824285030340294122588821649188333165225575333866956355750233599521327791206827156676845085195953771798645725871364334644999531346163118437280890404611194195470405214540626674037396638821903473370039909151341111807878280236651799760038938785843657549168058582045820183083776452638191304816682900346389949964929684666674977068187121474680480117907319220633285217597200253305443837006410345864889392813114651142089184548209160220893742428208639297959636342214830271343887053443493898710089236669485266513797701283854758283360738084698333599967188757899702781529544575479161937848624472688543574825246057482914198651406575773971421757762407528671535733972148352591781593096856426750912153945017622097755701407059225823755280766307080773166877949472288935834157067817512648355170138783049974713578214715530475171523252150999542101140273350748814719094357964284143674044076609844995565333586930017737366258905375091148571203609411827683745066186355417790998486313288786415264337656758395234521075199913223118238781968595726390229559558973155996072378756157515106267010331064267642213750799346797384102852469872413956494657270694816316809456398107624795821921001907369194669901590449108603057532754814762667112456098650869142363722650175197451422705979197785357158867570539099563665667857236421670313112775327612152778485807156829048116118026659967236920312864879198400724593587519685397106601341447826530782445872792949058234651289727485708125001566168614186565822364765801734663857242813556988159077086493932037845701909684410839633701695768142353654443747462312508435404698320305268688074978970984200942628076249723612240813568247732316207479932141352686998065103585252433217764008022699852864259778220099637435992715995449682531558419696363798385376770887370512143095770481009087473148948386326201209468707797374043512665092437292001519036262849896830949305646285931496692744260157890166284022145200840105370145122322241690822796801304101441756644468153164694713101091116017454878089703414450810441951335122574812654560625376282205032122916877357426844966487023145943750985368145130549117903299703493724518991551150461427653982751919082267539754376268510558375594081945110106674736491804364079477956016967897973217054584320026886472388580745151326976717518558557890898149287946128443178260677506590968412580322371919250749645192334952996815911635545614621046826235912286819461013478750547693602422886167441459578969597945309946350518315393442842819403485778864912863824067633494195573674862793271851486809443270869638044860698210736407910677850379743388810850864641838615504701015739400994956426476139508588483262254601674702751773527092753107797831278477472915580817262833830895698363069263505838592709557899115739831087687500021713083592769914823125241859483864392630663986570037151503851319550195037089485426662355192770234833469088403121249200739328184081035944178099239606189393418193190050254848657503411445764303541255515636064298763478797278751512129795042747626481873909484266706832589935641504724863291398835637839532853766410399833484402356365326128342470484064026143269134186805079710410769214547271556125842034202854620544528481887968769507901605362441457648841367031548553093731120790297440625084341340282901306796480416382983216530664931447798129748691235234944429373117267974976125985945679201619928676912608431136331194497259857950744511221167483514592314847491314569800970381465962280038048818256930081732869335018914662284839228851495645970369088345050373497192787438500279053096401974139726417939786593051870360504631514154008676647715832191400940646086305273690664818002788665091980700128794403307778097113701779252075740605474930385101237633703870956517945294600714004273917005191111879213422028053823886780834096053049719549921190564149740984060787751951174142999177865884369804400881934306924107415106419002980817160366387401959541538719051732342886735412142436295668377198605784362870752895944682135237244418112579760881440770766936535369086369000531616546785313390471845160822907773404450835488131457179336816745373336180760764149338292142422669436406381953837705811397806543182857683409353438071619126752986496021519072052291911461520613737951617787054370824812059388245428865863443558208854848707317464096147461457826310632766327594550031739800803275149619677054449303042266485683082358268394734420430682641670119166972112971746587069810211772494745157245388163762765294121907758658564490007520305339878338241339082835734915115984289016891825170200920746460273536238251963173569998449479295228143227702474511382796191809709694697095697813863251612741460528427806843445061070683059247868491407613534288560423465073567209026357951778749556752405626969536054022518416766910511714581451927383431889753971052256315866107047739983248800972953321168957605595042285236224031188365799227476541473262035305014721683012788407896689174481714961373880051932241879386076641987648445593051004094968824724036171860702104038989429153757116392979758609939039348401466574647314920217598764456230174737787958784118449396808940117533357553167281710038787166915935136654433266149531934374449116921199474314220842238577140713810435888349428547786702583733376484632673735469019797210741710707205328102955081302256645941829681282416518685098551542987232684855010526578716079378441354663889168202965800432226272065758568248058634014552511328462576889889987336062842746924858428212355817081252744556076503778290336599436585680430114318801372390440450421062462409670563422074177362069488028486685329093912669809293852314234356059292573270843952131367873263413394904137518527757216961949880288524426058792337099846301566692873862192863425104859472528950291179074602246007783470898610452719914360207962298585830774835432044896235882012309202109759757550809728233621416093327152305654725299460299369641020475699960913329168296128762767979792462025754427158405149077912407470724029735305377777095489406815814221662877672268849018693125620162103542701220872271634044580676579303847441865860710045647711209287962093725841257677678115884959027749919337538005162254923425265762160537074616337663753564992189593926075916677254203459488495840943975592972801372161857465982977057207281040895026686186946939637177312067656993336895408866030733749315438697850853421922537456762293493020151539990526037493216557079685927993022767096547604972810638287210542811007074680793516473884744452985231957505601415577600417627948672350617486127502934821327703017062618655354649637952459558263752593443095471029174797250449570511598003713614631525822583664419017150223200940451846950828825230365409536213452049810020248120773917132633996812975461849607159052106119931190305521071479106044648500414972797364420852656886254255842724123280541344446029592665148153725838270006145377353509604642443064496877638507137121409530765937166052066561283063211620374000736647250608483848776713499339935168200424887961650283417065028740585404337919705124310652876800253628482078450822886835353106027216900679528911396337672073575357088144863569400742783982329222051217734087607902473161276729562235867281132972638678593684726276117991653555195405348261337155545257877400538460382435220071866516321273429521076463868122112764730983387692110439732679315521919028861065687173554939336482058026657636434705426807852945175081999474604339060977771930094254859994784580520821447390539395675831276054269640084536573268692005376355795635742599096059937580699806079348237701860668385298544296098636946780042166605826372007530982587458056960692853869482782964232103571061599850268376462879091579293494919882942962301819314541144191652941908463631511908291734510570094689603648592179987510465731446715813192309293726080307398557069490461931527297747866657175130383403032776948771418550612600500151829717061754679165760183437025871114836027722452662573974237427348431056935061169262045275517251829248864387442442906784877668357020491491610451918126270179042858853791329083442744220617398281018368217286704071606039275104480754254366625965818112182534463150284699496863383971679417826359874596898984434765640013006305391112212020465881301747217694782602412322540007633523085704110609798818683403464309206908499021440793598510596936565749555779646548888749480956907285235218833102883992359573114922760284834338182377713191989160606962425349092515214984757057103825059535229624769613328117649042187213998159273974848166818660035307758749192359012462335554405612028267621627340641232538042439578359592128270854657946939145600850008018010395317291266486539205818196197323245923851981402462938999971694833833620585376006733185136403890093077894876606266017685666174948541253907561322891068704249037255837416763549717272166129800233085150493354995778518095592404099509957557655646400498088458456119160670148279927703502449931900436885872153182033078876414639865410345872541737360225837191296509255431947788223385641778949734438708129865354434512551760465319974990063563586101421897038077021099071234757744294064058615280945600421051433680018204644872701450679470378011086035457036978927073538354911152150120511647936943735658128413223493687159312234612884302508098819236319848361054896465390420645816759643373421846291418575840819263768119029518128685695538487491847522148194163035882849172459438464221655230799809040995953685375102903714670265300030580775056562805159338684692008609809864173250404265753806594631533427192219266153841295484422594469371307607013344281488079721685561790814154264226240748986950021798320976363336805464672767099160156393235742495028480349404236479960675049212694866814458459345573528339288381268859371371647489841984874815639645613010117563639589406751961678125361628499666807173804498275966781466442149156079998845397208489771718114685280214112149853225688133897298504537917493151912757432299225286656111859161340902683873420190821706494230405794251939932903376015947222989611553156762841940645786863234379906036575665890725072576491423525181225134198243547139085328258253653327531068574918195781136874617908163070427551706653599903021662774201072341974300754967039314087982726464157596088665928316521592880815537327666045511266502581564673899811502939238190516386398290516839001412071235849432601485493280095913991063075383029528811748408652903175734640417555947577451520907843172957103849030041612681587526822759911041002673057167808433367179347448414698784673938976725113421296475349681859188346499443812091037491044726377614108424283325323080486827351469941928386016524495849183361994961640234918311580811089902662432776441609122007821589652326411402422752912279287945039481607872383655754230494731476734019861574030916935401933943910756505384938224219856861048072740060864983451348905049721115314898165737085758520362332328095122761968107972222740995587278042765768381640339293397283130109692552983746708057528553580919264923119973036932929708620585370748253957883479714440553515214372768300927927548029670750359007071334266683891423855072638018210613502884704389967162207202890838159547565369962521723957005014912913153471823580862830022511373997901218186519517856218717319423891169055396651346852076540513848454211763212197300437382647614755065267394050598621754206164807929603080305735899968700450211987148462438507028916052346318629351080950927615835336013053413019430540493836777557054616423832858554648369235190003523327493369097364788741782338210024175935964607254647846968651923777273712917978674979260958126266182110880663260623479768175317420084716951071937388745333190693566703185121404145380294672202262127158863465229421010332315049465759429580046592878327592328379400893938552818336233833753969569158517652888700494131019362739714323946455788923937079805641951178765091376241110029203593356161014216672359896782837539906296442762634550548286512350665288939675181193285211061747726368003493918031 diff --git a/2018/republic/10-12_d1/pagini/tests/49_pattern.txt b/2018/republic/10-12_d1/pagini/tests/49_pattern.txt new file mode 100644 index 0000000..996dad6 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/49_pattern.txt @@ -0,0 +1 @@ +89849 diff --git a/2018/republic/10-12_d1/pagini/tests/50_input.txt b/2018/republic/10-12_d1/pagini/tests/50_input.txt new file mode 100644 index 0000000..e04df0f --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/50_input.txt @@ -0,0 +1 @@ +704729045574344446557907857746305396555297250115352699268373446290743249063226267672167162393020110012436920802243023114044350531078752953831165577579077367738086885275658126758349452911778763369338705693841495074717471660160937934004811959169520665561647872252956127904897591407761661909419396133663690321449399108468848019130297716965104425941615692255864892589458685242327655721812376275095806898325326299657647122977318129577597854214881465795866611950200746008393077781075097440694252170072365280548757032576879314706621036928432047055818529045548039521895373075555874453609612881898691915574509940758469815773875841571313569135616773408849832845776657968864691599076545497140494288411084653968570408099154585370976316592706220570358339844099721865391811164553000436533950854507383906570195064365568808956092541305416197960006407475418956798999074114094709310082702313314464631334894695101127393472629380044433644161278869981851302989780496460139610770612887562621881751356267651923403772128035039740780176126855188911750172559740882824611411586180989596136452957616553509333355723727442372158916347556863468384494742393516425295012633042359862781623770253539789094173923938968534530002939652088964271008717537245026485397727220815681108384911938194210619704491726351973978796253152812105544453979079480252448590896953009768340313269525631158576296173873620349934320438974096267868064632212965481436616930948951141027496463222781974302498864526134524991316769981309837125682827797916432782499981121005153651241269204443515284669463008723396744018367436878998369119623336307541823990469887379908045580199864223976129583178767117490997687747633017628649755360652329096883960556656920843055737529059560692693887747598674576434354142716090662604831461361406609031174552283096761448108108444636517860297706590556925029381637404648542978435167662335260747662226828928724990874071207199030924901274972654770273892122403224500211581248579944767530694259994480309360912516470308439167155709038080692401885282314814917962893252136777429209251269767659350789205356344299270600246776390033122861912283172629106660139234973690234835858878823187038521978285657223044720138420654937042279072151418747381907057357658900878428251085813766325813149395116982571610359455306201761057365635664493417452856642861050396994674574990655923875976648620321060031831448406682538659302759108535695136861525123889836418285385564758280581764000366062101495338128877357897389838829624147830069140178078041376746417177921193897017495665005451595983992084132026691291118404523657969648256607928154837901681491193794883707361783094515117610970938376539121820954048921856884692584794604342350129063883420781311965657739376994310572813133101548573487420928841407948047308583667474281791650996216538833623428871790217267153891962983859228663094136668596751771511277423771226118679928367515567505523679964386471680922260405076330532167695955185310542923234024864147880679386389639446336107150116161428394945633711687516676257761272463003759552652248921988895630190773556595158012697091848991906676146189865439255302783987990050002117453725349512856252963777437931805253994316302850745541977899597801912519371257982448483650448593981856027784277700651917396882096624410691641856592981158479370380440011698223152898889596828737844555623778621062572745715471758004098434125786386367063532982658536644598175946961388714729605712182551496477719913315540530991401480740073288013815737608927694108201487874661250797183064910614341325524288155745955617329041897271562548047647543256021668511076482716952652648434912699913832067094977645049799024244448855817556216172365135145839517867931633691470267729247010004001542371058057553508065029800355170821544884032690528881999479721969324129169438335986548474086961959020209232799393999424271955568421723079556081627391859063795523749678618401703260097165322088322461918339984017439314556816701098518422574977778507949471081188425742213421654476079528285614305352829550200132820855213494761858859482966926412212784048496075504022429533917988791045879702143021668256027217142425829422386945778054611092300940599426425487943029545328127328542866578073515637466874498676121028976917135671504283204740170507125585976653139840735658052662447847890300842909927943258610232461827597203250777542718019086531989037840419902836811232674410542103123325832772851961185823881710828350594530075140474524482289357170944781580781719183431063896538716050242208444718217588499709028501780557650400461775446519468500151374396312291190123770918760050184895234930941005342841578286543162052796303480192674127279195193595115219351963397366819347617798057788866152888401590757721142744646491396311859892873037920684749917439290521820798222971262433132373422258923115557482954159043725884005133733412501736239980687331455037134254651850031263340341287269657124169449031541019114564101255356984819326427240625825473134924907726364720247170717231295023025027909222061676341941386120027514329876884058333144367417258399831400851751972618708600205278074785264779562767920320945658982659967462156838054446581727354391858074980284589588670054716264417761677107823042627145682606912368117783327732001828611745545112919411998653376663690971867943324685045245249058481085527033207090219973645418049174101740406128863993150997718603505795893406174144933939692697809697307435394999461478533446348613243018158582037805216506469126421073336861562558573280200660721934744168989350706011660167409089386849527090893848324964308473227135701675572566040788282863296017421456257182442945566890106405310721825998108054099148049962580375850934146580578172801432579779341486858868451842940821636567469252313825336341035697756305508508027898517643915955868957729662011130589087629813617096356477449260532086917140617494169961415939016447541015455010256314604430639782012558975643340106152931451186437276443212590870569311321880923258230408868884459601632446941020937290714059346705830693951644074720623285903600197339826684038495943425945972582011364636545212874953509698669139230074239837271157292016457721893726775260936062659513723430385809275723245361591410629409345137900391897878263148232510835122021837487978565725951056017484219861085142064604437964861598853150705496197914828979393355630617377026169149439572671282640453448350370649265310798475148534608793893680676743420645724433919035272757408394107847456157899143405682788542981882711947271749004219810272892963310387643015013506294104209329963779295171881141475515213687408143363546206176911837918271992201394752960885542692271209739279547724943238118952907048373308191222852901240107746096420715037858523740453165945842239281810197881002141915897716918299482843223725234384030612356256058376697268829279069629420999650204594533310204645756996623566976909118698510473426727123719888525166534674094212480953197950864504250322737003070803193933005503183518709792279413562716643626328179770704251809517336340726882912284117018928566663577339362135889291732909484817457298136736411819593962316978245767430364842812400588293949844255173116277755217032181386531154380980702225157712961290251376032680437348444664858313739110965826746624048095013269896584202462156799307873201389606108391438529860831044364926220580347008160592601511850423539467321712829513251664991720587337561497838549138433872851469535594993672269711580728755139868101187658427975827474936773649914140389467067398992740957219838660427843081361841078715135394479549305153783996808036585146715024915488155960231926676046860749899202591890936360341260349823667975655176825397150807188566972005232798501018270892833081674879659914017637265265300885024668452309305616406529859038027283486360284973520249710130056801622966665430645964845276445180621798788635855385956628574710755813131195854624073904013307230561190220796895838387995891919096967853020108634751508679194253687446349407211994344035991993696500712598771724341089221110969529046345829586957469656314780434218856401915457179043977475719173812593232155399143163496140387916139242318429906894971781458445105187927559070930562474872612558604123243563151282144716302885654763002021746413103665686792442813749063187833397620551488167000828954317976500927556225857122763725550650878608779826672509620973376108580818592398211716075903833094215940945811539563782782250401126747785618701464816062067516191975335805286679403409514590777101178511018192224579519408451163964898864425913416074492947150400604577421006509693896292639296898862099288385048959415808043837688972923505474712454839690281181440784203032680965309619129861242716357661597399705240446701792759867612014360749696086841594876399745200386531420142657566285577877576029087732653696463035511089913975800927706168191478938568827920402557439316577306965596612338766575081547381344746645552000673890435075655124651281523825123667421535006541316002236278530097903741310071810572645963696699162479348585635538167039396328874123561922340774383878144592245875235344270107097815391697900676689480101574449696159865025077723152727253234944621605640895237085890270602250872019439820219796104991518051966078877935448967620468020931573763244763811865199327354233409177555587422881312577591532192531228472256503280130298265296595189971634044945587140259151496160369072358400874245879799108862727991951134102627626512389641554287869735473408785533337470214501034505759659739710469547476949570842074756820139741976092902695229720124987461529649314066591939050023896690712043800357823830038092119512174246590637739325683682147569665580005172677080459269143160812491126707715324534176149036029581049635736423745228870946736687026495270178720105834521106229461912758671953818573974790695331879280979670369583293207330483835758959702451499361658048506359615665866802450798843226603148168148954824193839515848435936922713097502015186660361874488248074293340684567153489630699800768452864188882368269120223182291195940669233882533720238063404687590308508008185950654658544847005400388301790487342566030695365402556005388820885711235618111889339006025267734724148117336720048463989669696938714542960988981998300873153385617482777280351172993950791679451569925577654966639859374920821760752267317795400790977480584758574342299336389117647297315280274627079498561015308985234284820190686427562712570472728651932603015765432749510649138628015146817664406040084158441831950131887114988537748128388942420416360600407734440027326219722158053514069354388412579492045059085668514331832658919349509839205757312442553344182780387767794765345479355417842933404878688854816187884280987399992154455427572212841461764725758701796397479974781903617761605793310240687421060781031316462897990256845577629155308593916191746630537334019434642323095537850163814147189947502664298215294344635878651056254664884961303183467248440500041865855824175507774034163105048575841262133523185876222900470331963212609740791654727119641611862804079906710309277951017691699163454117152724850161201734598057447622421916625982603895964351613396206957159559452138400784916043739160378313442426677881186474769077684200351856765170169392199045102996731667300339602723433217478879855680896823380421245780427824089954382752822091427679290986193229654107984867941923828627196922202069035052130109722059392844807661966498765296328293600692895458859149153152865236246836757842604123648654255549928963835303669717621999858986494132265591131549648641567195270868848840200604020113988414008501298507783824276730870369715469923935532390771288103979028210309828659857286018123504427350096226750516944649210140345939678137606137407982868215589366835265701363653693115844042717931198697249476369464006622500605295482352760127302233587714165809564059994831580536877716628239886672176822707956976552109871312181783469706453997099827747652917350386348199356479582900118777463198456118380995245163798311855053854182054785038159113362261564612437481713479068026776573118680909596445634694835759894313303759299445151610754191507276229872603838753556962032682244053795503889565769080076375111713589776069907340129264983524157985879793402703513678651409658423426199984494109725428802327498926851345730776454483819704198325289370355556433053322196165520366679762020866911769462629840722942659953036396624178522728171697177904828800750528680049828401006077491129994970536256003584277288122003288958674908827483249534289956981627554029747363865004209736750477613487611707906872400676256602454037304629039200649425516592261608562580380956715993355174357157633454949487877181151628552542251432666125566398011920213972840216830444743309089159481074990862247402198528724372747877326282064273076290307782014414524295282045970927408074439939075033632759899183673623535754493366358005476659034301443995396174417038506877364574053304329590734722749068903542255595697083851697458479594676206617537589161850368284582884861431124001611705772258455402902821736703945063766539620735259672672007056829363222265564394526625125338046243721949157399266633117937194021560540988389998168149708482853839103345426960901297808949848380034990466586593507319085595053773678190304263248119380206438663420542861745257392164532152961658547426613032564638450617212100743212098740427556639880076509746827409248490489980856254060666280595038668210824395526833011213202763257746608053746687747932533181379043639399393439856391874849679784892129663392921184758396166659997160584919015832760059724205418208800161509509016590331267614190893433957513833995708205858560489568906625143371047099179432203128813149970832954143967622575547918194691628509193093898263250024868302037791391512485343997748285697686599589268165746217320958762306719905806171877355337051740652974001049192509266903079721261544550997185108986694689620606473236976809057815375194775244656895662157280654599198101124416643758134977859112628275545764009068963749496934296382763622588199011165775262544887853045843213304336413259032927207304974142275623825708166136514666126052607085805098213785636019697915533055536373804506115753863272320590471218152016956369961039180814631969828292534452430310314375505120480502156029000981370235833338802862702627214205631665222473161990053232407461188238822236021341292910968617407383381185247082188414114413007622396030059616010358005454516717927499798005629116177890647989121307113197930552814181815498830888130589557921341648280505467825000171172855964421887707649624240882164874112644905700102477434623591921353378061021809719527532417302471141987283165593745076619836916847109061116558817869279242286703654908101117882664623180600971944452090809256448770525019365215152051573956489189476606352778883436170142214342946702681565478140751563576964056815758987878861118892270000953727582029740765704547647711471263961011749070091417634508319201879147480580330829796579712676443130316659630909138059874723033109833382511470880122702611009836920937977002867298712327842121186725562391544064124850066139497908999372544651287701012725673337003822872440394931657901553157587200514854143650459561111039748808733166865868876783714502019854339942352531943709045485167168916795333318672673355882161376212357126444631830333847302721286284904939801383409389964986120317232197969937403771522930032746139310380865472482469856214542091093110492922365644719490679502072426127869212315289107550160775970579440224529481193773730118515956251782763243347825937556812241475992588157727524952656467263547212936904458121230809569942560326736535137161906865636256761054281310819903791322088449983391792347218226880516797224482104700407216170564727190267608608139341781973723959873991356839055640577731410215044486857088050047227713935227310627829943613440258004470602149528911479646432010829825092669499004095443467634136438903125053874914182818736505160302717826742534321800237835409516115769017534407610185616303981513201440485849852629871563268872441211577573516446000904394468257054897186500393483646060121068470891133595677676806066854316216488134822998730173202936016857237496221850126515383298997070625179051453871544629015164261984058529178640971950995988538300702318405213821784263912882194935972156710868977518541000636373949074120666615604441086692668630361192316808998678966057375766979943760952158422253686753746524277809117060418090789650523806893043756440281143683481299706501230254649371780008493274506220207363120580759499643118154835011158404427941775340268367915639998547659696846603927219320271217091022954259189993459535896607010243989888088708382934369131959976052852385633330032498655453900866817088758409373795513698500418195671498602178095220365644720889860477382126909249641366665147729703908057689554928762931508385710113711444534482947956216694747862241920460571237753408990577761945166744654425371694509407439337737211923314386107874963066593140975557890473954450176143540923219940461957420975195090272264366709247041077001644265119408271209935657226408301245384518573010635539631219631976339994209915738430326864100777404968165364127924855278926469345556027432097754634636895158737699289621226231713094050353737610041776662350832688379927502131582759541410723671885885078243941030433899440347888606467252221124286881199030609043065467294711414443191202555489509819198799264151861643499506919686698672540425135756907674551408984856183336262838452950614827021402832849439077080774491838538986063770909703778802598141670905281511499630577414300751290538129185710476993111900010197760883339881487817176818503898840306247012096855226404816730405281673553790745953025887195960304180305906312235226580198031893787279947338900336653501482172284347966363451173133637941204150993541523997556670784670563548752080521666656739776930999996166928145404612266227134509822805822011318522325388030337548826645329918861245047012393786709190811872215910627824171511615516100795847648406319575491845905401993152649412168373832387502182875097083380889789060963079816849960919749056058886927987885942168456884971973284608387563766984327688655751784188671221781118529753730411271052922173779471119165518539712606199257332941850035696005934267365167274559441146745066233039638506487786207899924602743067329006035322742761868873505210311817570476973661000778076758598344392310635408024894083910207280299340704967750156020648515305186025801260552646169201013303951450417213969606932200640246350565725104633277973742804856358881945399243696182932259550011818265117498594655375429391861945792118708383049338814053132870599758062616833254216959837499552250322835918859721180024213593599341910750697750447166477384331229450121968604401714656883480973842676521008414298176917789488505132044460657497028369055278327999587778467713497402698482119800124406771059627865165760081759746521621252374501343858853468322757137500496818564791218203920619275504102713674565955836810917185029693881015262882921868107146286550604239157011937062526408847696115568713188804352441488126114081614913967914908416964423566732048341659910646366401963818409171685529803526298906449401267002108570701538428771936510731975337550714750425847587012970949353392385910564763992190615386091506692832714680080408190812159206277823712599093996203950848096909844732143117019101603945850128818838678939840462231852903053342895636904334150903260780834997615015299529126145564271021784383828562386288865769017097476310326520776641431777932370497918315117836374501904907436625193642450264844273862625698546622790888282434687270021350200720062074381876189743339615041838786270801654957337285566658908305411583540766388246717643186003253770639177921972087961377345718727632030345701205983542878894893412403900240186051757759046863797459320966709786979350629777026307459966320522571004301772964793810757639166152007710404242412539487503592038589281456389398986554482166722501822272351204475406195307179308896517753761922514009480099941760705528108619868008128684639069027441943936862733638327557405288356322906787248887347893845208134506643762618578728211720954804104943561307802115090423505713799724770342370775813696033376982452002103714976174570368357915701011920193502347128997655967138600522142355271562704940160887987814954994391423083327644433368828032735305761822430342194218854173416641240046368636567279281329472300041932401213035967490179311016962244582326512479412336041344409078612550130034603537133412514936280320779522637778631537682728360850851032315415449749504255679280637212119368718594711698113348495707301059951786390693659280135856510705114097984621864959357478793914159698600854110179362189389531834496020884331364817116395412711089009774336797007794762152394894888957282159954307144162775160019007951288181557157212755192042565630013751655982944806756698758678345330223691286127748050399513244555304152241288637928380800697008780955958070362137019677054775844150518698578561702220190219233289893922176519014232438061024861095195012274441400747825389083239814834611665897488816360099163559907406496995806796658635440284769592283572248532562436146097242469757254534615998596742926502097689187056031856997428410933496877259741883292475490841906639872059091236882227497689391884360131195122313572747126087695837549558430467741903813486315142133378877480582550115023205514347284181628594229631861144681252148765248334939437852951260230118396807201209867915309646949743474051242933342025161893164084344220511510050399139544141175033916398616208584926635433586772571819277561153600101158278905342101515966562566279620326439195053226310042456856754343477826071817502439693136923224222880274181734414511672105132186511822472030783679381696270116655939442907146585067824968076098424569493663164556188781191530223821394227003622714468089398264619647795774858831481251996947646272825700573871181426945633827517467345762766264895656038408422300310907352660831920777078045783224682367210953207944480336372174847699721731725827603102267366899684790352684796419890643320160418933480718274138180107703336596322894542063443336606841260506047847228153383606466526002979278356388093395464788142936000889023142857044238679979843083847894521550297437710345163362338111475544174695409391391387390726486690716378082081943967176115860396047776552376432589392769333862533074777116377809728109725249050199320705401927184400338370170944114620061272330503138957742515215443719335211613088269848516340791504535450533879695922228002930963831696422949693298334161578172314205862002039970082977982079048771103625758026109116644566182047188208320656711129470755565226760615567321725587018604588709439412533528811510438057109105796156190469465986113428064168805048892423772675177902700066682302707410634917312442898632014689761015672042050299682077818496671396083135999583657577901513889459794714211634412511993771759573895147991360400730213533383176929949866522117849768802276082803290457691067994246987305294582576671834344146594764117221155444190544557840723493523431807928028367834489016103973376556018733062385602379989770574523054456974992017036744432210456378455058314915729191498186841957412871378601093805540169875052336562925733309562654457680009030408162065897116673704830708672774326282162013829516164443276551182543983953180027157162093536480244991855170134247871649658770421468656087985054579992142443160510131576066820801396095454326513978320282225519263102302102992884203763782071073172193166375479385404744566095120312178591640011201341963992497910742182402780919009156790327550752944987580371672217524928526001511642308441103406959344825615623266472118331565327644653861159358158951498590905131423284419785460370846162382309702586378326883636916383220549320498684332121661603846042054451186144303616073599711880287686929758782187318350838940219585999571888686211676634309539508574931087092759484388238684515669973080997395250157460964912078311992940604300972470852105601136644583217556114747390071685412440371955144267267464908033710451672495955860097960576427867372311087341030672428502768871363371469048964099233460667990313454734819826622883097868254053977597597865081862048854774075474027970327024546805566671354633264999372453859992901405819739559673028419070011993244667904344112302428987630195911274964717019323054535679964213942943015582572740788450035287335471324886635644929303823122134347533915345209156287896385860191527450174073302870885237537272926011863190427530316825757533592261098053237224010637109923251201723552373290127013164820257832699364694678166640220822563154069790317869919210159256896872682307208548207706918228944678207408010049644890248908089430939717357250787009275276084154090677109034969463031941803556164949049331491595480313548705029473275564014892591418476259735082812265516185906255538956382536862654009024174500852651938888256477850956610466564728885883985126770965380246348817656000527049499486160233164997063270547815799782279924193491421318177737825441828439507644251987047072461598595217115274443536502273502990096805884931332351794238264085008068727654772070879699078634409526823013834344539977770312106072019963323197961636379933247882308857571033593405568584958602360529099870903863761490016105507651394699435062370025941994212716007668847284499791777321770861096137979851545452934110282354570387555678880208684916994759655471668436190924092447711195570823732683590204742942762697207832086737389970750065501449835541627180543844078582278691278421970038132880017622121542065678310123178841334944364696773338501824020160149743802300091374032629871846190686411743553645230633845850324708054249608264478164917329158472384141727129645862193772424899381473807025003466166643323658220348996837101210958737227771118628753142412261374779158498461150071261383494169622286595074284828246918646920995945323914957453316602085297682608774533329029057324660146574796580315510545184700896753215642440952143356868199357171037492904565202597444460557839379827150182665376010248157520698570293455583618014399599406233938120962522523033735705453405112347931903436539802245791911293926657417240695959656385112636086338501113666660527205356081366834709432721611036640833217866093364150362945614899779216310161899846891704285645281061014900072603704849456023609665077491926876925389105545776313404503680411406753139449799603577177994319690651216561052989117138533926635621617197834158476568048220081824494671373679413518163156973108789876965488174654259254153162263443009546272286414982836730756118587065395518393208507306814247138198470865114835866819658440647391707695787860376443281081463464893666546866676271576954504954662669859235939395906948762311499549485927333482488351163635996311333792351215414451028386894450617902317989804994481415242360621631327222811929633548333202301667135024163680819879340176378058571066490833211754306059218979890556362663091106474679607677851451331134657643744152071417832236489770169318899805224230955312584569487625800714235855306974100274159009263557170389378802233131688231975384873458296805800236312313922872222379380402506190724662180728033765906200477113539510287879435964192296148409507229161527817053973899341323760192541725123021320178252113611627034053952080379115411360356876560251305827561690079366995767771793831864838411617271680698746292067882416940992822548176759083441946487935932615959919239045616809205506457387554267133468233297461027300073189193763242332253311985597647305131473094329517154853233805585407458218960599775456940721294140008880346706839216573066022405705507863793470431479664268358984062704524184902751067311538363702967152793122948016739732787762251703483639981118924255053164659221833919480979186794902201528442609340971456733409580251753175199236538720710811720666887433772113672979022201392107260775889369467964890930394334730516249542434962260400931683561026222298510664938695093541952065674438290949655272055223471408446771967691971684942700494956816247391582124747932975769549389460169535291531774680237077781414857003578586213185588540233464713763884600821272705846583819520459810584267897949295085497298905047396936649540420734741409141765354963754609328008327460317940470527374775826761301939289534120581400447295251011006584432817387048133291480768913327993216532398671307915551561863139507806291118443241041834276503701868139653169612804675529909535949029953655700854368996549718621566254222485768504437041474715052514119244437174200569607624561429556866376493254660398475681140649521233634660504940621308651805609475716790362970131762721958548020564844668803661548546093380088571366191514863839276456249625409785262551820309328504470583463670760352208087067896052773277415732358410298158602449783121858340263152826479804575930576987371976972292414716993741032590559784085397002633110037073987882187811423761312170875622592712760387277612701314962279247192779044804476162440499497105448650819884181836924360979914402600527961643037031895888222672283561645434258901263605200939982734102910561074190529946405605744508814127556655518549885236579427603169967049094495502714592278627307083849348479663147371189575000047866561667940914373961820671926016685249141622340786623243086960798704059111801603823518604397381341642018121337436653747610768417026118848518325949957799098847427311773556381235336595212713508409210295853643587062284114566617182795981096962950578256104134519089164208266968168488939541043417732666158289790500239739817911367691242385671708292215174655517117803086548522738046533671006716729385084941538353482810410875073605703462079503456625480682261593028055708143327263180242093998999612813421722087404201188959732641932304578688574350077604196875199212789826073926492753277399544218297482544824918210622079446193724741197171286968838464659269859118583861669867746543485857289992440216172728728982234891408802903356219946235658440200424219834658268591415011669589705706539847526806542099135747222084981451032168807937297697754747018896255309405958574229860378571289790285632488588961485961952793982520425900992600414466368483400820555504057874406500136207684494409755126411895103769618230718139081630469243379989608814169801441577963855962759421200987663498431439377525321336022306825904822713629658039219259583176633829266331603020461847296969540070594442662095946544120688465118723919728741734127082200963365914417325398652877036836184614419457176429109080750548796972239915016995194001556580977854034948958430562820349985262965120979730719138213685321043884428584134123807371166706489524040540233369181881276389471774724686590343563582626153949880310035316942332726578208989049995812370427751289060487836995131104630638067123729751193459342348257174045573634915663304919976196855648463322287016037953815294512355886034459374975025245387579888533499262364676393683375474939977943551935618815433577485404684750175522932458740586644869863246163583800392682973486254167036358199961000540613236942464988258483546435083039199234615528925490742884846085218780637801732635173277594142713979122906474497754529587902657430438803090978795147562395022269879078134452794669143566074683537455861384551332708412717713192170215372106308935440137938393391445419929815103695551874857919442992378541173418734462284181812373089482424966435978506508311534828816567501107759037321525248886270909436119477140001227669666431232914360540222888035629625340843564714529203081067171188827159872024552551459639984030568519869519551754556809555211673812020589306364847330908863289495005273222209468723375262541043303707176783107246033253620349573428168683611613776082337483532814463793106568284042116642944723311148922875338661526368702459750475690574336102362969882442673116559714563435582469372269321227293167839724325896987069940929046617602437679752391301177548608541554557335262294640716443737987929357014251045345726845162467626413853586244906555750828681535214056115195479662844524520647760100914588402539579569876860975130412962889490246907628776247058003994887126850280783054005654931458334988943599921924683307314382985305841342704220344049217711428050954040867756822063535851829129438446908062754413783672995441014800301645300765675358932244485672663125492098979627664914520787877360291992642401557043464200765682485024905563507604146228278124467261753135662020818539101698676998716539341293389548988620697430839832573700496374520550829363389442235837047518778076415178443728033742796942615750533910307513132823347092808685148603704547659956807220949038067607484107070625156376062265415102412267532148607301400650740165546800932403223835345396682217010296034768865172718390649404725514659668442763698214055585175954759001508658596599398514362055732280877659728475777387198469267527212045484494337218779610923166058248550210870667699043379267362189502982406330051283314592905142965923231980256380033956837472824757373776839846192952178349789384934062389392841420921701910114343549892871359331082068598176357349313414309167205675125632003848580701329916776416433402590183618904144103914394887685975961092359562325955006971923115599135291457778262356715301650399896932002585126096556207135404608918821023511347902049947793191931748994745388333037782321988870883286929680091504276926869378648685030527484054934755735812097556416659169356074113153602784899752169826126573253286177104634273178614888832058416023826123506474206421114552427490713617434367941295240530383479494378150005220555738099285000705013940275945449699029859048303226130861917100000077374593083779080566633126176959429448220843748151941296174415842918519624539248126409415662624790909164178268769850382497061542476396282625245569064011166891727486664782762937553246530059740495447949255839259236002532759650113835180670643006064386884745044835226592909803304112779159440658882560012145853459325020042697628936177357017210447188461214332923263582436259174719709259599930059734473767211083224267456160323316201974085279030102439768296308838368998877361390908117983295609614873084579136928062174276669776252795905890106842748212891347897727605506908939703395039596571446759415669498496342720895629291555360796080328700599132309872345147522913470455668475228541680305869836151887885896590396186566955701094427040012429431948341498073967157684837715358144003449109766408295368076161051143915611698673584527640944789610683537297013654987510591252508956240717418093229626241929303542064266519124812686395343152487765556263868312600548969560041525175109287838721665066813538187322623635650924734557670149605859262757406016051200711317536145849473342929250980051949495560670071486224189495494496392556512229616117578358850021541036554688026593513073983590638371762949006167947237835879590296655207632387586101603802363913526024449342120949021143070029679175151322316703049087750514732768975579645943750612695361557997975534819906877089376390612943288866790940225247440522744295639272928364446014970610621848193103860315852308554315855129989506485459491848480771198694365552586332823618791375979390923306873055087277598845851690138639508273359163958072893792494743954484645562807088340478606571003966871670130385910090911336369491452227682723896639266265438546855753131587143427776505519045434433613245227897331444078489879878195820034900670464771450030065169067799410147707734427664834668327927875802052136031328785445083527389340593320015729294002138972425424028078901157576367687768339706361590201938968192348495270533199638632582048224866712674468747482685096454927735380914802778281797004345380348381673251630979611724696136647093365970585797050855540555508206946682527062007465503715419457195649370379569210938615750132910997742632143213173446238347720575234633667656577830649551560788304685104773370334389516841012439693600015463327174009605859492042729552901754468587148785457468404208245219437390155542638461115078872767687300315955011154605068753514415478603793509407822583091190984226087785797476471589016791897082575778135429574157619138065892932440360880384075559086782362324470314649683931544995527993185842337591738842319566288370042408852451728123645576708505083132403795446686542199269937805633490032627577092747568590009741399497124880343557344258573829926992042195812595591814220503833510956002403272553252133061571322565126696234065085065078401050624008317205323354260482624705927327502751821678805728211694358322165029467549989100247431620978605741307966052059973726785746677983733141090888305549591922977838084459131302367243948561580395203957963609207275695484034570676061041850743968566410796173814528676014282893530378897662347398921042645806117199822938877005008029252657135797762188167437878214907234604575607105780129544276814173512206089514833849545349103708183111284096134257385431643962457035568364837899657256481790362483041276334736051473058752448861496163349571767232304513196220821406091515979104485994591287550698140285251011015108049762001393146682549634849103706039888661244506817955898419978998547345465818446734265556068441509507407923270103383923477802134565067550627616350886008287122373849114384115116221045126264377354455374881380961161903243809380068079412516825736244621045527124217557009003898351194634263253539537316751496722444755001955675808965516306043145989347390677246701052335842625322758987625165877284908525937940544474878470969350907852989663647135198929988451799054252524876010627036950838407857273648086211131407917818163066200274738726011801514339932418304544962154569854894748989586887355780771051155102273017697152960098663597176989769904344559736840842419415125352259486429321635971223336865731833156779730199826435289878734513430005815559752427838945764545451430162215440549011221252034191514170863275003986959004733588467248805136562252207605844771174623836058065367843399613174818840712414568850649701935813017293969398267432410014491058767350742030760993308917768077587134135010086221730904214900256581106072880933576783845150808972958464211653791646681207536061088730910815760851980527963615217600846862175187083527394897820976142729448485176792398835608588037010064570064339832415847726939922920796460218362074349528355152042307417714676366114559080456880688896721073706321595736232957145468504200896404447010736176347807706014899714542575344363260675255831771468750902961058833670082664978692394534858166151905608583903813990368450717746686611158122807040188557942536023723220121580787436085303174235548147864617736907974341711949556837781393615192751095707050539953394132620520701176242503227321924363439020974075516762409090508163806516132198739242448194504183684581935972237681337503891251919954872821407100968067289153681852101297474330494851218427035272290442755134094596527423112609909622220392082927586299292453562426461359074520894994959333282579560865761968800087702627100032743681086886375746891003669423978385374273847328899062583041889347929939501079507401260069919666727847056510871517645400630496769687521095149607341476197597522911569297064739594674176693866141445887103058851458619886352370662207639180817236275283737943706840600445590912417286457125046988751836796258847025475386701393873815456036290288449124659069783575684812927322533720692641625376457476836388302327962452152154688488745302664559487592205758149441479535053206339419545304822302127553679050815382807636620800627767293777925983170997903462635946144572091869785547323138488632090314144880864570190266690339376328939897332566659896423135980863437534217779263881426201152873720431177907541566270007382096790943620457161620151041175110070794620134077131291180729713345407652882627425704410300765205745853289119809437706001979307986389512219302081803505321320192735419567533263862454092458639820002378017983352964008601659890299986705667411017317447401201241544941782235459294244486713781380379408065751322682186792146317759606142081993505210406297477824348034974284211150823859399811592024045187798319721918018715243067485931018685163789330391533886372446512771705433587066058376770563183020361024682323789107053210096697446247934268105244067706444455475106088442658651709440398935804532589276271736496828598597604908916494396209907748916186169056565828181286748023658628554240667177657762656349263441562427213656277667087033848851077493503234965588356780338769286843263850109248433424938882739413038049880337294470048131988564481345037265629613006684831146278742126188660840295678683260958323173597930231006348504327752087162810518721098247507531309244917335631483349550560006141855852716126335471337213597590514096961631884080272098591462712180369557784049081878325236849307874295471557123045084805057593716282478328815153680282079959814449423416360854721136296659845980860475684366334258850813498865679167099509738311392081647145538533330829330937332485883593473174485456602060674247342595007920040600498504592317136116828185980940352460539931773134672865336088820692417666617100132875941864890913732879661594207246443499259839084352241778814073381180598066471182016811869947301731247152616568186728998220364196873319167483717989681304509025098655405914361270809100762339729780208093531495338519641837970166627292740759571963547112313220829929909677337992161887661218392679373075473612340662185190402771944641370294882915951109718206881735060940423050599112719263000205177794380750135388886543496923393949600055473901362090205560155986716742301814879978910291285990423482598346039870460124516184685801695537875850224015272846931664673752641347757841261851049042260865610237611108237699093535255777282395523513455172657170672229098110007382486919109653460524928060266806239776940497181988190173930304101467558807565346796991103716025630182616940578414598862822183687156760362085257944844251061225382276635825781582330410823301595397227821126832127010085524876686512744213896754109173239809877788357054082250091670200776313699214438477261046948698423915506740742220818880813733420644608669783308586280680479188820930838245737155536790325441410735753165084071983252137341350948950711184969642705739465792042738620472192925247603115942343329165601353603480092749017308949357699155888939197105748933325001986267590413993814117882661147999441577444333753118309558313016510782956540214267956948529704885214142636266967457016822943210684955280659933098600976319819521791448086373783568823973094438959065387182781544721923612672945662368074567586718262226665872877480279813810801087762636466934160536817237617713600483539658799856720567896913514078129519471447952459094733146326062049491807117500299546936641732800814203601157684357070870619723445993264175535957091663220429459728475210553760611663469364542736475462172528509061121325675782122754431398142420193230139342103318326272907075015867863697270113370748026286627394818523537891004343568147838839066328226021671651010674311029393283539498051041860454408009690574901736168835827221121112023236686219037221055734032777666239761878888639139203871378493132759144564707361547387102628728014837047793020358031474059061942180810317757918343001964930548200104330518699924459519891920052793192522139667290614350171631485765296108869694982962321486930636509618928622673098863400203332697169771998465699551133495240421238898301297781748863170916681788308052126511705149133871475003648586748438355060036357435028622162946414482560207027391194637099343616246289323819037319197636423002229798509418763003640018879804342232869885484334186956880656982326391775296809099292996009050285606320356948482089046593959106744240794544557025228447422670450984028162233283482266497939287916419723799967535011705481237562039187278586821300084608042230566452261701964908748637045022155497351120140583746047989028060321783485174964039358440031175501761059291107518158899115950532145982954126772266356664397797279899530628340336202674641172155379974573276697756844091074882090593460230396666170895246767768554307236118361126847373675210140018554520107112866189440606275479194558345387949335329238411225796364376289555167601521296301329700445968651211873683844627660656191956975951398982957155294192727101788184896094913156072252490472969787011935045790590489690085163694850749838605607094710424267096956386512879321804057599217805434141985578899290246009319164222831043147547923585727408859730984004782778936593631045238117408436295504589878006676553295673392895480875811310193263857963954090753146901870854067776590043915432248593122240773749573098713439771772485496343881017876815383000106691861175850306736380797556784821080305011493990738518864698095493103923770496040158708100244563079570163673132133387766988897488764156514236062007379389841651596022747315297513921682552905648144642437329642172010869592346300432002395421565858179008706769143553177571894803842274197817476254634011594976567460734817710467673296274633653910250599548115660115984403818490552291797004661978227900007367256948230093146370901098800567232876795399720159006218602364625049172158406303129927748669258915662429079895042205435092635875038121778113300499416899985639375416156360875744764805890189261792408453617745977017511044607617067474057710329848417836450433055079603399243189865094045996078276191461186454078527058299858245493470006717979023283122229523907229409192991088410997291087084478307129567290473668455233033706227134539610547331796145610103417690318912169204009651405176160159587622670698284008602516551934804621948968364628044337345575903307649153248686736517229828457936948941069995971225889644864149927438298560830868332478239867588762788634751385479152419779322983901470338328128197864427749779584623228436160713816001203732137989674216286642860109393211281755741875538965382981600477909859568980843107983684956190460019668194350951831819885878719183799382000303870833688611064053567266651430542394470420545994423518998733198053035102947722270256639016714352072197073072495771591174777410228116827462816464092433990273245255130645864701666149192118060907175668948789111723606705199791788459717437221694689615953308255386295501206381247242252382119473374538965224958563273632839633788041893728441546272706548676157608959593631013035249348053643646132638842237093069662113726320318678099060516776279342704641258009122038164861866608930666007542227104711129873491771472008586954126375540118731183979989253475214348405103835787009782836740711082694053021047662602616431249754421545998031197979121730315472941067285795710693807462991378261700932768043779528302237103632004896946662505780557201584418336233032830024001074928528921780879860479517686124395246336592740203981391515028506835343473641513464358665150505951464071423103937248221056922730127960702761118774380125056204398312570396082515776199980478345173919905615762860882884851501609214249358231603433882096896258420630769041021824523923205200340219520622108437536897377294147542395564317832019014538177673400113202545969837030802780679646804338415962387268899285589230493406159722908076731057815411229038597741825495435389378431096369164936295800235775290038375804801444458859908989160461543606528425290111302278320838030497208102381742467970649522247793154543369180289724982115483788107577684661212155363530378693223678430681896023157078621273690993819901241996719974339673281287784708345816492976342778782817681138910531145584934072773369551516572330515711835336409301988851518958897919077323287357890383770859779832226929138584427865379541623624832273007845777881183643539870123906270516475910375987001363287217629278217912014451107597228273371802333348609484709514329518009455393282138474819394446974103364816295400208944185486614613948492642678585217141735277643428067073189801607855777606539772208096649719971522338343915357248692636061127936659315297659942099615742442848035527321296402571246917724216651608063324582780119515943860486931147992667586695196988227040109639091643812435568982011324457899392654077466946767645027418582267004390118213915120094941026624054309606711274559512949443405126632212918143898786914511409413914675617805037348252507475893072732852860231990915388973336298250502706797512089501631883289947653644700781683637070326709100943948152172657382009522057239443680485968845143884817997415281141446047697176510423556497053711338210529023169448645745217895728234031122850225666371596536210920858977496917108887835015503599804943198306657876017571693729655036788383380997598588176207897452650732896343607467335324564121973445461326437019587756822238095360294503829352798976830550514333666942929754476210407871051793139763084287319410815822015777199753947972679711538075978075695971016362363516203802797301225878412472238416658282815913771054984610021343244569483092189745988861322199448080229909180971393668149183777038278777129509096041385448030251506235225147710183893874332496270685854022168515334718023105159629187433586983749031721008369450336056297156707962910405339005468992262024656352943493180305735548504096360191658038483799335652411070262086123891860102667001915403669063089244327625590235406355404638391049598938076706357323931440586594147515582516958422459806820020103699611350449363450905465485091814041502727793472793195790610366149604239229216944938902733529127671395990511029462517102162489682449043118794257033282875675372897819495409224075953240431270532372805833387845165267209485647462888727199910249299501055133124836734134776331020089530516078190288271053543055816522619001540267083462832058995427200357748060749576919639024091224869018598375927552651615072943832619476947890748381553760823872174531770258929964408318421069488183839824726156631426532430145418214341511805653524188375129105836116229696850852533732105394366988328770145155266361505468368504060623948477042386859285257812322615030599342268624441193331095532906728816352998027498851284450053265257699881230446016890835785263688308521069952472903038425417692943149047435246224706559585458002758642655454724591719890502274336608700863588249948882995657765801252302472057483371057229119570884975216188147867731419373056564278896289111300382898172340183023931650009544939223476079343897103994090885952699681292108929779794623557146847113635540715495698532811045603502713096241371696901138076658522542241154813361602727160461625171646426943393290454309045167146074740541231850643744439012049031066379418192412755125442976051363700960477674106728822138215816621959872430849646362002378986562071167808634601134842315841902884305421522136568228394307875815821880955362986178422297713795553572681818198273902699388776529315722064907010463635664258608545203035569700704788354378545271901439510082654388795582347084675578348261869278341848590363864125685987549500276577094295304896269432840877604585501117114096080777189841960597921978189541682260184856622910708563620446741460770504769333253044611210218558171838110359685786549366021911644241193689830092980689702611434200379136833756105699181188361769532340877915207930327911659763082624578191685211419769575586058769850076328836242654683444404653987445624674086166065007070891870024837307918238469655482428375580310125596817514835892230200786368471904283761484763353221853076928984677035616458017835943375008711318757386476352015357838850280200906650557422255025605403046982224695746466815924121769265519540499476683953208183694251018615769523756086708371440160482655881980690004991028311907200787526826377572817638824232223676990390394876373524633877227449435507447830754785956346117732920913725888047920158479474099414933384866104576028740483732931534600539277032846614178061754858681063402534113641050826485495101689220661575211093955559544474839441050813825520325084577560572677530580886317829036088456488577053780685689433364926752575511029072582931351727439622882961027642696175956138316324795500033848837816116278333299930473547918857765171399929243223371871968568738552741350324492192759779330663483342692398868950451581244362271027987116613652807203163290915527792231413391553865145674624914262787355042249116160984931722389483767404396322376380563091895776560879794213221899942105616014894154055631389717687150363698624363538551252878411021785696618189269667890130535143200494573553356125162802029326729172951721068125692265898719010230998609483589828812524607900366176582961648173895838363997916329502244935413087800911745649008333279598716624400329631387190866779011041557046200203868639703718355279382523129431786100224355517349393442815301736954207448606460985968033815310190942622386915044772563756116171961080007795788001197321762434571627426673728249382110189174736677722936076876621163492672241107329698803150924349753882697170244495989245762268901285649807490577495303868614496436633857438756377624485519140853791352839416644982968498343062279347856236025624690542029833737596061264501499878522306761493104490943765940000168783427693818323128828892877592942865925146763591325391366480432475345971000112387182580097704747209200227330558907926785512857754188874568909941834386440074632668685281554920510294674400544586032074617272942143343304049033481267541335335713449002144723726447251277424558341443512060588567430162470599187417403253221791519609145500128750674497035398281202536901696722956703063656298051365899346633584582401105213378494798482153703253086126175307548049138075994527949527016520801389814821713758144877283864034991755711208422075347699005666077793702697624570455374300227016624466057136329441355136483964648315861826294632304382255623007672760661193264178689718745134917847576536217085226828049763970133866726522709889230922361882756222991823343228715537012486136995775156170321946674241616763992771594716799172082618456512106989187259974190545005801770752673603829701966395001540626503203242906915256715572646752306392493919467512873449004003078025963722392211994644202343254845418200626709944897745035938826897649464769935213456558160141874123042264091768862016790238858799753157390202099256023140495117493570983388212399643237674008171649909912848805179860138726788590439160318966120523557128993297200391759373177087687017349746703237240515198864980929678737217831565740121296933775340006623137563271925997107434489119770639433687831638391011774779524498288590194205016932810400456111120610174723115735177923254327346942094834374912233227919333416534170576653691389841189672620058831455986108496432340625791681081119389609998768915232895915749298895151749524238252574831736647951956863156636410117566684930484546234718302483035399141999620666399629294331987733657646807360423724394239350180237516108709101460346418507166597155659532982162353663471069188390224442474109466242135859326848134220161813096123132410803844927388001341312926076491643938980299752175009172827317399179457850998509685689023626302295709739207764129519969962515098566770390913873173834521764940669761901387168773074793894477643204539267845190662131268585096790900687644188578717331460233397787021622232228218891905568567762874756300344430207770574183360399784624797395709975747848396772051115319005938925831463894949714417573225962302041071506025765053191337647889748948593578215097150882945097347496236779649515495902091132805511633384265883879905346106625870393680935424637188885770213656211416842235881881395381783965048951102367732934427777267600744337558307565543510721331328972326078309900670043639714747303903822207318817922683910790154213450514922082595277431163960006937160197375162216242928736440832090845892918832954956231548320443902857869425454499320572675545175255935987845775055163816502541854628372329232287488556421824802091840673005835145419845321461356132523908092704561598551819668057697450439201684345745667369956458888070103547434688888291935978962599989810420487935529939660456846595949117241214691563026808093364398397809801859098595647766559454165702899450486330551991949372255395045112650089135155952771709285440694449450276756407755968252127540791687187999155931447065554642831631088540951678154902618264547489807084105965618050809997191062285123037422164391088566864749294257148148945856815987236821954024677191006145634290836803267526834102001540109409302109275164785739802240238990172249550560793380660510035034002648023402718759056327486495886233824707465868062956318456573061345911194483381182054396641215838816303011054773701137360599578401799048206053893683897562179600920470659965817685409069118167448924113432078879672078201725672548441932978557350321239970127280845635133611545765249838052448013325344683286436095368530049286736095374075881324805445519368301250330247330237642536144989187877125690626838228433142176918171653418054897934404961553254341001733048110950697460128394007290149914918648808783246575208279627704614721403122369739820754263807478294043514990222251699675788250914598858266345363778057064725375824626300243018066770609975394482987313205119722831807729401184282360804790194345569323211330241489777307385232745601679410298712050000451091683382681622966510443729906073311819215289048587470116543566589839976387234509194077466947077481488162813331914764120574272923856928315274118003748370760210221399463803417101544916526502283553345259537599551370978177654238663482036302983248592699063024695973339318438800230049490481528600215476983489981676045445913434721120020500648098415739474544689608909596371262005295995876779680991120992867014354187974688408534555371208474815836160111540968810534186754393591376373708398298140787987163230752751363854980131247145855518827895339800726742101015320162362873285140116673479320078137903976652529831015509932188982616351501707320425146395673999956185468151341020582724826954092913332376507064969196630743292904090732346296887524584248823606676630064711733730628789316113772824156820865442198333583196800221987830340951417890417860743447163814486934807545324647253832713120187265228460846114005456400274519243645600847256368288577575189451520215297772595873798965986852596593040075564192666019250259006031251701758400204769039464474878083900807848506088314801280438510213374691634016792011956950512212304749613198710931358209278275950651635792489670932978136050216706996442806298779548102004599407551705748091969536881854919247966999768036678337474593367021011504115968369056273302507753904258372236802658216565959479933563020122371985844564670182601987276682644700820502535654088282771430290330383909174621888241179751950208422121820252373397613439877080975496001606269578900602668921621783629722459370585452416292373830340638225451895377021755791700884909872705776913236158045602493489876355831369117540865474694908287250307914800472397353156711144404256980088607769974403549723617063709550613754999842039001397956653853425980142526196038549114664725435392992157629398768636965126039474961598461734005473194596573160065221906328680848371867454562233977892869044503824061739502276471595281263087602808370166089452864787563644772706003852001908032698385543921248492363994835390506190582353691926548554078597526954366336007904113143015474211680084963162992609480750752504753674241411945668240795197144455102241871238270254716429540885621345630163303656561782991560401822316906669918863095959464866952333821384252973640155882447000260928050064750259661456814764707324609589320093631401690641271816455900265006492750335204287273940200051367299690923957347339188501260058132504593381458226536793718635169716912452470465445024782081319849102010601378830167930322427369550641488592942880419520266558228569160237202674353471894789869012274213573902424715503553499432991912587005446636414093793081982637120443763019066425682162241932212010314853192700188335236533241559668928228323772714102330861582487225265729963563987281714795181052383637329088477239144331308047882847094703689865482871817306374401289036484535092876850377086430249230888558044885702146310819454630309581612630310856235958307351177233371942084424812526578239951154678060610987749979591035497810169295310471069764017155035720413229311883043035802938788510826528813303109856577883415007836532693426887647253668781699052353445523462915686231486104496168942854488995481520915176239683043672007747843449783932110565284459490766256235225510413630361794822567689723800111502640327048683703635429664409891382377799308427380523280604763000809722480275300085359568337638877004754169490538731437005555531878380717150296566252387340806135754710106268799776698308430615604303079095129460366252315528279937729925743324010840075720042321958737905843002607095697642550312445699956326290815981828981754325204285200151039558033795165223990484853402046642081113044992640592317370620164148104044228300512168650230510399266496006483575779705611108275567782415750748605424261033408516487401511972709289226846672169754781822489184373296866017937328033994376769685374859119336444989230983337182509513250882954935279387884753973547240420328323541414815287571711425484846757479374918006064872452633754443022942667977569849572273970243667223907904215208642669827667031698248298549948418072406439452049705289922620369407847275286231755955260788535358598618698389888760772852023763726972159773837467174173178550846020233045193734789035572683129876982766924596452049093098970530485520325956774071887646171838863185337984990591353059908092572206708541184772656397896476166364835516318534804079023662716310449779182572010797209452614417199514082056466432642566774478050917880713073260451959203666680681512101581178439452704990714620792148772121517201288881842829949779736577743402613563974337707587322196266048067725581173631855965361242335296275235426944946487658832295676344173242026422722826041447956698511670994606499068456447295167604223154975786608553006708891080853944355370497350435889990137105351228097337362115135598487802137167008935089199714010010247257923416732861168261750378126497137226704427706541319599238553871841441837860353885251207744263127662878648372658906082548246544788283473287911921776290732178325421553202264800465904730973088483955037110431742198202975804582441768550544116668684054157025479158493719480715820711502180651202040567955550032913617589676910172823406974618343317208316617861178439665494572148367674239672548684414137851901149872351087750401930835872324854632857230486350889292773483383842959453845164633228623818373484283389264322159098705122546528680541448319550254932290035417443488149739686910111133621048325039794812827508846990853169509460808210670432153034922771673984623536116498149505449708205151871350223011836265596378938246313440714486030765900925227096069667212188886578113738105557087658617106758910475589913239528609507840384603373125350725990713943525274609001076292371398253789334109394688479254532408434539298111444152081686874512125757494197997354717409227107022396744231254813470283031647417549137962909327050560658406702723081052326167311024708822810585495581946543120136518452567716320127470047494451746149641795489066083344101221681386386446678367617584147008963749816591708762267780456989489230801632199581915940168312657432414073222329127133276052202190763412903450620151082217662181770625712441013941317345690545041444517954745583603459391411745896980618387387818981425891314402651751057571986788617422485144440464275069406023010022369641411824965711219054358210209437577678808564041335901863324003612266395098056672089497745660450699787086581298130118899174779395601767587098387597901172739672371424351948787319660432157114482354405142282474060590569174015633226197073580503045463589839439758142257902100959881271103987713545593642129248048677970153613826722838256074575908594440025268440845590009997006045650833279010392127840632536743524184119002665191585056698044364449040591371733889005843288556989949777237137606815064510946269524824416524182846409380918574935484469930510815282985910628404673079218848463616172333300722395361279242454096680081243192494162935950807090526742776689269451227244819135795874944447787316919057081343225984273541669293411587353122320579467373242107437553302773240908737970330140520657332440710134498839127060587406485386345938540809573206059426129133419080643834480531355757896560728855864555441777273050229760729581773020541223955928684623044176612304236431446628639249933285725099637616332921762664160673538852550670839535771533998900597684349203018737367531869126737536825747876031901161357392854992773093876230012204090202299141004553650964629760697865449724653978214613171115338044163987205953024406582010779523993632158339407639117074807092670221829806412376988035011490680860134412226727856142902872787828088730260842462455732015084378149020732876356735056745504315116236059865694018491003219443534566751033564251184809093152850829555737650067533992611471559020077939647451785517446527294547097273122297343608094871999648496788456149602524429437414358223151352146567544425640289587591873410608206035370271752028479793359578555517814664979398345712151185704066986912704984365207152740094265261138350863533838325248442252710533067890456294836699364836761749989798521893993408579424361367369076830216949516701735589876890184891767238110783395479325618698350147079105414676567996409775441959714361021269692213775541890230797167732661738330189431126579122668621398343837003405085072941060019859543383489609730892842208159668403630728779872459162720905607404843859477903522903283166823120959965204295625842750743440177709006617652098324521091247253926511974080671567019256203980391794154256201933970071962116081423742478644285933234741231211062738394068446641800451270557075921400347815454239197993884258499208709856089163331204012399752868882326702564503304766576363858144366543122032382068186948150528029271802757986056968132740220086741470243044403087730838233718514434213788721702193584855882663412896783646436956180707643871569267324475435246719016078736823202145156371590212292591694042303641775098037282795564918407967657067799858280295427924963953725763643413762965546669831043942672111879866480703819100344090013172224678880698884079354959179125540499224050370047685354613906187339671120875605717178447887404656470265936257738389228791550549798289005678943284435362569343482965931171522142169680934911333873796130826534606932240136797285216915925362340892327755577367547082289295306287211233770935797383871305327121627262457766826850604878716431571119870349790569165924144669452385654261573713093356042865945382072112414869214290652280301749920213848483699633335603141582818842264574733188811609155983153421732181147352005118842123176316385883375511961080852665375403112302930708423916803816052565995666221939052872920565451943847130750857343630027607737700487181953481415001733056155105696477148366851883268344945135165440512528062920232623791780065168128201388857192184818239156608634468019259955574937954082408468591366675533915269396133546936747752015573450923542878021500226137820398794240019936473663711441590214343255198052192015194158042165774068374242110350819301628589564520949191665526825844951852127710727450765100142005370348903287659047402668396225119819979783562449000354982560802043559546098864810667486454476162706734551532558784140734414434304749353073626419028060541283750624311435637399136752744110945942918299570612330754136770350770857146288970366907924057197145765807435466757053125646797530255810100578614832395386665497596894111339824382425512686892778621753125658660997890660957059335237757847599305631556859563832872618897097253390696285904477702044159932948268976669131861906326391301473646070882256979894762786643531979535170475220745700929180814608916050015600955515254977547849796059086999335158193773189013023485212817823145762547762791269417069019967135196287239980068543778109656697117974904613831009165641913667912671740383218235224490377325486375938304932311724359738248644740485686398924560328771332363805560522376812039610255897793602829350382080832061060073842872193264176224629138852101215449678725161452531613898994477136318441389926841372593944028492876476328817983014536827544964375411453711748323475012327560524570204532128468244883795769674438701157793001029875076809170202058642398818727534671913591410293974738156718540123044242242625193036775772380683134179264895550989578350426534664279466123562261859652169290845530143691829602019731135896527896439140235631392491581548051481337147724166304072987952345078356890196022948353554250206438328214157007374995213397618651753117806315365135210645040068776455826660484846063640155065781145473592373119494092810454357854225973406649705739759840735231970864962448999403474279927192745244716182090575880390822044523338233681409685859081461662034308285159797343817449950175543726895213213784911270962670157797844286870881363732390771672071355807887967092693655841533516727682237858896742405097575041090278004694253887606856169148330522728027962867357100778128617960045330816244342176220314476777460138885382765062802085994215568469808076651645060356459116508822314683965740577568611731640953765723386331472299371017557424168228018650428542782190751592111240733887791417625925294710301952207742405060783270642649406176774038820050241434614476029766162816462953147035838737404164441255369542515978625060193226953531566193873469338220012975661116205188569208979541698553524639833554639299857595480383438817205016228137553858719356171565149008622973000884525929240409099027939127999049161303013404768122128407809333080925076873715231758860045491866726860188617520100069152805350640760162536269784883856163365740161518505445875097934962421400207233561284050730665589768624374861055804431876544500671971052335630152393739149722053309112519578710257048420025319067233962387642266732231210316158880417533181280311423463184149646525030502380153901387345886939942287489770127158231466187169832335801693988125298774574310451485843632388762981979152238739625911829696740971478626434810829513838909625338153989228333814032406115712788090371317802752191655005498817592372637686722292854514565153475057550486286798169212838348861083276661253670483099678852447321121836093514730712805527039687843884329770456721827808626707634087932219495484114231590784058474393462540754804345458474189699399540741518998839547071323242793775157068839718833702893429131352589309020947332490421010275485626542574709720139713989158305711431027580169185311342013443068254883924645669034059219876772034880344770757419790392336637910491624336822412776386039940300216416093834959300040028184706811569792447426679759194901751920843199683334290426689105016198736649683443741065550174350297017005999395607920669734636768416502833521018336549954159129303772040788157319033155057754751943102546248170136466091093351201060527174358168072525475778163669654327244477393172639773316607266649473826411321193593376201701142860237487544159594952308610022334513568864560083389644974411341420211792628060531036664369759788287053692347428700505252218172680648816784625761566415177609269490627969144717193189376498203745744517636624401655256277840463025199959787347429193939011341245466879062020507539657270830855137407703015461566166987507163905664942989576246505022225808432435421427018658144692976567340818744600664899283339793591820100811645036384361875760557231099281829062307083989685332728185525016675483684098394171988733497584178313141382235237701465880363999515719785398523599832412639571876716420152282980933009644428180133200023792642828051595485466658590683780725642789588588614929239029355089767476138223571869728734817716159708548763295829487360466479273491537883605522427015180906377663632578218488646938232400282624811298018752267148688698845887831383104102996216425206556180556370353995191536269168440194373727634078109568722182081511744199091364723291168740903263121192779075618374839321404530674575306997451167048205029624437048780024039403318492635796471227556670012318134319625189412562804556309041392728005311761833703459908449630743620290027544809003095382851166158473378562391842721377587594898505268821051406985737183067070007573402864124451899501709348864752066000412308969982018454523084727729845946820594735462356306400523328062969636070908991801066233001559593197411091464254883454354868310932333904043607014681590318387015091999833445107172326569535109408534067273365740008851148660412445063111235036811195996474879849489330928294487699056934543043486406947547083112162303489406745016474736703628069672790375306386853018812028287216662754135777333963439268645163883379252376113515502590624639964596053473381799784468237081729125909053861388048916098950037276960453043055015153839997475234904513039111582912125657161673552806400072670422492787920731327701425081193903234577236292714590708205028500976481688891964898092211076256146391374411654145128743751968256077183066878004134362742817336076711551676386735775373869964230110783188673736634682578888096356933130368336019511714247215953344711220531940561616396087005221121013912041597254494467698579269373501212838592910459847896677465613105175476359992014056125212577855651406649820403827644154350137863870061801058166092252308302013732742794580347099433877303178934199527782574937451162314838226777711876069321261341849245106362754457829120289129311144201989015905758040883018752344938533333660894179129346718654430406115207125306188876239019448708546569707468075427306030022358212262765857225116921091556682276570362043135807294158050707232417428983906066894249650744147036855884750751975648302736779852672006130890274852554347165001437288395390743418205258579129485106888749127503642732055448004218635585631840485502185777649015635327020502157543746517502356609844146573062129061248292462947964654288549642191136017544168648249675684984780777524060397002038472257161123986449777202628406324755572129711688467296670678018269401613380737150006317244503166499457987047034969424562198634327875550003181411095644249372743755184390204213154615074193714944405035228453961304254793465600609168887186590308807255910917884991481484457427089664075530629831071585679617681102882732563168594531365256346960283464050351290290156832147216221502332896348111066838257327488672582908582195181365229967057503089517899782794713554721912635511681450503906037711973957768463825637512367151306122898865835700536092593094488894794365424107674663508817027836576069016021171615184125981208564260485872929179066492014727665767664745821146550005376879388880890176438906667140376801128867756736675343845528480627957030131176967495847000506393887198989323418837294459214065877566601206699183812294109018220524280893352135762046436464539238832481674342847611122857805268840116257388465241627882902399523396133027418914794283386706183880783526924313526096294744950775724805542639887458377136318583715117426231199071343514643383487609553158796378768583966709126530263797652472245945167951265665127090026531075400169298569842047537989936086640851921904578425101197263316364828227300792201386200016763376440459913820487731843088256187588502686375293532608537310970027264157008689650755028480676748645248080976709424659084097754505927914153349102230033035855324666648784404030569602577299265237810656796886884562842001365239605484459682455774683984285584416985000011454957282393860940172529563690155679218510558449004625614873426484317772358678453084961426980333477726128141361313766038262084129807725983503966046598053030434218664859478323720142037236730339349202853679708748068752331357183808653014854201611287515187569357678540923444451474362055954071733355722858939708897528815108242492866015496226856095248339042863023827463460126655961692183952134904169756573079246559148299555829692674506165513537955980121081742760390561228429339981528557876059549810204541116457818699690857363645624636244919282099006586906077644614020872028111865896238359185778668964610268539776646980926054157437556582789043913820187579921058383317925313058525509625022998997450662822206490365079771223750207264233235065237939835307811005340004557550529875434918993027506645098819007305586210049069756460522287306417225003704876619538204847019511699419704211018138480006028055305851113568747888859808979370400421401463116098582109203993212824001921219512831211959360444207961196366857330232460073230120316977042852382630727148170216344806863098150187203011730075102914560512024450550680448965218236803748237632902942677185609699672611101814237410396635257045686047529128168754011209623762602285830692190003331697704342022821308252673495658674646823626326518611446867747007260346976523268901896489875325285368967104808381818360665861621377017697398533098909054643362313740592196628080930618265547452707709966069700014822061737759545583260005461261770172023465008496088489614123879550404547382837008394273272780163221755884707790683181688780301700991351547447924138766732445928410313934228415694869581972850893856385438593780955322303492888250510802104961599262865905148322555187662684281668812223662627030422415912778712890940511903864848477857105860167311262855616008366282893495251801746927315806952143681052323401413785532089531608152084947059134007608740413166386268162772540113458777218721997542571539138539449198961577947711078433044731179889533407455415563915485379130419632252432700075679871874703518217842498978671977383258071367513907079009694315023473232823257373407363384716644389430760143012098965045186151699232238617435678309054972257639659512178822452253725037976187518582211144889616272528082675846953273069099150212348460161596609605253901098066074107048082132457009727473370890925363076504962497870221228656631158314065412080689352532916066652449043190521940106661535475348827548283176000906965970677584936062446987526697242646557001521331099918735567932636389372731868514838693411064888571027288686919695614028762753967443031820650627994504350226241131627435063359446528332007501689424699245352295016767243767487945844908113038996942557718332816884505512296459552935448386721485568329485534837103344751526254544004885209489175286722579670023105617878484548773515769758272224091008833352521965834192288283739631904666409925538022028109054916708734684245035017612753549676110201597382270066049028613054170197449780527654113504274715381038293146368935717100366310493314523325648162130687385615394682670261514927784034113813148063359001329565606115371529211401252976994617888689880570323617066275299375652957915528902066155681780158844555474382483324482597597706729427751974836556122088529648690447200481924258773341474174606356241447965097095662631900985037035546374041944224663072690121544998507773515050406682611866301169175867151221473351148071632637373608518617828566589678952631654060533808286432347487345065636590765793651472562490103387333328681342562227397423773092236442987762032328298144820079749066040706106837108356327462559649512828556178522810629787774113926383644729648221960792872822377438855095820804800038969254322322997232694284726754673040031755189014051391768705554151638268683142533065957046210295152514281348901741530571440465532269398759675630819520437423672655236210663048560124379356303890248714676934339527642238396348472031963391505659780205981756680647365421215152388019757993534767408626318690184350118045806810503194679049435706527555047324847414249982036708199268047003630196045461732877997146198578177529870982793152251244730073181538685247101879158531539179012355580449175501526667991399833990020026566925259592611955675159958602741187795359324545679854200570353167148231608848963559691473529113980761053870096553189185682408058323117501731800239833161858897665451093878129931390439113227766137352597623094780677672278974012877203360117404423375336467666364593356745462741825549930310078409846152409786838898131919771759109072315508998490255890521937639011827339520081418221050425160118892578142525251625169780132713053993138754183703812246327582919708756963828466475833039202794276926640314379487620898103753329901723045445199126018200268406701653927663783862810149834978200093476074487754325129833029032754241327679440361488034648518919230460345214991908227308994927849700756414983025976268425662312471924857742735836146571152723390851843336386872988198838347314181090019931337420921857928367704097334567965658698103843123686794286567755271054713404978764152917877156643460232989771296071583157383606078933848447325969790786046733632167607027766972190126857002200497066882187415293660369335076129575196097881443635069949337788979662204769816437271497528021077231550282804171691054777808035214663210640151536431746585027026377997825620855970929130414750010295350979038740922793021945058574271447922063774590712902146367584338188769812221275510475089978561223794934669136075756455328166005327459734238934110796650550961386759706469916154275277692823055500410820134565322154358064043846850940618667509942357412603818769367534560806399156594348400897791206124772697236638416617466597380259768966554629052833077772627701960256388491012889047482384799671273779796543912152953854083139614173053045786517154135627902545911412231398178560740656343818556823251217163228845181085310900484467408983271784015136887676331067485351757063208479891610380566430095546098406285164741006817294879399934487166042547955753544912230197205480082933164273691429820067459829112603029272622125235345466580854913614653038271620181752179985874655026317704090785548376201402961856250705038679381638155620730978420823096541598938374018131228865431998159894855252861106131053984492664364709780601883960301663468985947659445744267116580180342506505844125845000458496969664511342165088381587883777546585910691177594972503632160860078633331301447675447069168516651023259576741015169274677602127371093425397095918954596788909282530536279264579058851070156308843455026206593736991834358343886514926682017850304343133185422603863296540778910658811058640059557764466011201997467082265676574798704808975370782165875757247066494508071648615742585035273606249616085170599876750514099074194504491048670357634260332615223496556587723058312548001567497003224663005909829551622938628772619620004767012468298251575033838772982893788701853297066253037576710596303573103466595634894140881018323055419983838562547038083042493326279155100718144284109499122370788050407684028949291715932055919549509328212914677411755872260783168900742329197130555288472898378116464953764709768846771415776472337412360085052492159221674544824790447953445036227704383220248861202822008584298602019174517717135781596156988724918748895086758517441199502327578190409762121776880440099239306841554191441875865703261440061410616706246995440087458414089346594046977189917028754475626128168738289654484924832015509074067135565357168545647363491181426972151637166185392172854029324054989223749497171037785957482648119420020755883825062455798991484646115403619006814839465420956422425549986627000799853766193824849940985320480042609410625586585422808580263798130156910501499439858269254983750815924603939608037556108272159268892434702188169542276169173054244556700298173432802367381062777640133824330534448219595314595371924621463795456063921726412429304199334174235414897993764525707852331102656675239768329611155429374555366886055183083500141438041728339078382411913614604314646970233252740019247837292611496575722463832013493575928976624895421784867948817829841054794172313825665326824699110902546452124523620458604296355938103848201053901317380838834236224648630938447817259597468137019375617483025590981575852981796431923550088881323236363517560393850798798660102798627628788395180461108325760576238233228434959500854669535502114216923519381954169608255332342837597613011870565823657805848483333811091817086522757314499521992142245848493823128572429257636783524745873886948931234107765147881628559647904436500659758988765402044410727463603241523999617230582116232605437902816450849825601955047220659490699111682059145850740278716746223090161827757334899340980092010190603261574824793674034859818676906007791126436657195888172614321444751451991623532154487403194480776510793392317883564108500977478922843476203954305564670472566839743241691235025973361077515808413046385636993084792147209501278582752387220444445388131870530446950324217107437373490059404095375182792003122578120879230188522388306523418891187435293693927782556269026375034048195840148973075897519878960237802859256309055884756384268148837497004014518154747020614539898064226278236615517335454386008589866562361709711359183301597023631810984029813796787279837419331936124544503265609797970263089992302473313746216412927175328454028581283567763299053090802984083088361644954721472033518719855129995501038999872328185564712322398810438658557699859459584368088241965832044638826838626405938678341649364089135457280957662098883347838752617259001292356139983079795619597717436113675510723527619749261174247580920417482143091251501220583988159761611112268581861639298696284826679752924179929378255062025032338609461608157585140237837663441932680676875314046328195711393518093053155084577803300111413366922256549370807220524649770100486304886047334212715298265023156628177975514448332920721471059383695491337888746486967786363459929136174048995592253122280157163852867151977689620215359086718778503622599962014631160373244692351666439514078071892273091299691956630743879489828230248171903081951278617562251189967180735875580496788680524762016169572852528297860323343769732320471145412379422927310413338357494886825762563598720746670577802914581519451759160767912146012364309003478434647537550720529314661999836137503821032497302101076786483390156573410530351044364166965525323670570119608185474468600608448701283551586356860804607039172744637364121480447442615769977746197645160452625289007613652746607715440401130629947270760488527025096476517070274636107430241973424938099378534275854010701324562583533474711468868184315330975572100971827164309898618301094025336801041894999670228118799631114353898940781350033754794327942566643343729063906989857142355106171831053030366119210794683727742010303408186876177981981479750349167414856288790375657172837112260447695410273675853846918281896295570092503897932160281207211041979144699152649404640562672760681137738040106074483705626109275206982745777649817395566170508535776047122540186681355179927757791716731216817465635071955585392027398346649127496357350764826712646420905257512857877148047641782249139703349940613882815141561534739172126101980116622661782176444235091942787544663312057648925740405666282588546946567931543408317847176610769454180502543677439617332411912973908751345900610806190982593832088913725189744382124927862118438737248761238965990331992116477747042400275194153210226435577244078019242613597200924432649756096917850149441331536192398693179576145275948851377877808031248924739740129316948796503982074599135489522269227195359598184756213226236917216589936258876550639449272809532121348385384855929975728745478170775840175647367690742471268855118861956651708285400633349110781754763049992819025633631638426914041956607225098856144578834752159541959229609895129763198924361370259854968561037305077912603579896996093894994187360358701310502141995919744797567890550816952110702251533665650031948975173902089555939926559878707846194330691189379621892878377361846756017686679732693147389881128271671365509149975009382353664702499080222667867891067947316123081853109293587398250281960277707965253523639012861400607384956043781085113348176099950821927701832380107513236773678104692674386858098533730190382681952483824840668125958883280617346250332679659296155468678130453611877016208399132907771290051889699129071273833154999485908798284448585484983910572070256288539261836845771919240989745857904260155781408219448190813429040417845258981978035157600217699346587081839275893988363630653508928908510698814803595269323787096643729062139850568756729383128982432417353046071490074926509806143969504672169358813749129738982166445452590404117800766323449747022453633853696452413362037896918632655258619146318059763476279268923461357928096240197505200349882095277282549766693376466996169655975275849242574281470622051764303919056382638712359935011008471276654905499564213963134317565118383967339592816996642007114275080052561299227759043534982692655268791761187350615061496224572310526301110721367609017381131108744482495803558905036433032557067982196929783482992851247781194604151993027219305735062110156582280952047471995111532572334334405386264424154180516344265460374732845578646499523099699479972581552733205624986175512196738827210888065367239892970152811770712642556576353980683762879605308593991658463469271754762094137931136039526437202746067394736320238928434425851415924166713839015265748271126389946755890695323129154565574186334306619666618778081863584988605278666527214746915266300809617792949937322719033464383519676878047007443473498744500387178042900640783975939346985260272883013652029741687005190364990026105831823391318900325118929309660092451578252561895275355898452698163706679424145017670179866261284914434177175101304510306382872163353817886001079022778389194291876744662919154047687264478261801666289309827724058975254174773623134551609788787505820639498290932388375012185120544212925767172921621432337633702054248198688779117413686854156675672701479763890933903055267027949875231419565310589544587717107869263863312122515453363658391971539290868666467748184223706866624754860511947598128778373812835885869640565054875818518940155553224888420528326122806116833090615586916066285073209450180892193673786969138104698917738346740255507579493337948288625555857452955213023259570947171771539780275183677539751888503057243651487990138752754092255171396831672032800651386104654149187153075037518045485753424667253331795077931394984336901250871656915939835837650252576553708555715230657105011964334041376526119080890232657989283556921180998469222903779227337690056760772528196187995532082695195213712265572190026086788814977201150505646407933472499750082558939224959165128786886406805948016721959076298553440460750466078981309523421318172754815149513144021930388663707709613585984138113050820894534084250363858982358008095700506197207106582014279887817307491293610346592553618175322879467114018061845373524290183603070892014408029162989609578021342153983486789387525989664506568992254496738485842027821050080773847236000597094245049974257642930011280688265471919543113822966762037172980880356945654414640402515293640142805096141283565752675953705319534137726218032108277245048663342353212752485987759469381887034529392441006276208969853949119064547815192143383693020973280808035380210441756443692109655823714581732528854222731294195913759279400597916533799580862299410798012172158775955020584623428164899079459542199781321299477733474970790785505985535271428889169596164718435278123874130651675126843891650972289350374878284152073907398165037322804258884195858785014428219785119191099710847929823052020342385187963927036877260998946123122695916178714040803691046853341863695830970404939639086466005011772145280299979424664690806441709707221268107268720552026364247202908408011152613779061010351367226371506130764075699712187379524606158526866359384014061968716950137300211082092617641636703240143185837551923184241147070282136230317739445620439113030479492506824637177591621617568551765477608679610454077122878339623177031018875607940763053591837542033351055897827831844791842180062738729975409343440340013225232212964336546247599046216917739280766295822319029730312254742589021016261866756667833725281266204552521461699351636891994285144946308715705937165921109455987550935916479899103585463384360285075278284523349432024857553737069317492140226219017483343440903276296250889380693957381463730967541086634056233736983367951104800446144931915333370175437510973793763325224779428285482581679059507332390842024847288260461159169157253720153429029793785828295492677493459066030203144587453682559781963168383496320210246881588380239245893150180376075775255156946514011369649988865980167200997238934773660055765322846090207445157879214305664017495805717257118422307069264913940398251607879057301514077823220785013293637368367268223763738930964183720030359926474253351848740065210934982772624414368850668217791439502880433655461262412851601310458096655961770201519953358982286891218288113370347554135598904555971915225363693010375483861719219830307004179536334012897150509449216242595573823060969956022993780960021362339409043660455534630870138831094980883356976052500674071186283450829092839662176372560759424980596346082705828903984498379910277450377064569904568009047396647759989868050936490649660616850397326058302226667295089466339594536321844314292349941783786694979992177369389970060919732512312717279791963299270851361747355050349535235538745012840982350067653005689388618992925704567349861875855097588848425577379320001016847924593636018960499039170294085950672078890345680268276154885125976140839346300602055395543634675057242637064948695715210725309334597208267215631306261746379394013044607473613491421553122924435206563356227219463899236475723440558923519202842133014218774766347891333146258537695366260833620998653990725235223505469609008988620718287236374830872892094007945560077424603167534251209000759530365387768288372151331034263882478398341385977293968866306609105423776289991048010079755563854971940446087523456090468982924273754039635796129696387251951270680484172589944389808821158381162267813188677578618739000484971950579305039976653021439978295507974734824649504364003656071944283242185114865256994377872965136209202076153676925758182279305042807051636346975303279234365879367459616659172157418058789368430647011850202656110439861760931161833437589856216609946137985012150259824210194306196219493627180965614698579879004710908771777997742659897818270576942901676060077788092720592759239512946998618000093379389135534865938826030752849444791418735237883094885014916754350163498500771706688732038115609636187315670570983798796100238030012263341042661931244984793724822544838381024927226924619081486606904526372317259148394512209334692923902636578481329817370688694353865041738484488100246970652582626648020688883577270147111944850529840440863983218063728287230847070506968683563901115313489252452364577984412855889782982318379770007633018961099251543712761018490611330205330103020185358527934612548641300022588148057303515306497369778236020720921565666955619433185612232152422771825876552412204867903524728090757366008266432862259959453095817003924145919137164399200551545140308862580437408840516961651848536916858780134335263081331141145205171849283622757107337572514134397829251453918559418823705938150893345777090052986083954432033405366656236985644364881684347649610819935968381276607046452944697718427753699823947995779059445931439977078883155176938060529312159282015964180266648466757831496701090428716370505501890475062521711482459147415112710288840657851094806382191814993017215186893337947201251368067864221659612770993963219444252455885038688246134521043421537901206345944327962484624804046099805304382477192611247203904351426047761445359668773747217071618059309339823433624633087109335316715567528618212969695201972329448503082357571181579457175940690506410445267346541212297812646164232499377085045300502353131362068351353634166623678290984839626676510882655590327336553494375815009606738669948434165848372009989650755629602855194691905524731398672890668696714271870052578755899125573146354153823661870830902019226320612270230589142486915875970934004961836292717297455331333088183163261775515397296053695607580582632306835512581583724503534065048156558473559816696070168662884648813634960182632004388886555281317791302770169505060062469516124559550243859367181107562747699365026359385826443915974891322072379590942544540594908507313968822639962672623175862934921374453054631060007844602033234781185996413420783468560697788160840497185483411025992044409692062980019629069107918985043012406839270012192188959869865720037914028225451832966826694179574573103787565773466211125068853304196157339576745299817087272428602068055240208189863363082678278529037024059475633369890067311194294483200693916804771714437557021866035595179600551360936297838897954698542439326999510360979509172196520496789621107967683132305877057996657946000633365143558207900970790977742748876005379219917101974991501205881126724607919486387830162486444457983483732998450138104450391380424732069108435448352634525393334710772703027634054666745176757512439042427426464572223478517696982377925815713251416970929278993641605822833100744032021855464825181598871965414245450245680566458348185774304857887737008052979738046170893645153761420064925829602635332399575941376158064635747195157770996068983804851523174467581501578167242913995589641507228679532189952403007311572301234154943526921934373643055605562022792699255085008794308913141910967362566874876207993170129836150518886345140903338008802607638480561376059552420499207356184442286658072942380650221992399340102812886927707372904260637194013436360545835577373185865111210943259361351242603508066556379942980459886389926223220714094989850556591390285259600237096855055148835212621653067347931039667895979891232850765366349373093799284888925598157298906763606897075158896780294947730914946979575401133435590711671476405530851705746858766451592116342931910300444165666472189857352691134007471453458037819323996114165497211819416858110132479688887061298496848273026902386619288838547074502252110040045127888616051450876964290673215019198077355087774921867277451168412244145768787860274952741341507163795993914945168681906718512194642613014839714067758066780072508025018573690245740217468513663214394414733445420194638417921126945437349386272656492354078417603730955513765802058235778999074624500870741395955311328761232569951897016252709861386216774703682060842147315996537250633746705575027088085355197380617555523517664294821810348548720035707192428899156286022926649197884324121509001739319151959229455559973208028729319764144605960393827203035849079985950458140417639188679267499282211471263948498856151125710285473656408790669891808437704076626337246537752399818055578873836003745821920774736346350220579538448043948157397040160113327285346645289447482424828397775852456891097530049761137688873531097681812937983440130411094474485678524074962315052051253830353255850134619833176892471853947946912360928243437268291151767715797621382103088780198810578950583984165084909731575446508376059400512199101805228846126088089981192620182928876171296601730954636249769723280384435341588468596264414801233238462284129259845882332318512795503117391160435314341359702233335471959440733608489864265970856624507056508786351898546370012620811796894445455448822628968397398939887450563085318961201524901858372761580209146340451903437939508675009114691730240616050147145759620130405190442645788716690322416129097343845306915308464098160307601196278099555485485397767388663756261367665377353151420302170569382186418188729243761285645692860446855761157707502947358942863466748411746701623620634112743628467592073862142821278713790015109149931939050799822480258865442793133786250630417415302820197748353851041801020101164674028115272151431034486037640845438716057483353084207164362855286146219320391069057890341518085355666997199969368771838788944778338965422589077490686783943406798385527918822580281061454456049679136632243539751391977031786790912934729189303374179837211727615000792385261587249713707663883970608985092927199351214026336342486343360209194491232368524620131813582965756661972633135091101893259182521159425584017657388629840204444380146236957393434763600064835620674850296140253280618592578828970680052439277526590588875598401453759403840059813209151136927326150791255837797974962511275988864664794047412048749321325257235717474987327247300904128880598369370821016941151884424840337069070345623261377285856946382850542984025074734379748732901831997318956361680597283725714049441320650985915313203361924027136463946527287053587240481022724317320802629125001434594795633533977870080498673295776570017628579542817959387543914726313008593325130527879936428435446508544952832430203895922126199498506830755177668325673748424597269855669279314223079815042007097083401968482062297007004472355020854483655937974690990131725690273218222466625076914613255728729046198374891273193826380975239258096764316374417380001294495214075960523413366625822256302940075522995076858574168468021130486733034153162564314016325215200630917580395678245925109057064160837438260061607251475322977279911131614200153422421181814048609959129787269792405825753595652682094199136040201881887205432348764482532439163548558356106386435210454900818476281874514110319074852555940584077806814267401137944168626440476169267590970509568683178540026801678446312688626222085967385154320632929564646041608447328000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/2018/republic/10-12_d1/pagini/tests/50_pattern.txt b/2018/republic/10-12_d1/pagini/tests/50_pattern.txt new file mode 100644 index 0000000..61cad66 --- /dev/null +++ b/2018/republic/10-12_d1/pagini/tests/50_pattern.txt @@ -0,0 +1 @@ +89708 diff --git a/2018/republic/10-12_d2/condition.pdf b/2018/republic/10-12_d2/condition.pdf new file mode 100644 index 0000000..e80e065 Binary files /dev/null and b/2018/republic/10-12_d2/condition.pdf differ diff --git a/2018/republic/10-12_d2/papagalii/tests/input.00 b/2018/republic/10-12_d2/papagalii/tests/input.00 new file mode 100644 index 0000000..768233b --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/input.00 @@ -0,0 +1 @@ +2 1 diff --git a/2018/republic/10-12_d2/papagalii/tests/input.01 b/2018/republic/10-12_d2/papagalii/tests/input.01 new file mode 100644 index 0000000..dc48751 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/input.01 @@ -0,0 +1 @@ +3 3 diff --git a/2018/republic/10-12_d2/papagalii/tests/input.02 b/2018/republic/10-12_d2/papagalii/tests/input.02 new file mode 100644 index 0000000..0024ba4 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/input.02 @@ -0,0 +1 @@ +4 5 diff --git a/2018/republic/10-12_d2/papagalii/tests/input.03 b/2018/republic/10-12_d2/papagalii/tests/input.03 new file mode 100644 index 0000000..a6f4321 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/input.03 @@ -0,0 +1 @@ +5 7 diff --git a/2018/republic/10-12_d2/papagalii/tests/input.04 b/2018/republic/10-12_d2/papagalii/tests/input.04 new file mode 100644 index 0000000..9134bb7 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/input.04 @@ -0,0 +1 @@ +6 9 diff --git a/2018/republic/10-12_d2/papagalii/tests/input.05 b/2018/republic/10-12_d2/papagalii/tests/input.05 new file mode 100644 index 0000000..202457f --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/input.05 @@ -0,0 +1 @@ +7 11 diff --git a/2018/republic/10-12_d2/papagalii/tests/input.06 b/2018/republic/10-12_d2/papagalii/tests/input.06 new file mode 100644 index 0000000..4d9e20f --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/input.06 @@ -0,0 +1 @@ +8 13 diff --git a/2018/republic/10-12_d2/papagalii/tests/input.07 b/2018/republic/10-12_d2/papagalii/tests/input.07 new file mode 100644 index 0000000..85e1b6f --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/input.07 @@ -0,0 +1 @@ +9 15 diff --git a/2018/republic/10-12_d2/papagalii/tests/input.08 b/2018/republic/10-12_d2/papagalii/tests/input.08 new file mode 100644 index 0000000..cf03be3 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/input.08 @@ -0,0 +1 @@ +10 17 diff --git a/2018/republic/10-12_d2/papagalii/tests/input.09 b/2018/republic/10-12_d2/papagalii/tests/input.09 new file mode 100644 index 0000000..abcbd34 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/input.09 @@ -0,0 +1 @@ +2 19 diff --git a/2018/republic/10-12_d2/papagalii/tests/input.10 b/2018/republic/10-12_d2/papagalii/tests/input.10 new file mode 100644 index 0000000..14bc97a --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/input.10 @@ -0,0 +1 @@ +3 21 diff --git a/2018/republic/10-12_d2/papagalii/tests/input.11 b/2018/republic/10-12_d2/papagalii/tests/input.11 new file mode 100644 index 0000000..342d5a9 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/input.11 @@ -0,0 +1 @@ +4 23 diff --git a/2018/republic/10-12_d2/papagalii/tests/input.12 b/2018/republic/10-12_d2/papagalii/tests/input.12 new file mode 100644 index 0000000..a73495d --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/input.12 @@ -0,0 +1 @@ +5 25 diff --git a/2018/republic/10-12_d2/papagalii/tests/input.13 b/2018/republic/10-12_d2/papagalii/tests/input.13 new file mode 100644 index 0000000..2823051 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/input.13 @@ -0,0 +1 @@ +6 27 diff --git a/2018/republic/10-12_d2/papagalii/tests/input.14 b/2018/republic/10-12_d2/papagalii/tests/input.14 new file mode 100644 index 0000000..55b8265 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/input.14 @@ -0,0 +1 @@ +7 29 diff --git a/2018/republic/10-12_d2/papagalii/tests/input.15 b/2018/republic/10-12_d2/papagalii/tests/input.15 new file mode 100644 index 0000000..0973638 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/input.15 @@ -0,0 +1 @@ +8 31 diff --git a/2018/republic/10-12_d2/papagalii/tests/input.16 b/2018/republic/10-12_d2/papagalii/tests/input.16 new file mode 100644 index 0000000..520f6a9 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/input.16 @@ -0,0 +1 @@ +9 33 diff --git a/2018/republic/10-12_d2/papagalii/tests/input.17 b/2018/republic/10-12_d2/papagalii/tests/input.17 new file mode 100644 index 0000000..e823781 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/input.17 @@ -0,0 +1 @@ +10 35 diff --git a/2018/republic/10-12_d2/papagalii/tests/input.18 b/2018/republic/10-12_d2/papagalii/tests/input.18 new file mode 100644 index 0000000..6099cb5 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/input.18 @@ -0,0 +1 @@ +5 37 diff --git a/2018/republic/10-12_d2/papagalii/tests/input.19 b/2018/republic/10-12_d2/papagalii/tests/input.19 new file mode 100644 index 0000000..6f88e79 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/input.19 @@ -0,0 +1 @@ +10 40 diff --git a/2018/republic/10-12_d2/papagalii/tests/output.00 b/2018/republic/10-12_d2/papagalii/tests/output.00 new file mode 100644 index 0000000..78c6bae --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/output.00 @@ -0,0 +1 @@ +2 diff --git a/2018/republic/10-12_d2/papagalii/tests/output.01 b/2018/republic/10-12_d2/papagalii/tests/output.01 new file mode 100644 index 0000000..66ed96a --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/output.01 @@ -0,0 +1 @@ +55 diff --git a/2018/republic/10-12_d2/papagalii/tests/output.02 b/2018/republic/10-12_d2/papagalii/tests/output.02 new file mode 100644 index 0000000..bd867ad --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/output.02 @@ -0,0 +1 @@ +7084 diff --git a/2018/republic/10-12_d2/papagalii/tests/output.03 b/2018/republic/10-12_d2/papagalii/tests/output.03 new file mode 100644 index 0000000..4860f85 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/output.03 @@ -0,0 +1 @@ +2330445 diff --git a/2018/republic/10-12_d2/papagalii/tests/output.04 b/2018/republic/10-12_d2/papagalii/tests/output.04 new file mode 100644 index 0000000..06f2902 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/output.04 @@ -0,0 +1 @@ +1478314266 diff --git a/2018/republic/10-12_d2/papagalii/tests/output.05 b/2018/republic/10-12_d2/papagalii/tests/output.05 new file mode 100644 index 0000000..6e35e1e --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/output.05 @@ -0,0 +1 @@ +1547847846090 diff --git a/2018/republic/10-12_d2/papagalii/tests/output.06 b/2018/republic/10-12_d2/papagalii/tests/output.06 new file mode 100644 index 0000000..e355030 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/output.06 @@ -0,0 +1 @@ +2426870706415800 diff --git a/2018/republic/10-12_d2/papagalii/tests/output.07 b/2018/republic/10-12_d2/papagalii/tests/output.07 new file mode 100644 index 0000000..4e0ab0a --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/output.07 @@ -0,0 +1 @@ +5332692942907262361 diff --git a/2018/republic/10-12_d2/papagalii/tests/output.08 b/2018/republic/10-12_d2/papagalii/tests/output.08 new file mode 100644 index 0000000..195486e --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/output.08 @@ -0,0 +1 @@ +15654733143626084944150 diff --git a/2018/republic/10-12_d2/papagalii/tests/output.09 b/2018/republic/10-12_d2/papagalii/tests/output.09 new file mode 100644 index 0000000..3b7454e --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/output.09 @@ -0,0 +1 @@ +6564120420 diff --git a/2018/republic/10-12_d2/papagalii/tests/output.10 b/2018/republic/10-12_d2/papagalii/tests/output.10 new file mode 100644 index 0000000..19475e8 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/output.10 @@ -0,0 +1 @@ +4048514844039120 diff --git a/2018/republic/10-12_d2/papagalii/tests/output.11 b/2018/republic/10-12_d2/papagalii/tests/output.11 new file mode 100644 index 0000000..f6189b9 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/output.11 @@ -0,0 +1 @@ +357557785658996609700 diff --git a/2018/republic/10-12_d2/papagalii/tests/output.12 b/2018/republic/10-12_d2/papagalii/tests/output.12 new file mode 100644 index 0000000..bd04125 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/output.12 @@ -0,0 +1 @@ +14828221541905870299371280 diff --git a/2018/republic/10-12_d2/papagalii/tests/output.13 b/2018/republic/10-12_d2/papagalii/tests/output.13 new file mode 100644 index 0000000..724f4fc --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/output.13 @@ -0,0 +1 @@ +436492157579951023496648300136 diff --git a/2018/republic/10-12_d2/papagalii/tests/output.14 b/2018/republic/10-12_d2/papagalii/tests/output.14 new file mode 100644 index 0000000..de1bbe0 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/output.14 @@ -0,0 +1 @@ +10971665040700591613884634129449456 diff --git a/2018/republic/10-12_d2/papagalii/tests/output.15 b/2018/republic/10-12_d2/papagalii/tests/output.15 new file mode 100644 index 0000000..45bb365 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/output.15 @@ -0,0 +1 @@ +258864862352136696653733497266326332280 diff --git a/2018/republic/10-12_d2/papagalii/tests/output.16 b/2018/republic/10-12_d2/papagalii/tests/output.16 new file mode 100644 index 0000000..9d4cd31 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/output.16 @@ -0,0 +1 @@ +6042775330755648746586154003846346316488175 diff --git a/2018/republic/10-12_d2/papagalii/tests/output.17 b/2018/republic/10-12_d2/papagalii/tests/output.17 new file mode 100644 index 0000000..bd31c60 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/output.17 @@ -0,0 +1 @@ +143934427865598739459773469503215339354507434714 diff --git a/2018/republic/10-12_d2/papagalii/tests/output.18 b/2018/republic/10-12_d2/papagalii/tests/output.18 new file mode 100644 index 0000000..88d0ddf --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/output.18 @@ -0,0 +1 @@ +92249492826218529886086900321774895545 diff --git a/2018/republic/10-12_d2/papagalii/tests/output.19 b/2018/republic/10-12_d2/papagalii/tests/output.19 new file mode 100644 index 0000000..c86dce6 --- /dev/null +++ b/2018/republic/10-12_d2/papagalii/tests/output.19 @@ -0,0 +1 @@ +1357740187499993272317100164273173056232088998671872900 diff --git a/2018/republic/10-12_d2/postas/tests/input.01 b/2018/republic/10-12_d2/postas/tests/input.01 new file mode 100644 index 0000000..ede566f --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.01 @@ -0,0 +1,5 @@ +2 +P. +.K +2 1 +3 2 diff --git a/2018/republic/10-12_d2/postas/tests/input.02 b/2018/republic/10-12_d2/postas/tests/input.02 new file mode 100644 index 0000000..9c8f80b --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.02 @@ -0,0 +1,7 @@ +3 +P.. +.KK +... +3 2 4 +7 4 2 +2 3 1 diff --git a/2018/republic/10-12_d2/postas/tests/input.10a b/2018/republic/10-12_d2/postas/tests/input.10a new file mode 100644 index 0000000..e61b8c4 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.10a @@ -0,0 +1,101 @@ +50 +.K.K..K...............KK......KK.K.KK..KK....K.K.. +KKK.KKK....K...K................K........K.....K.. +..KK..K..K.KK.K..........KK....K..K.K...K.KK.KKK.K +K.....K...K....K..K..K.......KK........K..KK.K.... +..........K..KKK..K.K..K..............K...K.....KK +.......K......K...KK.KKK....KKK.K...K..KKK.....K.. +...KKK...K.........K........................K..... +...K.KK............K.K..K....K.KK...K..K....KKK... +..K...........KK...K.K...........K.KKKK..........K +....KK..........K.K..KK.K..K..K............K..K... +.K.KK.......K........KK..........K...KK........... +....K...KK..K...........K...K..........KK......K.. +.K....KK........K......K.....KK......KK...KK.K.K.K +.K...K..................K.....K.....K....K..K..... +......K.....KK.......K..K......K..K....KK....K.... +K...K.KK..K.K..K.K.KK..KKK....K.K...K..........K.. +.K.K.K.K.......KKK.........K.....K..K....K.KK...KK +K.K...K.....K..K...K........K.K.K...K...K...KKK.K. +.K.......KKK....KK.....K......K......K..K......... +...K........KKK.............K.....KK....K...K...K. +...K.K..K...K.K..........K...K....K..K.K.......... +...K.......K....KKK..K......K.........KK......K..K +.K..........K....K.....K..KKKK....K.........K.K... +K...........K......K.....K.......K..K....K..KK.KK. +K..K.K..K......K.....KK......K....KK.....K....KK.. +.....K......K.K........KK....K...K..........K..... +K.KK.K.......KKK.K...K...K.KK.K.KKK............K.. +....KKK.K.KK.K.....KK..KK..KK..K..KK.....K...K.K.. +.KK....K...K...K.K....K......KK...K.K...K...K.K.KK +.K.......K....K.K...K..K.K...KK.......K..KK....... +..K....K.....K..K........K....KK..K........K.K...K +...KK...K....K.K...K...K..K.K...K...K........K.... +.K..KK........P............K.....K.KK..K.......K.. +....K.K.K......K.....K.KK..........K.K..K....K.... +KK...K......K.....K.K......K.............K....KK.. +......K..K.........K...KK...KK....K.K....K.K....K. +........................KK..K..K.........K.K.K..K. +K......K......KK...KK....K.K....K....K......K...K. +.K.K....K.K...K....K.KK........K.......K.....K...K +............K...K.......K...KK....K......K..K.K... +..KK.....K..K...........K..KK......K.....KK...K..K +KKK......K..K....K.............K.K..K.....KKK..... +.K.K.K.......KK....K........K..KKK....K.....K..K.. +...K..KKKK.K....KK............K.....K.....K....... +..K.K..K..................K.K.K...K..KKKKK....KK.. +.K.K...K.KKK.....KKK.K.....K....K..K....KK....K... +.K.KKKK........K.K......K.K....K....KK.......K.... +.....K...KK........KK...K....KK.K.........K....... +KK.KK.....K.......K....................K.K.K...... +.K.K..K....K..K...K....KK.....KK...........K...KK. +825028 304079 170903 727930 19129 536162 728510 766642 896687 125118 19280 145808 376678 169156 8425 939430 173041 715292 29743 24186 30636 957544 530461 675030 820859 697422 102414 170356 890156 533019 572497 607182 52582 305345 122362 749944 741990 512041 631213 522654 672851 38155 169532 684735 240432 486481 949623 309716 975892 809645 +748372 563334 300796 958331 461189 743457 586284 887381 356851 758522 406961 423610 939256 751850 216541 393180 169786 949742 102463 190441 772972 986133 227415 153286 958911 488837 453165 677894 51185 400121 123340 291431 714354 417735 98400 691453 249458 535066 566438 140863 593101 379793 129540 203969 954203 809784 997996 454283 933690 340260 +99649 822698 255470 539018 7881 29675 521603 248556 784748 316833 639270 396117 413392 360189 669483 207395 221191 146393 506402 974012 619972 816353 777437 164166 977451 438426 321882 471550 606111 6082 375453 340829 816410 295245 362450 582148 643813 82231 393826 892528 603016 219978 506931 596026 83228 299905 276153 566870 967251 490340 +375584 773981 820368 739911 824459 227093 505345 97706 246491 609775 432106 28536 503079 931615 830907 443518 452701 497457 549948 515393 808064 335533 934943 59073 882027 895451 706524 632759 374461 438807 358661 614476 435371 116232 573249 270022 859239 118836 473982 680600 689677 242024 428040 427248 114788 531951 772973 925254 34300 395917 +612951 388667 814744 763310 662567 1159 913017 302844 99514 768763 495730 392225 987732 461653 637760 424577 919327 167209 637577 53149 629576 223372 243816 334185 789208 472050 802685 897669 996434 28919 984596 724998 280325 939257 290945 57867 265891 493647 505121 293546 224050 328404 512826 692407 100876 212924 818219 913043 492920 402465 +27445 804626 22759 224812 258044 483562 210569 745905 233920 219408 131126 412248 134309 721701 373201 259439 805653 213379 725257 512014 806798 296269 410570 431823 989840 71532 771842 937171 638876 262548 363150 189341 266077 778591 175410 169850 259199 272914 630315 261542 257699 706026 498104 653578 229713 188905 404616 586417 815690 79086 +712232 503669 756035 366097 494213 376867 542536 51985 55477 656649 935200 172913 874461 755932 188676 558070 525653 917043 951825 360036 934970 859026 59733 225525 951537 377878 101527 106505 228471 204032 890044 939032 950058 925525 501293 641870 450695 928955 959338 978451 735658 248676 883520 839258 324672 25920 583812 291284 689313 853019 +862762 136122 903929 359522 36203 664808 653686 649277 916970 697640 2397 900819 419999 319822 400173 645253 237662 888801 531053 320400 113112 728041 900001 959836 580769 671536 152173 227400 319454 528492 333206 350538 663785 34634 423716 18995 307284 569239 136081 606950 894252 489182 870163 152187 717439 538266 463178 218069 823728 792704 +5234 59517 343614 743744 458415 536379 717480 897635 107805 831024 857174 964887 40389 796227 624629 475173 656858 434272 44823 535851 75185 315028 135056 961367 797835 36542 206419 153735 876177 25846 487353 637356 124276 602950 425406 384107 629584 290427 357817 184611 629961 583454 583504 183497 281753 338513 674173 87128 41211 669755 +434529 591442 100832 753885 727200 482271 312316 613389 713025 707375 843849 109598 87124 332904 574022 944814 310753 512378 356187 99296 967980 503248 693818 922571 702915 42671 901815 396789 49386 65764 547734 546607 774281 365816 244210 856580 225398 886854 220873 54399 147109 15661 878962 267097 108001 710096 446716 897159 708681 908045 +468735 401141 546597 487833 256331 496734 891809 606873 338701 988412 744679 811776 385591 806588 58222 694203 392256 860591 203263 57395 826071 741714 301991 848430 508149 833587 118703 809470 395433 869998 800147 13417 199775 526307 882505 109154 839649 356334 578991 89861 885596 663848 739922 940691 170337 850604 392663 883768 931563 764513 +954044 151494 126748 622673 634490 54925 889456 896712 604191 270210 479646 161178 584049 640748 253789 11252 749998 324132 78090 958160 183762 233458 531954 664787 253861 918741 886798 97777 444751 26846 136560 226083 827025 794325 425468 789545 166624 110755 325182 530254 423054 194027 226403 21913 979883 69190 989355 667757 96714 813686 +783671 740099 167693 59857 860833 994720 266362 651321 248835 790211 63696 687701 39117 889170 148221 853620 655530 671106 869415 640826 132170 83317 546047 640365 302641 198719 280774 49820 335288 742409 729710 534740 333609 640375 917316 245344 987717 442313 706302 539126 367304 795699 500741 734336 815355 313210 201378 664683 769137 457931 +54751 606547 645486 274274 88863 552141 496870 877274 565017 151659 267034 112528 115191 102675 250053 260713 926973 550651 145301 721186 133291 164915 956065 842142 731128 698248 917408 109305 378049 156422 372591 999052 856811 922692 667771 321845 279358 404695 896972 388194 158506 574455 647871 991931 541652 829818 747059 85628 517661 11832 +897733 652771 961998 93221 742844 862869 328741 255871 166675 388219 896444 215473 418093 452279 68921 807772 823962 911633 910585 883842 62078 365826 980736 340255 420478 935298 508061 74452 767037 72251 249255 258544 897970 142258 686497 65602 890167 744576 110021 611706 435545 952621 891013 223771 30508 279153 923563 111025 398135 523819 +533042 530461 178374 206319 483634 747112 738004 736190 270149 17832 556812 737866 667085 906581 841235 595175 44098 646592 317327 743232 742112 960749 835287 525786 416810 740954 63734 249307 956959 793858 501021 325444 748214 773263 127630 29818 652229 74175 832997 757719 69781 149310 91562 684198 816824 71397 763614 430917 496104 386183 +705414 488432 74227 283170 752498 330642 836978 733059 30811 922586 593162 60919 449466 763917 718425 279156 450755 648373 162782 811061 278866 180937 971119 874476 519805 783936 790776 593121 168764 699607 779826 783372 39257 656403 100507 998298 527140 90462 141033 16826 785636 325728 78519 293872 578534 781948 592133 897794 417695 280431 +453352 788252 373694 397366 664701 458350 396462 316168 120407 909843 92771 886176 356568 902354 967176 713582 600267 376171 737374 318045 981989 782622 742945 728707 225258 178802 915201 84050 564428 38985 471053 448173 364036 172730 139559 73852 439022 208218 164283 186350 346690 314722 6525 232314 706537 438054 698336 79096 310548 546250 +788698 671126 573698 43116 756637 901157 214192 162910 149940 421363 269566 355772 137878 304510 683260 566279 360341 410352 535948 678967 504213 155005 776756 437413 754544 774280 580909 810071 138162 929510 594764 778572 259275 213841 344839 535648 115415 337388 759244 352538 729983 881532 126969 421804 477642 212824 769685 911547 156421 363584 +243977 761984 924541 678922 984346 571073 32056 109173 394355 194769 757275 230925 381523 492469 713401 828255 542030 628290 766440 162439 947965 774629 794472 24136 350634 665791 143421 97333 734374 328885 503244 969661 739439 428058 396085 485858 276595 509200 907910 558080 706482 721875 750972 612932 258573 186672 893076 382579 561185 413109 +63955 258112 171640 535527 888944 745248 555911 852946 451791 774447 94788 532246 488425 283608 666237 568575 328826 191398 161704 381111 563129 77866 123530 86316 5777 298734 220056 243383 782859 730470 359051 515279 53421 329187 256357 372302 960974 538913 148360 603547 864262 168385 480551 286574 895842 341538 167936 672887 534785 397268 +236678 755968 323667 279488 270642 899257 235548 950692 531083 712666 59213 674603 878512 868065 958008 363 658937 325762 682130 492773 65970 491241 374772 287121 731762 114256 4676 198473 565797 146586 423944 8927 561050 151263 693183 278608 786824 855623 359577 534906 185798 719624 510771 872710 594881 255443 631616 621014 368629 488386 +710117 423508 457199 201841 800237 928844 445280 780235 855906 147632 68921 254686 485684 754126 890624 906781 483428 270283 198917 85146 381593 905302 837484 730217 332560 903130 609841 676213 456210 395579 356456 933746 814806 712990 260036 953586 293392 35995 171332 31236 22945 729829 255675 47377 611424 767020 317703 928190 132524 786075 +631721 54055 188120 93517 92111 486417 56111 166495 754109 657247 416761 481867 387331 141816 943772 626567 590172 946496 414052 341222 763879 987605 803872 981183 12519 593746 388851 130769 887957 106608 933657 86580 159051 345109 460249 243348 345860 968389 133553 175607 872266 646017 638134 51549 689382 443269 544250 737678 451130 240014 +446025 142376 740381 559224 220769 438152 207690 528082 709382 460959 693692 216626 909052 221920 452679 714409 117272 773920 41544 819800 545084 429401 472392 945058 488432 453999 60289 897817 531044 671436 117401 678748 495413 882234 342973 282342 314616 945282 503315 853937 580963 326549 976503 729105 833331 611490 525241 422075 130149 861803 +28372 796483 37065 632246 656170 520406 933720 379451 405541 64832 641260 449950 400942 836349 524070 115749 509374 230679 205793 202192 24734 140065 184883 567459 342899 128767 438846 370950 338382 289744 450940 215991 716386 285000 879563 217542 221550 413135 795130 144513 779921 485458 822473 922665 576241 141526 315461 28597 416183 360744 +355543 857503 434071 679886 786188 561080 515912 919239 308654 176795 386174 124508 727969 270153 277437 363823 977737 730859 45880 364946 810035 309029 864585 719066 521915 663022 712360 551057 541567 208495 580859 452027 365683 353730 309695 850587 276300 81798 686151 295375 623776 111917 83288 943930 913295 186312 831696 578314 120219 895467 +637240 837174 607999 642634 261288 727063 462828 454931 569583 559192 598364 742819 922899 592110 954556 759756 827936 721258 953031 731337 286779 50672 453064 371376 470770 971003 234982 655241 518245 782608 791905 677196 872978 632697 636524 349766 814339 971198 830983 194471 665638 449706 26760 284821 669893 723641 18212 644806 599929 19447 +997673 382387 410098 669851 300179 262398 481854 321594 32580 838962 555560 330503 426024 313520 999714 539846 941076 555466 639703 576035 59752 889885 602012 67212 774061 501617 998440 415638 756427 339228 512136 879779 385401 603905 326115 333902 425537 269912 900483 27129 599689 236682 498620 524802 540240 803037 413360 197660 553256 431406 +937094 260424 886236 665946 863666 18122 479483 144081 136130 386413 355121 538274 142922 871007 330273 11480 711233 593085 785825 444042 622765 39633 532963 491858 794599 719301 923185 60584 846329 717107 485762 359726 887328 953003 968143 45104 276421 889947 440693 234735 325096 462087 434332 862161 991255 29453 64568 174065 447284 175360 +805304 269719 726872 745940 836130 491190 353881 702601 447250 374627 722942 769994 60066 287765 45529 988809 622316 152127 68134 256335 105341 973120 760161 552540 922875 524710 88534 956632 255370 898816 724874 308348 823791 764296 300480 98078 428483 9208 72307 375471 190937 468437 4308 434523 545967 564896 237785 908990 861182 252365 +130163 545996 803863 610453 360822 843657 244867 436005 611085 913204 971802 820226 9936 720010 975676 412706 454525 193008 215447 381277 23418 236640 316505 532179 404617 158165 685197 171225 499975 595553 810021 984793 334959 781244 885604 767217 677305 469652 361888 777097 170047 276353 333977 521114 941743 637967 441978 232304 828016 239859 +924746 414697 715565 962541 612586 611760 76542 467791 102962 133487 242290 977137 318102 133322 443490 68155 844843 722354 820674 999542 959515 682408 198849 82400 896810 827539 986230 308744 838523 997887 204895 111259 461807 640760 965187 276242 306977 673010 962968 362204 442688 978760 370217 935749 930963 561261 781235 270243 156952 161886 +826953 217179 349695 594449 728888 124429 743288 355089 301235 731268 799359 759583 32602 49105 811456 348201 182331 368378 122774 855100 20645 401043 105248 733781 681437 722668 497877 986985 786524 7787 802005 238722 97074 850376 26438 418947 2031 471531 236763 382849 544255 152065 197415 679681 805206 341925 846352 199383 538841 190708 +512106 254931 968120 933473 281042 444190 146977 962798 788712 890672 397346 821665 610784 217941 667060 682984 689864 308544 629411 757993 268652 73380 905896 88624 213708 130945 194486 493079 294220 127635 220429 223740 39272 497469 729376 393106 856736 136723 980414 841881 461176 696467 19261 364924 432288 832195 647976 284021 992782 944632 +946159 20138 104003 930102 366297 880733 725527 308431 727278 370835 93252 276758 267869 709102 800995 193821 247298 647670 989963 305690 671341 17592 285139 594678 300386 178441 195603 313794 590047 596134 55575 316699 824871 761177 377132 699675 536322 952620 138227 710934 140896 413015 419842 645615 222279 224926 941313 711850 740093 803777 +48827 43363 564410 932771 109872 817883 389182 625391 39600 946721 122902 931239 596582 913885 956081 340074 932827 787216 653211 191047 810529 631817 574001 230787 697980 639471 58897 106783 332618 854228 856418 537593 742290 521412 275238 277863 770782 780724 513505 859163 215318 510261 278203 554622 26059 338186 661055 101244 372639 873849 +584931 342195 923456 896869 862211 551841 104060 415986 804634 774004 53410 21589 847250 665856 728327 640544 858609 238607 827272 458679 499178 920293 539675 124554 236909 712662 772477 401383 181659 81009 475817 752863 311620 681000 770194 341386 723931 697476 384707 184497 47240 659786 943311 792268 622707 89068 907467 796765 252781 407142 +114749 490721 606827 672298 941070 442854 997916 703414 470422 350063 740854 329555 428011 105384 701245 177979 597299 922227 508298 685254 202112 364129 523755 20302 146360 791234 849665 722272 133611 147883 769637 291846 225380 917865 886605 702687 656682 552536 158083 291821 903774 738905 613275 434537 232805 691932 799479 528326 796262 250354 +840453 546602 943136 131450 756391 998874 16383 82619 793648 400431 887025 608465 641665 293292 218909 379087 374807 874978 839928 74085 557507 224604 804740 71600 344522 254576 332951 870994 633090 282301 159931 184323 102304 364618 368274 228223 996394 786143 893342 838361 88767 491618 213179 784990 563883 629989 687503 849863 121586 38141 +17171 450282 601482 556577 794042 258232 110923 760457 442164 468630 766312 363788 402433 176297 334892 362294 868744 732710 60206 946374 163835 89828 196467 700406 433542 367691 801544 375510 433803 744835 130466 504362 84727 170539 256134 520259 155220 222752 523615 843569 3195 390296 291449 837252 672021 790602 728557 557193 910812 676547 +390638 347569 682025 784622 396137 296564 46609 771479 858100 524031 82745 72247 741473 669583 247004 228970 183859 394797 377922 66811 211956 993263 117934 592440 445738 108017 294651 965199 777369 79046 142802 689328 126770 264122 768974 145676 466821 503229 822518 135258 900502 765993 371432 695410 701028 850349 787809 470393 934883 964039 +68326 747125 301285 647898 808188 593029 840047 244903 227009 40080 410207 104214 259669 737151 421543 788367 54516 639157 982135 365835 839503 584067 77477 478704 247441 108364 92056 148376 392989 949416 138835 278442 748849 463653 453729 264058 241385 572845 454512 167439 827817 210303 639704 505324 489477 963814 671139 741675 668139 67739 +819427 878825 806530 322345 976234 95504 415106 305491 366748 623103 122014 319292 794609 733679 960133 107574 280423 443259 696433 213013 222637 201550 535199 72967 684608 781376 461648 821212 804167 510608 464015 89155 776648 22099 58932 666699 679967 124771 564900 196732 935023 507319 660730 22801 405802 997072 33032 846075 214799 768798 +793788 16952 316124 719790 642341 790361 781889 449592 179912 775782 118504 140869 53071 767537 857176 51560 819877 372900 388394 350209 433928 163960 473411 696623 134148 292253 615905 235606 732517 603107 288252 262451 424867 179991 378608 272419 138699 669714 411755 298842 498023 470984 865394 953484 485399 209291 732932 526848 200368 790322 +637733 541659 679892 505290 840498 199470 872702 635966 120079 536858 356676 255987 256853 573050 46286 981214 614560 363063 284689 681748 325379 654780 195377 569179 118383 26927 760103 254214 150192 895434 166469 314970 594935 95335 297001 602597 39810 556736 515610 576122 692885 357683 446146 275637 894895 656836 423430 36213 990252 153808 +392407 456330 129000 273509 415599 326337 418586 972093 796205 74246 972439 880114 53516 847550 53322 491204 942957 496893 154268 355933 201742 41297 996720 785660 331782 572142 635811 129874 45683 105507 130416 728020 979371 347316 190660 929352 549911 596386 484140 610353 882677 925084 235826 540869 84678 302633 245379 27179 354867 761617 +121862 203473 537543 100643 838913 730672 35660 779581 57969 593678 514593 935756 968552 56219 969502 246032 892262 929743 840241 378192 566291 519835 714206 240132 513963 147466 113853 543794 384689 505864 513071 213450 380920 429765 694655 939840 750786 117141 565993 322246 370464 860240 417846 189182 966237 800829 787057 828974 531954 16237 +257554 301351 962916 521909 289895 854827 651434 633171 74339 36937 507812 33604 542165 682930 579560 155428 213986 599632 348104 565076 561728 156852 927332 914209 679629 65469 542770 287775 771856 146267 785868 529036 398499 331959 958031 970368 108506 847165 478956 590392 848444 421304 636763 604573 936696 276610 123345 776404 299945 69774 +517594 709031 479745 417819 872135 151675 532220 904880 869853 179483 801186 715606 919384 466797 491142 356714 882280 135253 365066 309687 999907 433833 888029 578697 419930 35244 919564 245289 917492 543704 526210 325473 743948 201786 183326 804762 783240 879922 867039 967598 848222 26211 570270 297247 90072 136955 973336 664351 374401 725763 diff --git a/2018/republic/10-12_d2/postas/tests/input.10b b/2018/republic/10-12_d2/postas/tests/input.10b new file mode 100644 index 0000000..87747a3 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.10b @@ -0,0 +1,101 @@ +50 +....P.KK.K.............K.KKKK.....KKK..KK......... +KK..K.K.KK........K.....K.K.KKKK.KK...K.K....K.... +K.....K...KKKK.....KK.....K.K.....K.......K...K... +.K..............K..K....K...K...........KK........ +KK....K.K..........KK.K..K..K...K......K.K........ +.....K.....K....K.........K........K.......K...K.. +....KKK...KKK...K.K.........K....K..KK..K...KK.... +KK..KK.....K....K.......K..........K.K....K....K.. +...K.............KK.K...K...K..................... +...K....K.K.K.K..............K.......KK...K....K.. +...K.......K.KK....K.K.........K.........K..KK.... +K.K...KKK.K..K.K........K.KK..K...............K... +K...K.......K.K...K..K........K.K...K......K...... +K......KK....K......KK...K.KKK.....K..........K... +K......K......K..K...K.....K..........K...KK...... +.KK.......K....K.......K.K.....K.........K.K.K.... +............K.K....K.K.K.........KK..K..K.KK...... +..K..K.K..K...KK...K....K....K......K...KKKK...... +KK.K.......K.K....K...K.K.......K..KKK.......K.... +.K......KK.K.K.KK....K...K........................ +K..............KKKKKK...K.K....K.K....KK....KK...K +K....KK...KK...........K...K.........KK..K..K..K.K +KK.K..KKK...............K.K.......KK...K.K...KKK.K +.K..K.....K.....KK...........K....K....K.....K.KK. +.K......K..K.K.K....K.......KK.K.......K...K.K...K +.KK.......KK.......K...KK..KK........K....K...K... +KKK.....K...K.......K....K.K......KK....K......... +............K.KK.K..K..................K....K....K +.....K.KK....K........K...K.....K.....K........... +KKK..K........K.K.KK..K.......KK.K..K.K......K.... +.K.....K...K..K..K.K.KK....KK..K........KK......K. +..K.K.K.K.K.....K....K.KK.....K......KK.K...K..... +.KK.K.K.KKK........K.K.....K....K..K..K...K....... +....K...........K...K.........K.....KK...K...K..KK +............K..K....K...........K......K....KK...K +.......K.......K.K.............KK.KK..K...K..K.... +K.KK.K..K.KK..K.K.......K.K.....K.....K.....K..KK. +KK...K..............K....K..........KK.K......KK.K +....K..K...K....K.K.........K...KK.K.....KK...K.K. +..K...KK.K.KKK.K.K...KK.K............K.....KK..K.. +.KK..K.....K......K...K...........K..KKK.K..K.K... +.K.K.............K..K.KK.K.KK.....KK..K.....KK.K.. +...............KK...........KK....K......K.....KK. +K........K..K.....K..K...KK....K.....K...K........ +..K....K..K....K..KK.....K.....K...K....K..K.KK.K. +K.K...........K...................KKK...K...K..K.K +..K..K......K..KKKKK.KK...K.....KK..............K. +.KKKK.K..KK.......K..K......K....K....K..KK..K.... +..............KK........K.K.............K..K..K... +....KKK.K...K.K...K.K.K..KK....K..K.K....KK.K..... +531452 965701 934229 561633 498619 427107 557812 686398 439349 515619 941944 560459 72757 385586 802607 180490 833490 154106 715411 448832 84127 323178 817886 511615 823589 638252 733239 542002 543747 89728 338465 36429 924356 504611 379044 555974 554522 20334 878259 339800 360061 349028 460947 102948 190501 817605 805476 56570 269423 23497 +294791 284387 608504 370423 645801 460263 715258 140322 457369 509100 90544 926066 900484 865947 282594 207799 668681 25811 669653 104221 120846 638523 214339 223960 512395 409207 368235 776234 249960 436100 265816 563871 94445 293472 273240 470983 369476 794352 715092 45418 636099 956636 872135 220671 905880 663442 20899 892214 647452 754847 +581115 121817 97529 899112 187685 279465 646514 940445 983440 797931 522857 533106 555290 358051 949573 320573 773557 932082 142122 465910 583582 450708 843315 495511 387285 953913 634038 988552 250273 294723 174215 27129 946612 758730 372666 900643 64248 860019 525701 812656 44334 951579 314705 126810 659996 717889 615979 28118 921208 238653 +41911 506362 193387 79051 829921 138658 831019 348725 770740 774543 904012 942401 350384 757430 825888 238037 370043 57966 936268 553340 891748 421513 91554 904025 367028 753190 924379 838714 251502 223466 897211 632384 932182 933272 529332 770512 71498 81074 281841 128377 692994 613823 93121 380550 777713 584521 778341 16648 752322 472792 +358520 577874 341515 658673 423185 920762 468663 771211 417562 934077 770740 797737 382930 149536 629647 876370 239744 603358 674355 560028 612139 95541 699092 888326 73533 360581 913025 680280 349511 799076 976055 914694 488780 712905 747867 209680 159610 827434 875341 459751 839396 685101 850097 558292 493847 354438 67541 801887 276679 384886 +81308 962085 643315 360979 390375 741791 890714 717663 292540 6113 454203 723956 605603 840793 755790 144112 707663 643553 243505 791229 796160 112236 356626 917844 918377 975988 331584 633715 286908 259814 835434 903489 884460 267412 794730 568564 775263 813256 800601 913338 340307 701131 86625 299874 420153 277764 700460 426442 738362 160042 +538149 58735 360819 105847 734640 406693 684752 601088 142698 813158 636884 749147 353864 480672 816496 960874 630682 244960 520635 180922 848658 782776 45576 469638 680145 179668 759732 102984 527199 455706 759461 655162 51757 474500 161549 734011 719922 561806 773949 773375 411941 377695 934179 109750 704627 456160 661088 765539 794867 34040 +312274 582131 33720 530417 444906 450744 163435 843516 595097 857333 744147 366592 288420 744562 96275 962475 617918 822581 203892 966001 666448 851544 128768 957191 336364 583518 195188 277485 216456 806507 337380 303668 139695 996782 691120 505634 817415 381523 226966 266896 784834 2293 621249 54908 179200 548594 231250 722616 840721 893673 +227260 636906 19747 530788 941771 134198 692916 977542 408334 639781 943632 133841 416120 632181 847478 937881 819695 688532 521620 882520 383508 313116 491268 237536 699414 75605 14796 299774 735860 935973 959657 63012 714215 31310 767347 71495 709335 52783 610073 823592 361660 219273 383735 129744 856846 934417 266344 385328 722011 395718 +710608 143838 29306 541754 928392 281647 117515 871461 424834 52917 393987 189996 599726 109815 444009 876964 823852 168858 822949 169468 423111 153093 895057 482400 867408 68613 593126 241742 950999 399101 364134 607297 481434 561685 195691 783350 1428 418401 481997 997428 440980 232104 583111 731269 923392 859937 761087 565126 412636 148803 +430866 497249 962599 726504 544683 558415 388798 818448 90954 179121 22036 734764 922600 639875 697314 905905 956268 111688 826064 525179 221603 606416 435757 733353 956042 661446 588426 158134 767341 178955 191197 351116 891808 815285 596582 154994 697400 170861 213012 167851 610892 357659 225728 31357 489508 730659 263739 217304 146448 100205 +373060 175626 363037 318909 183727 237850 698697 259882 369117 54592 325780 76936 27502 681462 386798 398035 221166 876384 48165 738861 525760 760485 941573 402324 392795 432615 498495 714820 169953 812693 648265 565581 982438 22789 400579 222283 347284 833176 720985 48488 797202 814326 729859 52361 158791 222527 531659 921994 816219 501842 +502404 214649 531658 352186 436825 891453 176250 353243 368655 21130 3851 994342 684622 81256 400622 284907 842369 2557 476656 461978 208825 339388 352747 100033 389562 753584 294234 590105 25976 535590 408924 16162 563507 755888 350881 652153 693710 192912 532842 352879 949528 807397 394913 303398 684530 721008 967636 970432 149919 971441 +650139 693275 847789 135930 310384 111191 859806 716795 572765 189520 387269 368348 427813 483538 875439 24943 89739 607786 131594 917803 372689 397558 950077 988191 608395 523563 646552 348152 687005 587477 705338 782189 193626 535250 791030 493134 893074 771957 742140 847451 638020 860899 151967 760259 577431 888764 651720 987909 223812 348546 +314772 401226 171100 271254 803943 169990 246052 714549 934165 456724 608883 499215 549196 587712 250947 234284 238328 512654 375454 375757 848583 616206 760004 397060 809179 939152 160283 618675 22112 597021 826643 210006 629840 511387 95296 907232 378887 43025 633631 435726 125675 942804 479692 503627 353475 653087 792590 55660 52959 183974 +78787 425803 621886 769717 773918 769200 409541 179487 848143 368195 714336 752840 826842 545962 865428 616151 686123 930668 785910 989440 148555 261010 813248 590303 962095 286527 289814 678198 285025 86962 953268 318875 403737 766852 99 745871 435564 284342 956365 223293 359417 682952 666589 407600 877691 402117 216567 3985 979729 466396 +538051 923805 182107 684233 23861 972659 447110 131692 866354 26428 764273 785040 316740 163945 704338 257526 201638 450126 870013 525510 439108 606491 917211 356178 88031 204760 907798 132266 247552 655261 774064 106821 423671 485365 593146 54979 382449 420757 564630 916500 577376 42253 275863 461812 151587 820835 156922 934145 38523 516972 +24634 963565 408059 103880 595338 484833 594218 353654 957939 782112 312211 17247 754911 42312 441607 621455 225984 156948 434550 316470 285412 214600 706685 121825 692660 835590 255553 54699 82751 365461 336637 753565 865697 793359 77006 957150 485832 245279 945642 820381 344895 738219 264710 397311 879017 865275 184294 391579 906709 792751 +319305 345404 500813 646267 458690 899490 130086 699727 926721 191520 915260 587795 426562 471759 17935 808388 547570 394130 405401 767245 47731 234537 525342 79057 524413 691387 766629 476212 360697 775844 124912 227529 549484 759043 83284 528048 664170 415994 876907 805303 738501 188016 8482 202667 942616 254373 896287 236276 257873 754812 +768719 259863 852540 852087 301858 317221 655618 851440 472799 659092 49049 380725 126941 296657 974356 728791 536691 770089 172128 179654 240114 721337 923440 954273 505977 536268 729587 217337 256556 29315 211233 168722 359728 562990 522602 237094 229423 82512 755047 970012 842108 445489 19490 186328 369616 849376 139462 697696 957821 913269 +654545 936982 125337 423245 601920 671343 794549 834710 66385 976237 966710 966458 719741 74156 368766 661422 528536 421188 269411 467265 709638 190634 382636 137939 578946 252156 389157 71428 959606 837162 13696 545098 217526 616559 96669 480044 492285 216543 274862 489723 120436 810161 749785 3 333689 567869 771339 133559 743001 291068 +495367 745876 97551 540309 971730 599811 432024 782648 675153 101921 428995 398673 899405 47657 724617 30435 704336 544511 747683 836459 268181 70057 203418 624566 955183 423103 234094 279727 47659 739858 440694 845598 382871 851881 34414 3772 664445 717744 689723 127180 441184 420826 915463 843501 730641 298323 90359 397054 92171 541071 +567896 599977 726500 579265 870248 955640 371477 641083 265477 147687 691794 834387 980069 905942 38235 765448 196692 252621 48257 873672 93776 8754 144072 200023 445985 2189 735261 772441 112761 14266 553298 89734 783432 949609 452524 618866 820780 676075 90968 494073 123062 446206 151188 270869 860157 503732 357296 648804 307482 332766 +178219 435668 913981 33846 609906 592482 421162 981283 771855 964259 739129 516416 684575 600718 178174 889386 688117 257951 768730 322058 869458 873190 100036 725750 177011 85769 215078 558433 993340 739220 594579 920164 576273 108306 439043 117025 781301 512982 867968 354226 811177 896090 575910 42554 774770 465340 64067 506414 464675 65270 +156847 317611 542148 810130 928751 228010 183938 581480 543861 713504 874975 488796 622281 285061 363009 614379 779963 640433 386045 665827 635676 680592 160487 674009 986309 451361 780507 803949 482093 449318 215631 334247 988718 937459 121943 518650 225034 180813 54214 696166 462065 145515 332847 620594 1517 617618 125903 756768 61606 518641 +946492 447228 269822 48028 856074 128764 319672 592014 892246 816296 262765 674814 327785 666400 482759 58655 733912 549009 394237 667049 71439 638956 954514 596226 361097 2617 105018 449541 630138 805241 203406 909455 741761 561491 685212 207674 980864 656298 37507 388733 837920 814296 414295 868654 169034 808182 319917 923154 358193 49428 +505214 363217 570887 763914 702302 176671 224837 231897 543712 485196 10166 917397 428531 17316 130368 923391 361850 864042 505612 989055 647955 882260 779581 773364 958760 436224 93411 683750 298350 53285 572884 117137 580188 62338 514203 476096 881820 661379 208080 143667 592027 157985 774065 718413 6780 383162 779604 718670 406107 735508 +256138 911155 131093 805249 992132 38185 969911 254841 20144 6788 33469 78497 423657 610488 328246 571977 619792 452203 174163 871514 674240 302194 281834 789142 56288 365889 226859 505664 790884 829336 139186 718150 782938 832403 27828 132907 927498 32842 245491 313991 817471 150119 33561 778217 292685 402377 547275 811189 853658 644262 +274284 95811 196518 542708 532154 517840 332143 419463 652794 925761 957529 959693 957332 530342 879066 214279 766902 887754 248073 877684 116352 906891 371853 411529 77876 365997 388797 575490 853101 106105 224079 149237 634583 673993 750836 429478 84988 151108 544519 779635 797626 946197 801897 571490 793573 133698 772381 111866 697660 853434 +728417 482592 314700 864230 70091 616868 767964 4396 318502 35492 552776 21052 145725 919151 435812 894797 686062 120374 471864 636551 393059 394218 674051 336607 247697 303495 142458 989490 321471 664004 473178 631526 998158 449351 914285 965019 569949 59564 467177 196834 837600 154938 332019 685554 435306 308073 64835 579386 912582 791485 +144914 454204 44984 98174 505237 591297 74389 294819 516754 250899 754193 411573 928595 908051 607524 977711 35491 745718 678491 341132 258499 400102 556959 194216 143157 215272 217625 300796 282142 759391 359003 441887 570131 70235 942835 451141 500489 802542 850960 249766 443095 379197 896370 489054 974090 770384 667578 188023 555456 18108 +86251 240795 439746 599056 713816 914055 732404 62366 533726 994280 736058 31641 131637 827410 489516 221778 352138 966127 494802 884910 903158 630084 789657 625869 265730 955890 412034 806241 279879 247266 692867 771672 147261 584402 678002 442052 176142 574845 636189 276960 382381 373324 635744 652101 706063 526185 210264 150669 392796 655800 +921814 253313 351304 850208 662812 129548 430990 722229 250910 491173 747055 243023 133300 108066 780750 473815 752519 208177 989605 549140 180465 568319 930663 693685 629525 217602 865956 616683 86202 594043 521900 967629 682056 46651 133653 306351 61127 108951 652777 296181 451885 24720 395002 922016 997135 16771 854956 669348 73280 835655 +180977 485504 256384 19335 368912 814129 702226 16876 119663 195596 971495 985301 214761 461254 176400 165632 496554 927151 637945 282452 271117 396327 799110 947968 853344 16422 227051 599441 999236 758657 386768 52243 314491 13594 222667 825065 289503 280287 759274 679521 475191 631266 995639 902780 638597 359812 48271 39029 705262 403051 +457370 321795 966895 240909 62189 558766 896644 824291 976196 845562 49061 857462 392835 314728 449681 393797 807307 292738 588544 754315 495625 138865 992220 179185 980032 938679 44387 965838 988412 16217 520332 919791 560237 912586 921339 772841 151297 234356 477167 657542 252787 599682 213527 712218 613632 350867 889323 872639 564955 682948 +311439 398712 73809 281605 482834 693489 344038 447002 758147 436935 930122 852965 75945 359379 814722 306312 296771 533003 158678 819558 14068 973026 111665 332724 846669 148776 683476 841781 178748 481817 158066 494487 578630 679708 254316 396478 328666 42179 394849 309817 353494 622610 661764 800344 6624 683222 523124 898706 951779 174440 +545841 242950 492380 568455 303944 697670 316384 979124 381617 515228 363627 336782 786565 955183 435522 147295 619935 823208 215767 756751 33267 591256 675007 231798 729142 128332 670886 30431 35055 394282 114222 915392 531058 59479 139693 966215 950004 842804 495268 351753 183575 117867 311928 796226 500400 115162 586656 333237 735233 817764 +297082 737975 276615 238926 487870 272803 112188 929196 670486 138077 652813 58387 932558 764311 931246 454825 875502 155586 25293 935315 298189 690477 770296 87580 260891 746911 980933 202247 40309 44629 636027 976971 678919 484581 123998 475757 702197 744430 908038 440148 172376 145272 179039 240124 344778 519179 707573 432604 441604 401852 +617422 899150 597745 209323 584533 105493 755845 323193 152083 70640 729715 556135 886882 813901 546991 897337 559970 992252 274739 916448 419260 687921 712773 237756 561306 756174 433801 963430 578653 762596 276057 49698 734606 677165 761832 364873 662637 932127 132334 832092 307036 335658 695921 123515 103356 733814 264709 764844 550869 366749 +891276 236327 611920 942491 38371 783332 471184 628645 235922 507553 379625 256852 634859 555974 529994 707513 401586 529951 190259 991505 968455 469144 725115 884269 320830 315664 45939 670040 793451 440897 371121 224214 27123 72140 564251 230595 105646 290381 856245 258316 992860 224854 277768 259849 666201 428523 656393 287770 758873 969572 +170983 301253 534216 994395 633974 430095 874178 935314 778857 509275 206759 261070 407321 853114 73829 805821 433885 789439 661289 383808 972159 957163 549343 203183 818352 134969 401748 736705 266953 211497 832320 89333 982023 542492 374946 56408 312936 696263 574714 453057 838268 540256 237316 289287 513636 719619 506708 772676 719997 1167 +951650 571991 182402 251996 922757 324280 977092 67891 214022 955593 337120 98909 345230 88709 468170 994309 826187 317608 87956 751802 467841 190188 643803 327042 411692 571251 76660 626399 301413 163075 481 813113 723420 91664 551071 749023 406496 900328 747925 837897 877586 831909 954506 873954 328997 406063 973867 496627 690374 71153 +140055 128273 159796 454141 890417 901266 495338 40499 370822 132886 92054 569422 676205 284784 222949 325175 408877 232154 83484 327274 915000 953306 311939 261669 160095 928157 25488 722311 311136 618402 980409 979465 795187 730864 532827 953703 193669 116858 304695 195760 913786 625850 854282 149320 713237 620618 939823 313329 301356 854569 +601837 856123 439485 132225 34537 860522 751628 185465 13071 737275 889957 232323 307160 111371 977271 932338 870532 61845 603918 972682 58242 390831 620217 505925 287744 462406 446912 235526 153162 858736 176083 400180 689757 462561 105530 588739 964878 491717 737320 621500 692409 421742 713919 164450 132198 386395 559235 184857 55160 777223 +218159 388206 343725 928516 526343 543013 45456 441948 100399 44076 478583 969434 447523 152555 962592 654698 939839 139260 363321 355002 461886 94677 903333 634332 225770 548934 907592 130463 240663 762877 244277 374503 507012 263989 865418 452482 355260 203284 406801 970223 527595 105772 69173 705134 773382 251011 344468 52812 562721 450903 +340927 795061 709205 29283 626246 187034 171995 146297 772276 973231 571843 894228 156293 693545 633008 295164 953967 461459 816200 223873 959260 914962 918901 980460 54756 915076 470504 460555 544678 230548 131954 111384 190823 235980 534124 382037 602674 905698 995344 119100 692524 983524 799332 918902 304181 910711 323870 415059 795083 697416 +926490 813846 500783 158442 352552 372239 943141 850537 906722 406299 874839 551082 267845 16513 89606 606540 687752 740386 364353 536779 152431 456558 550168 856534 959215 31962 663450 155730 774894 57345 784946 752346 395362 453237 908717 344059 150017 840952 27995 879320 851910 143119 819913 877932 319738 978340 297635 975419 514807 608020 +199780 261535 632978 419536 568581 76984 265282 250759 167338 637731 391167 449579 819396 915191 978678 898084 915477 545656 258459 221772 265793 635835 188105 197824 561126 831375 202172 505183 636103 267043 766400 86592 476852 536547 183470 156049 180929 181268 300588 639965 824118 262111 302450 927129 551717 394812 904236 852756 174079 696500 +999350 943468 146124 651726 652411 466490 713827 952289 3027 572250 753540 942621 820013 684147 390804 543074 956785 894191 769383 654110 246154 669965 114002 172462 302002 7424 653415 834874 895132 526319 931138 99128 450923 131085 205210 304299 968070 990132 973449 860952 636842 103759 471141 505636 136890 918241 566634 962032 732178 590412 +56980 643731 236369 50022 465521 498514 295250 124132 422367 570951 179162 529877 615337 233778 579244 699188 91435 961359 516778 860753 731007 906677 677296 948886 596234 478477 351614 619561 811403 460477 433834 505575 944452 957491 676588 152898 391655 449398 458586 920712 142587 634199 255086 390094 374989 435756 686880 772820 635249 164053 diff --git a/2018/republic/10-12_d2/postas/tests/input.1a b/2018/republic/10-12_d2/postas/tests/input.1a new file mode 100644 index 0000000..53f0e42 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.1a @@ -0,0 +1,9 @@ +4 +.K.K +K..K +P..K +K... +889065 410637 837320 399872 +531498 929923 153678 295021 +340357 352205 77487 574205 +346047 227896 804677 961686 diff --git a/2018/republic/10-12_d2/postas/tests/input.1b b/2018/republic/10-12_d2/postas/tests/input.1b new file mode 100644 index 0000000..fadbd2b --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.1b @@ -0,0 +1,9 @@ +4 +.... +...P +.... +..K. +450637 830044 165281 50803 +278347 126091 297234 709302 +959182 134191 626848 726254 +915793 798047 634357 248494 diff --git a/2018/republic/10-12_d2/postas/tests/input.1c b/2018/republic/10-12_d2/postas/tests/input.1c new file mode 100644 index 0000000..625aeb8 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.1c @@ -0,0 +1,9 @@ +4 +KK.K +K.KK +.... +.KP. +42 42 42 42 +42 42 42 42 +42 42 42 42 +42 42 42 42 diff --git a/2018/republic/10-12_d2/postas/tests/input.2a b/2018/republic/10-12_d2/postas/tests/input.2a new file mode 100644 index 0000000..e4c0adc --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.2a @@ -0,0 +1,11 @@ +5 +...P. +K.... +...K. +KK.K. +K.K.K +278711 137063 859731 201462 837696 +500150 974074 29210 58040 42631 +400657 214021 892692 245611 637021 +579293 630767 970597 576886 458643 +274634 55307 246344 1968 256643 diff --git a/2018/republic/10-12_d2/postas/tests/input.2b b/2018/republic/10-12_d2/postas/tests/input.2b new file mode 100644 index 0000000..127c722 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.2b @@ -0,0 +1,11 @@ +5 +..... +.P... +....K +..... +..K.. +440842 137794 219750 787096 838236 +772763 598786 609696 497845 732623 +738400 62376 732330 116464 493196 +143047 42547 748114 245280 176244 +797056 898277 571009 796446 164523 diff --git a/2018/republic/10-12_d2/postas/tests/input.2c b/2018/republic/10-12_d2/postas/tests/input.2c new file mode 100644 index 0000000..1c5e6be --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.2c @@ -0,0 +1,11 @@ +5 +..... +.P... +....K +..... +..K.. +440842 137794 219750 787096 838236 +772763 979323 609696 497845 732623 +738400 62376 732330 116464 493196 +143047 42547 748114 245280 176244 +797056 898277 571009 796446 164523 diff --git a/2018/republic/10-12_d2/postas/tests/input.3a b/2018/republic/10-12_d2/postas/tests/input.3a new file mode 100644 index 0000000..0145e58 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.3a @@ -0,0 +1,13 @@ +6 +..K.P. +.K..KK +...... +K...K. +...... +.KK... +890843 135137 420618 433534 285925 101767 +955282 645317 799215 231786 530847 627963 +22896 14293 287377 952597 949838 44014 +549128 38308 891863 51386 509370 186310 +56478 60183 704994 22139 101292 318219 +892499 525753 500007 249255 68498 589953 diff --git a/2018/republic/10-12_d2/postas/tests/input.3b b/2018/republic/10-12_d2/postas/tests/input.3b new file mode 100644 index 0000000..178a16b --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.3b @@ -0,0 +1,13 @@ +6 +...... +...... +..P.K. +....KK +...... +..K... +220335 13990 310559 786353 72970 159241 +35090 329062 777205 39137 492500 385282 +435619 3571 709913 836633 721806 481864 +989867 862550 736977 910006 510226 386599 +830935 971950 83705 569463 169088 942357 +809849 900146 669665 339044 857542 221097 diff --git a/2018/republic/10-12_d2/postas/tests/input.3c b/2018/republic/10-12_d2/postas/tests/input.3c new file mode 100644 index 0000000..0e4a226 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.3c @@ -0,0 +1,13 @@ +6 +...... +...... +..P.K. +....KK +...... +..K... +220335 13990 310559 786353 72970 159241 +35090 329062 777205 39137 492500 385282 +435619 3571 386598 836633 721806 481864 +989867 862550 736977 910006 510226 386599 +830935 971950 83705 569463 169088 942357 +809849 900146 669665 339044 857542 221097 diff --git a/2018/republic/10-12_d2/postas/tests/input.4a b/2018/republic/10-12_d2/postas/tests/input.4a new file mode 100644 index 0000000..c5f30bf --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.4a @@ -0,0 +1,27 @@ +13 +..K...KK..... +............. +KP...KK.K..K. +...K..K....K. +....K...KK.K. +K...K....K.K. +..K.K........ +.........KK.K +.....K......K +K..K...KK.... +.......K..... +.KK.........K +.....KK...... +253005 843424 680568 58813 251914 490841 622264 720997 848349 87530 705003 100451 593653 +997899 57021 28388 531120 218385 521429 368312 959657 228886 952729 106866 945539 337460 +640171 622423 170899 494935 305274 346563 505583 503089 552525 789819 229666 428300 759486 +725684 180294 323540 453527 67455 99835 440665 878896 211325 152384 200398 579283 613569 +626930 2975 95566 704265 313679 814605 861213 398544 744390 290961 657877 314441 695027 +280268 551 606396 159884 689303 607417 818579 97175 724634 519479 578895 594342 544175 +372722 964755 286938 825032 700884 506932 538182 78951 72477 807678 693616 238776 27669 +795572 999490 44085 884926 237584 291928 127018 252205 694251 653464 613812 697761 377372 +611658 817711 186697 881121 622684 256005 32537 437140 555060 72363 296245 902359 682690 +656593 695243 817772 607470 711859 932826 826412 407058 308956 952786 446904 650349 757199 +998259 575598 241905 812757 220681 442568 171217 410041 757926 655288 192898 280491 44289 +342130 273296 516066 111880 350081 68638 440383 177685 55810 203732 868174 902404 326266 +227484 103436 911581 99974 722319 314437 367969 85782 760440 883204 123782 293554 78385 diff --git a/2018/republic/10-12_d2/postas/tests/input.4b b/2018/republic/10-12_d2/postas/tests/input.4b new file mode 100644 index 0000000..e1fd4a2 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.4b @@ -0,0 +1,27 @@ +13 +...K......... +K......KK.... +K.K..KK..K... +.K.........KK +.K..K.K....K. +..K.....K..K. +....K......K. +.K..K.....KK. +..K..K.....K. +..K.......KP. +.K...K....... +.KK.....K.... +....KK..K.... +590530 816066 540851 461468 543385 463443 898714 259176 986716 890202 64786 900272 59039 +315550 443721 119570 7391 66970 631591 754576 732100 657094 586752 849819 45498 855665 +612961 701487 277469 889035 170778 467531 361896 759440 753261 491707 950979 602910 757471 +68397 618607 93374 926438 664279 329677 856308 636171 448346 887105 353891 528802 598400 +877152 635545 230427 280032 499847 937862 595691 779488 210296 94007 229312 347499 773726 +577549 67550 551733 921055 140853 736187 882140 856567 513408 996177 552362 745570 427304 +989159 866583 39722 825702 651318 595257 806180 65731 981871 819316 917109 285349 797499 +132951 589001 87976 996760 547920 665738 115181 309776 687217 891705 725865 614022 292782 +830329 957430 580958 217802 772679 737769 48253 60066 879942 771108 754912 393534 302889 +133423 255729 695531 352368 766030 773333 246567 870437 56861 528146 487683 737752 908347 +352629 476258 156085 249097 922534 616690 940588 218699 2286 42236 797569 29365 181318 +209874 710304 721367 90654 272348 426987 80426 704836 510161 234334 65752 933206 39832 +333752 686235 116686 245496 736222 320402 475195 156094 343850 69272 856785 993211 92739 diff --git a/2018/republic/10-12_d2/postas/tests/input.5a b/2018/republic/10-12_d2/postas/tests/input.5a new file mode 100644 index 0000000..594a202 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.5a @@ -0,0 +1,29 @@ +14 +.KKK.......K.. +.KK.......K.KK +K..K..K..K.... +...K.....K.... +.KK.....K....K +.K.........K.. +..K...K..K.K.K +...K.KK......K +...PK..K....KK +.K.....K.K.... +.........KK... +........K....K +....K......K.. +K.K..K....K..K +703712 362049 433211 577003 661294 781624 134089 618905 141044 62508 341747 254696 316058 642415 +416351 686135 319825 152361 476561 708743 89556 577933 8758 130588 349450 135216 701430 423598 +669935 689453 255862 557870 184040 522871 668793 536843 127670 679381 239324 815308 89485 176318 +828708 44771 386947 375790 866859 613418 204421 959981 892220 423856 67127 100465 745771 960855 +904602 527042 489276 873455 216273 360959 103699 523750 331118 529360 599312 648100 727302 276144 +765495 677519 567551 108566 565271 907656 687714 883760 166554 515839 131069 685051 102559 890139 +478818 926416 428680 991357 794861 355793 252566 865220 984987 537920 115624 737464 50137 716789 +354500 7766 24253 322818 888693 592133 569481 512268 933370 225319 231231 108942 454545 579170 +865459 41224 971091 681273 491403 797583 224463 342476 42478 265370 172558 902137 334567 508564 +33460 669903 713857 915731 77949 86463 307255 360518 56661 413317 304341 858376 235543 917193 +77003 68993 757775 236782 223588 756696 276896 450333 192940 633460 543342 956887 973439 399337 +930168 151634 58301 800000 70966 389920 998775 494229 385185 981183 720109 430021 511024 270562 +574801 318469 727694 949345 495005 772062 117051 903139 489706 414053 402050 256792 301534 951508 +585066 20510 320130 46192 739425 701052 837312 990325 969965 78536 473579 58520 32310 742291 diff --git a/2018/republic/10-12_d2/postas/tests/input.5b b/2018/republic/10-12_d2/postas/tests/input.5b new file mode 100644 index 0000000..a2dd052 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.5b @@ -0,0 +1,29 @@ +14 +...K.......... +.K.K...K...... +.K............ +K............. +.........KK.K. +.K..KK.......K +............K. +.............. +....K.....K..K +...........K.. +K.K.K.KK....K. +KKKK.........K +.K..........P. +...K...K...K.. +892807 218904 918894 660664 208842 859041 236609 92248 199539 795426 246700 999939 566768 700073 +109869 270610 256822 388304 459247 166421 766419 339889 635846 757870 677643 178056 663460 19111 +151436 507832 502730 676497 714206 190022 932392 163730 284144 983225 981437 848778 56422 32360 +342498 952185 776816 212382 846460 114566 126966 218832 20507 151357 128664 780785 871207 966612 +809880 836225 21906 265194 982394 478094 486708 976017 969280 414791 737576 628130 727472 873659 +174294 324902 440102 85823 510128 494123 499573 53849 876598 427780 61009 736921 592557 648631 +919273 230338 544676 595307 248557 71955 661909 240557 568586 188243 160833 547944 348386 966605 +847157 814476 23876 253496 225247 28610 985048 459116 243545 367603 845919 153201 7492 797789 +931759 198420 356360 797237 613502 79948 926139 754662 394694 865230 712907 514098 174938 365645 +66102 872397 168247 867866 49856 852648 868191 23591 848100 192570 764891 347449 794143 744240 +361544 69897 672724 821632 695786 588211 287451 656766 28148 160185 916216 219565 700304 79511 +645876 350984 272490 397490 500274 251795 119218 930507 956688 825213 231263 518923 611723 357540 +544486 254123 529847 174319 414429 181331 198071 119613 34331 162142 150892 525007 479666 343889 +41896 843619 762333 470449 721325 642753 126171 268248 780012 713230 228153 372857 519532 960354 diff --git a/2018/republic/10-12_d2/postas/tests/input.6a b/2018/republic/10-12_d2/postas/tests/input.6a new file mode 100644 index 0000000..d9a3a58 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.6a @@ -0,0 +1,31 @@ +15 +.K..K.........K +.K......KK..... +...K........... +K......K...KK.. +..K.........K.. +..KK.........KK +.KKK....K..K.KK +....K..KK.....K +..K..K..K...... +..PK..K.....KK. +...K..K....K.K. +.........K..K.. +...K........... +K.......KK..... +.....KK........ +777760 519311 132626 97565 588185 72937 508094 56834 494156 538608 857047 884068 238505 172116 678297 +942634 295032 55267 205262 803700 786658 407177 398506 291045 324331 300730 490534 890231 593423 964756 +908714 21039 505485 299823 655850 531466 135300 81708 125681 858385 22317 618158 21318 978548 906352 +596574 969386 551405 636777 834312 46216 121777 380542 169034 480494 903201 525933 376135 940966 611732 +105818 46305 464403 85045 757826 553657 858846 13865 147207 418694 202209 28363 679794 292055 727248 +714694 120407 250867 501938 247976 652106 95345 211384 814932 251745 183683 894619 430011 365708 433345 +455956 516434 304069 529983 723334 549362 972757 153353 464768 146397 678869 494028 498082 640458 465541 +218151 417773 189587 206742 652395 241931 797409 671576 285893 577965 863184 123482 113606 167843 650543 +931119 284261 599713 855466 476729 251083 932245 71641 733185 373487 533267 899969 448750 91472 274044 +399097 102503 685033 619580 32735 89395 435771 75942 979314 240575 834579 682298 522557 643928 149353 +233518 418909 291407 273211 599944 57659 505958 572959 164531 104098 248389 409238 787499 362014 221943 +812721 743527 929302 103838 962381 518500 116883 804570 861295 292589 946246 236633 282195 368815 997402 +826168 340898 744634 546947 276933 114474 310731 308603 839108 106567 119953 369917 652608 53748 805679 +727770 749678 731410 424379 837194 743821 437086 865554 585745 500639 208173 101090 220711 495007 735407 +173853 445439 318377 944328 891647 664435 377198 862506 959781 4360 778595 733825 998619 157478 865250 diff --git a/2018/republic/10-12_d2/postas/tests/input.6b b/2018/republic/10-12_d2/postas/tests/input.6b new file mode 100644 index 0000000..bb6b9c5 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.6b @@ -0,0 +1,31 @@ +15 +......KK....... +KK............. +....K.......... +.....KK.KKK...K +K...........K.. +..K..K.K....... +...K..........K +......K..K...K. +.K......K...... +......K.......K +............... +K.K....P.K..... +...K...K.KK.... +....K.KK....... +.K.K....K...... +814750 749688 945116 616556 18603 528359 301765 472450 928714 121931 211734 857917 199291 30487 334514 +404042 683720 214335 476003 864413 165679 241074 936890 122713 29883 573279 84837 880799 175645 780704 +618810 942696 360243 552355 360853 253333 649651 810684 935919 817324 398072 775040 321479 149552 114178 +524139 171561 156420 10589 83172 394366 380716 926540 584631 551750 485587 933101 65157 599598 565216 +349395 164223 829525 67683 137738 327088 493122 91483 499207 471005 9081 112752 647166 179064 83134 +856093 229874 478274 102676 301879 454664 229626 741422 964543 370378 476117 850410 997120 243891 562241 +576465 773662 445257 542801 117373 152857 431311 969962 312680 863452 365283 358497 5941 815584 539276 +94791 949033 737861 890825 88221 963059 615010 649994 928156 641975 184791 583 881630 695944 492546 +750883 465165 37721 257343 60029 817144 794237 159625 384463 264892 192321 997953 162416 173046 878762 +204970 274183 852568 805641 863943 684719 600296 765616 276805 212405 696460 137067 844188 914146 655100 +741634 568897 906208 478295 860713 15059 996616 383258 59838 484199 505604 75185 70031 260197 688617 +436832 112240 289091 747932 988854 455656 868627 470204 728392 345548 771984 65815 808996 417037 478865 +904330 85263 948856 738767 175860 166105 777857 316580 720747 398950 740264 863652 905467 184753 61503 +821793 956730 401069 335999 669734 935970 282661 659508 788234 59303 457367 38395 828511 83151 269256 +8725 344580 35358 511841 358387 178933 110272 943091 507704 156350 810994 3125 936930 179994 611026 diff --git a/2018/republic/10-12_d2/postas/tests/input.7a b/2018/republic/10-12_d2/postas/tests/input.7a new file mode 100644 index 0000000..8f5b48b --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.7a @@ -0,0 +1,95 @@ +47 +..KKK.K...K..K...K.......K....K.......K.KK..K.. +.....K......K.K..K.......K.K...K.....K..KK.K... +......K............................K..K.......K +KK....K...KK....KKK...K.K....K.......KK.....KK. +K.K..K.K...........K.KK..KK.K....K.K..K.K.K.... +.....KK...........KK.......KK.K.K......KK.K..KK +KKK..K..KK...K..K.......K....K..K....KK.K...... +.....K..K...K.KK..K.............K....K..K...... +.K.......K......K.K.........K...K....K......... +.K...K.....K..K.K.........K..K..KK.......K....K +K..K...K...K..KK...KK....K.....K.K..K..KK...... +K.K..K.KK..K..K.....KK.K..............KKK.KK... +...KK..K..K......K....K.K...K..K....K.K..K..KK. +............K.K....K...K.........KK.......KK... +..K......K.K..K...K..K..KKK..K...........K..... +.K.K.K...K..K.K......KKKK....K....K..K.K...K.KK +.K...K.......K.KK.KK.....K.K.....K..K...K.KKKK. +KK.........K...K..K......K.K......K............ +...KK...KKK..K.K...K......K...K..K...KK.K....KK +.....K..KK.K...K.K.K.KK...KP....K...K...K.K..K. +.K.....K.....KK...K.K....K....K.K..K....K.K.K.. +K........K....KK....KK.KK.......K.....K........ +K..K....K.K.K.....KK...K....K.K..K.K.....K...KK +K.K.K.KKK....KK......K........K....K....K...... +.K....K...KKKKK...K....KK..K..KK...K.K.......KK +.K..K.K...K....K..K.KK...K...K..K..K.......KK.. +.....K...K..K.KK.KKK...K...KKK..K.KK..K..K..... +..KK...KK...K....K.....KK....K.KK....K..KKK..K. +..K..K......K......K.KK......K.....K....K...K.. +..KK.KK....KK....KKKKK....KK.K.K.KKKK..K....... +.K.............K...KK.....KKK..KK.K...K.KK.K... +..KK.....K.K.KK.......KK.KKK.....K.K.KK....K... +............K.K.....K........K...K.KK..K.K....K +.KK.K....K.....K.KK..K...K.......KK..KKK.....K. +........K.KK....KK...K.KK.K.........K..K.K.KK.. +.........K....KK..K..K..K.......K......K..K...K +K...KK...K..............K......KK....K.......K. +.K....K...K..K..KK.......K...................K. +...KK....K.........K..K..K..K.K.KK.K......KKKK. +...KK....K.KKKKKK.........KK.......K.K...K.K... +K.......K......KKK..KKK..K....K............K... +.K.K.....K.K.K................KKKKK.K.K...K..K. +......K......K.....K..............K...K..KK.K.. +.....KK.......K...KK..K...........K....K....K.. +...KK.KK.K..........K............K...K..KKK.K.. +...............K................K......K.K.K... +.K...K.......KK.....K....KK..K.KK..K.......K.K. +25657 333488 320247 427412 338556 28560 732775 141559 748150 430981 576528 161255 148384 260910 778024 932741 18708 720568 53462 602681 182995 47401 130576 496791 143977 465831 101711 557123 487038 828928 285521 171353 359301 177237 145630 375936 607893 236580 638420 227612 384661 555561 341870 838655 340185 965845 247257 +215659 990691 767365 173123 780192 486366 636194 384016 226882 974200 483047 69602 585602 866359 735177 781739 201521 687746 895211 651736 171314 555911 917276 569928 354900 729641 498943 739826 962021 120562 22943 367155 938008 85356 947016 335277 904686 605616 989265 823936 341099 332412 736903 368110 417009 405991 990690 +748112 785049 425694 710582 332875 527469 321720 938825 199043 784048 1330 157443 101012 273149 950723 71145 61668 355520 259625 216475 89976 521492 348106 222100 724795 735550 913536 987891 28869 947183 6701 678329 776836 621585 165553 411711 991448 980619 576856 860628 501241 373646 399746 992571 251340 499968 656792 +567334 497981 710057 194415 163428 814610 676283 151927 758954 894161 745509 748999 108672 615938 539539 101681 441788 254684 621243 130459 287302 346099 730485 268865 452556 115500 318783 886027 708395 362628 94401 471283 117689 375712 804324 103752 66786 606204 461362 310236 780851 769649 9983 179002 308403 450821 445323 +690005 845366 549518 806309 814514 639922 7664 313286 840587 952053 50063 25021 211524 313397 812120 200280 869271 987523 763743 333214 603017 514232 743843 632531 452690 548210 415929 312913 267739 43844 97577 738077 237636 598295 464013 539928 216524 211305 694785 185840 692597 259383 686803 916143 108681 642715 930431 +853627 952884 40118 198533 132196 747437 687058 165754 57758 937981 597455 850356 811869 967235 491386 844940 827846 645340 685134 623133 811613 863356 528350 985532 851600 234970 803554 323837 589278 230543 573761 384678 488145 487067 475251 10427 120499 895292 850310 375357 717179 428536 740339 10890 323562 598790 299356 +256973 596607 701720 72216 156549 531484 202484 655428 598547 510285 158145 97337 567372 566512 860886 455879 439936 74321 895900 156204 960215 876489 260608 638305 278109 960200 184743 382216 784494 486997 922863 452578 398074 519941 760569 1201 137894 431953 279340 638004 336233 955215 647865 55540 911448 702076 199730 +203606 604525 821519 332505 91188 345477 576498 781403 605961 120330 28419 934562 624707 786489 604681 293518 889247 56638 605854 157463 956986 664071 198803 831266 442145 211463 129008 618906 190930 542014 162650 16646 647721 209060 438769 931092 110716 669900 897196 900396 644696 873013 593878 3920 195804 871073 572722 +887116 271552 39963 171129 956325 662669 425582 45884 193569 660287 765175 147623 32675 352780 953110 835232 703217 959866 565247 74260 812014 480104 67906 626741 812710 276660 974042 122510 732602 907258 266075 726393 609054 794789 683416 191004 459961 378813 902460 593443 233977 777060 43014 79706 738411 310961 8046 +209144 318887 713718 69240 82292 432120 29862 239109 151932 442500 944602 394413 449514 703635 487063 54384 639165 635692 153915 794296 982262 830600 828514 785209 349560 802000 352135 71713 78344 697522 755945 715066 367305 708266 80917 420920 769855 136096 25307 317929 938970 279117 395009 380442 102000 355112 424331 +365525 936182 96761 511457 903894 810013 305512 463903 362295 738555 863672 384343 345582 207825 371756 424838 488814 761910 510539 443573 595496 9816 576717 264181 452649 566225 438281 552065 94690 433732 237290 736923 829363 256451 911519 113704 333714 925502 336795 624942 324221 945870 235736 209022 377153 396900 885676 +456778 304764 317084 56112 356460 615490 43625 645642 530364 618892 920153 699215 390948 816243 649180 788261 12259 640956 836939 242466 539085 680583 369505 647514 114127 183789 237030 753152 825004 983374 485524 925367 74667 91764 938045 142965 10124 231777 291122 285516 458443 707838 611893 630668 191251 160690 714617 +492748 202663 883197 704829 555831 99424 200469 360500 848568 112623 631501 213374 139401 987886 190982 561248 195132 258846 343853 997589 232578 767769 368573 834960 518386 476890 853907 560671 558834 344051 243958 479107 854376 119887 199814 288657 368838 891712 424662 4798 18428 455692 988592 883323 710881 533344 755745 +80891 866850 937986 214212 952265 314499 203075 132159 706804 866639 706086 270919 667493 85229 324868 101895 974459 166306 944951 449364 811527 278788 157880 483100 520876 767989 193428 847262 623886 611330 927101 218606 772239 579289 578226 874242 689073 270465 777551 899780 311946 417859 378580 579088 753284 246177 978488 +850430 792634 282525 293682 308342 248949 27239 32047 196946 463715 404419 292165 818616 990456 255453 747733 816771 867779 279993 883900 832532 440230 412663 228033 291922 682049 339024 133316 282106 461947 544892 551056 105151 638445 80292 89996 892409 81130 856087 980474 756628 603125 277152 26332 270519 70171 945785 +40705 418179 969266 379038 26919 326019 27196 945470 852872 718595 446742 974820 459945 191753 745477 148768 209995 402246 687953 703467 692616 396625 577808 670728 717024 600180 171447 660584 39624 748538 63016 129798 804850 194500 402449 599633 230180 409578 906523 535794 454441 444882 90715 557765 899107 587384 373809 +561019 299753 390072 164532 188106 539667 352549 924961 904626 160986 918029 452694 488252 672004 233049 509840 367130 52867 495108 544749 804882 665594 932657 740876 522 363177 11865 374666 367007 748888 990912 41837 140606 665117 829149 950014 262169 442898 763675 135228 589207 217787 662412 520410 258886 342836 432777 +736659 623816 363328 589980 44553 942327 911466 468695 954037 782226 218295 586319 974854 377959 839796 714460 907666 166410 584998 400604 235008 928943 97534 161564 814842 583235 582382 476785 882944 64821 775215 809532 59989 235161 267495 215981 956642 230480 8634 834371 175903 276853 191434 966432 810776 968075 147280 +826911 600659 964621 712618 350753 742546 365059 637963 484171 621719 399573 225735 827588 548303 245988 486808 170345 548742 64537 437205 900187 219277 518578 245532 860227 152895 315148 823503 127413 142789 304337 824486 574853 666411 103993 906627 132027 532163 349467 436774 394130 353661 508812 842800 844076 477862 703155 +752041 364516 776536 708708 824660 510539 854468 57900 536966 620045 902399 260289 641551 769144 147491 441558 38429 545733 603892 429279 946277 733642 425198 867231 404020 955428 378711 522118 820443 58222 324905 93853 438947 778817 69387 162120 330391 443039 641678 183481 652810 173059 717811 943023 573977 287776 118008 +159227 493588 986139 220164 925130 984448 28289 256851 178742 945055 606363 368644 424286 596516 337819 728170 482687 630384 262550 453938 404669 546835 822729 794486 436468 442335 140021 424952 16398 404930 737916 132636 255057 67105 964955 430094 501840 57496 584922 231592 722088 385836 733562 560427 279511 141982 88129 +565275 980214 2820 169716 546078 982131 925852 854048 704178 343463 708178 771735 317215 21291 418217 287022 517267 896028 202000 247332 330614 662622 575400 309001 282927 80298 940150 162813 850171 72586 408898 789453 283391 809841 87782 802644 662318 98741 382521 372167 38045 511149 818176 950414 379219 288109 785478 +541032 158631 426827 583849 449126 65287 509335 60312 671178 101121 593158 933952 636147 573149 190345 302693 879820 470265 503066 594504 95080 871575 267503 335933 871392 154602 176258 89173 473834 680024 680369 80393 344765 541419 79968 300264 302720 53681 835062 436417 450880 586910 909230 581033 913820 658238 584815 +742655 773997 568711 927889 540310 125016 714696 533852 378527 411231 365735 945473 823465 415774 302554 883885 507367 141002 650664 200137 392228 587127 663692 708895 193098 277559 234636 368304 950242 27734 342406 63087 185544 877244 203603 358707 83103 919457 293364 569595 476368 228889 418135 345397 80797 92572 184797 +374001 574543 194821 938289 954314 723019 614471 216587 442482 30208 608004 365295 329070 479704 705373 330197 91393 130389 445530 817752 144955 15872 753008 405528 742803 740456 383871 492616 370204 261770 610776 732313 546658 808968 691901 323792 205749 459650 196534 954231 394783 469895 268273 248893 711057 495374 497203 +148450 607896 127212 332782 741806 626566 272185 40166 638668 953975 393963 113384 854431 191771 393358 511060 593221 232606 396145 509831 324632 668394 788038 837005 165122 326114 146478 98289 786166 484783 986705 387813 436172 756190 969271 505099 194241 414438 192004 826838 47836 19853 482350 476930 521237 771506 324832 +867203 948748 795019 928655 768752 570434 331528 103889 898998 282693 48464 614871 442673 924483 443744 503989 862131 495867 666005 561995 657612 958730 554272 643361 13319 220509 130805 294324 744488 435649 182984 601730 318182 961215 321751 367669 23614 158401 525971 107323 45001 628207 196119 766496 851477 531814 848331 +261011 260153 289182 546471 147311 756418 576391 624201 452016 355646 178972 622134 618246 975559 166656 196044 848987 582371 811851 951640 366262 525631 138418 273770 259582 993532 186430 772633 899167 664966 588292 328200 293858 1272 20317 237447 50906 622680 120767 478359 743099 656492 576240 908546 934387 374585 138309 +692695 317914 331513 148774 482669 339315 764215 864785 807442 839845 860108 984397 636627 161406 792955 27425 242044 881853 911276 426583 980829 514707 545132 969131 694877 856576 59388 434597 101012 386517 33836 886827 858678 217546 798188 601876 245244 682801 182150 420160 663238 921864 587582 492669 534553 561157 220302 +763811 962417 542520 732199 259153 583712 509678 153370 69001 805253 954706 334235 275985 838565 618063 190519 869033 608769 476551 397038 627712 392753 647760 77281 126075 849340 368917 357005 771049 614902 22608 660897 730955 329450 265310 481396 675598 867730 473672 446258 540547 967357 50456 914435 253761 199412 254231 +128473 331274 871606 9739 103540 888944 31268 536905 149490 97952 387795 123682 45695 771532 399792 292241 842496 843458 524130 600514 386695 459860 60238 760785 987857 37056 712689 404388 635429 179736 888123 261086 603469 20242 594735 362645 589436 33691 636132 49943 505059 400224 25325 273770 834703 525515 715074 +878343 156354 291927 321052 247716 979655 349250 917335 874406 324005 197262 427810 192628 607978 304889 982902 716862 221984 215054 931126 674411 605870 467513 505669 166947 488465 372646 592408 860165 666884 13402 854174 204762 428527 766627 611333 47075 296539 515199 87316 977064 827193 417349 349991 671379 377651 988004 +898453 620392 188456 82659 571224 167937 16152 904063 535478 527131 752960 46884 321563 680610 723288 107789 161509 195681 17503 135527 267871 212380 868905 952122 3644 796483 720622 140129 155666 633633 892053 59802 680208 564115 48185 673482 668001 758029 379857 426267 701245 428166 643023 893765 459169 33189 591364 +143806 706167 438789 230774 701401 920322 555381 859047 962524 506178 205323 890990 439145 119229 947420 406885 107757 322613 256994 552583 673037 393334 438894 41734 519083 543848 509266 522034 879417 303281 748412 999134 508253 281234 278530 202494 9581 637511 514201 606957 119876 93919 188408 80060 51438 365784 242576 +421082 897053 903869 1597 826690 197284 227195 901003 271487 783999 459231 717736 57111 376366 133046 58829 342481 634563 955799 751258 693184 362839 371732 704665 340464 49321 316855 426831 141760 789090 651163 615822 606243 562142 258939 862292 495205 571970 533027 657128 965194 481641 436939 594486 288996 449042 923878 +537846 92325 811233 74281 332494 416737 306508 126271 826358 366794 357097 449653 129753 364826 613478 394698 855791 204204 611103 592738 786241 487242 917416 272238 523770 131102 629395 746887 568259 693240 245636 244798 483549 60448 55796 187204 703183 68140 143361 563554 396801 913772 378478 813608 912730 56217 630913 +352222 223048 241970 145619 740229 384789 203167 657674 69734 560670 151083 296322 798881 955629 759255 989378 71220 983550 301872 105417 349114 81744 104181 451496 299375 952419 480194 9573 393516 760589 761768 284206 457269 665022 895839 706535 36717 446295 506557 810399 433893 168434 257716 822446 825707 442442 962590 +183866 747827 788963 819944 944859 110540 728861 575253 500920 449188 272197 812448 809989 253571 354422 78309 389799 400138 152408 711381 203973 962440 193930 863313 93875 699751 84162 898410 855887 854040 896603 666628 248253 441602 921863 959557 928158 815894 830186 807074 159603 853121 794256 21837 871761 701204 903388 +37471 198938 890030 730938 346331 337574 787168 705925 137016 525754 408456 512533 48645 802205 794027 905654 183078 102037 207358 713103 466955 713078 534271 132202 625703 407679 659397 652986 723678 301469 477974 55815 460417 266603 392907 338540 346258 241792 766805 915579 985128 48656 343712 643678 347392 375054 219315 +108810 940858 809649 567483 736092 172826 106682 91521 269224 646728 823247 675375 510843 290735 513784 601443 506655 88910 297066 132176 955411 144563 457473 652556 289300 789796 521437 275359 649506 802899 947227 394774 644940 541549 486514 609559 223378 594721 799502 491199 86042 471873 966184 339147 179578 175168 970011 +650008 708309 99517 943612 349464 809348 478380 861966 410456 919183 498355 302613 342507 299890 829808 456713 539329 606287 315764 907191 500567 295341 530560 888471 367590 702766 651189 157488 686766 130082 684203 215895 416900 131399 458335 69314 847235 464648 556777 444788 632912 948998 460180 736838 539331 995429 627928 +794867 660748 935798 449183 958410 552423 894659 16460 31357 499916 380086 300607 667161 637761 463974 12902 904303 157878 615815 762193 70352 769498 242370 182426 858953 444757 87709 879708 215397 906637 473231 677438 413883 655316 627409 753855 480270 63182 693047 140207 133522 971130 336417 521508 587510 518057 619380 +791126 772548 666170 179152 42723 908100 470046 62216 466088 836875 214063 927752 849214 307276 247036 839666 888278 172349 886208 465270 158360 779757 989351 114617 615281 819965 593223 28374 364286 417234 990078 632382 634196 866033 520176 726835 410958 137542 447611 278014 565841 288671 355534 725064 348802 244962 666867 +962912 189295 41022 375741 218984 507515 664202 886088 831082 43677 154851 934941 670011 220194 538504 89880 39408 139208 305201 382053 986589 351557 462948 51629 196959 784014 203856 204474 10907 695078 756241 127540 888164 107296 392694 295522 798727 888694 53102 518336 266559 237173 604378 289713 493611 882523 707124 +769756 876542 823859 425324 414298 55409 265423 570372 397698 495516 441843 945575 208354 298317 125250 40832 511059 222137 538360 908251 410764 329512 987920 206813 665585 802886 862618 232712 1952 941923 223963 692758 65764 516372 672737 832641 83143 726551 828783 514451 578152 737981 486932 825983 669710 665529 923153 +924822 778834 977257 168094 993256 182947 174543 116902 269168 92779 186820 377071 20256 365084 275635 490832 606615 864660 191591 170773 119530 938577 872676 26640 242697 381592 310951 950645 432558 36016 368478 877331 318063 845640 535907 958110 552927 601618 940265 414686 757625 289536 767432 704479 451433 980625 423293 +686893 508228 268037 984912 657960 667892 512368 188740 469683 908054 194581 778721 747821 530482 352702 129992 271619 46641 929986 976050 659554 544158 838385 831089 805492 334580 600541 34375 979264 539415 819365 645585 282797 896298 938319 512165 39487 4569 611608 870039 624350 131037 772951 527888 166927 286973 67243 diff --git a/2018/republic/10-12_d2/postas/tests/input.7b b/2018/republic/10-12_d2/postas/tests/input.7b new file mode 100644 index 0000000..47bbcd7 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.7b @@ -0,0 +1,95 @@ +47 +KK....KKK...K.KK....K........K.K.KKK.......K... +K........KKKK...KK.......K....K....K.K.K....... +...K....K.K.......KK..K...K...K.......K.K...KKK +......K......K..KK.................KK.....K...K +K..K..K......K....K..K.........K.....K..K.KK... +KK.......K.K..K.KK............K........KKK..... +.K.K......KK..K.....K..K..K..KK..KK..KK.......K +......KK..K..K..K...KK......K.KK......K.K.KK... +..K..K.K.......K.K..K.KK...........K..K...K.... +.K.K....K....K........K.KK.....K.K.K....K...KK. +K...K.....K........K..K.KK....K.KK.K.K...KK..KK +....KK......K.K.K.K.............KK.K.......KK.K +K..K.K.....K..K....K.....KK....K..K....K...K.K. +.KKK..K....K......K.........K...K......KK...... +KK.....K......K.....K.K....KKKK...K...K.....KK. +...K...K.K..K.....KK...KK.K..K.K..KK......K.... +..K..K...K...K..KK..K...........KK.....K.K..K.. +KKK...K...KK.K.......KK..........K.K...K..KK... +.......K.KK.K.K...KKK.KK......K..K............. +..KK.K.K.K..K.K...K....K..............K.....K.. +.......K....K..K...K.K........K..K......K..K... +..KK...K....KK..........K..K.K...K.K....K..KK.. +.K...K..K.....K.....K.....KKK...K..K........K.K +.....KKKKK.............KK.K...KK..............K +K........K.....K...K..KKK..KK.........K..KK.K.. +.K..K..K..K....KKK....KKKK..K...K.K.........K.. +....K.K..KK.K.K.K.K....K...K.K...KK....K...KK.. +.KK......K....K....K..K........K...KK......K.K. +......K..........KKKK.K....KK..K.....K.....K.K. +.KK........KK.K...K...KK.KKKK.K......KK..K..K.. +.......K.....K..K.......K...K.........K..K..... +.KK.....K.KK..KK..KK.K.KKK.......K...K......... +...K.....K.....KKKKPK.KK....K..K..K.K.K........ +K..K..K.KK..K...K.KKKKKK...K.K......K..KK...KKK +..K...K..K....K.K.K.K.K.K........K.K..K.....K.K +K...K..K...K.KK.....K.....KKK.............K.K.. +.K....KK.....K.......K........K....K..K..KKKK.. +.....K.....K...K.........................K...K. +..K..K.K.K...KK.....K.K.KKK....K...KK...K..K.K. +KK.....KK.K......K...KKK........K...KKK..K...KK +.....K.KK..K.KK..KKK.......KK.......K..K....K.K +.....K..K.................KK........K.....K..K. +........KK..K.KK.K.K..............K.K.K....K... +..K..KK...K..K..K.........K.....KK.KK..KK...K.K +.K...K.KK..K..KK.KKKK....KK..K.K..K.......K.... +K....K............K......KK.K....KK..K..K...... +.K.K........K..........KKKK.K.K...KK..KKK.K.... +339106 388244 910080 621634 878092 953719 389207 449272 421792 91222 141016 994619 715732 671517 273896 579016 641952 760126 985179 146997 385394 213098 343954 582416 772627 777648 830766 845644 970385 262250 755921 630267 539061 459951 439031 528978 239447 575861 39134 839960 188502 173445 784955 564196 390474 624979 319515 +365890 238287 49423 178381 238027 526378 851379 895105 683065 587574 265359 353739 560263 557602 886996 361553 359242 559660 109218 506642 132833 98930 872352 346441 21619 369112 839814 798828 112821 371319 357714 480334 347581 995885 948420 484340 819398 323720 424909 579782 32076 857793 762014 876899 636341 146743 944570 +965050 231385 773516 540364 760912 67634 235676 991504 627789 212906 700607 790096 873050 900763 965610 125302 180286 46625 665743 362458 126045 777896 257571 329985 766029 777816 278390 88658 534579 680445 680634 489873 920058 862102 114076 168183 897155 565779 349418 609694 470808 459138 420314 710191 394304 268374 560095 +973531 21008 489578 947862 827605 111652 724299 695916 205466 779621 22030 207968 632210 414479 541696 994297 591669 300539 941841 243823 229761 143110 228938 766261 99563 449264 820175 40884 9994 795903 186053 980680 672189 6173 909107 527698 347504 211122 251164 927340 92245 862574 431650 182835 213714 136727 471250 +287662 819066 460137 441416 30669 107122 647115 579376 928838 235793 538276 308565 23976 534203 44271 928614 291474 687324 414778 845972 913688 649791 951173 520600 95494 951817 980898 491548 818698 154553 303229 673636 751153 16494 958611 51272 814458 294456 959550 737328 649049 133925 377147 727065 915008 725483 25747 +564763 383918 887025 993398 275739 272726 995211 583206 92398 647759 49411 638070 158531 72125 631176 758446 400012 262064 977393 920912 966555 884044 206556 906115 192292 850961 470335 263633 410862 885773 269735 865553 369312 869093 153242 376436 963499 790608 919834 409603 675638 274761 56651 155505 468801 783154 642331 +365746 532266 235154 387399 392596 139177 480969 757870 37190 770269 379244 650436 481631 321513 673253 801186 581103 826866 315806 839858 469262 917587 765302 361768 326355 58804 685342 14432 129943 313629 520863 107363 35126 611428 356150 717310 564147 502819 347113 910163 533880 254992 900863 126270 843103 826970 580312 +940204 232081 440935 110801 184232 649178 421660 349836 146950 248358 399646 794460 141349 466898 19087 353985 539223 13086 809256 231378 358533 415584 752290 112192 577885 815493 795098 517589 560349 407612 374587 343934 452088 835899 827191 271551 764580 340118 675617 776640 437823 847266 295079 343728 898557 310083 219343 +10395 665693 499493 895472 97895 333200 361730 339839 901217 531234 806034 76016 896388 404717 538449 654955 846039 344696 3577 162149 736134 981416 657922 542855 908875 578891 906904 159958 215335 84395 209606 464805 591593 934185 35077 457736 43465 775612 448137 764346 119573 876225 312983 22048 139033 256351 968180 +17122 501657 897533 425526 547276 779127 992700 59294 419200 591477 765361 874591 492894 375227 160014 374715 455177 148094 296817 44039 588407 337911 254877 832526 379756 443602 836084 162041 57161 655383 151394 545895 151680 645734 730964 712766 967521 338606 166178 211404 392384 430505 790407 179429 358375 546795 54142 +579854 450995 814164 785100 356979 136608 456490 839759 462145 203514 694587 63800 679251 367121 514445 135491 102462 763084 337894 707912 172581 940253 656380 659807 472650 437970 981025 559367 170433 638146 663219 840441 585602 343530 929506 542718 818358 676133 248768 809495 850121 655101 581640 782597 171754 408662 383183 +244785 902868 962184 39797 318353 317680 258853 670525 906869 958873 774081 330533 706614 696963 462232 92482 671973 390736 426087 273666 825516 772980 378743 288301 363922 752137 943526 734477 453899 965590 783449 139034 300586 553651 967641 264094 649542 679683 730560 464052 677150 225081 988790 552659 586157 496210 455274 +380272 332529 138969 431138 962007 618380 130843 172958 36483 716740 741813 712607 796675 202626 466204 756651 930400 596140 805594 633203 23777 644484 836838 793348 101067 726569 451965 108653 249101 608033 384766 616225 670239 73474 254378 553683 484209 177157 946879 296072 66871 35019 448803 722684 655052 747302 578696 +738368 377617 405786 746669 953194 247396 423204 63661 62893 954451 180317 741504 557902 236389 677583 968749 56207 442536 613064 72242 848833 469839 579991 355422 966475 873624 789559 479494 650341 985951 54053 96682 442435 114881 826842 483066 230034 205046 185807 419836 524139 606875 149038 662568 620195 148990 69416 +452926 643098 32377 137129 208205 188952 343038 732368 897198 355928 287405 955865 655105 704588 386322 808632 668161 923547 211195 876547 523016 976607 409378 117853 212646 437356 655553 533587 639088 593735 737894 15865 961979 198150 504014 462227 581645 45049 541809 936766 61949 781124 802372 939203 292155 304908 822378 +393065 245549 769509 431829 329581 164277 75076 289284 31275 440600 820256 781459 505786 786907 953745 156135 791540 859472 687547 515302 484318 224109 37426 747396 290236 839067 315518 57621 37716 468964 660309 633966 787336 252510 292118 523149 268716 756280 5559 422950 658603 406623 545618 450738 129648 48522 451458 +150344 400085 592726 91337 223755 566935 863406 506022 916365 712123 914220 18703 481773 366797 376022 965939 721763 663341 641458 270744 409222 501401 596783 37704 725065 138770 207525 761544 377130 899632 829643 109068 424883 312032 945563 408473 128427 573268 596619 519809 921525 682612 566674 62438 648389 159053 217679 +720679 748254 290935 738437 792851 33022 591846 483887 974271 479585 652974 309389 308044 545342 879752 264335 677805 759155 531025 945047 137568 386833 287109 987719 712954 976545 121049 963529 922213 51627 852518 960089 21373 357016 210939 303613 123606 930439 734992 491015 407549 633967 531713 355999 945727 697525 274597 +986999 988300 693680 140105 52362 759008 432494 702721 166555 668632 472799 58947 678281 288355 587684 165593 873139 142565 402098 501643 695796 378879 268785 593352 902063 527786 700862 315952 37771 449069 271415 372513 968546 403611 591961 530407 70234 836944 455689 85332 85273 21012 105390 705523 102366 958991 942287 +858950 81783 728071 592612 769406 479229 309633 457920 618969 594529 249910 174697 719318 484285 321578 494956 476395 777841 334105 88465 9309 782486 496358 698374 73799 518316 63398 331228 26757 33613 493374 174789 34125 598803 762569 301173 251316 755619 484768 823950 217253 305337 21271 568123 348315 385957 146161 +675494 841821 904355 432711 901413 323348 183415 591267 56601 998885 450597 9699 588317 488967 671891 530836 101988 3118 904559 698306 942663 296627 56440 459320 66611 97350 136319 144288 52931 982105 419339 874994 620033 383511 916956 272957 506478 232931 56840 55089 258118 822088 880894 349144 202492 801029 39365 +887729 489008 577594 689199 711526 342725 240732 259065 834956 707929 631902 857165 678822 688742 871787 17745 90987 766991 810753 819318 797637 103319 708931 560214 643537 941875 228893 279917 711543 710061 139394 13265 880748 605675 649298 465848 964607 47312 624453 670634 586973 994615 305721 312609 670187 165912 86394 +535088 297647 633500 939964 890439 613050 877733 544521 346972 579899 317061 246332 969079 717199 726731 858210 714059 840450 249883 997124 373321 213534 232430 526080 841524 606909 257131 425914 562209 921143 768397 587150 727322 526550 849545 704767 942428 886325 837818 420706 317460 395554 672258 172402 610659 448948 466171 +68395 18980 891963 981324 933078 410540 653451 481162 486434 597437 837290 900980 799929 417929 215544 186552 732961 238231 24103 287667 248574 413081 190991 393704 677629 868011 538124 534250 870291 236199 555500 319754 834227 207291 884409 340793 881329 590291 236268 128995 98010 778621 978090 480964 767642 906561 486536 +447230 742156 954154 887417 998105 920908 437143 502612 843357 739193 637513 604523 56 156563 606280 381154 982584 943983 997426 583150 46781 798477 327395 315929 272531 387425 243546 710376 729582 813863 391402 714583 530656 235100 65852 297363 143274 963488 260845 329180 951634 688440 442557 429866 661994 217044 686912 +251983 654469 817352 411551 678508 256947 108693 634638 456851 864125 722839 509819 930042 425968 278468 347911 538602 430918 654454 749532 640923 707877 627533 630759 679027 404673 463477 506128 447911 775882 92629 528543 250823 254848 565246 841099 388875 105685 58445 636973 12981 837225 612306 725784 416462 784060 936137 +462021 102214 95471 102023 648981 809097 695529 154759 148522 350016 257201 600374 416126 946796 452602 487710 550211 255078 628121 186411 149437 886008 783420 557699 412719 34529 466140 391218 894843 415895 358657 126747 886555 334207 359603 763363 973177 898998 605139 637587 495168 27842 807182 294340 362769 70413 237841 +667517 316570 413121 824800 922831 148259 710937 200214 399897 343932 842672 749851 408831 903877 548915 882259 559441 858779 635301 362338 581482 847343 414133 52147 542070 239568 575900 917777 371314 419750 976509 499584 303674 87858 985489 689285 707719 990801 778318 448187 686571 443396 777494 285308 902232 466420 127318 +391103 125426 12952 709953 906194 933505 256122 451615 119562 927859 161059 904223 176823 255200 34392 229235 493648 661408 264889 671887 496422 750290 521528 82209 535705 182754 901599 384507 748854 510548 86218 706141 809256 823717 810670 958883 938630 439797 2098 192314 194130 228241 828511 553568 671810 543243 537488 +19108 298147 734983 206207 22721 767973 339161 342343 275802 69094 569719 731328 522355 994540 503634 925473 274544 757052 251293 437527 796676 743603 575789 359786 443472 358860 278531 698626 565036 410837 369476 119259 358945 781406 308192 345393 382288 587217 393678 849038 871719 285410 61167 57534 703782 507144 973644 +389631 677432 125793 378758 65251 848388 754362 443283 230072 998466 486294 801884 887245 670954 836803 106811 629062 733494 698903 534094 456890 333765 247224 136923 288117 813027 949779 856933 439973 268872 42412 704639 771964 292141 760146 60194 650738 818472 287635 227839 789168 374671 626674 923489 818300 589784 247673 +403484 252760 702544 918962 453584 978640 801189 317069 263906 667877 546807 621896 170721 554930 604335 664862 531669 963711 575401 359845 813177 365718 140420 258108 582590 615323 557029 166745 753992 869095 217693 698173 375307 292737 362670 454162 771054 489161 853531 799948 577451 944950 824560 132423 945261 606757 951952 +648805 495897 963919 614676 928357 10353 363013 453148 468302 464405 530024 904115 932415 161481 10537 399171 261935 380645 710519 596296 658624 751734 459161 349294 844680 674264 62101 383240 685648 875694 818708 408566 894918 208041 373954 189337 520823 103762 394093 381714 57240 913907 597316 111003 53328 416078 811490 +740516 91988 792410 388234 598303 867563 357118 920185 390216 388926 908498 396902 553403 145000 194625 427905 314259 841352 709262 487092 709485 369402 433280 611780 214671 892978 920732 507613 17703 579724 450727 761428 184525 934966 1739 964769 605841 626669 305461 501742 316236 34529 391068 761045 717281 747536 601546 +657603 247309 645888 26179 965878 374751 688033 63460 669239 703104 890205 170783 937469 29420 674015 858190 620784 594594 462463 414309 289483 360759 724184 138000 333681 971989 107326 961919 17900 948328 515484 34837 165180 482264 872705 494183 70819 754033 321385 754434 527727 168337 300110 265517 287431 374336 386445 +702482 234434 880754 906908 388488 66801 875874 285538 26016 559713 505850 400726 180636 558898 306137 784204 193991 720865 858865 6582 719631 660384 435137 193525 570756 905945 394222 621479 600968 9714 102252 589552 89886 881375 326662 968305 231652 823440 341706 98972 767848 505613 696918 175030 662828 892001 929697 +94488 568716 47574 231398 901567 715279 476518 505526 859251 562428 213819 926417 138272 652566 729199 184247 847784 439822 499748 230520 75007 433239 810799 387937 453073 114521 637732 726334 774978 66385 539716 102937 164829 307178 303025 406836 234008 87484 251660 711802 242633 569669 623075 291674 475304 489346 930873 +249863 842115 956879 466853 100320 282423 43525 621135 816912 972927 672122 506178 887402 750743 843077 425904 932078 344451 641979 14210 141162 857952 73334 629449 108661 964004 801281 800742 35648 949301 329635 239616 139107 781587 896638 753596 846091 210474 615 926102 29624 690019 804183 997560 104162 638631 749096 +44662 766584 641718 109461 857410 629522 225411 344721 80866 508240 428870 130250 984085 460757 540489 308003 42110 98387 926913 272120 638976 363999 302060 807810 285191 412514 453768 439433 176193 122945 988812 493318 189461 712677 148754 521285 326849 856593 124898 881633 352211 30773 967694 573812 583029 336992 761515 +385676 580101 224814 38467 918645 902333 306971 598045 725858 917026 301038 38554 361662 769886 381994 856158 542061 256095 829950 808384 156687 388679 433424 331062 33326 73262 422859 827182 972184 993635 480974 41275 631688 978811 180695 180353 269497 402406 505637 475792 580697 381100 371511 36698 13803 585853 725945 +305045 604201 748166 191858 969833 729709 247253 601791 697953 583859 214656 706429 206728 534170 467032 858619 215056 297137 447220 357371 790990 127227 563127 902792 266036 20564 671704 669516 512448 889775 24907 237636 133239 921723 159772 372196 384366 939847 835954 589610 836379 401051 280138 759155 642906 132754 656384 +674724 132009 451055 306473 449918 677382 537624 210469 361837 766400 838629 91226 95702 282460 208177 412821 18805 148015 974811 27281 61288 625537 178505 681776 797457 151723 268964 656247 602965 433414 850708 780050 764133 692960 311771 602393 489911 889771 690734 642332 245826 274849 295641 825525 504088 443751 977135 +991613 185055 885680 201375 227923 958960 187509 757685 460999 420481 834532 246982 299758 825664 726654 331644 458427 331642 4164 723984 431792 756524 913206 922217 810720 708027 491386 152000 209757 52424 8900 933809 470189 838127 447736 338698 592298 755535 676606 778923 924947 924792 934783 604962 695509 930615 400062 +46507 942641 567500 868139 228663 260751 379638 442525 553189 336174 434137 909901 831610 686882 304858 813463 567763 833463 579420 786391 81794 30404 959274 554221 811324 749906 538307 965662 271899 24612 248522 896271 671674 338887 96765 522214 315099 924621 441819 415801 432833 689258 189248 389196 707385 334954 451909 +968325 616156 888647 959341 35916 686511 78609 741937 651015 666551 172994 404500 977145 227780 514803 381049 475849 355454 412493 334019 703373 748593 697918 105715 397485 462004 682079 981692 745799 394791 148267 539161 762070 830012 587885 710362 442746 362066 422577 840475 461146 913711 417466 975618 192550 531989 538758 +303495 646963 806992 559525 226957 359072 149513 158890 842065 35780 363855 817971 319463 99972 785305 102209 18596 721480 329625 962723 27486 169563 107206 84475 940854 366608 719873 397805 460675 951720 258459 422520 841860 413082 656034 965571 933060 614469 184852 63488 458113 862365 651067 876274 178125 974014 784266 +999507 417231 719240 286961 740973 157386 850293 65612 974298 102666 277460 8867 627136 54816 963769 275006 216126 616719 506706 97520 316567 77386 253181 250644 475756 424599 525449 79563 715725 421075 553726 184846 109782 154282 572004 532442 664309 813628 456051 525898 404084 399364 575695 560269 151013 514024 984443 diff --git a/2018/republic/10-12_d2/postas/tests/input.8a b/2018/republic/10-12_d2/postas/tests/input.8a new file mode 100644 index 0000000..7c22a63 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.8a @@ -0,0 +1,97 @@ +48 +.K........K.K..K.K...KK.K.......KK....K.K.....K. +..K...KK.K.K.K.........K..K.......K....K....K... +.K....K...KK.K.......K..........K..K....K....... +..K.......K.KK...K........K........K..KK..K...K. +.K.K.KK.K..K....K......K.K.KK.......K...KKK...K. +....KKK.K.....K.K...K.....K.....KK.K.........K.. +...K..K.K.KK..K..K...K........K.......K.K.K....K +K..K...K.KKK........KKKK.KK..K..........K.K.K.KK +.K....K..K.......KK.....K.......K.........K....K +KK.K...K..........K.KK.K......KK..KKKK.......K.. +K.K..K....K.....K......K..KK.....K..K.......K... +..K..............K......K.................KK.KKK +.K.K..K.K..KK......K...K......K...K.......K..... +.K....K........K.........K....K........K....K... +.........KK.........K.K.........K...K...K....... +..K.KK....................K........K.........KP. +...K......K.K.....K..KKK....K...K....K..K......K +....K...K..KK....K.K..KK.KK.........KK..K.K.K... +KKK.K.K..KK.KKKKK..KK...K......K.......K.K.K.... +.....K.K..K....K....K......K...K.KK..K...K..K... +..K.K...K..KK..K.K......KKKK..K................. +...........K....K...KK...K.K..K....K.....K.....K +K.K...KKK..............K...K.K.K..K.....K.K..... +.K.K............KK...K.K....KK...K.....K.K....K. +.KK..KK..K..K.KK...K........KK.K.............K.. +KK.K...............K...K.K..K....K.K............ +K..K...K......K.KK.............KK.....K...KK..KK +K.K.........K..K...K....K...K..K....K..KK..K..K. +.KK.KK...K......K..K..K.....K.K........K...K.K.. +..........K..K...K....K....K...................K +..........KK....K.......K.K......K...K..K....... +KKK..KK..KK.K...K...............KK.KK....K...K.. +..........K.......K.....K....K.K........K.KKK... +.......K.........KK....KKKKK....KK..K..K.....K.K +.KK..........K..K...K....K..K.......K..K........ +.K..KK.........K.K....KK....KK..............K... +K.K..K...K..K.K......K.K.K....K......K...K.....K +.KK....K..K...KK...K.......K...K.K.K..K.....K..K +K........KK.K.K..KK.....K..K....K..KK...KK....K. +.......KK......K..K....KK..K............K.K..... +K..........KK....KK.....K.K....K........K.K...K. +...K.KK......K....K.K....K.........K...KK.....K. +.K.KK.KK.........KK...K....K....KK.K.K....K.K.K. +KK.K...K........KKK.........K..KK...KK.....K.KK. +.K........K..K....K...KK.K..K.KKK.K..........K.. +.K...............................K...........K.. +..K.....K.K..K......K.......K..K.KK.......K....K +.........K.....KK...K.K..K.....K....K...K......K +52716 746281 691425 940579 825584 999565 486429 518494 89932 741551 409309 875703 686697 3258 92477 707764 153276 590934 153440 793578 960538 327499 552547 314594 396910 488691 927506 558667 81104 479029 561879 940968 454641 295981 127076 183836 546254 972474 510662 524504 450252 900884 908326 881486 123980 695408 292715 767675 +76364 77966 748344 386444 29556 702374 323859 278531 893271 652363 132818 661087 61233 443840 874201 780629 862196 129983 87927 989542 941231 654164 114229 505824 158333 646652 704193 224059 867330 361250 157227 694060 58136 168652 473131 730486 760603 418435 811822 607386 337149 605028 109004 756328 624754 897953 534817 245376 +54636 303040 231474 954590 46601 239692 599637 493879 731427 865553 674527 434919 368880 480817 596130 130316 130193 132970 139346 899280 923552 628860 954425 66375 12351 32708 242453 945833 149153 863620 89328 2261 250375 912175 781095 470438 174454 811951 573123 763334 285433 813553 523603 867863 61855 487509 341838 925950 +852205 964886 381511 854231 919005 893226 834591 275774 413154 279878 550964 349955 577104 508031 456960 311942 130360 269244 651388 166745 842312 790335 659832 154051 594704 120251 549297 825696 206818 926897 47365 561204 998671 999913 880782 477349 31040 74844 455845 295024 14933 709921 453695 135673 547555 689598 473184 486065 +651547 536805 743090 593768 974095 514838 723103 197794 452501 494637 259958 662213 625169 199613 445124 758873 615058 232019 883508 762808 337617 181957 125443 548479 863297 732852 902910 680440 517388 608276 832894 818057 46216 704075 746468 932498 671423 956185 775573 379019 731483 304848 472026 198784 637967 398198 702336 513401 +181636 963946 846509 784181 412686 306570 622574 772942 657954 903617 448836 184005 125546 220784 404328 974971 336857 966383 852128 733193 662288 870271 778887 486595 449244 68313 436749 303407 875046 409080 518646 678656 486765 479534 306005 633949 142645 36668 30164 201201 668849 440666 945434 925516 571810 306134 73945 670493 +947314 827149 7440 691046 982775 36255 292651 103281 670008 928830 419235 507581 723000 324803 612604 860906 819152 436248 494481 773176 35902 464253 576068 308595 404124 898946 685830 945925 752227 466320 387344 20343 544675 901961 80369 99214 846674 242798 633234 405436 705599 595397 670730 646538 970460 933488 908190 460994 +546900 795971 882622 551444 203191 111776 86109 523838 778314 365832 523984 748714 899345 223255 651929 546640 683855 792542 51054 587353 645475 427859 425780 588327 134448 468913 264778 60211 588121 650318 91189 603751 313436 959069 960016 42328 928587 104008 788143 387808 720506 784447 557097 117733 553806 856291 347762 397875 +999171 371584 852998 257056 494662 931431 566398 828315 268376 744170 419857 98036 556181 328951 894011 848816 743965 499250 328419 15667 869796 449193 120502 810652 561137 242167 867822 846332 270795 401548 426840 287733 335413 175274 400803 27849 495856 205677 67722 932492 171609 854838 466612 67177 326770 29163 451110 484864 +547453 429386 280810 577803 506820 76178 441432 267715 168114 69605 487824 587290 946358 946813 210429 107600 37025 786431 595205 935785 409819 267951 115732 399859 861740 477145 366419 868401 207083 702915 527667 683356 92002 776213 517250 624608 497361 446235 189263 61676 451616 999412 145033 7929 200537 271100 389061 603930 +658924 63885 640674 933162 949995 635952 755830 845939 987096 563322 707025 224776 873584 344448 776695 22839 310909 34043 849282 912060 125498 969645 526316 308112 471115 263902 258604 275230 219248 588228 92438 957982 316865 366118 989278 23267 652815 649673 884127 994067 789604 13933 968371 779963 535167 387160 865074 773079 +572279 360681 392867 784697 759063 659015 311182 19835 912457 114287 748035 219673 202270 65386 721222 626337 374199 743524 37055 901290 876998 181537 27461 427002 594950 38312 186873 65465 999366 376623 58327 283244 842176 605161 90621 998498 425033 891858 804484 219160 835116 72748 453424 555211 78420 336651 306810 467616 +142603 363023 460406 374595 448160 85742 376170 353870 710598 121121 875236 271918 732176 713467 798996 19711 198836 892524 670327 673669 524008 937879 832046 526364 957702 549299 714526 79557 724839 891851 380938 742474 691200 433805 496570 77198 80431 108677 971298 871635 976440 50752 555674 640949 895857 976031 931663 74544 +122527 749846 621577 467881 274529 174595 654494 290760 339691 164425 305905 347866 327444 365065 133799 636532 462742 188327 723645 396198 922061 39007 227520 254963 185736 405812 287867 264895 601678 789281 478611 783047 210047 203865 289024 889515 852863 838941 64879 356959 377055 38268 114288 316648 604579 115046 162665 634778 +203710 321574 187304 222717 9139 524817 638903 278177 855736 526026 561257 708020 946364 764324 125625 817028 198767 201916 998413 306375 253218 149636 580930 41507 643472 758544 689902 508290 868191 939712 466163 305964 548422 804540 947081 331346 588216 710178 909993 473044 616545 667361 112887 646759 526981 236255 862217 320224 +619949 191679 384272 161304 647502 469646 804134 997447 343352 543702 695143 10375 902160 99516 702061 429309 794693 140648 791546 903075 242354 986072 310527 646656 793849 459414 563271 771409 762891 816179 275870 674569 19401 246519 580780 336308 67049 148762 186684 22763 50370 915922 904572 22652 826868 359607 742954 186072 +899478 978250 37339 488162 895468 239469 802149 40911 662344 835512 551149 48273 442725 839194 164531 182601 409816 557014 414028 535694 809796 484414 619936 513395 936167 509552 882281 632702 584992 144276 279379 775732 576494 853537 991588 749033 130619 632657 846162 528435 482180 747890 19674 943313 695976 173507 662651 324558 +790031 37733 50966 964107 486820 213883 41878 267327 541655 206537 501135 264610 296913 87601 342730 828218 978619 414864 228037 301484 970024 248530 632906 252824 883459 419747 574814 390068 86942 219750 988440 145876 303815 38050 93350 517419 690286 635284 792535 937601 295573 898327 357992 5957 713742 356771 689076 608545 +432079 647088 278152 3863 641339 539249 268960 666444 191870 447911 612752 854496 324855 523493 566221 318359 365901 762403 899695 367508 479939 64954 908201 775229 322932 915536 970312 313595 180196 132837 59945 297971 767114 749895 168700 887866 391118 812040 813589 398685 425004 541376 29329 302905 974011 709703 128406 177312 +830188 335833 38991 961575 158076 319572 181927 498792 19706 443845 257593 83540 447386 68782 954302 287542 151153 30783 978121 200020 545316 261963 373376 836379 679855 199349 767696 458357 131138 99615 103675 656002 919846 672910 710954 952936 74310 454014 874339 807964 216674 295304 27163 674338 570157 859861 207620 48388 +120206 558365 541616 490581 542057 261779 73121 931552 716915 775417 209491 707416 650401 350963 640342 603938 745875 412877 741674 788793 306604 60626 35594 196996 571273 398488 618778 496211 589491 869189 482023 37090 261959 191468 872089 99338 225859 941012 729533 813936 151742 478919 942459 128555 885626 42086 522496 211489 +208805 278738 8233 865358 204571 969946 701981 463866 171384 275580 64105 459038 401436 600456 98777 402138 435063 512912 804741 417751 324714 672424 757286 692659 259030 275950 217850 299900 466649 830717 384245 715654 999376 778664 336719 597067 70509 31426 956425 906215 931545 626462 801200 874734 107467 608340 5518 408549 +713000 348756 352476 332580 874707 908177 683220 664684 621568 796105 852101 42823 780061 748222 168474 662211 761019 958297 183952 735537 221262 10069 802451 453095 425436 524647 828963 298456 959036 429299 752204 653482 244290 57485 383263 104213 832526 665628 179109 424935 289719 38251 512361 902684 357396 933772 831931 63824 +861835 587271 829050 405334 767563 465450 547315 369378 824693 670018 230048 429610 576185 875115 352011 401953 293981 722260 877237 11943 38330 462472 996125 617346 103374 80651 113375 766388 650780 451501 60399 592299 267891 482534 953168 227002 736386 583520 904670 551348 992867 327655 391522 856121 144831 968041 513692 802451 +786260 668799 669600 764827 191701 573169 357377 193945 855791 473501 775314 244834 383312 959142 619059 582942 90188 380951 835423 713281 9770 858318 247312 362181 811727 973105 620376 824369 350547 744193 58857 278792 243276 755928 806023 800957 875697 968443 981269 994590 321327 809270 927131 318187 815554 292136 29855 969017 +519124 519729 708301 260384 133252 87619 288892 599858 597848 871448 756707 52667 827921 515694 953363 367640 42244 599235 411579 446257 271341 212625 637881 518284 872980 348285 688999 148677 479037 594012 960346 600036 922805 281011 332357 572614 988869 120868 659306 660322 359714 498234 397374 399902 70964 837223 728947 427273 +252285 959243 466402 330385 480251 533538 498645 282246 60774 168810 975663 39109 17457 634675 451039 633598 267297 355032 131642 499213 280961 854144 847874 308786 801389 151308 92605 775955 167285 955369 384237 638949 283382 2871 291489 844799 973318 238412 268104 108114 645197 110910 421501 600381 962343 104628 524218 629342 +340962 315500 483577 548559 765534 748720 129086 6729 674257 465017 18997 558278 316667 971783 642534 492019 914787 972077 381180 329290 10963 489536 795736 545878 498910 411650 941258 74122 541493 35234 24464 328970 656838 142520 456810 55688 338490 925007 796335 519364 294893 59847 371373 689517 223590 843182 535234 910639 +490947 356422 668981 623984 582638 626905 173576 837434 896608 686760 944979 940838 478001 308563 39597 773554 358695 185466 200067 271876 465968 975351 451109 242635 26501 574503 844896 481589 312168 736755 594074 832828 599546 626554 845156 134207 304169 135450 218332 336849 163980 14507 281874 376625 32432 311387 867224 863597 +604164 358908 590429 336235 109406 954626 545599 941753 59628 110909 471229 456882 155811 319348 817680 182742 421874 655166 34780 928777 66708 65293 569011 706277 898357 136650 427520 347784 184984 893006 852268 191503 214377 820653 453986 985835 959275 165309 195498 45432 206148 79076 879999 571905 52602 206817 929355 674065 +900340 11214 960881 927226 486077 868595 785222 332553 102790 131456 422695 287510 97917 117554 292340 947640 445270 999475 990456 261486 9784 760577 81689 384419 366736 262646 588666 900377 833051 907210 960494 230953 281770 375820 814070 132840 518964 595482 281637 200470 341843 806223 518644 194875 111194 867098 499590 500084 +664946 730545 670523 222897 404431 458808 609735 289122 194470 651374 292392 11318 505374 779283 442835 824193 574107 411205 476179 596215 491325 730883 842196 374222 231075 14881 821679 792943 125614 495644 837165 198000 516833 540938 983774 494972 651627 188846 750393 655825 230257 543105 924537 38940 124415 746985 375002 863737 +860337 896795 656377 446671 775745 582024 881573 128475 820846 756294 709075 659846 415605 628157 584451 409460 691672 134754 274864 520557 894872 411963 329482 749400 454173 315086 21467 879258 698388 720401 447532 544707 793682 303244 816238 996267 572151 86862 702274 494654 595642 141496 352681 649719 690399 34541 71824 581937 +832892 104605 126642 148891 128374 57006 864731 466133 374360 297931 936798 213460 380443 880582 467486 856792 685821 278906 309525 276700 996024 132363 424741 490324 704128 655146 648335 406228 289960 699527 611437 17967 532930 252894 949298 182582 299704 99451 116426 393531 452326 934419 912668 96358 888923 394718 448035 415376 +573107 359971 373477 113551 695961 301078 384247 212446 177763 441044 959452 652438 502578 584587 566437 165020 533517 975624 68582 662437 598996 953940 153625 880908 4649 522400 499304 793238 278673 929653 906371 953046 673957 676229 908830 445254 306008 512743 962696 613046 585470 498056 761611 97551 247956 964322 183441 68531 +978423 496143 119015 648167 488030 595951 59253 548543 492837 794523 293565 358915 815009 909679 822899 375056 734853 572305 895721 578828 699093 672546 719698 303293 958707 423009 871254 399094 622819 543100 825592 143203 249614 920583 234780 956243 124167 987096 61166 194414 200699 48636 845677 993136 361211 258745 486116 928196 +357346 855352 426454 905733 542031 377585 551359 10877 156271 471871 763961 523372 705669 978655 547944 789877 490859 84117 241968 805175 777621 588649 209521 471568 589745 372112 9603 40588 668389 854167 623684 779182 418990 869991 999726 55628 674983 565814 792955 799993 985283 498570 223406 34652 434433 657760 227846 680359 +635456 513819 307528 852637 961162 521022 250739 631013 200884 675308 368337 958120 48493 685433 262639 333605 264232 746016 997712 321668 830300 544462 17955 655437 463339 53305 790702 735397 597740 915510 597710 537445 537305 269194 448 317138 168655 21153 590382 424100 948654 854032 32943 543446 575269 45760 130642 370686 +705092 762512 176214 399047 815374 22792 108605 221144 430328 695774 506628 222643 325085 554577 277784 421113 933777 330349 712012 80685 558145 564859 166438 517735 406735 687567 6675 286184 980927 765833 806060 459173 343119 567835 337664 548153 329790 635026 932603 902166 679510 686306 813994 74518 694968 8362 547454 54161 +678772 270990 43976 104685 721800 613415 61829 696038 260968 459897 498900 273916 339218 106106 656792 668159 765997 212379 527734 496949 956603 216461 755332 309672 340648 168699 627547 369494 836883 855201 802631 206697 962689 814121 130522 238378 172392 805794 537181 144481 636364 594897 251413 673624 704983 897262 845302 566393 +608044 797525 871495 281487 876835 915522 799894 461223 917129 398921 34691 685699 637764 687295 289936 891387 606660 276349 573406 765810 273394 117476 128446 805978 639027 600884 412404 152630 151976 366986 29360 447301 391410 630770 91982 821296 159339 927270 850232 196680 697514 651161 464376 877272 970002 825877 372511 812807 +123724 151982 796679 536221 56141 252971 386120 997076 132505 584141 205103 298176 445169 345963 16025 912398 783177 879032 281497 442301 307773 558931 255484 949506 26394 312459 359416 232473 879331 961451 105410 49157 592112 19088 303795 253916 949642 187755 136024 562386 288438 370579 133106 777582 817111 903077 561366 773676 +595369 270067 228609 517057 648092 972796 575255 559562 257864 138441 279147 119640 495244 606819 43341 15141 977891 339209 584340 315105 209567 303703 606015 108322 647734 66480 872671 500730 229387 27816 631245 824218 396763 550534 25624 628589 71447 574396 256988 44410 152416 226275 666383 602700 671906 485251 498460 46064 +392063 461719 884664 456863 942286 866161 879018 740956 190470 114624 118962 102172 816238 78931 757397 133114 550711 382652 395572 439325 226430 783123 308956 692578 484404 74485 207175 760124 571580 819677 866680 589395 282130 76853 661588 528429 403469 289772 701454 772476 649120 69960 389436 491789 216611 466167 485422 526216 +205736 737415 496294 760984 261295 873436 921499 811499 145393 780239 250392 492680 950129 300602 880413 914905 212120 823854 484100 781080 22127 484475 703218 341722 293628 375270 827925 14264 663052 936454 477446 558410 337013 636806 275159 770195 20560 881597 878559 175499 166840 389036 706417 9229 325219 473594 898446 278499 +984941 584526 776251 64058 796823 253088 275326 213906 664904 38529 694787 645012 275945 348205 601706 312653 158601 210619 632902 727348 489319 49295 819143 769370 117670 740940 246759 467638 97308 772054 204524 239814 131857 516675 107030 338767 156571 472782 113209 883275 677486 49492 909519 887515 773630 354402 34533 858032 +935544 737938 325327 878967 222222 118562 821420 979947 286442 881448 426394 432177 849597 708783 933096 923684 100366 824740 610618 777086 548603 782533 897753 825174 419256 191800 989580 72597 276492 168865 64423 506198 526497 381325 411966 999645 881725 882420 5836 983590 242082 327989 305006 513743 758211 7053 882114 730950 +67008 825328 856002 858986 887725 31789 679114 174084 547650 646774 821700 965199 17078 893246 933243 550574 262041 419866 905725 237604 569450 50133 674893 652927 81584 415929 890598 758037 756716 146896 573521 267881 156646 241443 557107 139479 686709 51091 750685 22214 669112 973721 923336 246508 601562 774132 929490 559910 diff --git a/2018/republic/10-12_d2/postas/tests/input.8b b/2018/republic/10-12_d2/postas/tests/input.8b new file mode 100644 index 0000000..9659a55 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.8b @@ -0,0 +1,97 @@ +48 +..K...K....K.K..K..K.....K.K..........K....K.... +........K......K..K.K..........K........KK...... +..KK..........K.K.........K.K....K..K........... +.....K......K..K.K.K...K.K........KK...K...K..K. +K.....KKK.K....K..K.K..K..K.K.KK..K..K..K..K.... +.....KK...K..K..KK....K....K.............K.K.... +K...K.K......KK..KK.K.K....K...KK....K.KK....K.. +.K........K.........................KK.KK....KK. +..K.....KKK.K...K.......K..K..KK.........K.K.... +.K......K..K.K.K.K...KKK.K..K...K..KK.K..K...K.K +.....K...K......K....K...K....K.K..............K +.KKKK..K....K.K.........K....KKK.........KKK.... +.......K...K..............K........K..K..K...... +.....K...K.....K.K...K.......KKK......K..K...... +K.KK.........K.KK....KK..KK.K.K....KK....K...K.K +...K..K.......K.K.........K....K..K..K..K....... +.KK.K......K.........KK......K..KK...........K.. +...K.K.K....K....KK.......K....KKK.K.K..K...KK.. +KKK...K.K....KK...K.............K...........K.K. +...K..KK..K....K.....K....K......K....KKKK....KK +KK......K...KKK................K..K.KK.....K.... +......KK....KK.KK....K.........K...K.....K....K. +...K.K.K......KK.K...K.......K.K...KKK...KK..... +........KK....K......K.KK..........K...KK..KK..K +K..KK........KKK.K.....K..K..K.K....K.....K..... +.KKK.K..K....K....KK.........K.K.K..........KK.K +.....KK......K.....K...K.K.........K..KK......KK +.......K.KK..K............K...K......K..K...K... +.K....KK..K...K.K......K....K....K......K.KK.... +K...K.K..K.K..KK.....KKK..K...K...KK.K........KK +..K......KK.......K......K.K....K..K..KK.K.K.KK. +..........KK...K...K.....KKK..............K..KKK +...KKKKK............K.KK...KKK..K..K.KK..K..K... +.KK.....KK.....K.P.....K..KK...........KK.K...K. +........K.K...KK...K....K.......KK......K..KK..K +..K.......K..K........K..K.............KK.KK...K +.K....KK.K..K...........KK..........K....KK..... +...K.........K.KK....K..K..K.K.K..K...K...K...K. +.K........K.....K.....KK.K....K..K...K....K...K. +..K..............K............K................. +...KKK..K.K......K..K..K...K..KKK.....K...KKK... +...K...K......K...K.........K..K.......K........ +.K.K.K.......K.......K..K.K...K....K....KK...... +..........K..K.....K....K.K...K.K...K.K.K..K.... +K...K...K..........KK.......K..K......KK......K. +.......K.K..KKK...K.K.......K....K.............. +..K...K.....................K........K....K..... +.K..K.K.K...K...........K......K..K.....K...K..K +322121 420323 661443 590754 908261 115308 494837 119692 81246 240891 974103 364832 34700 615855 85416 820722 670831 916561 209431 375201 130851 697591 852417 569335 782933 436584 881642 272030 93895 877120 141047 608223 570908 896253 40964 689921 959792 66980 515045 53159 976651 548733 731943 384282 239940 61693 794062 233312 +34484 968452 105088 122970 225038 491275 361897 56311 305416 817421 137315 74719 667066 764673 437606 372610 662459 232964 738549 575449 447968 51677 145646 765165 463441 912309 350506 903491 906211 6383 338316 366835 238005 957712 661432 878384 622105 516060 385434 323739 705985 475249 881574 388398 114211 40793 987373 518712 +684389 934143 495725 657287 72640 526188 446174 30305 722635 381744 791435 197127 920036 481558 712323 346394 588589 574845 92316 817953 241490 798680 202147 818822 123785 675414 295648 24911 606968 82724 485512 391214 644912 554470 844228 163327 323189 185502 237969 62334 112956 409199 548803 39511 219611 149584 956856 993355 +987036 299884 50751 66509 563461 576345 750291 905003 814480 799791 607393 109235 396379 963979 159612 642893 664407 630403 39787 727853 123803 611 613332 411512 558323 334668 845715 705308 532657 878250 580266 918619 773308 823331 591791 440791 119281 6862 827548 319357 949981 632290 866966 710316 233823 608777 476140 132638 +718322 940955 548602 130086 772296 507703 295299 483162 384690 96108 690449 548585 764602 619795 590558 620915 334001 209320 560017 196707 679088 196365 339408 490862 785955 36221 367761 953134 468643 833526 372818 611528 604399 541148 434838 452980 127322 256831 151836 84645 320050 257847 207806 521367 900272 340312 271747 33779 +976308 629789 173639 281384 806912 559765 373419 833953 718646 762726 645727 939401 206945 562446 26245 583047 653490 499866 421795 475755 776563 882486 710053 107080 951820 272047 247263 463513 522457 992035 954477 913043 858133 50569 889743 530471 983023 77169 577970 487742 970952 707883 994259 695794 55173 869046 986645 312481 +406237 96463 316536 865467 354339 259 290947 680464 876921 997266 447827 584155 905851 732630 310257 869605 805233 260465 440747 180966 318423 709774 522049 413634 523217 655604 687847 422328 184967 420445 916417 630308 385057 820083 776826 817235 382796 627771 907421 663151 585149 820130 79237 302891 731548 710254 216702 467733 +975508 739510 157025 133368 746409 825861 438140 783507 47009 212096 472913 145678 170005 547256 557353 184947 163359 15620 156700 965346 496253 156279 941648 862500 902115 370504 846033 249111 951605 629544 88216 832528 129185 112673 607834 302723 635085 676500 764160 268899 457132 161270 787785 327 181927 692259 506311 96747 +6459 527619 632487 56253 506729 154736 826793 6475 252082 553574 532159 842414 405915 961295 802416 462720 489696 991057 899216 38198 950516 274565 22466 266022 266359 623537 247814 302818 761643 120535 346288 598226 34739 761469 268351 46878 824206 463066 753462 808488 750531 709337 262416 259163 887735 830405 255145 324614 +784499 518195 310557 226428 770936 936660 749275 254845 422264 125707 258561 416328 403432 274863 996778 454328 901004 660023 820361 842472 227938 650225 701791 510707 13291 322722 110617 114882 269726 964772 908117 627069 335335 721090 429337 473684 319514 544588 335874 631583 596413 531088 790780 395938 423868 742960 199579 701644 +823943 890127 544248 142860 319471 397337 474214 149188 997043 668186 201563 100138 793814 554829 334536 495188 252790 808810 53504 213574 931583 611562 869813 67771 769151 366490 894629 703129 929056 644970 584315 880784 713465 810537 681878 886057 943593 175055 149170 386353 994979 716456 351964 895991 818456 973066 187684 493237 +797428 294157 284742 538162 348877 986616 289350 478184 130609 752325 639168 846011 301108 634146 701213 705703 465615 410736 264645 996221 285954 145938 753425 548129 286422 999091 976492 646036 361245 732556 686040 264883 47754 59199 696666 72624 939498 19125 616498 338436 109797 472504 298884 412095 450201 54965 437004 941343 +504509 825145 983084 219805 994732 589072 851216 264173 874687 776687 891859 704337 551941 430125 94714 823059 100489 200836 68322 974559 861078 946293 822284 16329 995150 166002 395866 40561 178707 270808 52044 142861 534627 753380 158463 705298 92419 185582 534847 860408 744872 646340 190098 831354 151037 97407 216282 745896 +295597 633906 230426 836377 967517 570526 928721 730372 635942 551193 494473 318920 205238 724458 12802 397837 465879 554193 742773 652181 101165 695989 74323 32030 227290 190602 945019 315615 998423 298459 315854 663197 823747 614109 317431 558575 771853 129028 359864 586907 834810 299823 598229 820818 813602 648225 256998 64821 +451415 217071 347154 466046 365414 768651 982205 815091 274267 72104 604065 207453 111695 579121 934547 634527 445164 831947 804647 957894 62450 261045 717466 645646 408258 677237 532956 166534 465310 807528 704128 39827 401144 586562 372268 669011 729955 874219 369704 129121 921888 743007 404205 795393 849304 279118 80369 742716 +93413 641423 569424 257471 319576 591275 327278 400422 191694 65310 816380 929713 219834 467446 385857 36809 533751 909254 915046 376800 829106 16456 39251 267274 159610 220669 531416 839899 743051 687184 747461 304433 10153 826302 409711 535508 172796 501862 889357 200816 552951 472286 792888 987736 697483 37992 483142 853478 +759146 254033 408923 303096 409350 666013 293621 634874 827589 990018 806770 629498 408493 367381 233703 692377 2921 773356 137322 463811 293949 262779 472351 830532 519004 761474 106238 400045 570239 625446 251982 689586 683506 386047 109626 404823 689103 214145 935246 847717 625411 133947 317940 214521 797686 608442 47443 933348 +472175 140320 872843 344916 569699 578125 902348 606384 939123 235351 713322 76787 719871 154027 775031 179686 86353 406949 324557 105796 896284 1114 719930 535460 846262 71849 690070 883495 624492 7196 37889 367278 645711 439993 881116 401961 900578 297616 379068 54973 391615 238662 809231 815943 430187 664477 149490 266424 +283991 563326 309446 877143 959441 95535 515639 799692 250905 143719 15194 364116 808200 595274 357983 152036 377697 848676 474296 904712 720225 933783 214396 203241 725750 41112 962683 723587 676901 889450 4984 228949 541737 634192 497726 109912 139262 66366 592381 947434 295682 320280 110022 43214 254239 161073 595473 786353 +989190 458909 305395 333412 219040 980936 313820 414633 454298 861418 658639 887569 486720 836920 826205 332547 947205 964439 243429 50895 621393 333267 785356 141452 96761 422965 646329 872815 980200 768991 520170 881127 110027 348688 106829 214930 185385 788448 475021 458991 749167 319652 45558 703833 96819 174005 565419 599263 +508609 267545 979988 58371 152321 628354 107470 272865 400356 356962 150954 174219 568874 562830 397182 224959 126799 353451 723177 515299 165068 13789 603489 862915 90361 153092 771557 647722 337977 231318 772852 584253 23691 921167 514466 187569 688998 404058 136818 149034 387489 172396 38570 675115 37854 994481 510523 494281 +795370 939368 985159 794160 913682 39097 366514 457425 359915 304447 242199 213482 316300 741509 236930 276795 566200 414452 602930 535305 463705 616824 176177 175283 673983 901166 93118 762336 549669 174979 125303 669261 119205 553703 737354 531752 719933 68814 575641 577553 103370 253896 428238 423430 124028 422687 316313 909406 +158216 573725 435576 577067 143526 494751 27979 644767 183760 111964 762039 355144 766507 846083 268434 393566 111266 695394 969279 740740 951924 485081 832625 184709 235531 201249 445367 640739 704107 264604 122066 569668 840717 631028 576907 475208 507713 508490 480793 252681 242771 415746 506636 840367 402229 441466 237793 198693 +901047 167112 76847 868597 220314 169700 75725 642335 460735 495611 198805 439057 858909 308004 494285 971536 701320 931252 833984 737984 966247 371933 884026 324948 321909 960941 96989 912933 441660 123149 219090 761075 342717 271186 115109 540497 958742 23376 102619 687505 436686 210765 869777 728532 596917 509873 450089 655618 +748238 800384 831807 527748 588253 555733 993479 234124 522793 232481 994399 216776 949026 324803 351404 285216 532999 427153 895877 105607 357610 764753 818795 524866 190358 952915 429044 503070 846532 653854 119447 368637 779212 970807 957176 478785 461074 741013 644353 820338 26446 439285 613542 189717 460485 12525 787678 998877 +101726 451549 441437 450562 238048 453336 279041 470547 379455 795846 151091 738355 877698 407062 131984 198173 867994 511405 386422 594651 686598 912630 849551 264580 126054 841949 771124 410155 138565 558807 924093 559591 949697 731143 180468 181633 113093 779358 197275 308935 741081 247460 104980 166831 553963 357213 229494 343978 +69429 378894 408041 799500 609274 270272 509812 51571 100940 813236 138923 638552 678221 476720 656489 190763 127007 858136 69718 732428 28212 382065 76951 613262 932942 447074 83763 960107 948663 465653 107140 117966 326193 30334 521003 549917 751250 798795 506966 684938 468627 192800 986673 163436 209217 363092 381047 423889 +244583 443631 19305 227781 757904 241562 150554 429378 692141 711025 315298 140500 443910 703230 506715 528321 856973 875467 981035 994390 102251 987756 840054 682174 928698 900372 729050 292239 492042 959683 250710 579999 932257 822726 985975 227329 86173 417352 987071 587615 676382 855991 948045 169488 468445 64057 800745 45757 +281809 273050 772904 103709 118887 466608 648011 705703 64213 841146 407095 799286 175022 667400 437324 27434 543859 606526 463947 211313 497648 305441 912252 292622 169743 161186 919991 232542 530410 135852 796559 486892 43719 469668 732079 320589 243911 271880 640008 791579 346058 322345 435482 734908 500084 970899 61064 54452 +643684 419999 87329 225166 360433 129173 336287 248703 282953 737513 56959 627986 675415 263090 413655 677845 571176 52770 777786 807386 480908 617120 730643 634997 618755 861666 341050 611966 50019 981215 518111 515191 940966 808711 313211 683591 897695 480479 874792 562198 42989 962490 133778 508524 603169 841923 361056 462961 +498767 236175 488395 263922 982758 407789 77758 851749 30556 443700 538472 158156 842418 440109 994174 987779 453030 981732 616904 889125 154901 321242 129525 451619 331889 587259 494831 592737 550847 249597 852490 60892 544836 187071 73003 693751 818585 212842 661487 524523 454388 553374 554586 568740 815478 491382 272929 293588 +113441 966066 875757 354777 163652 986289 10333 350304 919523 928156 592313 678607 867792 41059 111188 605852 605429 119277 787338 698390 622704 615098 92697 783316 846936 563452 351039 697444 631386 133900 152592 267848 420963 872477 630618 350312 193747 404738 277768 701096 239265 91732 284812 904974 917212 724627 575208 699629 +137430 330371 906037 314164 660162 473386 318756 420945 211520 379121 230335 220970 419904 964487 225271 764694 603390 569170 15939 66102 501122 234052 421421 353237 219782 651425 57288 326922 305551 467075 210681 994997 489910 581144 941930 366923 598044 337756 563039 151506 860229 564711 765944 801473 717188 692142 92575 848054 +192254 456780 731363 94553 972445 599273 10280 300900 551547 681017 254125 50523 204450 585155 264098 416384 895420 748914 136884 892991 472705 809932 772915 539122 534921 315281 550244 568685 942870 750533 959120 77835 831249 791004 719777 883134 765347 251813 888653 458861 261535 11050 584619 196397 187587 890918 636053 649332 +764211 566064 779394 269551 694125 795373 493713 166821 743613 227927 255008 764503 502036 881424 687979 583496 117443 519450 680827 411747 990830 671435 205273 498657 717580 943997 972894 94951 202266 181868 54478 197326 491988 325812 335664 790028 784456 797500 318079 215589 550799 950736 117205 453121 557215 938743 675333 410743 +437428 187684 300294 226165 129165 193650 61551 73604 979424 824605 291403 287063 980964 658230 36829 101314 521771 115948 869853 957637 378015 207565 567008 202919 623294 403444 131248 619333 868898 888589 106891 913368 98402 906470 824797 596156 711611 326631 802140 630902 573700 889813 721372 524083 826394 183046 694171 640446 +796236 649948 525528 907003 62485 43194 477739 599669 319822 458470 534107 617205 342513 426093 88965 104310 33930 801118 617481 936425 283975 793380 108197 85329 658454 648207 168022 215819 246697 54161 385166 47240 178665 272705 203691 206878 696518 761176 918241 245969 821403 455809 254659 174429 640246 966020 64367 949870 +228569 758057 443528 647811 924490 8810 1736 879726 278881 981319 69681 113618 413513 261329 608367 699147 644502 53103 758034 150684 867800 346368 868650 191735 743863 137494 305538 579531 957396 689297 882306 658909 681422 771522 694489 822380 599224 79053 453781 639001 8929 622070 364337 949927 933286 555425 526512 440510 +346896 723523 865231 50072 112344 932921 5369 828428 11120 6675 615621 850078 988918 43459 985594 99428 634150 340453 621344 52540 610741 161917 743450 357329 893793 484759 845043 896354 944891 893434 736457 938652 228526 609953 668843 941361 826268 603997 757200 42809 206230 62486 711749 340132 673007 947969 447776 125562 +538882 720546 358544 851294 990645 429076 262029 173819 58752 45205 837963 975214 764903 573203 498562 136221 119902 477543 200265 973045 125327 975182 992115 160800 318649 130717 331232 67257 961720 111826 520096 572543 249786 793873 671268 198545 8736 5568 419704 49879 63206 507577 103381 647988 144701 523309 956657 88030 +286340 685047 248336 667241 274566 549899 241581 620493 318925 855095 678270 773007 760486 388955 308867 971870 798049 690100 146998 541761 696613 95833 542226 577644 999664 282160 159024 422785 78223 878439 660969 508031 623888 964849 746146 784264 198173 9270 597899 939380 33355 94181 648973 732049 539925 843760 934260 967210 +70610 482865 840783 281784 132512 535040 231350 265497 427529 605890 863482 919883 251313 468869 498228 259475 365094 642935 258201 458742 193964 179353 331077 298450 498023 300133 644151 331215 719668 297403 49563 314395 229726 236299 372872 992115 539600 41834 200999 738341 925104 407614 220279 745696 756212 139417 761558 766443 +17830 418919 105765 516527 153357 353098 986445 472294 861183 37282 204506 456996 994671 748747 326278 946959 64030 673674 765547 592159 706240 451383 183317 957584 341663 662808 471136 487735 245999 818657 304921 116520 170050 492758 366865 512505 565733 679202 866777 931773 514325 309118 987948 271890 13261 51725 127821 298100 +992883 307790 863391 720952 435341 968128 406431 319440 704177 10450 460780 976747 102782 351412 935646 542219 138062 12735 493837 721196 163714 707718 358607 970042 638470 581668 278080 760691 17363 237967 672667 109785 323484 539281 464353 391161 290931 941443 635254 271109 413250 491550 272132 641446 432667 147693 26259 355460 +701384 888934 111683 440385 403913 783267 147841 249529 302472 891192 214249 922059 655302 937069 1595 652051 956628 395152 155911 438431 430643 94331 840811 951701 495856 230881 67516 957171 584998 215476 865523 723222 110790 302409 27460 108433 986181 745772 621009 353258 201553 544917 888488 63426 654803 372232 622950 988824 +942410 827368 703246 744357 255348 33267 12351 355393 287061 718124 995389 352637 278386 287414 601631 798625 954232 873373 740137 181921 432671 164188 758250 396684 213002 219339 893174 314522 369962 140283 610278 941473 247166 605831 339116 920250 988213 705589 896561 555758 103709 335152 993741 107259 796639 694119 9144 972982 +62222 105519 505446 743803 891902 911205 717402 995599 774940 740246 157184 818941 79833 497188 924952 635101 112552 163944 664860 460214 193270 170802 29664 355404 346402 122979 953929 168312 535732 845607 231893 142312 185871 100496 46688 381735 437355 555781 221500 489794 147789 592569 660384 159440 204047 138080 864852 376871 +957932 337144 431798 521847 607887 890445 321506 52241 719476 720580 328144 301010 587905 6956 273133 955029 669894 300817 269228 145903 637811 746270 587178 752164 386535 50766 588754 124889 404792 963518 938325 259117 670243 460530 531141 216122 85967 765226 855278 159007 427610 846329 7744 415500 381902 943584 342231 274385 diff --git a/2018/republic/10-12_d2/postas/tests/input.9a b/2018/republic/10-12_d2/postas/tests/input.9a new file mode 100644 index 0000000..0c99804 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.9a @@ -0,0 +1,99 @@ +49 +....K...................K..KKK......K......KKK... +KK..KK.............K...K........K.....KK...K...KK +.KKK......KK...K.KK.........K.K......K.KK.K..K... +.KK.K.....K.K.K........K..KK.KK...........K.K.... +K.K....K...K...KK.K....K...............K..K...K.. +...........K...KKK.KK..KK...K..........K......... +K......KK...KKK...K...K.K...K.K...K.K........KK.. +..K.K.K....K.KKKK......K.....K..............KK.K. +..........K....K....K..K...........K......KK.K... +.........K..K.K...KK...K.......K...K..KK....KK... +K......K..K.....K..KK.....KK.....K......KK..K.P.. +.......K.......K...K.KK....K...K..K........K.KK.. +...K........K........K...K...K.K..K.K.K.........K +......KKK.....KK.....K..K.........K............K. +...KK.K..K.......K......KKK.K.K..K..KK...K..K.... +......K..K....KK..........K...KK....KK..K..KK..K. +..K.K..K...KK..KK.KK...............KK.....K..K..K +.K..K......K.....KK...K..K.K..KKK.........K.K...K +..K....K.K.........KK..............KK..........K. +.K...K...K.K.KKK..K..K..K....K........K..K..K..K. +K...K...........K...K.K..KKKK....K.....K.......K. +........K.....K..K.KK...KK.K..K...K.....K.K.K.... +.K..K....KK.K..K......KK.K..K..K..KK.....K..KK... +............K.K.....K..K.KK...K....K.....K..K.... +............K..KKK.....K..........K..K....K....KK +...KK...K.....K..K....K..................K.K..... +......K..K..K.............KK........K..K.K...K... +K..KKK.KK.K..KK..K........K.........K..KK......KK +.K.....K......K......K..K...K........KK.......K.. +..K.K..K.K.K....KK...K.K..KKKK......K.......K.... +............KK.KK.K......KKK...KK.....K.K.K.K..K. +....K.K..KK.....K.K.K.............K.K............ +.KK...K...K.K.K.KKK.K.........KK......KKK..K....K +.......K..KKKK.......KK.K...K.K.........K...K...K +.K...K...K..........KK............K...K..K....... +.K.K...............K.K.................KKKK..K... +K...K.K..K.K.K.........K.......K..K...K.K..K..... +K....KK...K.......K.....K.....K....K......K.....K +...K.....K.K...K...K...K.....K...K.K.....K.K..... +K...K...K...K.K.K.K.......K........K............K +K....K..K.KKK.KK..K....K.K...............K.....K. +.K.......K.....K.......K..K..KKK....KK.K..K.....K +..K...KK.KK..K.KKK...K..K.K..K....K.K.....K....K. +K........K.KKK.K.........K..K........K.KKK..K.K.. +..K....K........K........KKK....K..KKK.KK..K.KK.. +..K.....................KK....K..KK....K...K....K +.KK..K.K....................KKK....K.......K...K. +.K..K..K.....K..........K..K..K.K.KKK......K...K. +K....K..K........KK.KK.K....K.K.K..K............. +862184 488857 446154 225550 506965 964652 988005 172649 862986 972854 765017 589047 304934 68193 848534 772866 289910 209501 854037 209885 79035 995574 12841 669930 483245 345497 371322 704176 379165 509774 105572 58742 964361 741543 104048 906456 586060 938153 721775 539852 57182 925171 810600 533325 438823 471297 16289 357120 159289 +665928 467631 220823 110105 275324 301843 861073 914733 858314 854404 155303 444454 889025 184064 905365 228045 535790 861035 82403 551376 396675 935923 992536 661367 557786 820780 737632 141982 26134 857075 572170 476878 623711 616618 153929 440335 831503 937492 508611 622389 412993 443884 503789 295761 804753 91459 445336 577153 468694 +454430 443952 322200 726573 330364 912906 174305 561202 911103 280170 684211 502337 294604 570990 381820 450861 706560 662250 531237 817025 133516 924459 63095 50692 863064 238988 198133 891451 616325 51209 337641 735315 896865 896502 771192 104418 721538 318257 113662 513757 318685 641177 354216 394216 332669 558224 872678 202252 675445 +772460 601081 562502 145909 341134 843024 564286 77803 285054 108525 474835 785430 306011 980398 418545 308786 359313 948713 529072 295155 300920 978197 816083 547244 347525 973124 569707 315924 915540 378465 437462 316326 684577 919811 445181 122864 136089 194729 410835 652605 837109 516319 638068 163010 647833 831381 227647 315333 219214 +470323 854466 255831 425164 897406 980981 927157 622351 796875 424819 570115 394557 379182 19801 212468 649610 252672 52779 385914 186434 14254 65619 843201 305104 88599 29504 98470 561398 847276 955642 975774 395466 577946 822363 948073 881627 949789 666187 223608 702654 128035 308923 505434 119838 789634 733179 381257 320604 546968 +860842 984945 93957 277045 821855 858687 949696 604617 928228 123276 550334 288502 87463 139588 17799 597271 319462 478195 589298 297608 450038 603812 877109 642798 720689 704730 744698 89826 408139 344781 495539 633481 101685 17160 866838 37949 958901 20331 115302 507125 174166 745633 875027 724252 963099 478548 71007 92863 568960 +354542 771584 795027 765934 800186 962457 31908 523696 545425 38979 194563 604255 667400 603127 459516 540724 112182 751461 305178 129740 794330 128114 252734 593373 305444 487776 900742 646543 262391 876386 455946 490324 103687 184318 281672 93909 432976 826427 163126 375410 161701 753614 840947 474711 385405 408582 533214 928834 754703 +45878 231882 449885 179314 524112 863936 577104 119343 134763 770300 898727 419995 194400 605808 535446 458311 405628 901578 157233 267364 837093 245757 882307 636750 13853 976556 737878 259082 83512 605957 190234 929757 62005 760738 119295 931352 339622 731809 175753 975901 58155 985877 559306 188329 537908 447878 72462 300393 289653 +943038 244374 470568 666260 114795 800160 880420 827732 81391 808400 614593 682999 447347 688305 89268 676951 787794 29149 890274 241696 588973 523469 934654 261237 144395 968274 561806 700140 999747 875900 7207 447288 811549 947530 775001 616464 236647 380038 428931 30630 747618 918855 502092 537452 33099 575959 152732 300940 222961 +412171 938180 201122 990346 605110 8507 182101 123139 577793 454756 35162 134079 542590 717833 667136 150810 167678 543811 653741 479076 891915 996205 887684 357620 740987 859568 510388 100047 632478 604840 358053 252154 126775 914899 76519 537477 167336 841090 628107 650103 695089 927129 527765 611360 585600 650750 527327 235247 982810 +313483 304960 242953 685167 637025 201506 956592 736068 868248 964980 623906 851976 173524 678771 818051 340148 319401 647106 42385 615263 669646 780245 504269 323654 472997 209379 271485 344657 846733 849227 998425 4035 190061 340232 751445 482797 32547 821333 828611 90048 466120 474879 472585 980967 567809 977046 783933 784674 407412 +804275 882283 985420 72272 156007 446399 962281 665830 32030 132045 75727 781362 276505 457673 113419 710032 515121 568583 568642 718988 965677 631381 554067 960441 660358 523493 237899 707192 826258 415115 753571 612367 294476 869194 458592 318973 483352 479810 871566 906436 223750 65702 441173 303845 564991 644859 342327 979439 244329 +207403 469780 863301 516545 877672 767102 130401 352168 836103 210487 852030 230230 509339 301860 63966 233432 637433 973003 244952 765567 659490 648605 833824 119701 832944 631427 889764 648222 446237 414031 244901 442902 937705 764278 324343 178242 416755 447529 348793 913484 904695 18875 211691 729571 364690 241323 387204 77724 709149 +32074 928647 922180 470195 875949 166399 658045 530768 565956 579893 992160 636575 65667 192200 688700 533991 105246 979192 379746 116805 524191 553605 142288 237410 507882 980994 781132 778911 851314 487449 74149 784195 574030 106957 311885 92944 216231 160034 790810 662560 696650 625479 497575 4507 730634 810851 864000 298825 393387 +621172 825364 728788 748233 570659 500058 748784 573317 79440 696831 568649 135183 22467 870852 351954 102293 891087 307235 984764 88843 823006 806524 680723 424415 324398 695963 679522 954502 688334 126405 520913 57476 482768 331568 863779 758630 660580 396600 302367 59999 248819 709184 980316 180717 280754 167659 336610 8115 859139 +234155 228372 609445 280118 722751 990339 491010 446462 520861 515790 170673 622598 843984 988617 708348 291767 182402 146716 563628 939059 616033 779927 153607 992729 938542 120432 542596 247076 126920 3213 598992 472684 12174 958156 131897 348078 412118 464070 750366 770982 405464 642802 859178 748095 398675 149441 64647 313422 259875 +796136 26536 344085 890801 334885 119218 178994 743451 496865 981613 691365 481225 275949 751973 342588 677343 612240 127263 698661 597958 152275 944247 35003 573177 624857 776058 283034 158549 922817 961542 83953 525393 278180 449827 281218 649617 591906 946587 343978 52697 921907 85216 598386 944259 387096 741785 481755 924859 259477 +402428 601606 797494 927614 473555 793501 232861 105651 144243 908837 538309 433613 860576 994643 85299 297183 211017 431345 657691 124669 452126 486577 514695 711864 744583 322172 341876 616249 992449 823691 272212 403523 587257 504352 93824 517813 47285 816288 350819 649480 878569 586614 583391 858363 564151 357381 643896 767950 514275 +877388 53867 619018 237411 946547 992695 809413 482312 487722 743164 130151 7388 474561 933158 14930 942345 672277 967042 19862 327798 592807 360246 708476 365810 740683 774033 611803 632110 628984 181499 203254 835421 879974 958761 391529 665826 531220 878011 914677 156814 934863 39513 563117 724823 176305 682290 662890 419514 973081 +500250 259790 248426 182739 451781 524299 908292 911894 637106 323497 801321 570007 785541 742233 378625 554795 927117 356739 404487 870219 99429 423361 421072 386901 687503 792705 615411 843522 990468 350722 826329 289012 435000 44720 18504 883959 156922 30515 374224 846523 105878 408180 341759 188603 693440 673325 39964 615503 308248 +345428 526905 27980 562466 554149 746008 875229 59962 939026 650145 344181 828211 324982 147381 969203 111496 425014 571361 882179 86566 342752 131470 440825 62624 9621 570030 436889 319630 327236 827682 369356 755197 496468 475862 87155 873270 184184 233275 898815 421903 295537 42574 948288 213349 135959 867595 863134 495626 950691 +279490 283710 996546 263506 791135 473842 632177 93885 723341 290252 60321 768066 413526 76980 743308 481842 30642 402045 198821 690948 582487 680622 178920 173915 698156 556581 630605 740338 845533 511507 670490 704884 655961 339798 628833 941174 945419 33397 182611 996308 636861 383215 619819 392060 258766 405397 281033 407653 119820 +55307 398008 601221 703730 528051 820362 970280 185849 859325 293737 464076 982023 347900 957384 751816 330370 25682 898056 243788 882788 739734 871526 682956 739366 975988 427105 422116 773684 708497 619380 590476 620983 78603 156376 259717 325028 953933 204852 800386 411109 724488 430364 778063 878521 688680 275569 403312 268814 915245 +223548 735643 102180 325270 291329 199295 155894 768634 896612 997376 227989 910404 602961 781693 588740 167096 818609 384780 743958 877498 335942 929279 811822 389310 58319 494050 501394 607660 754772 205031 357989 49265 393908 611770 565063 634583 599621 91130 833782 119668 167453 696146 742089 206209 581088 199575 452008 805478 584456 +96790 496978 199751 880686 56813 910313 754526 405222 307261 578126 519512 636892 693132 596762 678986 277138 370928 513273 755493 356042 146825 155174 340974 490902 110594 842796 487268 206807 824194 845134 880477 798602 628296 428637 517280 34207 896701 658671 767505 231803 62215 691951 693974 761789 805810 581960 812416 694605 689583 +651176 51148 783726 397981 258971 146476 459098 492028 617754 915902 955460 710666 841631 909554 403694 585475 495652 731092 271991 148800 738019 104651 508579 454137 84560 92691 562925 172486 602318 700801 967337 874930 220608 735393 185213 147166 302982 815291 323318 16716 402203 416239 835499 549194 365717 877742 1518 457977 799676 +17519 723623 78154 394676 194766 930744 294778 951011 919862 688595 988453 511767 417684 173807 860537 991471 204145 750869 584779 234545 771472 965570 935966 540891 440470 355036 427661 458136 204195 791823 851979 362961 375184 864591 641719 823970 457151 824224 55028 664068 137135 605031 238542 19301 438646 667806 696495 331632 736787 +297437 821822 594599 326904 314493 650383 303524 524544 587375 970733 304567 808410 572322 710158 254392 592929 857248 553210 304988 96277 75778 350712 386021 79782 86555 346740 301487 837229 784911 59271 109296 986335 790951 857130 138916 129974 284864 121402 810513 251728 653134 299062 717060 983513 865401 475535 463454 702149 466953 +222611 644883 980112 754226 815879 681198 96939 697703 746543 810218 574810 556279 480392 500762 395333 791050 26038 216869 782435 127958 847930 588668 415073 205361 359953 138399 906103 917441 576583 91798 169043 566187 204838 221045 121562 554765 809251 520326 262418 21234 796404 913630 271904 125915 346455 210399 388102 422567 261842 +32899 194139 403145 15741 501299 952567 495062 404445 899194 738234 59265 615118 161678 25007 111875 391310 420369 388593 770548 26056 500499 701021 457841 546687 386253 857119 296284 254523 737142 439953 310676 675544 903610 415508 361704 992666 654954 302542 240821 151151 152361 787576 247380 117920 676441 993342 495063 79844 974968 +761342 64004 310808 526908 229460 202792 127152 114784 628333 341782 881062 561025 493771 645746 490314 584775 421925 142744 581348 267667 402982 917977 916645 452846 216183 747072 396934 723877 105446 285183 161857 370042 364882 695518 68864 163882 519506 175346 265523 65320 612457 228713 467732 148217 281970 730315 784383 392999 684075 +226236 696593 735857 79711 436682 129672 276198 200653 837490 493143 340103 570415 550644 225035 786372 632373 393055 434613 672013 840900 439696 577355 91792 107369 904476 466663 235853 649131 11854 846456 789824 915880 942854 75505 408629 560585 337812 849703 111831 34112 783920 947188 580137 32154 795342 62493 905082 44296 449768 +846177 325763 608312 46174 304579 968729 364315 788402 699254 290102 360436 568563 656463 610420 429226 352313 343019 261461 736963 825744 538250 178191 313419 931045 281488 157460 858557 443093 813248 519463 515249 303751 372411 352957 895555 283308 128286 807165 424070 636325 294997 113635 101667 329353 278772 834891 680932 981211 301777 +998863 61037 857259 960555 30227 135774 188745 326552 449730 856687 418050 560285 310638 398996 729596 484202 770952 51765 135892 535 638732 729446 381781 75294 592880 86675 82554 983183 261282 174452 370698 801047 339213 358626 216474 129463 110720 65267 901702 866260 525830 782615 948104 858523 716491 222647 941059 250406 321779 +636550 733657 793982 994722 195189 523498 202402 787612 935704 308405 801299 421026 109502 855808 419138 145817 666023 798989 553112 717517 684894 302437 245330 309711 924836 186105 150711 773554 854169 165763 76376 345433 97350 963095 526225 972304 198575 929478 722057 65696 189606 533777 35688 855066 87838 977689 939783 235356 323254 +61927 627478 36298 624282 927197 182102 711457 202581 584275 150564 854174 16599 388769 96502 779870 928235 566443 588484 616974 621580 131220 572185 38235 982828 981807 428079 286405 659543 520045 488260 471140 11205 807626 477570 879111 882326 237195 988525 944888 484086 585333 557936 447910 610669 903234 459034 932317 90854 883220 +447023 703262 164120 62258 508649 105863 304890 955033 570910 578621 10472 252716 142534 347208 845565 236106 756464 721509 929855 348420 256915 111658 912912 449938 894976 829486 65188 147251 588234 997834 112043 300259 717396 117868 642634 445658 16348 814149 518932 933693 397482 164846 46114 314812 186680 983973 311297 822707 846273 +538698 475895 979186 490781 911377 361659 714070 53105 165825 575119 315671 856687 797851 116606 59456 160098 569783 341139 667982 883913 788061 647241 154789 18793 651557 498613 957611 245635 941012 9887 706272 110203 30561 150073 184308 282440 735572 745193 222488 105800 184679 826370 491862 108913 78759 921250 257773 937655 459914 +491974 32038 950967 573167 632702 164093 658012 243195 371764 450613 122039 371505 136424 231755 864827 560482 502615 644969 878301 316625 127679 58143 393151 567172 172707 646342 72904 404885 197754 557368 745026 497252 122052 667285 328780 668404 142191 908737 169039 774926 911914 367733 408061 479621 872135 280893 347325 215835 742889 +448753 62246 13288 8085 743155 988638 73829 916901 408769 494874 872986 472954 634943 487635 344163 529249 586658 179611 745372 828723 158832 32143 516729 608653 558209 873572 385774 122242 876001 65836 939743 322820 571075 954654 525177 352269 393247 783681 128669 861387 170604 168353 954127 161525 185423 893207 289380 221916 433824 +259325 78674 4454 992577 35687 719671 998199 16219 466148 906641 259536 445792 738972 43917 614930 356619 788075 243815 691968 754871 76096 716549 84605 561503 194961 712298 823071 562872 157040 798660 16492 287253 828485 181109 999757 759143 692710 653731 214736 525464 665790 681199 740570 788246 136338 700170 716420 262236 168685 +868815 348448 752183 14402 327028 356219 874623 400313 842896 320937 719316 908552 259044 65919 178102 642956 934747 836919 116470 857111 154076 860018 178425 578871 684925 452342 266538 976544 187447 256917 342740 296263 758934 465271 98867 120749 655091 721901 837927 722872 218344 957625 718951 118707 234588 542044 474712 832229 403723 +136187 965057 719290 649480 582433 81444 493826 589561 851402 711417 608937 448867 431242 573547 66857 646552 653571 653544 548017 349096 16853 679033 796686 145868 470449 869210 739562 14030 112016 530880 217706 759974 144177 897313 357481 264984 469531 873288 582564 80716 20676 518828 396721 380242 771399 490907 680247 666091 89682 +452536 332562 977997 286745 125905 237581 143165 30839 944415 709313 904325 367939 392308 251515 34866 289570 327939 27618 947923 202467 758605 614957 895667 510656 196879 722007 760854 439444 392873 65249 31371 804994 130130 141466 480022 334012 438929 259345 260360 633209 509104 433046 451314 9729 380023 432418 661798 529114 559472 +775167 47674 317461 633265 893304 234229 824528 688487 980771 809149 130539 301491 131771 554170 845451 722646 496881 35953 461426 23431 898062 916844 804399 14961 330390 251821 629492 348163 245314 700546 581361 815049 631731 768674 948694 510349 477347 511040 222919 277429 489588 14542 619243 416511 196 289513 629940 733302 841555 +841116 957217 527970 624624 485383 926314 59289 161839 47611 184245 131959 156197 261872 337522 654309 156980 235965 730691 477292 347428 444476 78619 841084 677199 661013 535186 82617 421634 240746 12835 553824 113540 174600 414031 292337 797753 128266 815662 706282 542948 949714 266095 295677 649964 148446 773249 10520 835540 396882 +21969 257306 628143 220485 880949 728764 892948 270745 942798 499557 806337 752760 506966 463093 788353 941860 344427 899557 341369 152719 630015 907969 748415 22535 93520 931651 225378 602103 555421 700420 259853 535264 167178 3364 781270 267571 161502 785082 500042 220982 891966 754914 807113 604571 741693 530199 388145 389218 116718 +787721 548656 753802 410416 504209 361027 54463 254268 379815 624439 294444 435357 914380 330447 210958 880243 887341 62479 645653 956567 36712 880592 907875 512659 305541 801446 594095 618021 838096 837102 744766 177929 474321 180379 337046 347203 283871 108509 852799 709713 475400 23270 14275 304268 954936 480960 903725 374747 356444 +386574 909265 124737 973540 463341 675902 401733 14684 250576 206119 312280 941671 624605 479160 929139 397447 823950 289075 415885 731409 443259 463040 467865 717136 972305 17294 847936 77994 354822 173413 430145 549780 457893 861223 861097 589476 789197 145547 399288 530760 854625 561199 855864 923879 160638 983652 882910 850255 109061 diff --git a/2018/republic/10-12_d2/postas/tests/input.9b b/2018/republic/10-12_d2/postas/tests/input.9b new file mode 100644 index 0000000..d0d52e0 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/input.9b @@ -0,0 +1,99 @@ +49 +.K..K.....KK.K..K.......K...K.K.K....K....K...... +.....K...........K...K...KKK..KK......K...K.K.... +..........K...........KK....K.K...KK.K..K...K.... +......K...KK..KK.K..K.....K........K......KKKK..K +....K.K.K.KK.K.........K..K..K.KK....K.K.KK....KK +KK..K.K........K...........K..K.K.K..K.....K..K.. +.....K...KK...K...K.K...K......KK..K..K.......... +..K........K.......K...KK......K............KK.K. +...KKK.K..KKKK.K..K.K....K.KK........K...KKK..... +............K.KKKK.......K..KK.K..K.KK.KK..K....K +K..K...K........K..K......KK.KK...K.K......K.K.K. +..K.......K..K.....K........K.K...........K.K.... +..K..............K..KK.........K..K....K......K.K +K......KKK.........KK.K...K.K.....K..K.......KK.K +.K.K...K..KK......K.......K..K.......K...K.K.K... +....KK....KKK.K..KKK..K..K.K...K......K........K. +KK..K...K.K..K.K.K...K..K...KKK...K.K..KK...K.... +K...........K..K..KK.....K..K..K..KK........K.... +......KK.KK..K.....K..K.....K..K..KK.K...K....... +K.K...K.....KK..K.......K.K.....K...K..........K. +K........K..K..K.....K..K........K......K...KK..K +................KKK.KKKK......KK..K....KK.K.K...K +.KKK...K..K.......K...K....K...K..K..K...KK.K.K.. +.K..KK.K...K..KK......KKK.K.K....K.KK..KKK.K...K. +.K.K.KK..K.K...KKK........K.K..KK.KKK............ +K..K.KK.....K...KK...KKKKK....K......K.....K..KKK +......K...K.......K.......K.KKK..K.KK.....K.K...K +K.K..................K..K...KK.K.K.K.....K...K... +KK......K..K.K.....K.........KK...K.....K.....K.K +.......K..K...K...................KKK...KK...KK.. +K..........KK...................K..KKK.K..K...... +K.K.K.K.K...........KK..K..K.K..K.........K.K.K.. +....K..KK.K...K.K..K.........KK.K.......K.K...... +.........K........K.....K.K......P.....K...K..... +.KK.K.K....K........KK...K...K......K......K..K.. +.K..K.K.K...K...........K..K......K.......KK...K. +...KK....K.....KK..K......K.K..........K.K...K.KK +.KK....K..K.KKK...K.KK.K....KK......K...K...KK... +..K......K....KK...........K..K...K.KK........KK. +....K...KKK.KK.........K..K.KK...K..K...KK....KK. +.....K........K.K..KK....K.....K.KK.KK..K...KK... +...K..K..........KKK.K.K.K..K.KK....KK....KK..K.. +.....K...K....KK.KKK..K........K..K..K..K...K.K.. +KK.KK...K..K......KK...K..............K..K....... +.....KK.....K........KK...K........K..K.......... +.KK......K....K..K.K...KK.K.K..K.K...K.....K....K +.K..KK..K........KK.KK......K..K.......K.K.KK.... +...K.K...K..KK..KK...K.............K.KK...K....K. +K...K...KK.K......K....K......K.....K.....K...... +842928 477967 161807 939790 363362 404034 425776 229626 226323 137595 550952 250612 683930 310316 638650 246778 749334 790330 993609 772847 43899 628851 64945 218959 617674 935677 229813 874465 493919 909953 575175 284754 717881 94738 344671 660654 625699 627350 706907 67350 19507 876674 524584 955064 39046 744890 533929 399358 780687 +809873 973637 986823 580198 883628 689663 943607 879749 243889 469535 824795 220415 467583 530571 791931 735953 854285 288709 971337 528042 863091 482201 179908 188073 105320 398127 465204 350487 874942 590082 696789 634433 226130 674634 642817 926531 563773 632722 426227 373915 968335 779166 531045 507802 423231 195427 763670 965966 680529 +815351 767947 55184 773445 526188 785778 85817 223988 862084 354643 663689 3039 189252 450955 856078 986675 721712 632185 254507 808155 304136 198140 412087 505406 550227 524949 102533 103124 297495 600364 294681 189294 670990 95890 561190 745276 917133 668634 725674 684809 494794 402428 940327 128013 311544 118678 551966 861381 655544 +215554 586439 966120 132821 132213 226784 362974 739436 996702 863226 627373 550669 427086 790919 561599 387184 851270 708218 24871 462335 561159 526976 860516 888454 214942 935965 328099 983693 236176 973372 475184 582678 185976 126706 947846 687590 825302 195457 806353 934240 253707 826206 518127 425601 256740 406977 866298 448865 626466 +107433 64628 240057 635199 502657 843473 621402 118202 453482 826463 732778 260271 745203 565188 978249 514208 383418 331370 74725 860406 452319 923159 638329 584459 335889 765110 636182 214395 146140 607051 649052 480744 519296 526735 24830 753826 6513 459439 902704 363185 697108 668573 651071 437311 20432 46199 14345 605811 491057 +349509 704235 283052 117721 464504 696253 389625 910032 759399 653066 765984 736369 787173 729778 520683 297872 59519 670584 23352 117014 674748 436729 406982 889981 143133 620371 256884 746602 688089 7299 431541 798935 706328 163841 484666 391412 550766 387366 798902 958588 490717 638812 293681 662389 910323 741168 450827 395187 904905 +400519 209227 187957 731061 946746 402265 367406 295605 88359 255212 628018 148565 222461 784451 637460 961644 863553 996573 585307 157394 457915 212956 195242 999777 615404 520519 395058 335225 845512 185505 908203 743988 619895 62356 265044 272074 786759 581789 544085 157594 936833 823576 60895 99191 41704 182270 870149 880701 101220 +173076 189029 404767 995689 242921 992817 435101 810938 347234 227532 663158 639908 751899 788949 238955 841782 576882 216275 637749 483431 836766 45195 741795 547939 563735 973867 585848 763143 226483 84512 55397 576723 905260 775951 202796 69572 808025 873433 61735 630532 978297 79340 799817 319413 419747 424256 809437 373139 630424 +316047 537320 680635 694182 738464 528480 836242 642637 24612 23002 478782 402051 597091 704686 139243 449127 251597 513064 603512 164000 471375 771097 853611 57344 762199 669123 999688 309492 509048 958824 759801 894488 465126 146911 3339 788145 249070 437083 473758 853604 431637 259922 453967 534795 575138 677571 904561 177198 511979 +245481 54569 875347 47300 893773 885294 854378 162873 854130 324462 242201 621725 592543 374263 699719 484883 531159 515673 542977 991712 849571 117952 139253 76951 164785 360442 885342 45328 547729 689089 896804 499748 810297 799717 487669 459828 512747 696575 881965 672819 311527 152291 371087 555514 886985 149853 7493 887911 674622 +389579 499526 979060 395509 118199 550007 921960 329760 916581 246745 917805 743903 225479 527444 41022 925857 520352 887422 198310 701499 790872 218544 823393 110164 935337 965886 566177 266143 295908 405556 561114 188229 656421 245269 724120 555166 454603 995714 848672 781820 18465 879628 990554 325565 778807 296704 45681 422672 916085 +652977 154133 641319 592209 989184 71590 978035 948059 731143 704045 682072 745756 112389 372493 701813 973934 802491 819298 631110 635336 45363 75598 888800 450001 642583 145314 11329 791856 348417 699609 533290 864237 769096 620722 597255 150978 141256 724429 951227 675386 193695 33311 330071 871891 720096 563675 859071 112022 48542 +356661 107972 514476 380107 484743 677675 850166 796233 661498 117770 562472 975707 104255 443628 802961 781379 909726 427956 17230 542727 654809 533396 975875 992549 538770 905094 220151 185696 549633 967198 312518 748602 994148 900825 567424 311831 70284 773380 194438 357968 590 40861 757770 98073 894171 806494 609573 123260 314570 +464007 825458 949399 753846 279192 460488 430212 508951 312571 611697 68526 347662 445558 279791 522918 599494 620331 582721 7487 681460 268425 121792 555645 446363 872844 773902 424539 44773 742268 16458 181538 212436 596827 158483 519112 20470 108173 567521 468328 994184 537325 563957 876935 82862 825677 255675 426543 508002 410259 +876972 260396 312447 432342 416138 121822 810663 266797 955344 683036 578106 259166 639470 809905 863981 315796 842361 166465 476869 121961 136628 278329 58665 194914 187966 908801 543835 784023 299943 271290 714114 750877 878951 527377 812483 100537 6323 377620 732671 829163 375609 358256 983790 477567 921123 619498 870725 386304 525450 +824963 187508 534342 797672 630295 687187 302931 482585 868397 117146 595022 714924 598004 973396 430551 199494 120318 689949 412152 577953 247164 799898 474483 24451 336927 639279 83048 252941 76518 236222 232196 454067 409206 945200 414172 712947 18298 201048 734036 301747 600573 848494 935139 887390 798241 733319 705215 300142 430501 +279880 590086 770003 958311 618758 710895 877075 169277 388913 453092 591637 245125 884626 553324 758005 628365 688381 489442 998110 114111 585041 473055 709850 875139 348781 144337 442308 122978 619057 685872 530269 769812 833553 839016 623488 336885 552426 841114 441803 452165 675682 338810 104403 268884 272523 128942 38989 911245 756836 +282034 362428 477343 936130 168312 205421 924436 116735 123415 958013 416794 722676 595689 869980 43741 490079 896047 777383 610740 655986 630384 175278 282791 666567 117688 425316 983264 515631 593364 879837 901479 700824 809808 823255 747000 496211 61735 885627 32479 85892 955233 835140 24613 445016 255797 378780 148272 953762 129012 +239932 928338 68279 184807 651351 911 383615 250964 978665 373029 683044 309943 882274 546437 766870 818982 384084 192820 72377 479011 118603 240041 301956 217955 876360 986940 200780 80930 261108 923357 330944 564885 393009 194899 554516 662161 779697 413855 349211 50587 721170 726676 86409 39025 853455 779622 696800 845981 833578 +519344 939292 727604 99139 798370 828850 508642 192436 873033 292504 280393 674771 746419 615800 894139 244859 558881 866048 5394 615605 118482 908041 590307 721713 510406 19151 690934 105234 805506 671602 926890 366797 253414 385485 680173 195369 262446 745048 246660 908675 13268 910557 721949 15776 943206 466004 788343 691559 991040 +445451 918570 167051 954888 2753 635099 778213 45484 115554 320247 865705 977851 498637 532601 66632 291137 914314 64442 957490 112207 951317 253407 878740 462695 614580 806469 119291 181009 324399 195071 451485 831402 978536 475712 844047 519934 655391 225945 183890 508240 313639 61621 282886 823768 326127 699197 128143 645148 394049 +42940 720868 159735 623748 691144 162405 808795 627708 210149 255293 561242 72994 884193 229149 826388 716313 380883 524183 620948 678213 740328 736660 444274 345995 259502 103434 211225 769864 930337 181194 599731 262511 763649 260035 399175 51285 834298 225837 139388 542348 525425 707619 652893 191758 256314 742924 26154 891567 642568 +780627 630456 513526 606722 729743 871117 117874 693142 344974 830486 459509 294875 355308 779347 873764 1609 139049 871301 667120 840769 549069 233517 450566 783901 489143 912783 268470 529972 113224 756861 498206 320241 780837 580121 263457 202610 928289 334370 843299 29628 365992 582291 720984 941062 700609 725381 469708 129135 903748 +84463 339255 793421 308401 664798 720433 31042 659369 844363 72971 105772 675290 970361 446375 520003 420623 165107 692950 536205 658285 944826 688986 534004 735444 736644 894078 260391 24667 417700 81767 84424 893857 855099 664723 78846 596374 277814 832189 232912 679837 680119 454501 753583 483998 768482 309724 138173 446498 61669 +744651 438020 941984 379157 836191 387562 293254 871644 660120 690982 54965 270976 793039 819532 141011 658793 478758 518444 490983 127615 22835 757616 675589 246141 440002 645316 356028 944277 675759 346389 109678 483535 277451 206137 334066 523823 288471 888114 931014 224530 358899 268922 500767 583356 345083 272656 947805 536318 312857 +564346 860434 26014 581043 795553 561193 611074 70282 36639 897586 15475 118129 395691 997878 686703 944124 315662 338219 989960 647340 637212 684574 663270 573441 273535 510502 30974 302431 171518 640104 706152 67788 682545 138131 546627 935379 200624 686024 442212 115181 33922 859817 775125 322647 813126 231244 333568 411996 387318 +88865 664027 949124 189772 861426 976434 709068 965239 213694 911974 696511 613112 553274 564478 275050 133606 804102 823904 664389 453097 30186 130838 970909 892834 428667 259525 507553 74067 364723 651719 558174 928975 252849 671365 52443 694314 661260 480660 58939 590592 174669 575495 512119 100828 429077 7134 802642 897726 516087 +300391 813506 374105 943053 213171 117441 75157 65410 808695 905634 191356 130967 850522 792881 271489 997359 416997 479414 191554 811829 674646 575347 442780 396922 389578 846214 797193 121443 397534 696268 202703 628086 918970 731896 219583 629066 888930 852681 771017 409021 103525 510795 995773 313617 414671 250330 212600 279114 26263 +570094 348574 218592 683465 327116 735592 154912 960460 650826 654267 662004 697054 52621 257426 765068 669160 820401 34995 923394 694334 979240 960761 757614 549573 233185 527886 579790 6560 275205 727754 424098 128521 589498 234497 450505 520019 911134 827750 190668 104853 602656 320375 161795 203573 950170 60999 472600 138438 460956 +76280 287579 53437 570693 283188 203195 84829 580913 268111 741535 400748 908455 227205 197464 592008 975989 128233 123155 762408 975966 867508 264446 237427 106759 813109 138242 425436 999816 855081 441187 414622 21633 131798 813890 535224 686749 718639 333747 535113 305331 546885 470329 969762 620798 106656 700862 335953 153380 940106 +739964 904973 637064 956487 861174 627921 484430 715259 636841 179087 990158 381674 734960 85195 660033 971691 706771 563750 111113 779885 175738 193819 816242 970654 933628 810802 387647 809126 891010 905954 13059 981794 271925 591347 411918 532808 320849 429546 10337 591391 497660 940104 564862 915203 460325 139669 192898 192757 834156 +483667 805190 316198 60051 368205 897767 711060 896168 455190 586455 310063 902329 576648 591347 840985 189690 834435 61258 987963 871294 720472 557105 477322 766195 524931 446993 809496 681411 263829 361927 242496 881923 686258 6398 130216 335792 580359 768145 51908 268306 775792 127100 407208 948637 570993 779636 666197 141616 436670 +845472 437437 786971 396809 268329 904849 216977 409145 570086 208592 313059 157320 208196 974807 493675 674978 353502 71210 109510 361871 561858 744579 945848 112364 901239 141545 650150 130858 291608 498144 696658 668058 426987 15619 487272 985396 563609 555066 961036 633523 432872 952110 676501 987360 342333 580093 32649 4949 985613 +460384 113442 749034 371117 848548 773615 529338 594418 857787 445021 834609 761549 195478 951841 915130 98958 193397 87857 676572 137869 122928 30008 482079 1655 604350 172373 262031 422282 202121 913754 114087 896907 661212 229804 567669 40533 759787 161620 366472 485785 49946 986233 891344 417349 313115 994686 639461 332245 231193 +783785 511380 279638 738196 730848 285459 709628 131646 570574 858680 862745 255625 827228 234878 193726 929363 807699 788531 466390 19208 407709 463861 840623 29968 744710 622330 958828 775243 954984 451916 644337 118460 172154 838956 72016 161363 674931 906732 457562 551323 561611 766824 223362 370171 122444 903541 613142 114109 79710 +8749 689226 896752 697561 418366 938083 581732 565000 395462 99673 846908 111822 655269 440560 148386 415253 27344 256556 265086 70910 31954 776953 796948 176847 382375 470167 26028 293710 544130 37164 340724 717577 750409 572559 610693 651661 294418 43450 49955 146718 83337 955604 452299 305120 794852 336707 824627 595975 939880 +654898 66960 530157 299859 634106 853078 620990 241821 872928 492996 853558 758400 684300 878741 505214 288002 703897 912411 838821 464541 178768 185747 914154 633592 48742 80796 426475 173439 672566 216040 166483 136178 751495 149774 359632 106631 396680 751585 602765 418437 168988 321241 553402 904867 403790 596336 16059 657818 689655 +828610 398089 446196 899194 43955 48361 143159 494806 142381 544500 336359 96700 503642 466768 288007 853780 498353 880836 605209 386383 668590 392418 191609 660881 294767 293946 393721 157042 310011 291123 199885 893008 77905 772245 415981 936904 665558 136784 755598 73019 738945 933924 586387 948893 303260 626357 665106 91484 340763 +914932 224546 713773 121762 245646 990016 281876 963738 181325 517942 181469 79508 969385 403520 369041 719767 450703 601485 5852 881070 234445 82047 609232 957832 84306 758725 555075 506044 340648 682149 575431 82089 170915 827711 345155 866962 530315 251846 848713 822288 373347 912052 83072 239894 91857 800315 289360 374505 909011 +954973 259154 955807 858896 298835 915434 125267 400758 609174 610435 470717 192192 380179 468120 852092 890888 35223 69127 66454 81863 148673 551762 902021 364323 107 776627 626576 231978 459331 643515 199897 477786 218240 541155 944612 840826 470124 107348 38722 629943 262805 632466 411067 67957 173869 464475 411264 652774 551351 +786458 541633 43822 670015 436457 505502 858349 61222 737746 88826 916556 206388 635881 849018 567039 53680 294843 374265 926479 286451 384452 865624 723949 409883 834924 685817 873130 590056 208432 954903 731447 706744 706009 454763 508732 983091 464472 374464 223706 809318 624102 172181 588643 428143 288774 348575 698951 945983 944300 +813813 138109 811978 442211 207522 172334 530887 992402 634787 237579 76184 362145 888093 480493 9750 985649 561706 620126 563214 489677 877009 744231 490748 397102 950245 452408 600052 741035 417180 834868 590314 511574 790035 124340 480137 255770 586565 412982 960674 285890 200799 99257 416192 312449 340597 431887 276809 932544 380130 +890802 287730 894006 203539 334493 627866 873218 1325 403930 365874 823413 114305 76710 952800 294718 647647 294916 677730 487823 669839 416887 212493 522748 789206 956958 702116 44139 105672 163553 917964 928896 376026 11267 921822 269867 432285 152301 724124 560829 207460 451453 616966 123419 125796 287518 471502 315777 394862 74128 +548319 272315 12260 654701 653969 883965 983067 104047 330405 621406 88748 693259 782427 992001 1527 527086 375608 807628 529315 626427 913704 893275 81418 266721 581185 247464 768228 55010 210851 31603 829422 128822 670271 178679 182609 807548 765579 887032 449199 847747 135992 253383 209112 631698 635648 214194 755392 871663 348733 +66928 638397 849145 55466 23531 472471 600877 827251 848596 213241 79067 253501 529777 992310 850520 28352 565192 58442 635952 947720 2809 611859 317585 935585 812695 372193 253740 261298 449608 89755 492261 41184 13802 174266 800558 316357 833600 183259 284462 872893 402158 34513 176101 888218 75587 938371 938839 102623 98909 +16974 596700 615333 5888 67969 661986 433730 798343 562815 394411 877856 19274 601678 177689 638400 142353 247923 540172 265366 607532 128588 844285 768264 626731 660785 237561 520297 915410 708588 818068 134951 264820 804686 674651 234350 44490 694814 524679 91727 760316 204972 38713 848735 711790 644988 473514 597475 965586 633866 +595063 326546 904694 788460 499063 259788 30425 151532 561293 699963 314534 100703 122286 769239 248544 88667 485393 476812 444539 220390 278426 357018 487485 764922 862872 102546 717796 41088 424965 393717 528939 536361 959200 746244 976364 44914 934402 753024 9184 258133 365745 505512 295003 412800 275783 793645 502303 423831 373546 +486015 158333 133806 604082 13545 464302 858225 819122 2698 278921 242104 190117 614606 504215 566749 935326 303922 704551 667821 789278 896091 650858 166093 205866 295606 346438 765259 978173 917606 436049 444496 179034 742435 189155 485696 323078 251646 741098 278139 65128 992005 263162 489698 136837 572296 226719 256292 293074 245927 +340531 57785 590499 318886 318624 145355 524436 891436 589188 553788 331110 251919 20570 962682 503580 903570 522071 830706 630472 46828 153376 799020 296019 629806 459122 236000 553590 887033 919588 85258 559523 706442 153803 723215 748347 767827 296258 59467 876404 810463 157467 188637 613947 440486 180019 355604 154339 870158 127599 diff --git a/2018/republic/10-12_d2/postas/tests/output.01 b/2018/republic/10-12_d2/postas/tests/output.01 new file mode 100644 index 0000000..1874828 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.01 @@ -0,0 +1 @@ +0 diff --git a/2018/republic/10-12_d2/postas/tests/output.02 b/2018/republic/10-12_d2/postas/tests/output.02 new file mode 100644 index 0000000..78c6bae --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.02 @@ -0,0 +1 @@ +2 diff --git a/2018/republic/10-12_d2/postas/tests/output.10a b/2018/republic/10-12_d2/postas/tests/output.10a new file mode 100644 index 0000000..babf9a1 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.10a @@ -0,0 +1 @@ +660458 diff --git a/2018/republic/10-12_d2/postas/tests/output.10b b/2018/republic/10-12_d2/postas/tests/output.10b new file mode 100644 index 0000000..c426e40 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.10b @@ -0,0 +1 @@ +548330 diff --git a/2018/republic/10-12_d2/postas/tests/output.1a b/2018/republic/10-12_d2/postas/tests/output.1a new file mode 100644 index 0000000..c1e0d56 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.1a @@ -0,0 +1 @@ +420527 diff --git a/2018/republic/10-12_d2/postas/tests/output.1b b/2018/republic/10-12_d2/postas/tests/output.1b new file mode 100644 index 0000000..44f2bf2 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.1b @@ -0,0 +1 @@ +82454 diff --git a/2018/republic/10-12_d2/postas/tests/output.1c b/2018/republic/10-12_d2/postas/tests/output.1c new file mode 100644 index 0000000..1874828 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.1c @@ -0,0 +1 @@ +0 diff --git a/2018/republic/10-12_d2/postas/tests/output.2a b/2018/republic/10-12_d2/postas/tests/output.2a new file mode 100644 index 0000000..03c0780 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.2a @@ -0,0 +1 @@ +572727 diff --git a/2018/republic/10-12_d2/postas/tests/output.2b b/2018/republic/10-12_d2/postas/tests/output.2b new file mode 100644 index 0000000..56e845b --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.2b @@ -0,0 +1 @@ +254918 diff --git a/2018/republic/10-12_d2/postas/tests/output.2c b/2018/republic/10-12_d2/postas/tests/output.2c new file mode 100644 index 0000000..bc28b79 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.2c @@ -0,0 +1 @@ +486127 diff --git a/2018/republic/10-12_d2/postas/tests/output.3a b/2018/republic/10-12_d2/postas/tests/output.3a new file mode 100644 index 0000000..9e346b3 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.3a @@ -0,0 +1 @@ +593931 diff --git a/2018/republic/10-12_d2/postas/tests/output.3b b/2018/republic/10-12_d2/postas/tests/output.3b new file mode 100644 index 0000000..f1467d5 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.3b @@ -0,0 +1 @@ +350378 diff --git a/2018/republic/10-12_d2/postas/tests/output.3c b/2018/republic/10-12_d2/postas/tests/output.3c new file mode 100644 index 0000000..28179bc --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.3c @@ -0,0 +1 @@ +350379 diff --git a/2018/republic/10-12_d2/postas/tests/output.4a b/2018/republic/10-12_d2/postas/tests/output.4a new file mode 100644 index 0000000..ab85eb8 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.4a @@ -0,0 +1 @@ +502485 diff --git a/2018/republic/10-12_d2/postas/tests/output.4b b/2018/republic/10-12_d2/postas/tests/output.4b new file mode 100644 index 0000000..2488628 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.4b @@ -0,0 +1 @@ +502019 diff --git a/2018/republic/10-12_d2/postas/tests/output.5a b/2018/republic/10-12_d2/postas/tests/output.5a new file mode 100644 index 0000000..984ab08 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.5a @@ -0,0 +1 @@ +547434 diff --git a/2018/republic/10-12_d2/postas/tests/output.5b b/2018/republic/10-12_d2/postas/tests/output.5b new file mode 100644 index 0000000..c8d65c6 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.5b @@ -0,0 +1 @@ +569329 diff --git a/2018/republic/10-12_d2/postas/tests/output.6a b/2018/republic/10-12_d2/postas/tests/output.6a new file mode 100644 index 0000000..de8044e --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.6a @@ -0,0 +1 @@ +627367 diff --git a/2018/republic/10-12_d2/postas/tests/output.6b b/2018/republic/10-12_d2/postas/tests/output.6b new file mode 100644 index 0000000..85d14eb --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.6b @@ -0,0 +1 @@ +596101 diff --git a/2018/republic/10-12_d2/postas/tests/output.7a b/2018/republic/10-12_d2/postas/tests/output.7a new file mode 100644 index 0000000..4b6a0fd --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.7a @@ -0,0 +1 @@ +591161 diff --git a/2018/republic/10-12_d2/postas/tests/output.7b b/2018/republic/10-12_d2/postas/tests/output.7b new file mode 100644 index 0000000..a166c58 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.7b @@ -0,0 +1 @@ +570981 diff --git a/2018/republic/10-12_d2/postas/tests/output.8a b/2018/republic/10-12_d2/postas/tests/output.8a new file mode 100644 index 0000000..54128f7 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.8a @@ -0,0 +1 @@ +631350 diff --git a/2018/republic/10-12_d2/postas/tests/output.8b b/2018/republic/10-12_d2/postas/tests/output.8b new file mode 100644 index 0000000..908683a --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.8b @@ -0,0 +1 @@ +635549 diff --git a/2018/republic/10-12_d2/postas/tests/output.9a b/2018/republic/10-12_d2/postas/tests/output.9a new file mode 100644 index 0000000..ff17607 --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.9a @@ -0,0 +1 @@ +586947 diff --git a/2018/republic/10-12_d2/postas/tests/output.9b b/2018/republic/10-12_d2/postas/tests/output.9b new file mode 100644 index 0000000..6ee247d --- /dev/null +++ b/2018/republic/10-12_d2/postas/tests/output.9b @@ -0,0 +1 @@ +625066 diff --git a/2018/republic/10-12_d2/sarpe/tests/input.0 b/2018/republic/10-12_d2/sarpe/tests/input.0 new file mode 100644 index 0000000..a8cf7d1 --- /dev/null +++ b/2018/republic/10-12_d2/sarpe/tests/input.0 @@ -0,0 +1,4 @@ +3 +2 1 +5 1 +8 1 diff --git a/2018/republic/10-12_d2/sarpe/tests/input.1 b/2018/republic/10-12_d2/sarpe/tests/input.1 new file mode 100644 index 0000000..181816a --- /dev/null +++ b/2018/republic/10-12_d2/sarpe/tests/input.1 @@ -0,0 +1,22 @@ +21 +1 1 +9 1 +1 2 +7 2 +2 3 +4 3 +3 4 +1 6 +8 6 +8 8 +6 9 +11 13 +16 13 +15 14 +12 15 +17 16 +16 9988 +10000 18 +9997 19 +13 10000 +15 10000 diff --git a/2018/republic/10-12_d2/sarpe/tests/input.2 b/2018/republic/10-12_d2/sarpe/tests/input.2 new file mode 100644 index 0000000..1235883 --- /dev/null +++ b/2018/republic/10-12_d2/sarpe/tests/input.2 @@ -0,0 +1,7 @@ +6 +3 2 +6 3 +9 5 +3 6 +3 8 +1 10 diff --git a/2018/republic/10-12_d2/sarpe/tests/input.3 b/2018/republic/10-12_d2/sarpe/tests/input.3 new file mode 100644 index 0000000..16689a8 --- /dev/null +++ b/2018/republic/10-12_d2/sarpe/tests/input.3 @@ -0,0 +1,43 @@ +42 +2 2 +3 3 +6 3 +9 4 +12 5 +20 5 +20 6 +22 7 +11 8 +19 8 +9 9 +12 10 +16 11 +16 12 +7 13 +13 13 +7 14 +7 15 +13 16 +20 16 +22 17 +26 17 +28 18 +30 18 +26 19 +26 20 +12 21 +20 21 +6 22 +9 22 +3 23 +3 24 +8 25 +13 25 +17 26 +20 26 +22 27 +23 27 +24 28 +25 28 +25 29 +25 30 diff --git a/2018/republic/10-12_d2/sarpe/tests/input.4 b/2018/republic/10-12_d2/sarpe/tests/input.4 new file mode 100644 index 0000000..a6fb96d --- /dev/null +++ b/2018/republic/10-12_d2/sarpe/tests/input.4 @@ -0,0 +1,50 @@ +49 +6 1 +14 1 +14 2 +17 2 +21 2 +25 3 +29 4 +31 4 +35 4 +39 4 +42 4 +45 4 +48 4 +50 6 +29 7 +29 8 +13 9 +15 10 +22 10 +26 10 +31 10 +36 10 +38 11 +42 12 +46 12 +51 13 +43 15 +46 15 +13 16 +31 16 +10 17 +12 18 +1 19 +25 20 +28 21 +32 21 +36 21 +40 22 +45 22 +60 25 +33 26 +34 26 +35 26 +36 26 +37 26 +29 28 +31 29 +37 29 +43 30 diff --git a/2018/republic/10-12_d2/sarpe/tests/input.5 b/2018/republic/10-12_d2/sarpe/tests/input.5 new file mode 100644 index 0000000..7043b50 --- /dev/null +++ b/2018/republic/10-12_d2/sarpe/tests/input.5 @@ -0,0 +1,1001 @@ +1000 +8 2 +19 2 +27 3 +23 4 +28 4 +21 5 +45 5 +16 6 +19 6 +21 6 +24 6 +26 6 +27 6 +28 6 +29 6 +30 6 +31 6 +34 6 +36 6 +38 6 +40 6 +42 6 +44 6 +48 6 +49 6 +50 6 +51 6 +55 7 +31 8 +32 8 +33 8 +34 8 +35 8 +37 8 +38 8 +39 8 +40 8 +41 8 +42 8 +43 8 +44 8 +46 8 +16 10 +18 10 +19 10 +19 15 +22 15 +31 15 +32 15 +50 15 +56 15 +60 15 +60 17 +52 18 +55 18 +39 19 +43 19 +46 19 +24 20 +26 20 +28 20 +13 22 +15 25 +18 25 +25 26 +24 27 +25 27 +26 27 +23 28 +24 28 +25 28 +26 28 +27 28 +18 29 +19 29 +20 29 +21 29 +22 29 +23 29 +24 29 +27 29 +27 30 +8 32 +19 32 +27 33 +23 34 +28 34 +21 35 +45 35 +16 36 +19 36 +21 36 +24 36 +26 36 +27 36 +28 36 +29 36 +30 36 +31 36 +34 36 +36 36 +38 36 +40 36 +42 36 +44 36 +48 36 +49 36 +50 36 +51 36 +55 37 +31 38 +32 38 +33 38 +34 38 +35 38 +37 38 +38 38 +39 38 +40 38 +41 38 +42 38 +43 38 +44 38 +46 38 +16 40 +18 40 +19 40 +12 41 +27 42 +25 43 +29 43 +21 44 +23 44 +24 44 +25 44 +27 44 +28 44 +29 44 +30 44 +31 44 +33 44 +36 44 +39 44 +40 44 +41 44 +19 45 +22 45 +31 45 +32 45 +50 45 +56 45 +60 45 +60 47 +52 48 +55 48 +39 49 +43 49 +46 49 +24 50 +26 50 +28 50 +13 52 +15 55 +18 55 +25 56 +24 57 +25 57 +26 57 +23 58 +24 58 +25 58 +26 58 +27 58 +18 59 +19 59 +20 59 +21 59 +22 59 +23 59 +24 59 +27 59 +27 60 +8 62 +19 62 +27 63 +23 64 +28 64 +21 65 +45 65 +16 66 +19 66 +21 66 +24 66 +26 66 +27 66 +28 66 +29 66 +30 66 +31 66 +34 66 +36 66 +38 66 +40 66 +42 66 +44 66 +48 66 +49 66 +50 66 +51 66 +55 67 +31 68 +32 68 +33 68 +34 68 +35 68 +37 68 +38 68 +39 68 +40 68 +41 68 +42 68 +43 68 +44 68 +46 68 +16 70 +18 70 +19 70 +12 71 +27 72 +25 73 +29 73 +21 74 +23 74 +24 74 +25 74 +27 74 +28 74 +29 74 +30 74 +31 74 +33 74 +36 74 +39 74 +40 74 +41 74 +19 75 +22 75 +31 75 +32 75 +50 75 +56 75 +60 75 +60 77 +52 78 +55 78 +39 79 +43 79 +46 79 +24 80 +26 80 +28 80 +13 82 +15 85 +18 85 +25 86 +24 87 +25 87 +26 87 +23 88 +24 88 +25 88 +26 88 +27 88 +18 89 +19 89 +20 89 +21 89 +22 89 +23 89 +24 89 +27 89 +27 90 +8 92 +19 92 +27 93 +23 94 +28 94 +21 95 +45 95 +16 96 +19 96 +21 96 +24 96 +26 96 +27 96 +28 96 +29 96 +30 96 +31 96 +34 96 +36 96 +38 96 +40 96 +42 96 +44 96 +48 96 +49 96 +50 96 +51 96 +55 97 +31 98 +32 98 +33 98 +34 98 +35 98 +37 98 +38 98 +39 98 +40 98 +41 98 +42 98 +43 98 +44 98 +46 98 +16 100 +18 100 +19 100 +12 101 +27 102 +25 103 +29 103 +21 104 +23 104 +24 104 +25 104 +27 104 +28 104 +29 104 +30 104 +31 104 +33 104 +36 104 +39 104 +40 104 +41 104 +19 105 +22 105 +31 105 +32 105 +50 105 +56 105 +60 105 +60 107 +52 108 +55 108 +39 109 +43 109 +46 109 +24 110 +26 110 +28 110 +13 112 +15 115 +18 115 +25 116 +24 117 +25 117 +26 117 +23 118 +24 118 +25 118 +26 118 +27 118 +18 119 +19 119 +20 119 +21 119 +22 119 +23 119 +24 119 +27 119 +27 120 +8 122 +19 122 +27 123 +23 124 +28 124 +21 125 +45 125 +16 126 +19 126 +21 126 +24 126 +26 126 +27 126 +28 126 +29 126 +30 126 +31 126 +34 126 +36 126 +38 126 +40 126 +42 126 +44 126 +48 126 +49 126 +50 126 +51 126 +55 127 +31 128 +32 128 +33 128 +34 128 +35 128 +37 128 +38 128 +39 128 +40 128 +41 128 +42 128 +43 128 +44 128 +46 128 +16 130 +18 130 +19 130 +12 131 +27 132 +25 133 +29 133 +21 134 +23 134 +24 134 +25 134 +27 134 +28 134 +29 134 +30 134 +31 134 +33 134 +36 134 +39 134 +40 134 +41 134 +19 135 +22 135 +31 135 +32 135 +50 135 +56 135 +60 135 +60 137 +52 138 +55 138 +39 139 +43 139 +46 139 +24 140 +26 140 +28 140 +13 142 +15 145 +18 145 +25 146 +24 147 +25 147 +26 147 +23 148 +24 148 +25 148 +26 148 +27 148 +18 149 +19 149 +20 149 +21 149 +22 149 +23 149 +24 149 +27 149 +27 150 +8 152 +19 152 +27 153 +23 154 +28 154 +21 155 +45 155 +16 156 +19 156 +21 156 +24 156 +26 156 +27 156 +28 156 +29 156 +30 156 +31 156 +34 156 +36 156 +38 156 +40 156 +42 156 +44 156 +48 156 +49 156 +50 156 +51 156 +55 157 +31 158 +32 158 +33 158 +34 158 +35 158 +37 158 +38 158 +39 158 +40 158 +41 158 +42 158 +43 158 +44 158 +46 158 +16 160 +18 160 +19 160 +12 161 +27 162 +25 163 +29 163 +21 164 +23 164 +24 164 +25 164 +27 164 +28 164 +29 164 +30 164 +31 164 +33 164 +36 164 +39 164 +40 164 +41 164 +19 165 +22 165 +31 165 +32 165 +50 165 +56 165 +60 165 +60 167 +52 168 +55 168 +39 169 +43 169 +46 169 +24 170 +26 170 +28 170 +13 172 +15 175 +18 175 +25 176 +24 177 +25 177 +26 177 +23 178 +24 178 +25 178 +26 178 +27 178 +18 179 +19 179 +20 179 +21 179 +22 179 +23 179 +24 179 +27 179 +27 180 +8 182 +19 182 +27 183 +23 184 +28 184 +21 185 +45 185 +16 186 +19 186 +21 186 +24 186 +26 186 +27 186 +28 186 +29 186 +30 186 +31 186 +34 186 +36 186 +38 186 +40 186 +42 186 +44 186 +48 186 +49 186 +50 186 +51 186 +55 187 +31 188 +32 188 +33 188 +34 188 +35 188 +37 188 +38 188 +39 188 +40 188 +41 188 +42 188 +43 188 +44 188 +46 188 +16 190 +18 190 +19 190 +12 191 +27 192 +25 193 +29 193 +21 194 +23 194 +24 194 +25 194 +27 194 +28 194 +29 194 +30 194 +31 194 +33 194 +36 194 +39 194 +40 194 +41 194 +19 195 +22 195 +31 195 +32 195 +50 195 +56 195 +60 195 +60 197 +52 198 +55 198 +39 199 +43 199 +46 199 +24 200 +26 200 +28 200 +13 202 +15 205 +18 205 +25 206 +24 207 +25 207 +26 207 +23 208 +24 208 +25 208 +26 208 +27 208 +18 209 +19 209 +20 209 +21 209 +22 209 +23 209 +24 209 +27 209 +27 210 +8 212 +19 212 +27 213 +23 214 +28 214 +21 215 +45 215 +16 216 +19 216 +21 216 +24 216 +26 216 +27 216 +28 216 +29 216 +30 216 +31 216 +34 216 +36 216 +38 216 +40 216 +42 216 +44 216 +48 216 +49 216 +50 216 +51 216 +55 217 +31 218 +32 218 +33 218 +34 218 +35 218 +37 218 +38 218 +39 218 +40 218 +41 218 +42 218 +43 218 +44 218 +46 218 +16 220 +18 220 +19 220 +12 221 +27 222 +25 223 +29 223 +21 224 +23 224 +24 224 +25 224 +27 224 +28 224 +29 224 +30 224 +31 224 +33 224 +36 224 +39 224 +40 224 +41 224 +19 225 +22 225 +31 225 +32 225 +50 225 +56 225 +60 225 +60 227 +52 228 +55 228 +39 229 +43 229 +46 229 +24 230 +26 230 +28 230 +13 232 +15 235 +18 235 +25 236 +24 237 +25 237 +26 237 +23 238 +24 238 +25 238 +26 238 +27 238 +18 239 +19 239 +20 239 +21 239 +22 239 +23 239 +24 239 +27 239 +27 240 +8 242 +19 242 +27 243 +23 244 +28 244 +21 245 +45 245 +16 246 +19 246 +21 246 +24 246 +26 246 +27 246 +28 246 +29 246 +30 246 +31 246 +34 246 +36 246 +38 246 +40 246 +42 246 +44 246 +48 246 +49 246 +50 246 +51 246 +55 247 +31 248 +32 248 +33 248 +34 248 +35 248 +37 248 +38 248 +39 248 +40 248 +41 248 +42 248 +43 248 +44 248 +46 248 +16 250 +18 250 +19 250 +12 251 +27 252 +25 253 +29 253 +21 254 +23 254 +24 254 +25 254 +27 254 +28 254 +29 254 +30 254 +31 254 +33 254 +36 254 +39 254 +40 254 +41 254 +19 255 +22 255 +31 255 +32 255 +50 255 +56 255 +60 255 +60 257 +52 258 +55 258 +39 259 +43 259 +46 259 +24 260 +26 260 +28 260 +13 262 +15 265 +18 265 +25 266 +24 267 +25 267 +26 267 +23 268 +24 268 +25 268 +26 268 +27 268 +18 269 +19 269 +20 269 +21 269 +22 269 +23 269 +24 269 +27 269 +27 270 +8 272 +19 272 +27 273 +23 274 +28 274 +21 275 +45 275 +16 276 +19 276 +21 276 +24 276 +26 276 +27 276 +28 276 +29 276 +30 276 +31 276 +34 276 +36 276 +38 276 +40 276 +42 276 +44 276 +48 276 +49 276 +50 276 +51 276 +55 277 +31 278 +32 278 +33 278 +34 278 +35 278 +37 278 +38 278 +39 278 +40 278 +41 278 +42 278 +43 278 +44 278 +46 278 +16 280 +18 280 +19 280 +12 281 +27 282 +25 283 +29 283 +21 284 +23 284 +24 284 +25 284 +27 284 +28 284 +29 284 +30 284 +31 284 +33 284 +36 284 +39 284 +40 284 +41 284 +19 285 +22 285 +31 285 +32 285 +50 285 +56 285 +60 285 +60 287 +52 288 +55 288 +39 289 +43 289 +46 289 +24 290 +26 290 +28 290 +13 292 +15 295 +18 295 +25 296 +24 297 +25 297 +26 297 +23 298 +24 298 +25 298 +26 298 +27 298 +18 299 +19 299 +20 299 +21 299 +22 299 +23 299 +24 299 +27 299 +27 300 +12 11 +27 12 +25 13 +29 13 +21 14 +23 14 +24 14 +25 14 +27 14 +28 14 +29 14 +30 14 +31 14 +33 14 +36 14 +39 14 +40 14 +41 14 diff --git a/2018/republic/10-12_d2/sarpe/tests/input.6 b/2018/republic/10-12_d2/sarpe/tests/input.6 new file mode 100644 index 0000000..401522a --- /dev/null +++ b/2018/republic/10-12_d2/sarpe/tests/input.6 @@ -0,0 +1,85 @@ +84 +16 1 +19 1 +19 2 +23 2 +21 3 +26 3 +18 4 +31 4 +27 5 +30 5 +35 5 +20 7 +29 7 +24 10 +27 10 +30 10 +35 10 +16 11 +17 11 +18 11 +19 11 +20 11 +21 11 +22 11 +32 11 +33 11 +34 11 +35 11 +36 11 +37 11 +38 11 +39 11 +40 11 +41 11 +42 11 +15 12 +58 12 +60 12 +81 12 +1 14 +82 14 +28 15 +31 15 +30 16 +36 16 +28 17 +39 17 +33 18 +36 18 +37 19 +41 19 +44 20 +46 20 +36 21 +38 21 +27 22 +35 22 +31 23 +41 23 +28 24 +29 24 +30 24 +31 24 +39 24 +11 25 +12 25 +13 25 +14 25 +15 25 +16 25 +17 25 +18 25 +19 25 +28 25 +29 25 +55 26 +50 27 +56 27 +48 28 +71 28 +25 29 +72 29 +24 30 +100 30 diff --git a/2018/republic/10-12_d2/sarpe/tests/input.7 b/2018/republic/10-12_d2/sarpe/tests/input.7 new file mode 100644 index 0000000..8eaddc6 --- /dev/null +++ b/2018/republic/10-12_d2/sarpe/tests/input.7 @@ -0,0 +1,10001 @@ +10000 +22 1 +26 1 +25 2 +29 2 +28 3 +57 3 +56 4 +53 5 +57 5 +61 5 +52 6 +31 7 +33 7 +33 8 +35 8 +28 9 +37 9 +35 10 +54 10 +29 11 +48 11 +30 12 +32 12 +36 13 +41 13 +44 14 +48 14 +59 15 +61 15 +64 16 +74 16 +74 17 +72 18 +74 18 +74 19 +77 19 +70 20 +78 20 +69 21 +85 21 +48 22 +86 22 +47 23 +87 23 +24 24 +87 24 +24 25 +93 25 +1 26 +100 26 +22 27 +26 27 +25 28 +29 28 +28 29 +57 29 +56 30 +53 31 +57 31 +61 31 +52 32 +31 33 +33 33 +33 34 +35 34 +28 35 +37 35 +35 36 +54 36 +29 37 +48 37 +30 38 +32 38 +36 39 +41 39 +44 40 +48 40 +59 41 +61 41 +64 42 +74 42 +74 43 +72 44 +74 44 +74 45 +77 45 +70 46 +78 46 +69 47 +85 47 +48 48 +86 48 +47 49 +87 49 +24 50 +87 50 +24 51 +93 51 +1 52 +100 52 +22 53 +26 53 +25 54 +29 54 +28 55 +57 55 +56 56 +53 57 +57 57 +61 57 +52 58 +31 59 +33 59 +33 60 +35 60 +28 61 +37 61 +35 62 +54 62 +29 63 +48 63 +30 64 +32 64 +36 65 +41 65 +44 66 +48 66 +59 67 +61 67 +64 68 +74 68 +74 69 +72 70 +74 70 +74 71 +77 71 +70 72 +78 72 +69 73 +85 73 +48 74 +86 74 +47 75 +87 75 +24 76 +87 76 +24 77 +93 77 +1 78 +100 78 +22 79 +26 79 +25 80 +29 80 +28 81 +57 81 +56 82 +53 83 +57 83 +61 83 +52 84 +31 85 +33 85 +33 86 +35 86 +28 87 +37 87 +35 88 +54 88 +29 89 +48 89 +30 90 +32 90 +36 91 +41 91 +44 92 +48 92 +59 93 +61 93 +64 94 +74 94 +74 95 +72 96 +74 96 +74 97 +77 97 +70 98 +78 98 +69 99 +85 99 +48 100 +86 100 +47 101 +87 101 +24 102 +87 102 +24 103 +93 103 +1 104 +100 104 +22 105 +26 105 +25 106 +29 106 +28 107 +57 107 +56 108 +53 109 +57 109 +61 109 +52 110 +31 111 +33 111 +33 112 +35 112 +28 113 +37 113 +35 114 +54 114 +29 115 +48 115 +30 116 +32 116 +36 117 +41 117 +44 118 +48 118 +59 119 +61 119 +64 120 +74 120 +74 121 +72 122 +74 122 +74 123 +77 123 +70 124 +78 124 +69 125 +85 125 +48 126 +86 126 +47 127 +87 127 +24 128 +87 128 +24 129 +93 129 +1 130 +100 130 +22 131 +26 131 +25 132 +29 132 +28 133 +57 133 +56 134 +53 135 +57 135 +61 135 +52 136 +31 137 +33 137 +33 138 +35 138 +28 139 +37 139 +35 140 +54 140 +29 141 +48 141 +30 142 +32 142 +36 143 +41 143 +44 144 +48 144 +59 145 +61 145 +64 146 +74 146 +74 147 +72 148 +74 148 +74 149 +77 149 +70 150 +78 150 +69 151 +85 151 +48 152 +86 152 +47 153 +87 153 +24 154 +87 154 +24 155 +93 155 +1 156 +100 156 +22 157 +26 157 +25 158 +29 158 +28 159 +57 159 +56 160 +53 161 +57 161 +61 161 +52 162 +31 163 +33 163 +33 164 +35 164 +28 165 +37 165 +35 166 +54 166 +29 167 +48 167 +30 168 +32 168 +36 169 +41 169 +44 170 +48 170 +59 171 +61 171 +64 172 +74 172 +74 173 +72 174 +74 174 +74 175 +77 175 +70 176 +78 176 +69 177 +85 177 +48 178 +86 178 +47 179 +87 179 +24 180 +87 180 +24 181 +93 181 +1 182 +100 182 +22 183 +26 183 +25 184 +29 184 +28 185 +57 185 +56 186 +53 187 +57 187 +61 187 +52 188 +31 189 +33 189 +33 190 +35 190 +28 191 +37 191 +35 192 +54 192 +29 193 +48 193 +30 194 +32 194 +36 195 +41 195 +44 196 +48 196 +59 197 +61 197 +64 198 +74 198 +74 199 +72 200 +74 200 +74 201 +77 201 +70 202 +78 202 +69 203 +85 203 +48 204 +86 204 +47 205 +87 205 +24 206 +87 206 +24 207 +93 207 +1 208 +100 208 +22 209 +26 209 +25 210 +29 210 +28 211 +57 211 +56 212 +53 213 +57 213 +61 213 +52 214 +31 215 +33 215 +33 216 +35 216 +28 217 +37 217 +35 218 +54 218 +29 219 +48 219 +30 220 +32 220 +36 221 +41 221 +44 222 +48 222 +59 223 +61 223 +64 224 +74 224 +74 225 +72 226 +74 226 +74 227 +77 227 +70 228 +78 228 +69 229 +85 229 +48 230 +86 230 +47 231 +87 231 +24 232 +87 232 +24 233 +93 233 +1 234 +100 234 +22 235 +26 235 +25 236 +29 236 +28 237 +57 237 +56 238 +53 239 +57 239 +61 239 +52 240 +31 241 +33 241 +33 242 +35 242 +28 243 +37 243 +35 244 +54 244 +29 245 +48 245 +30 246 +32 246 +36 247 +41 247 +44 248 +48 248 +59 249 +61 249 +64 250 +74 250 +74 251 +72 252 +74 252 +74 253 +77 253 +70 254 +78 254 +69 255 +85 255 +48 256 +86 256 +47 257 +87 257 +24 258 +87 258 +24 259 +93 259 +1 260 +100 260 +22 261 +26 261 +25 262 +29 262 +28 263 +57 263 +56 264 +53 265 +57 265 +61 265 +52 266 +31 267 +33 267 +33 268 +35 268 +28 269 +37 269 +35 270 +54 270 +29 271 +48 271 +30 272 +32 272 +36 273 +41 273 +44 274 +48 274 +59 275 +61 275 +64 276 +74 276 +74 277 +72 278 +74 278 +74 279 +77 279 +70 280 +78 280 +69 281 +85 281 +48 282 +86 282 +47 283 +87 283 +24 284 +87 284 +24 285 +93 285 +1 286 +100 286 +22 287 +26 287 +25 288 +29 288 +28 289 +57 289 +56 290 +53 291 +57 291 +61 291 +52 292 +31 293 +33 293 +33 294 +35 294 +28 295 +37 295 +35 296 +54 296 +29 297 +48 297 +30 298 +32 298 +36 299 +41 299 +44 300 +48 300 +59 301 +61 301 +64 302 +74 302 +74 303 +72 304 +74 304 +74 305 +77 305 +70 306 +78 306 +69 307 +85 307 +48 308 +86 308 +47 309 +87 309 +24 310 +87 310 +24 311 +93 311 +1 312 +100 312 +22 313 +26 313 +25 314 +29 314 +28 315 +57 315 +56 316 +53 317 +57 317 +61 317 +52 318 +31 319 +33 319 +33 320 +35 320 +28 321 +37 321 +35 322 +54 322 +29 323 +48 323 +30 324 +32 324 +36 325 +41 325 +44 326 +48 326 +59 327 +61 327 +64 328 +74 328 +74 329 +72 330 +74 330 +74 331 +77 331 +70 332 +78 332 +69 333 +85 333 +48 334 +86 334 +47 335 +87 335 +24 336 +87 336 +24 337 +93 337 +1 338 +100 338 +22 339 +26 339 +25 340 +29 340 +28 341 +57 341 +56 342 +53 343 +57 343 +61 343 +52 344 +31 345 +33 345 +33 346 +35 346 +28 347 +37 347 +35 348 +54 348 +29 349 +48 349 +30 350 +32 350 +36 351 +41 351 +44 352 +48 352 +59 353 +61 353 +64 354 +74 354 +74 355 +72 356 +74 356 +74 357 +77 357 +70 358 +78 358 +69 359 +85 359 +48 360 +86 360 +47 361 +87 361 +24 362 +87 362 +24 363 +93 363 +1 364 +100 364 +22 365 +26 365 +25 366 +29 366 +28 367 +57 367 +56 368 +53 369 +57 369 +61 369 +52 370 +31 371 +33 371 +33 372 +35 372 +28 373 +37 373 +35 374 +54 374 +29 375 +48 375 +30 376 +32 376 +36 377 +41 377 +44 378 +48 378 +59 379 +61 379 +64 380 +74 380 +74 381 +72 382 +74 382 +74 383 +77 383 +70 384 +78 384 +69 385 +85 385 +48 386 +86 386 +47 387 +87 387 +24 388 +87 388 +24 389 +93 389 +1 390 +100 390 +22 391 +26 391 +25 392 +29 392 +28 393 +57 393 +56 394 +53 395 +57 395 +61 395 +52 396 +31 397 +33 397 +33 398 +35 398 +28 399 +37 399 +35 400 +54 400 +29 401 +48 401 +30 402 +32 402 +36 403 +41 403 +44 404 +48 404 +59 405 +61 405 +64 406 +74 406 +74 407 +72 408 +74 408 +74 409 +77 409 +70 410 +78 410 +69 411 +85 411 +48 412 +86 412 +47 413 +87 413 +24 414 +87 414 +24 415 +93 415 +1 416 +100 416 +22 417 +26 417 +25 418 +29 418 +28 419 +57 419 +56 420 +53 421 +57 421 +61 421 +52 422 +31 423 +33 423 +33 424 +35 424 +28 425 +37 425 +35 426 +54 426 +29 427 +48 427 +30 428 +32 428 +36 429 +41 429 +44 430 +48 430 +59 431 +61 431 +64 432 +74 432 +74 433 +72 434 +74 434 +74 435 +77 435 +70 436 +78 436 +69 437 +85 437 +48 438 +86 438 +47 439 +87 439 +24 440 +87 440 +24 441 +93 441 +1 442 +100 442 +22 443 +26 443 +25 444 +29 444 +28 445 +57 445 +56 446 +53 447 +57 447 +61 447 +52 448 +31 449 +33 449 +33 450 +35 450 +28 451 +37 451 +35 452 +54 452 +29 453 +48 453 +30 454 +32 454 +36 455 +41 455 +44 456 +48 456 +59 457 +61 457 +64 458 +74 458 +74 459 +72 460 +74 460 +74 461 +77 461 +70 462 +78 462 +69 463 +85 463 +48 464 +86 464 +47 465 +87 465 +24 466 +87 466 +24 467 +93 467 +1 468 +100 468 +22 469 +26 469 +25 470 +29 470 +28 471 +57 471 +56 472 +53 473 +57 473 +61 473 +52 474 +31 475 +33 475 +33 476 +35 476 +28 477 +37 477 +35 478 +54 478 +29 479 +48 479 +30 480 +32 480 +36 481 +41 481 +44 482 +48 482 +59 483 +61 483 +64 484 +74 484 +74 485 +72 486 +74 486 +74 487 +77 487 +70 488 +78 488 +69 489 +85 489 +48 490 +86 490 +47 491 +87 491 +24 492 +87 492 +24 493 +93 493 +1 494 +100 494 +22 495 +26 495 +25 496 +29 496 +28 497 +57 497 +56 498 +53 499 +57 499 +61 499 +52 500 +31 501 +33 501 +33 502 +35 502 +28 503 +37 503 +35 504 +54 504 +29 505 +48 505 +30 506 +32 506 +36 507 +41 507 +44 508 +48 508 +59 509 +61 509 +64 510 +74 510 +74 511 +72 512 +74 512 +74 513 +77 513 +70 514 +78 514 +69 515 +85 515 +48 516 +86 516 +47 517 +87 517 +24 518 +87 518 +24 519 +93 519 +1 520 +100 520 +22 521 +26 521 +25 522 +29 522 +28 523 +57 523 +56 524 +53 525 +57 525 +61 525 +52 526 +31 527 +33 527 +33 528 +35 528 +28 529 +37 529 +35 530 +54 530 +29 531 +48 531 +30 532 +32 532 +36 533 +41 533 +44 534 +48 534 +59 535 +61 535 +64 536 +74 536 +74 537 +72 538 +74 538 +74 539 +77 539 +70 540 +78 540 +69 541 +85 541 +48 542 +86 542 +47 543 +87 543 +24 544 +87 544 +24 545 +93 545 +1 546 +100 546 +22 547 +26 547 +25 548 +29 548 +28 549 +57 549 +56 550 +53 551 +57 551 +61 551 +52 552 +31 553 +33 553 +33 554 +35 554 +28 555 +37 555 +35 556 +54 556 +29 557 +48 557 +30 558 +32 558 +36 559 +41 559 +44 560 +48 560 +59 561 +61 561 +64 562 +74 562 +74 563 +72 564 +74 564 +74 565 +77 565 +70 566 +78 566 +69 567 +85 567 +48 568 +86 568 +47 569 +87 569 +24 570 +87 570 +24 571 +93 571 +1 572 +100 572 +22 573 +26 573 +25 574 +29 574 +28 575 +57 575 +56 576 +53 577 +57 577 +61 577 +52 578 +31 579 +33 579 +33 580 +35 580 +28 581 +37 581 +35 582 +54 582 +29 583 +48 583 +30 584 +32 584 +36 585 +41 585 +44 586 +48 586 +59 587 +61 587 +64 588 +74 588 +74 589 +72 590 +74 590 +74 591 +77 591 +70 592 +78 592 +69 593 +85 593 +48 594 +86 594 +47 595 +87 595 +24 596 +87 596 +24 597 +93 597 +1 598 +100 598 +22 599 +26 599 +25 600 +29 600 +28 601 +57 601 +56 602 +53 603 +57 603 +61 603 +52 604 +31 605 +33 605 +33 606 +35 606 +28 607 +37 607 +35 608 +54 608 +29 609 +48 609 +30 610 +32 610 +36 611 +41 611 +44 612 +48 612 +59 613 +61 613 +64 614 +74 614 +74 615 +72 616 +74 616 +74 617 +77 617 +70 618 +78 618 +69 619 +85 619 +48 620 +86 620 +47 621 +87 621 +24 622 +87 622 +24 623 +93 623 +1 624 +100 624 +22 625 +26 625 +25 626 +29 626 +28 627 +57 627 +56 628 +53 629 +57 629 +61 629 +52 630 +31 631 +33 631 +33 632 +35 632 +28 633 +37 633 +35 634 +54 634 +29 635 +48 635 +30 636 +32 636 +36 637 +41 637 +44 638 +48 638 +59 639 +61 639 +64 640 +74 640 +74 641 +72 642 +74 642 +74 643 +77 643 +70 644 +78 644 +69 645 +85 645 +48 646 +86 646 +47 647 +87 647 +24 648 +87 648 +24 649 +93 649 +1 650 +100 650 +22 651 +26 651 +25 652 +29 652 +28 653 +57 653 +56 654 +53 655 +57 655 +61 655 +52 656 +31 657 +33 657 +33 658 +35 658 +28 659 +37 659 +35 660 +54 660 +29 661 +48 661 +30 662 +32 662 +36 663 +41 663 +44 664 +48 664 +59 665 +61 665 +64 666 +74 666 +74 667 +72 668 +74 668 +74 669 +77 669 +70 670 +78 670 +69 671 +85 671 +48 672 +86 672 +47 673 +87 673 +24 674 +87 674 +24 675 +93 675 +1 676 +100 676 +22 677 +26 677 +25 678 +29 678 +28 679 +57 679 +56 680 +53 681 +57 681 +61 681 +52 682 +31 683 +33 683 +33 684 +35 684 +28 685 +37 685 +35 686 +54 686 +29 687 +48 687 +30 688 +32 688 +36 689 +41 689 +44 690 +48 690 +59 691 +61 691 +64 692 +74 692 +74 693 +72 694 +74 694 +74 695 +77 695 +70 696 +78 696 +69 697 +85 697 +48 698 +86 698 +47 699 +87 699 +24 700 +87 700 +24 701 +93 701 +1 702 +100 702 +22 703 +26 703 +25 704 +29 704 +28 705 +57 705 +56 706 +53 707 +57 707 +61 707 +52 708 +31 709 +33 709 +33 710 +35 710 +28 711 +37 711 +35 712 +54 712 +29 713 +48 713 +30 714 +32 714 +36 715 +41 715 +44 716 +48 716 +59 717 +61 717 +64 718 +74 718 +74 719 +72 720 +74 720 +74 721 +77 721 +70 722 +78 722 +69 723 +85 723 +48 724 +86 724 +47 725 +87 725 +24 726 +87 726 +24 727 +93 727 +1 728 +100 728 +22 729 +26 729 +25 730 +29 730 +28 731 +57 731 +56 732 +53 733 +57 733 +61 733 +52 734 +31 735 +33 735 +33 736 +35 736 +28 737 +37 737 +35 738 +54 738 +29 739 +48 739 +30 740 +32 740 +36 741 +41 741 +44 742 +48 742 +59 743 +61 743 +64 744 +74 744 +74 745 +72 746 +74 746 +74 747 +77 747 +70 748 +78 748 +69 749 +85 749 +48 750 +86 750 +47 751 +87 751 +24 752 +87 752 +24 753 +93 753 +1 754 +100 754 +22 755 +26 755 +25 756 +29 756 +28 757 +57 757 +56 758 +53 759 +57 759 +61 759 +52 760 +31 761 +33 761 +33 762 +35 762 +28 763 +37 763 +35 764 +54 764 +29 765 +48 765 +30 766 +32 766 +36 767 +41 767 +44 768 +48 768 +59 769 +61 769 +64 770 +74 770 +74 771 +72 772 +74 772 +74 773 +77 773 +70 774 +78 774 +69 775 +85 775 +48 776 +86 776 +47 777 +87 777 +24 778 +87 778 +24 779 +93 779 +1 780 +100 780 +22 781 +26 781 +25 782 +29 782 +28 783 +57 783 +56 784 +53 785 +57 785 +61 785 +52 786 +31 787 +33 787 +33 788 +35 788 +28 789 +37 789 +35 790 +54 790 +29 791 +48 791 +30 792 +32 792 +36 793 +41 793 +44 794 +48 794 +59 795 +61 795 +64 796 +74 796 +74 797 +72 798 +74 798 +74 799 +77 799 +70 800 +78 800 +69 801 +85 801 +48 802 +86 802 +47 803 +87 803 +24 804 +87 804 +24 805 +93 805 +1 806 +100 806 +22 807 +26 807 +25 808 +29 808 +28 809 +57 809 +56 810 +53 811 +57 811 +61 811 +52 812 +31 813 +33 813 +33 814 +35 814 +28 815 +37 815 +35 816 +54 816 +29 817 +48 817 +30 818 +32 818 +36 819 +41 819 +44 820 +48 820 +59 821 +61 821 +64 822 +74 822 +74 823 +72 824 +74 824 +74 825 +77 825 +70 826 +78 826 +69 827 +85 827 +48 828 +86 828 +47 829 +87 829 +24 830 +87 830 +24 831 +93 831 +1 832 +100 832 +22 833 +26 833 +25 834 +29 834 +28 835 +57 835 +56 836 +53 837 +57 837 +61 837 +52 838 +31 839 +33 839 +33 840 +35 840 +28 841 +37 841 +35 842 +54 842 +29 843 +48 843 +30 844 +32 844 +36 845 +41 845 +44 846 +48 846 +59 847 +61 847 +64 848 +74 848 +74 849 +72 850 +74 850 +74 851 +77 851 +70 852 +78 852 +69 853 +85 853 +48 854 +86 854 +47 855 +87 855 +24 856 +87 856 +24 857 +93 857 +1 858 +100 858 +22 859 +26 859 +25 860 +29 860 +28 861 +57 861 +56 862 +53 863 +57 863 +61 863 +52 864 +31 865 +33 865 +33 866 +35 866 +28 867 +37 867 +35 868 +54 868 +29 869 +48 869 +30 870 +32 870 +36 871 +41 871 +44 872 +48 872 +59 873 +61 873 +64 874 +74 874 +74 875 +72 876 +74 876 +74 877 +77 877 +70 878 +78 878 +69 879 +85 879 +48 880 +86 880 +47 881 +87 881 +24 882 +87 882 +24 883 +93 883 +1 884 +100 884 +22 885 +26 885 +25 886 +29 886 +28 887 +57 887 +56 888 +53 889 +57 889 +61 889 +52 890 +31 891 +33 891 +33 892 +35 892 +28 893 +37 893 +35 894 +54 894 +29 895 +48 895 +30 896 +32 896 +36 897 +41 897 +44 898 +48 898 +59 899 +61 899 +64 900 +74 900 +74 901 +72 902 +74 902 +74 903 +77 903 +70 904 +78 904 +69 905 +85 905 +48 906 +86 906 +47 907 +87 907 +24 908 +87 908 +24 909 +93 909 +1 910 +100 910 +22 911 +26 911 +25 912 +29 912 +28 913 +57 913 +56 914 +53 915 +57 915 +61 915 +52 916 +31 917 +33 917 +33 918 +35 918 +28 919 +37 919 +35 920 +54 920 +29 921 +48 921 +30 922 +32 922 +36 923 +41 923 +44 924 +48 924 +59 925 +61 925 +64 926 +74 926 +74 927 +72 928 +74 928 +74 929 +77 929 +70 930 +78 930 +69 931 +85 931 +48 932 +86 932 +47 933 +87 933 +24 934 +87 934 +24 935 +93 935 +1 936 +100 936 +22 937 +26 937 +25 938 +29 938 +28 939 +57 939 +56 940 +53 941 +57 941 +61 941 +52 942 +31 943 +33 943 +33 944 +35 944 +28 945 +37 945 +35 946 +54 946 +29 947 +48 947 +30 948 +32 948 +36 949 +41 949 +44 950 +48 950 +59 951 +61 951 +64 952 +74 952 +74 953 +72 954 +74 954 +74 955 +77 955 +70 956 +78 956 +69 957 +85 957 +48 958 +86 958 +47 959 +87 959 +24 960 +87 960 +24 961 +93 961 +1 962 +100 962 +22 963 +26 963 +25 964 +29 964 +28 965 +57 965 +56 966 +53 967 +57 967 +61 967 +52 968 +31 969 +33 969 +33 970 +35 970 +28 971 +37 971 +35 972 +54 972 +29 973 +48 973 +30 974 +32 974 +36 975 +41 975 +44 976 +48 976 +59 977 +61 977 +64 978 +74 978 +74 979 +72 980 +74 980 +74 981 +77 981 +70 982 +78 982 +69 983 +85 983 +48 984 +86 984 +47 985 +87 985 +24 986 +87 986 +24 987 +93 987 +1 988 +100 988 +22 989 +26 989 +25 990 +29 990 +28 991 +57 991 +56 992 +53 993 +57 993 +61 993 +52 994 +31 995 +33 995 +33 996 +35 996 +28 997 +37 997 +35 998 +54 998 +29 999 +48 999 +30 1000 +32 1000 +36 1001 +41 1001 +44 1002 +48 1002 +59 1003 +61 1003 +64 1004 +74 1004 +74 1005 +72 1006 +74 1006 +74 1007 +77 1007 +70 1008 +78 1008 +69 1009 +85 1009 +48 1010 +86 1010 +47 1011 +87 1011 +24 1012 +87 1012 +24 1013 +93 1013 +1 1014 +100 1014 +22 1015 +26 1015 +25 1016 +29 1016 +28 1017 +57 1017 +56 1018 +53 1019 +57 1019 +61 1019 +52 1020 +31 1021 +33 1021 +33 1022 +35 1022 +28 1023 +37 1023 +35 1024 +54 1024 +29 1025 +48 1025 +30 1026 +32 1026 +36 1027 +41 1027 +44 1028 +48 1028 +59 1029 +61 1029 +64 1030 +74 1030 +74 1031 +72 1032 +74 1032 +74 1033 +77 1033 +70 1034 +78 1034 +69 1035 +85 1035 +48 1036 +86 1036 +47 1037 +87 1037 +24 1038 +87 1038 +24 1039 +93 1039 +1 1040 +100 1040 +22 1041 +26 1041 +25 1042 +29 1042 +28 1043 +57 1043 +56 1044 +53 1045 +57 1045 +61 1045 +52 1046 +31 1047 +33 1047 +33 1048 +35 1048 +28 1049 +37 1049 +35 1050 +54 1050 +29 1051 +48 1051 +30 1052 +32 1052 +36 1053 +41 1053 +44 1054 +48 1054 +59 1055 +61 1055 +64 1056 +74 1056 +74 1057 +72 1058 +74 1058 +74 1059 +77 1059 +70 1060 +78 1060 +69 1061 +85 1061 +48 1062 +86 1062 +47 1063 +87 1063 +24 1064 +87 1064 +24 1065 +93 1065 +1 1066 +100 1066 +22 1067 +26 1067 +25 1068 +29 1068 +28 1069 +57 1069 +56 1070 +53 1071 +57 1071 +61 1071 +52 1072 +31 1073 +33 1073 +33 1074 +35 1074 +28 1075 +37 1075 +35 1076 +54 1076 +29 1077 +48 1077 +30 1078 +32 1078 +36 1079 +41 1079 +44 1080 +48 1080 +59 1081 +61 1081 +64 1082 +74 1082 +74 1083 +72 1084 +74 1084 +74 1085 +77 1085 +70 1086 +78 1086 +69 1087 +85 1087 +48 1088 +86 1088 +47 1089 +87 1089 +24 1090 +87 1090 +24 1091 +93 1091 +1 1092 +100 1092 +22 1093 +26 1093 +25 1094 +29 1094 +28 1095 +57 1095 +56 1096 +53 1097 +57 1097 +61 1097 +52 1098 +31 1099 +33 1099 +33 1100 +35 1100 +28 1101 +37 1101 +35 1102 +54 1102 +29 1103 +48 1103 +30 1104 +32 1104 +36 1105 +41 1105 +44 1106 +48 1106 +59 1107 +61 1107 +64 1108 +74 1108 +74 1109 +72 1110 +74 1110 +74 1111 +77 1111 +70 1112 +78 1112 +69 1113 +85 1113 +48 1114 +86 1114 +47 1115 +87 1115 +24 1116 +87 1116 +24 1117 +93 1117 +1 1118 +100 1118 +22 1119 +26 1119 +25 1120 +29 1120 +28 1121 +57 1121 +56 1122 +53 1123 +57 1123 +61 1123 +52 1124 +31 1125 +33 1125 +33 1126 +35 1126 +28 1127 +37 1127 +35 1128 +54 1128 +29 1129 +48 1129 +30 1130 +32 1130 +36 1131 +41 1131 +44 1132 +48 1132 +59 1133 +61 1133 +64 1134 +74 1134 +74 1135 +72 1136 +74 1136 +74 1137 +77 1137 +70 1138 +78 1138 +69 1139 +85 1139 +48 1140 +86 1140 +47 1141 +87 1141 +24 1142 +87 1142 +24 1143 +93 1143 +1 1144 +100 1144 +22 1145 +26 1145 +25 1146 +29 1146 +28 1147 +57 1147 +56 1148 +53 1149 +57 1149 +61 1149 +52 1150 +31 1151 +33 1151 +33 1152 +35 1152 +28 1153 +37 1153 +35 1154 +54 1154 +29 1155 +48 1155 +30 1156 +32 1156 +36 1157 +41 1157 +44 1158 +48 1158 +59 1159 +61 1159 +64 1160 +74 1160 +74 1161 +72 1162 +74 1162 +74 1163 +77 1163 +70 1164 +78 1164 +69 1165 +85 1165 +48 1166 +86 1166 +47 1167 +87 1167 +24 1168 +87 1168 +24 1169 +93 1169 +1 1170 +100 1170 +22 1171 +26 1171 +25 1172 +29 1172 +28 1173 +57 1173 +56 1174 +53 1175 +57 1175 +61 1175 +52 1176 +31 1177 +33 1177 +33 1178 +35 1178 +28 1179 +37 1179 +35 1180 +54 1180 +29 1181 +48 1181 +30 1182 +32 1182 +36 1183 +41 1183 +44 1184 +48 1184 +59 1185 +61 1185 +64 1186 +74 1186 +74 1187 +72 1188 +74 1188 +74 1189 +77 1189 +70 1190 +78 1190 +69 1191 +85 1191 +48 1192 +86 1192 +47 1193 +87 1193 +24 1194 +87 1194 +24 1195 +93 1195 +1 1196 +100 1196 +22 1197 +26 1197 +25 1198 +29 1198 +28 1199 +57 1199 +56 1200 +53 1201 +57 1201 +61 1201 +52 1202 +31 1203 +33 1203 +33 1204 +35 1204 +28 1205 +37 1205 +35 1206 +54 1206 +29 1207 +48 1207 +30 1208 +32 1208 +36 1209 +41 1209 +44 1210 +48 1210 +59 1211 +61 1211 +64 1212 +74 1212 +74 1213 +72 1214 +74 1214 +74 1215 +77 1215 +70 1216 +78 1216 +69 1217 +85 1217 +48 1218 +86 1218 +47 1219 +87 1219 +24 1220 +87 1220 +24 1221 +93 1221 +1 1222 +100 1222 +22 1223 +26 1223 +25 1224 +29 1224 +28 1225 +57 1225 +56 1226 +53 1227 +57 1227 +61 1227 +52 1228 +31 1229 +33 1229 +33 1230 +35 1230 +28 1231 +37 1231 +35 1232 +54 1232 +29 1233 +48 1233 +30 1234 +32 1234 +36 1235 +41 1235 +44 1236 +48 1236 +59 1237 +61 1237 +64 1238 +74 1238 +74 1239 +72 1240 +74 1240 +74 1241 +77 1241 +70 1242 +78 1242 +69 1243 +85 1243 +48 1244 +86 1244 +47 1245 +87 1245 +24 1246 +87 1246 +24 1247 +93 1247 +1 1248 +100 1248 +22 1249 +26 1249 +25 1250 +29 1250 +28 1251 +57 1251 +56 1252 +53 1253 +57 1253 +61 1253 +52 1254 +31 1255 +33 1255 +33 1256 +35 1256 +28 1257 +37 1257 +35 1258 +54 1258 +29 1259 +48 1259 +30 1260 +32 1260 +36 1261 +41 1261 +44 1262 +48 1262 +59 1263 +61 1263 +64 1264 +74 1264 +74 1265 +72 1266 +74 1266 +74 1267 +77 1267 +70 1268 +78 1268 +69 1269 +85 1269 +48 1270 +86 1270 +47 1271 +87 1271 +24 1272 +87 1272 +24 1273 +93 1273 +1 1274 +100 1274 +22 1275 +26 1275 +25 1276 +29 1276 +28 1277 +57 1277 +56 1278 +53 1279 +57 1279 +61 1279 +52 1280 +31 1281 +33 1281 +33 1282 +35 1282 +28 1283 +37 1283 +35 1284 +54 1284 +29 1285 +48 1285 +30 1286 +32 1286 +36 1287 +41 1287 +44 1288 +48 1288 +59 1289 +61 1289 +64 1290 +74 1290 +74 1291 +72 1292 +74 1292 +74 1293 +77 1293 +70 1294 +78 1294 +69 1295 +85 1295 +48 1296 +86 1296 +47 1297 +87 1297 +24 1298 +87 1298 +24 1299 +93 1299 +1 1300 +100 1300 +22 1301 +26 1301 +25 1302 +29 1302 +28 1303 +57 1303 +56 1304 +53 1305 +57 1305 +61 1305 +52 1306 +31 1307 +33 1307 +33 1308 +35 1308 +28 1309 +37 1309 +35 1310 +54 1310 +29 1311 +48 1311 +30 1312 +32 1312 +36 1313 +41 1313 +44 1314 +48 1314 +59 1315 +61 1315 +64 1316 +74 1316 +74 1317 +72 1318 +74 1318 +74 1319 +77 1319 +70 1320 +78 1320 +69 1321 +85 1321 +48 1322 +86 1322 +47 1323 +87 1323 +24 1324 +87 1324 +24 1325 +93 1325 +1 1326 +100 1326 +22 1327 +26 1327 +25 1328 +29 1328 +28 1329 +57 1329 +56 1330 +53 1331 +57 1331 +61 1331 +52 1332 +31 1333 +33 1333 +33 1334 +35 1334 +28 1335 +37 1335 +35 1336 +54 1336 +29 1337 +48 1337 +30 1338 +32 1338 +36 1339 +41 1339 +44 1340 +48 1340 +59 1341 +61 1341 +64 1342 +74 1342 +74 1343 +72 1344 +74 1344 +74 1345 +77 1345 +70 1346 +78 1346 +69 1347 +85 1347 +48 1348 +86 1348 +47 1349 +87 1349 +24 1350 +87 1350 +24 1351 +93 1351 +1 1352 +100 1352 +22 1353 +26 1353 +25 1354 +29 1354 +28 1355 +57 1355 +56 1356 +53 1357 +57 1357 +61 1357 +52 1358 +31 1359 +33 1359 +33 1360 +35 1360 +28 1361 +37 1361 +35 1362 +54 1362 +29 1363 +48 1363 +30 1364 +32 1364 +36 1365 +41 1365 +44 1366 +48 1366 +59 1367 +61 1367 +64 1368 +74 1368 +74 1369 +72 1370 +74 1370 +74 1371 +77 1371 +70 1372 +78 1372 +69 1373 +85 1373 +48 1374 +86 1374 +47 1375 +87 1375 +24 1376 +87 1376 +24 1377 +93 1377 +1 1378 +100 1378 +22 1379 +26 1379 +25 1380 +29 1380 +28 1381 +57 1381 +56 1382 +53 1383 +57 1383 +61 1383 +52 1384 +31 1385 +33 1385 +33 1386 +35 1386 +28 1387 +37 1387 +35 1388 +54 1388 +29 1389 +48 1389 +30 1390 +32 1390 +36 1391 +41 1391 +44 1392 +48 1392 +59 1393 +61 1393 +64 1394 +74 1394 +74 1395 +72 1396 +74 1396 +74 1397 +77 1397 +70 1398 +78 1398 +69 1399 +85 1399 +48 1400 +86 1400 +47 1401 +87 1401 +24 1402 +87 1402 +24 1403 +93 1403 +1 1404 +100 1404 +22 1405 +26 1405 +25 1406 +29 1406 +28 1407 +57 1407 +56 1408 +53 1409 +57 1409 +61 1409 +52 1410 +31 1411 +33 1411 +33 1412 +35 1412 +28 1413 +37 1413 +35 1414 +54 1414 +29 1415 +48 1415 +30 1416 +32 1416 +36 1417 +41 1417 +44 1418 +48 1418 +59 1419 +61 1419 +64 1420 +74 1420 +74 1421 +72 1422 +74 1422 +74 1423 +77 1423 +70 1424 +78 1424 +69 1425 +85 1425 +48 1426 +86 1426 +47 1427 +87 1427 +24 1428 +87 1428 +24 1429 +93 1429 +1 1430 +100 1430 +22 1431 +26 1431 +25 1432 +29 1432 +28 1433 +57 1433 +56 1434 +53 1435 +57 1435 +61 1435 +52 1436 +31 1437 +33 1437 +33 1438 +35 1438 +28 1439 +37 1439 +35 1440 +54 1440 +29 1441 +48 1441 +30 1442 +32 1442 +36 1443 +41 1443 +44 1444 +48 1444 +59 1445 +61 1445 +64 1446 +74 1446 +74 1447 +72 1448 +74 1448 +74 1449 +77 1449 +70 1450 +78 1450 +69 1451 +85 1451 +48 1452 +86 1452 +47 1453 +87 1453 +24 1454 +87 1454 +24 1455 +93 1455 +1 1456 +100 1456 +22 1457 +26 1457 +25 1458 +29 1458 +28 1459 +57 1459 +56 1460 +53 1461 +57 1461 +61 1461 +52 1462 +31 1463 +33 1463 +33 1464 +35 1464 +28 1465 +37 1465 +35 1466 +54 1466 +29 1467 +48 1467 +30 1468 +32 1468 +36 1469 +41 1469 +44 1470 +48 1470 +59 1471 +61 1471 +64 1472 +74 1472 +74 1473 +72 1474 +74 1474 +74 1475 +77 1475 +70 1476 +78 1476 +69 1477 +85 1477 +48 1478 +86 1478 +47 1479 +87 1479 +24 1480 +87 1480 +24 1481 +93 1481 +1 1482 +100 1482 +22 1483 +26 1483 +25 1484 +29 1484 +28 1485 +57 1485 +56 1486 +53 1487 +57 1487 +61 1487 +52 1488 +31 1489 +33 1489 +33 1490 +35 1490 +28 1491 +37 1491 +35 1492 +54 1492 +29 1493 +48 1493 +30 1494 +32 1494 +36 1495 +41 1495 +44 1496 +48 1496 +59 1497 +61 1497 +64 1498 +74 1498 +74 1499 +72 1500 +74 1500 +74 1501 +77 1501 +70 1502 +78 1502 +69 1503 +85 1503 +48 1504 +86 1504 +47 1505 +87 1505 +24 1506 +87 1506 +24 1507 +93 1507 +1 1508 +100 1508 +22 1509 +26 1509 +25 1510 +29 1510 +28 1511 +57 1511 +56 1512 +53 1513 +57 1513 +61 1513 +52 1514 +31 1515 +33 1515 +33 1516 +35 1516 +28 1517 +37 1517 +35 1518 +54 1518 +29 1519 +48 1519 +30 1520 +32 1520 +36 1521 +41 1521 +44 1522 +48 1522 +59 1523 +61 1523 +64 1524 +74 1524 +74 1525 +72 1526 +74 1526 +74 1527 +77 1527 +70 1528 +78 1528 +69 1529 +85 1529 +48 1530 +86 1530 +47 1531 +87 1531 +24 1532 +87 1532 +24 1533 +93 1533 +1 1534 +100 1534 +22 1535 +26 1535 +25 1536 +29 1536 +28 1537 +57 1537 +56 1538 +53 1539 +57 1539 +61 1539 +52 1540 +31 1541 +33 1541 +33 1542 +35 1542 +28 1543 +37 1543 +35 1544 +54 1544 +29 1545 +48 1545 +30 1546 +32 1546 +36 1547 +41 1547 +44 1548 +48 1548 +59 1549 +61 1549 +64 1550 +74 1550 +74 1551 +72 1552 +74 1552 +74 1553 +77 1553 +70 1554 +78 1554 +69 1555 +85 1555 +48 1556 +86 1556 +47 1557 +87 1557 +24 1558 +87 1558 +24 1559 +93 1559 +1 1560 +100 1560 +22 1561 +26 1561 +25 1562 +29 1562 +28 1563 +57 1563 +56 1564 +53 1565 +57 1565 +61 1565 +52 1566 +31 1567 +33 1567 +33 1568 +35 1568 +28 1569 +37 1569 +35 1570 +54 1570 +29 1571 +48 1571 +30 1572 +32 1572 +36 1573 +41 1573 +44 1574 +48 1574 +59 1575 +61 1575 +64 1576 +74 1576 +74 1577 +72 1578 +74 1578 +74 1579 +77 1579 +70 1580 +78 1580 +69 1581 +85 1581 +48 1582 +86 1582 +47 1583 +87 1583 +24 1584 +87 1584 +24 1585 +93 1585 +1 1586 +100 1586 +22 1587 +26 1587 +25 1588 +29 1588 +28 1589 +57 1589 +56 1590 +53 1591 +57 1591 +61 1591 +52 1592 +31 1593 +33 1593 +33 1594 +35 1594 +28 1595 +37 1595 +35 1596 +54 1596 +29 1597 +48 1597 +30 1598 +32 1598 +36 1599 +41 1599 +44 1600 +48 1600 +59 1601 +61 1601 +64 1602 +74 1602 +74 1603 +72 1604 +74 1604 +74 1605 +77 1605 +70 1606 +78 1606 +69 1607 +85 1607 +48 1608 +86 1608 +47 1609 +87 1609 +24 1610 +87 1610 +24 1611 +93 1611 +1 1612 +100 1612 +22 1613 +26 1613 +25 1614 +29 1614 +28 1615 +57 1615 +56 1616 +53 1617 +57 1617 +61 1617 +52 1618 +31 1619 +33 1619 +33 1620 +35 1620 +28 1621 +37 1621 +35 1622 +54 1622 +29 1623 +48 1623 +30 1624 +32 1624 +36 1625 +41 1625 +44 1626 +48 1626 +59 1627 +61 1627 +64 1628 +74 1628 +74 1629 +72 1630 +74 1630 +74 1631 +77 1631 +70 1632 +78 1632 +69 1633 +85 1633 +48 1634 +86 1634 +47 1635 +87 1635 +24 1636 +87 1636 +24 1637 +93 1637 +1 1638 +100 1638 +22 1639 +26 1639 +25 1640 +29 1640 +28 1641 +57 1641 +56 1642 +53 1643 +57 1643 +61 1643 +52 1644 +31 1645 +33 1645 +33 1646 +35 1646 +28 1647 +37 1647 +35 1648 +54 1648 +29 1649 +48 1649 +30 1650 +32 1650 +36 1651 +41 1651 +44 1652 +48 1652 +59 1653 +61 1653 +64 1654 +74 1654 +74 1655 +72 1656 +74 1656 +74 1657 +77 1657 +70 1658 +78 1658 +69 1659 +85 1659 +48 1660 +86 1660 +47 1661 +87 1661 +24 1662 +87 1662 +24 1663 +93 1663 +1 1664 +100 1664 +22 1665 +26 1665 +25 1666 +29 1666 +28 1667 +57 1667 +56 1668 +53 1669 +57 1669 +61 1669 +52 1670 +31 1671 +33 1671 +33 1672 +35 1672 +28 1673 +37 1673 +35 1674 +54 1674 +29 1675 +48 1675 +30 1676 +32 1676 +36 1677 +41 1677 +44 1678 +48 1678 +59 1679 +61 1679 +64 1680 +74 1680 +74 1681 +72 1682 +74 1682 +74 1683 +77 1683 +70 1684 +78 1684 +69 1685 +85 1685 +48 1686 +86 1686 +47 1687 +87 1687 +24 1688 +87 1688 +24 1689 +93 1689 +1 1690 +100 1690 +22 1691 +26 1691 +25 1692 +29 1692 +28 1693 +57 1693 +56 1694 +53 1695 +57 1695 +61 1695 +52 1696 +31 1697 +33 1697 +33 1698 +35 1698 +28 1699 +37 1699 +35 1700 +54 1700 +29 1701 +48 1701 +30 1702 +32 1702 +36 1703 +41 1703 +44 1704 +48 1704 +59 1705 +61 1705 +64 1706 +74 1706 +74 1707 +72 1708 +74 1708 +74 1709 +77 1709 +70 1710 +78 1710 +69 1711 +85 1711 +48 1712 +86 1712 +47 1713 +87 1713 +24 1714 +87 1714 +24 1715 +93 1715 +1 1716 +100 1716 +22 1717 +26 1717 +25 1718 +29 1718 +28 1719 +57 1719 +56 1720 +53 1721 +57 1721 +61 1721 +52 1722 +31 1723 +33 1723 +33 1724 +35 1724 +28 1725 +37 1725 +35 1726 +54 1726 +29 1727 +48 1727 +30 1728 +32 1728 +36 1729 +41 1729 +44 1730 +48 1730 +59 1731 +61 1731 +64 1732 +74 1732 +74 1733 +72 1734 +74 1734 +74 1735 +77 1735 +70 1736 +78 1736 +69 1737 +85 1737 +48 1738 +86 1738 +47 1739 +87 1739 +24 1740 +87 1740 +24 1741 +93 1741 +1 1742 +100 1742 +22 1743 +26 1743 +25 1744 +29 1744 +28 1745 +57 1745 +56 1746 +53 1747 +57 1747 +61 1747 +52 1748 +31 1749 +33 1749 +33 1750 +35 1750 +28 1751 +37 1751 +35 1752 +54 1752 +29 1753 +48 1753 +30 1754 +32 1754 +36 1755 +41 1755 +44 1756 +48 1756 +59 1757 +61 1757 +64 1758 +74 1758 +74 1759 +72 1760 +74 1760 +74 1761 +77 1761 +70 1762 +78 1762 +69 1763 +85 1763 +48 1764 +86 1764 +47 1765 +87 1765 +24 1766 +87 1766 +24 1767 +93 1767 +1 1768 +100 1768 +22 1769 +26 1769 +25 1770 +29 1770 +28 1771 +57 1771 +56 1772 +53 1773 +57 1773 +61 1773 +52 1774 +31 1775 +33 1775 +33 1776 +35 1776 +28 1777 +37 1777 +35 1778 +54 1778 +29 1779 +48 1779 +30 1780 +32 1780 +36 1781 +41 1781 +44 1782 +48 1782 +59 1783 +61 1783 +64 1784 +74 1784 +74 1785 +72 1786 +74 1786 +74 1787 +77 1787 +70 1788 +78 1788 +69 1789 +85 1789 +48 1790 +86 1790 +47 1791 +87 1791 +24 1792 +87 1792 +24 1793 +93 1793 +1 1794 +100 1794 +22 1795 +26 1795 +25 1796 +29 1796 +28 1797 +57 1797 +56 1798 +53 1799 +57 1799 +61 1799 +52 1800 +31 1801 +33 1801 +33 1802 +35 1802 +28 1803 +37 1803 +35 1804 +54 1804 +29 1805 +48 1805 +30 1806 +32 1806 +36 1807 +41 1807 +44 1808 +48 1808 +59 1809 +61 1809 +64 1810 +74 1810 +74 1811 +72 1812 +74 1812 +74 1813 +77 1813 +70 1814 +78 1814 +69 1815 +85 1815 +48 1816 +86 1816 +47 1817 +87 1817 +24 1818 +87 1818 +24 1819 +93 1819 +1 1820 +100 1820 +22 1821 +26 1821 +25 1822 +29 1822 +28 1823 +57 1823 +56 1824 +53 1825 +57 1825 +61 1825 +52 1826 +31 1827 +33 1827 +33 1828 +35 1828 +28 1829 +37 1829 +35 1830 +54 1830 +29 1831 +48 1831 +30 1832 +32 1832 +36 1833 +41 1833 +44 1834 +48 1834 +59 1835 +61 1835 +64 1836 +74 1836 +74 1837 +72 1838 +74 1838 +74 1839 +77 1839 +70 1840 +78 1840 +69 1841 +85 1841 +48 1842 +86 1842 +47 1843 +87 1843 +24 1844 +87 1844 +24 1845 +93 1845 +1 1846 +100 1846 +22 1847 +26 1847 +25 1848 +29 1848 +28 1849 +57 1849 +56 1850 +53 1851 +57 1851 +61 1851 +52 1852 +31 1853 +33 1853 +33 1854 +35 1854 +28 1855 +37 1855 +35 1856 +54 1856 +29 1857 +48 1857 +30 1858 +32 1858 +36 1859 +41 1859 +44 1860 +48 1860 +59 1861 +61 1861 +64 1862 +74 1862 +74 1863 +72 1864 +74 1864 +74 1865 +77 1865 +70 1866 +78 1866 +69 1867 +85 1867 +48 1868 +86 1868 +47 1869 +87 1869 +24 1870 +87 1870 +24 1871 +93 1871 +1 1872 +100 1872 +22 1873 +26 1873 +25 1874 +29 1874 +28 1875 +57 1875 +56 1876 +53 1877 +57 1877 +61 1877 +52 1878 +31 1879 +33 1879 +33 1880 +35 1880 +28 1881 +37 1881 +35 1882 +54 1882 +29 1883 +48 1883 +30 1884 +32 1884 +36 1885 +41 1885 +44 1886 +48 1886 +59 1887 +61 1887 +64 1888 +74 1888 +74 1889 +72 1890 +74 1890 +74 1891 +77 1891 +70 1892 +78 1892 +69 1893 +85 1893 +48 1894 +86 1894 +47 1895 +87 1895 +24 1896 +87 1896 +24 1897 +93 1897 +1 1898 +100 1898 +22 1899 +26 1899 +25 1900 +29 1900 +28 1901 +57 1901 +56 1902 +53 1903 +57 1903 +61 1903 +52 1904 +31 1905 +33 1905 +33 1906 +35 1906 +28 1907 +37 1907 +35 1908 +54 1908 +29 1909 +48 1909 +30 1910 +32 1910 +36 1911 +41 1911 +44 1912 +48 1912 +59 1913 +61 1913 +64 1914 +74 1914 +74 1915 +72 1916 +74 1916 +74 1917 +77 1917 +70 1918 +78 1918 +69 1919 +85 1919 +48 1920 +86 1920 +47 1921 +87 1921 +24 1922 +87 1922 +24 1923 +93 1923 +1 1924 +100 1924 +22 1925 +26 1925 +25 1926 +29 1926 +28 1927 +57 1927 +56 1928 +53 1929 +57 1929 +61 1929 +52 1930 +31 1931 +33 1931 +33 1932 +35 1932 +28 1933 +37 1933 +35 1934 +54 1934 +29 1935 +48 1935 +30 1936 +32 1936 +36 1937 +41 1937 +44 1938 +48 1938 +59 1939 +61 1939 +64 1940 +74 1940 +74 1941 +72 1942 +74 1942 +74 1943 +77 1943 +70 1944 +78 1944 +69 1945 +85 1945 +48 1946 +86 1946 +47 1947 +87 1947 +24 1948 +87 1948 +24 1949 +93 1949 +1 1950 +100 1950 +22 1951 +26 1951 +25 1952 +29 1952 +28 1953 +57 1953 +56 1954 +53 1955 +57 1955 +61 1955 +52 1956 +31 1957 +33 1957 +33 1958 +35 1958 +28 1959 +37 1959 +35 1960 +54 1960 +29 1961 +48 1961 +30 1962 +32 1962 +36 1963 +41 1963 +44 1964 +48 1964 +59 1965 +61 1965 +64 1966 +74 1966 +74 1967 +72 1968 +74 1968 +74 1969 +77 1969 +70 1970 +78 1970 +69 1971 +85 1971 +48 1972 +86 1972 +47 1973 +87 1973 +24 1974 +87 1974 +24 1975 +93 1975 +1 1976 +100 1976 +22 1977 +26 1977 +25 1978 +29 1978 +28 1979 +57 1979 +56 1980 +53 1981 +57 1981 +61 1981 +52 1982 +31 1983 +33 1983 +33 1984 +35 1984 +28 1985 +37 1985 +35 1986 +54 1986 +29 1987 +48 1987 +30 1988 +32 1988 +36 1989 +41 1989 +44 1990 +48 1990 +59 1991 +61 1991 +64 1992 +74 1992 +74 1993 +72 1994 +74 1994 +74 1995 +77 1995 +70 1996 +78 1996 +69 1997 +85 1997 +48 1998 +86 1998 +47 1999 +87 1999 +24 2000 +87 2000 +24 2001 +93 2001 +1 2002 +100 2002 +22 2003 +26 2003 +25 2004 +29 2004 +28 2005 +57 2005 +56 2006 +53 2007 +57 2007 +61 2007 +52 2008 +31 2009 +33 2009 +33 2010 +35 2010 +28 2011 +37 2011 +35 2012 +54 2012 +29 2013 +48 2013 +30 2014 +32 2014 +36 2015 +41 2015 +44 2016 +48 2016 +59 2017 +61 2017 +64 2018 +74 2018 +74 2019 +72 2020 +74 2020 +74 2021 +77 2021 +70 2022 +78 2022 +69 2023 +85 2023 +48 2024 +86 2024 +47 2025 +87 2025 +24 2026 +87 2026 +24 2027 +93 2027 +1 2028 +100 2028 +22 2029 +26 2029 +25 2030 +29 2030 +28 2031 +57 2031 +56 2032 +53 2033 +57 2033 +61 2033 +52 2034 +31 2035 +33 2035 +33 2036 +35 2036 +28 2037 +37 2037 +35 2038 +54 2038 +29 2039 +48 2039 +30 2040 +32 2040 +36 2041 +41 2041 +44 2042 +48 2042 +59 2043 +61 2043 +64 2044 +74 2044 +74 2045 +72 2046 +74 2046 +74 2047 +77 2047 +70 2048 +78 2048 +69 2049 +85 2049 +48 2050 +86 2050 +47 2051 +87 2051 +24 2052 +87 2052 +24 2053 +93 2053 +1 2054 +100 2054 +22 2055 +26 2055 +25 2056 +29 2056 +28 2057 +57 2057 +56 2058 +53 2059 +57 2059 +61 2059 +52 2060 +31 2061 +33 2061 +33 2062 +35 2062 +28 2063 +37 2063 +35 2064 +54 2064 +29 2065 +48 2065 +30 2066 +32 2066 +36 2067 +41 2067 +44 2068 +48 2068 +59 2069 +61 2069 +64 2070 +74 2070 +74 2071 +72 2072 +74 2072 +74 2073 +77 2073 +70 2074 +78 2074 +69 2075 +85 2075 +48 2076 +86 2076 +47 2077 +87 2077 +24 2078 +87 2078 +24 2079 +93 2079 +1 2080 +100 2080 +22 2081 +26 2081 +25 2082 +29 2082 +28 2083 +57 2083 +56 2084 +53 2085 +57 2085 +61 2085 +52 2086 +31 2087 +33 2087 +33 2088 +35 2088 +28 2089 +37 2089 +35 2090 +54 2090 +29 2091 +48 2091 +30 2092 +32 2092 +36 2093 +41 2093 +44 2094 +48 2094 +59 2095 +61 2095 +64 2096 +74 2096 +74 2097 +72 2098 +74 2098 +74 2099 +77 2099 +70 2100 +78 2100 +69 2101 +85 2101 +48 2102 +86 2102 +47 2103 +87 2103 +24 2104 +87 2104 +24 2105 +93 2105 +1 2106 +100 2106 +22 2107 +26 2107 +25 2108 +29 2108 +28 2109 +57 2109 +56 2110 +53 2111 +57 2111 +61 2111 +52 2112 +31 2113 +33 2113 +33 2114 +35 2114 +28 2115 +37 2115 +35 2116 +54 2116 +29 2117 +48 2117 +30 2118 +32 2118 +36 2119 +41 2119 +44 2120 +48 2120 +59 2121 +61 2121 +64 2122 +74 2122 +74 2123 +72 2124 +74 2124 +74 2125 +77 2125 +70 2126 +78 2126 +69 2127 +85 2127 +48 2128 +86 2128 +47 2129 +87 2129 +24 2130 +87 2130 +24 2131 +93 2131 +1 2132 +100 2132 +22 2133 +26 2133 +25 2134 +29 2134 +28 2135 +57 2135 +56 2136 +53 2137 +57 2137 +61 2137 +52 2138 +31 2139 +33 2139 +33 2140 +35 2140 +28 2141 +37 2141 +35 2142 +54 2142 +29 2143 +48 2143 +30 2144 +32 2144 +36 2145 +41 2145 +44 2146 +48 2146 +59 2147 +61 2147 +64 2148 +74 2148 +74 2149 +72 2150 +74 2150 +74 2151 +77 2151 +70 2152 +78 2152 +69 2153 +85 2153 +48 2154 +86 2154 +47 2155 +87 2155 +24 2156 +87 2156 +24 2157 +93 2157 +1 2158 +100 2158 +22 2159 +26 2159 +25 2160 +29 2160 +28 2161 +57 2161 +56 2162 +53 2163 +57 2163 +61 2163 +52 2164 +31 2165 +33 2165 +33 2166 +35 2166 +28 2167 +37 2167 +35 2168 +54 2168 +29 2169 +48 2169 +30 2170 +32 2170 +36 2171 +41 2171 +44 2172 +48 2172 +59 2173 +61 2173 +64 2174 +74 2174 +74 2175 +72 2176 +74 2176 +74 2177 +77 2177 +70 2178 +78 2178 +69 2179 +85 2179 +48 2180 +86 2180 +47 2181 +87 2181 +24 2182 +87 2182 +24 2183 +93 2183 +1 2184 +100 2184 +22 2185 +26 2185 +25 2186 +29 2186 +28 2187 +57 2187 +56 2188 +53 2189 +57 2189 +61 2189 +52 2190 +31 2191 +33 2191 +33 2192 +35 2192 +28 2193 +37 2193 +35 2194 +54 2194 +29 2195 +48 2195 +30 2196 +32 2196 +36 2197 +41 2197 +44 2198 +48 2198 +59 2199 +61 2199 +64 2200 +74 2200 +74 2201 +72 2202 +74 2202 +74 2203 +77 2203 +70 2204 +78 2204 +69 2205 +85 2205 +48 2206 +86 2206 +47 2207 +87 2207 +24 2208 +87 2208 +24 2209 +93 2209 +1 2210 +100 2210 +22 2211 +26 2211 +25 2212 +29 2212 +28 2213 +57 2213 +56 2214 +53 2215 +57 2215 +61 2215 +52 2216 +31 2217 +33 2217 +33 2218 +35 2218 +28 2219 +37 2219 +35 2220 +54 2220 +29 2221 +48 2221 +30 2222 +32 2222 +36 2223 +41 2223 +44 2224 +48 2224 +59 2225 +61 2225 +64 2226 +74 2226 +74 2227 +72 2228 +74 2228 +74 2229 +77 2229 +70 2230 +78 2230 +69 2231 +85 2231 +48 2232 +86 2232 +47 2233 +87 2233 +24 2234 +87 2234 +24 2235 +93 2235 +1 2236 +100 2236 +22 2237 +26 2237 +25 2238 +29 2238 +28 2239 +57 2239 +56 2240 +53 2241 +57 2241 +61 2241 +52 2242 +31 2243 +33 2243 +33 2244 +35 2244 +28 2245 +37 2245 +35 2246 +54 2246 +29 2247 +48 2247 +30 2248 +32 2248 +36 2249 +41 2249 +44 2250 +48 2250 +59 2251 +61 2251 +64 2252 +74 2252 +74 2253 +72 2254 +74 2254 +74 2255 +77 2255 +70 2256 +78 2256 +69 2257 +85 2257 +48 2258 +86 2258 +47 2259 +87 2259 +24 2260 +87 2260 +24 2261 +93 2261 +1 2262 +100 2262 +22 2263 +26 2263 +25 2264 +29 2264 +28 2265 +57 2265 +56 2266 +53 2267 +57 2267 +61 2267 +52 2268 +31 2269 +33 2269 +33 2270 +35 2270 +28 2271 +37 2271 +35 2272 +54 2272 +29 2273 +48 2273 +30 2274 +32 2274 +36 2275 +41 2275 +44 2276 +48 2276 +59 2277 +61 2277 +64 2278 +74 2278 +74 2279 +72 2280 +74 2280 +74 2281 +77 2281 +70 2282 +78 2282 +69 2283 +85 2283 +48 2284 +86 2284 +47 2285 +87 2285 +24 2286 +87 2286 +24 2287 +93 2287 +1 2288 +100 2288 +22 2289 +26 2289 +25 2290 +29 2290 +28 2291 +57 2291 +56 2292 +53 2293 +57 2293 +61 2293 +52 2294 +31 2295 +33 2295 +33 2296 +35 2296 +28 2297 +37 2297 +35 2298 +54 2298 +29 2299 +48 2299 +30 2300 +32 2300 +36 2301 +41 2301 +44 2302 +48 2302 +59 2303 +61 2303 +64 2304 +74 2304 +74 2305 +72 2306 +74 2306 +74 2307 +77 2307 +70 2308 +78 2308 +69 2309 +85 2309 +48 2310 +86 2310 +47 2311 +87 2311 +24 2312 +87 2312 +24 2313 +93 2313 +1 2314 +100 2314 +22 2315 +26 2315 +25 2316 +29 2316 +28 2317 +57 2317 +56 2318 +53 2319 +57 2319 +61 2319 +52 2320 +31 2321 +33 2321 +33 2322 +35 2322 +28 2323 +37 2323 +35 2324 +54 2324 +29 2325 +48 2325 +30 2326 +32 2326 +36 2327 +41 2327 +44 2328 +48 2328 +59 2329 +61 2329 +64 2330 +74 2330 +74 2331 +72 2332 +74 2332 +74 2333 +77 2333 +70 2334 +78 2334 +69 2335 +85 2335 +48 2336 +86 2336 +47 2337 +87 2337 +24 2338 +87 2338 +24 2339 +93 2339 +1 2340 +100 2340 +22 2341 +26 2341 +25 2342 +29 2342 +28 2343 +57 2343 +56 2344 +53 2345 +57 2345 +61 2345 +52 2346 +31 2347 +33 2347 +33 2348 +35 2348 +28 2349 +37 2349 +35 2350 +54 2350 +29 2351 +48 2351 +30 2352 +32 2352 +36 2353 +41 2353 +44 2354 +48 2354 +59 2355 +61 2355 +64 2356 +74 2356 +74 2357 +72 2358 +74 2358 +74 2359 +77 2359 +70 2360 +78 2360 +69 2361 +85 2361 +48 2362 +86 2362 +47 2363 +87 2363 +24 2364 +87 2364 +24 2365 +93 2365 +1 2366 +100 2366 +22 2367 +26 2367 +25 2368 +29 2368 +28 2369 +57 2369 +56 2370 +53 2371 +57 2371 +61 2371 +52 2372 +31 2373 +33 2373 +33 2374 +35 2374 +28 2375 +37 2375 +35 2376 +54 2376 +29 2377 +48 2377 +30 2378 +32 2378 +36 2379 +41 2379 +44 2380 +48 2380 +59 2381 +61 2381 +64 2382 +74 2382 +74 2383 +72 2384 +74 2384 +74 2385 +77 2385 +70 2386 +78 2386 +69 2387 +85 2387 +48 2388 +86 2388 +47 2389 +87 2389 +24 2390 +87 2390 +24 2391 +93 2391 +1 2392 +100 2392 +22 2393 +26 2393 +25 2394 +29 2394 +28 2395 +57 2395 +56 2396 +53 2397 +57 2397 +61 2397 +52 2398 +31 2399 +33 2399 +33 2400 +35 2400 +28 2401 +37 2401 +35 2402 +54 2402 +29 2403 +48 2403 +30 2404 +32 2404 +36 2405 +41 2405 +44 2406 +48 2406 +59 2407 +61 2407 +64 2408 +74 2408 +74 2409 +72 2410 +74 2410 +74 2411 +77 2411 +70 2412 +78 2412 +69 2413 +85 2413 +48 2414 +86 2414 +47 2415 +87 2415 +24 2416 +87 2416 +24 2417 +93 2417 +1 2418 +100 2418 +22 2419 +26 2419 +25 2420 +29 2420 +28 2421 +57 2421 +56 2422 +53 2423 +57 2423 +61 2423 +52 2424 +31 2425 +33 2425 +33 2426 +35 2426 +28 2427 +37 2427 +35 2428 +54 2428 +29 2429 +48 2429 +30 2430 +32 2430 +36 2431 +41 2431 +44 2432 +48 2432 +59 2433 +61 2433 +64 2434 +74 2434 +74 2435 +72 2436 +74 2436 +74 2437 +77 2437 +70 2438 +78 2438 +69 2439 +85 2439 +48 2440 +86 2440 +47 2441 +87 2441 +24 2442 +87 2442 +24 2443 +93 2443 +1 2444 +100 2444 +22 2445 +26 2445 +25 2446 +29 2446 +28 2447 +57 2447 +56 2448 +53 2449 +57 2449 +61 2449 +52 2450 +31 2451 +33 2451 +33 2452 +35 2452 +28 2453 +37 2453 +35 2454 +54 2454 +29 2455 +48 2455 +30 2456 +32 2456 +36 2457 +41 2457 +44 2458 +48 2458 +59 2459 +61 2459 +64 2460 +74 2460 +74 2461 +72 2462 +74 2462 +74 2463 +77 2463 +70 2464 +78 2464 +69 2465 +85 2465 +48 2466 +86 2466 +47 2467 +87 2467 +24 2468 +87 2468 +24 2469 +93 2469 +1 2470 +100 2470 +22 2471 +26 2471 +25 2472 +29 2472 +28 2473 +57 2473 +56 2474 +53 2475 +57 2475 +61 2475 +52 2476 +31 2477 +33 2477 +33 2478 +35 2478 +28 2479 +37 2479 +35 2480 +54 2480 +29 2481 +48 2481 +30 2482 +32 2482 +36 2483 +41 2483 +44 2484 +48 2484 +59 2485 +61 2485 +64 2486 +74 2486 +74 2487 +72 2488 +74 2488 +74 2489 +77 2489 +70 2490 +78 2490 +69 2491 +85 2491 +48 2492 +86 2492 +47 2493 +87 2493 +24 2494 +87 2494 +24 2495 +93 2495 +1 2496 +100 2496 +22 2497 +26 2497 +25 2498 +29 2498 +28 2499 +57 2499 +56 2500 +53 2501 +57 2501 +61 2501 +52 2502 +31 2503 +33 2503 +33 2504 +35 2504 +28 2505 +37 2505 +35 2506 +54 2506 +29 2507 +48 2507 +30 2508 +32 2508 +36 2509 +41 2509 +44 2510 +48 2510 +59 2511 +61 2511 +64 2512 +74 2512 +74 2513 +72 2514 +74 2514 +74 2515 +77 2515 +70 2516 +78 2516 +69 2517 +85 2517 +48 2518 +86 2518 +47 2519 +87 2519 +24 2520 +87 2520 +24 2521 +93 2521 +1 2522 +100 2522 +22 2523 +26 2523 +25 2524 +29 2524 +28 2525 +57 2525 +56 2526 +53 2527 +57 2527 +61 2527 +52 2528 +31 2529 +33 2529 +33 2530 +35 2530 +28 2531 +37 2531 +35 2532 +54 2532 +29 2533 +48 2533 +30 2534 +32 2534 +36 2535 +41 2535 +44 2536 +48 2536 +59 2537 +61 2537 +64 2538 +74 2538 +74 2539 +72 2540 +74 2540 +74 2541 +77 2541 +70 2542 +78 2542 +69 2543 +85 2543 +48 2544 +86 2544 +47 2545 +87 2545 +24 2546 +87 2546 +24 2547 +93 2547 +1 2548 +100 2548 +22 2549 +26 2549 +25 2550 +29 2550 +28 2551 +57 2551 +56 2552 +53 2553 +57 2553 +61 2553 +52 2554 +31 2555 +33 2555 +33 2556 +35 2556 +28 2557 +37 2557 +35 2558 +54 2558 +29 2559 +48 2559 +30 2560 +32 2560 +36 2561 +41 2561 +44 2562 +48 2562 +59 2563 +61 2563 +64 2564 +74 2564 +74 2565 +72 2566 +74 2566 +74 2567 +77 2567 +70 2568 +78 2568 +69 2569 +85 2569 +48 2570 +86 2570 +47 2571 +87 2571 +24 2572 +87 2572 +24 2573 +93 2573 +1 2574 +100 2574 +22 2575 +26 2575 +25 2576 +29 2576 +28 2577 +57 2577 +56 2578 +53 2579 +57 2579 +61 2579 +52 2580 +31 2581 +33 2581 +33 2582 +35 2582 +28 2583 +37 2583 +35 2584 +54 2584 +29 2585 +48 2585 +30 2586 +32 2586 +36 2587 +41 2587 +44 2588 +48 2588 +59 2589 +61 2589 +64 2590 +74 2590 +74 2591 +72 2592 +74 2592 +74 2593 +77 2593 +70 2594 +78 2594 +69 2595 +85 2595 +48 2596 +86 2596 +47 2597 +87 2597 +24 2598 +87 2598 +24 2599 +93 2599 +1 2600 +100 2600 +22 2601 +26 2601 +25 2602 +29 2602 +28 2603 +57 2603 +56 2604 +53 2605 +57 2605 +61 2605 +52 2606 +31 2607 +33 2607 +33 2608 +35 2608 +28 2609 +37 2609 +35 2610 +54 2610 +29 2611 +48 2611 +30 2612 +32 2612 +36 2613 +41 2613 +44 2614 +48 2614 +59 2615 +61 2615 +64 2616 +74 2616 +74 2617 +72 2618 +74 2618 +74 2619 +77 2619 +70 2620 +78 2620 +69 2621 +85 2621 +48 2622 +86 2622 +47 2623 +87 2623 +24 2624 +87 2624 +24 2625 +93 2625 +1 2626 +100 2626 +22 2627 +26 2627 +25 2628 +29 2628 +28 2629 +57 2629 +56 2630 +53 2631 +57 2631 +61 2631 +52 2632 +31 2633 +33 2633 +33 2634 +35 2634 +28 2635 +37 2635 +35 2636 +54 2636 +29 2637 +48 2637 +30 2638 +32 2638 +36 2639 +41 2639 +44 2640 +48 2640 +59 2641 +61 2641 +64 2642 +74 2642 +74 2643 +72 2644 +74 2644 +74 2645 +77 2645 +70 2646 +78 2646 +69 2647 +85 2647 +48 2648 +86 2648 +47 2649 +87 2649 +24 2650 +87 2650 +24 2651 +93 2651 +1 2652 +100 2652 +22 2653 +26 2653 +25 2654 +29 2654 +28 2655 +57 2655 +56 2656 +53 2657 +57 2657 +61 2657 +52 2658 +31 2659 +33 2659 +33 2660 +35 2660 +28 2661 +37 2661 +35 2662 +54 2662 +29 2663 +48 2663 +30 2664 +32 2664 +36 2665 +41 2665 +44 2666 +48 2666 +59 2667 +61 2667 +64 2668 +74 2668 +74 2669 +72 2670 +74 2670 +74 2671 +77 2671 +70 2672 +78 2672 +69 2673 +85 2673 +48 2674 +86 2674 +47 2675 +87 2675 +24 2676 +87 2676 +24 2677 +93 2677 +1 2678 +100 2678 +22 2679 +26 2679 +25 2680 +29 2680 +28 2681 +57 2681 +56 2682 +53 2683 +57 2683 +61 2683 +52 2684 +31 2685 +33 2685 +33 2686 +35 2686 +28 2687 +37 2687 +35 2688 +54 2688 +29 2689 +48 2689 +30 2690 +32 2690 +36 2691 +41 2691 +44 2692 +48 2692 +59 2693 +61 2693 +64 2694 +74 2694 +74 2695 +72 2696 +74 2696 +74 2697 +77 2697 +70 2698 +78 2698 +69 2699 +85 2699 +48 2700 +86 2700 +47 2701 +87 2701 +24 2702 +87 2702 +24 2703 +93 2703 +1 2704 +100 2704 +22 2705 +26 2705 +25 2706 +29 2706 +28 2707 +57 2707 +56 2708 +53 2709 +57 2709 +61 2709 +52 2710 +31 2711 +33 2711 +33 2712 +35 2712 +28 2713 +37 2713 +35 2714 +54 2714 +29 2715 +48 2715 +30 2716 +32 2716 +36 2717 +41 2717 +44 2718 +48 2718 +59 2719 +61 2719 +64 2720 +74 2720 +74 2721 +72 2722 +74 2722 +74 2723 +77 2723 +70 2724 +78 2724 +69 2725 +85 2725 +48 2726 +86 2726 +47 2727 +87 2727 +24 2728 +87 2728 +24 2729 +93 2729 +1 2730 +100 2730 +22 2731 +26 2731 +25 2732 +29 2732 +28 2733 +57 2733 +56 2734 +53 2735 +57 2735 +61 2735 +52 2736 +31 2737 +33 2737 +33 2738 +35 2738 +28 2739 +37 2739 +35 2740 +54 2740 +29 2741 +48 2741 +30 2742 +32 2742 +36 2743 +41 2743 +44 2744 +48 2744 +59 2745 +61 2745 +64 2746 +74 2746 +74 2747 +72 2748 +74 2748 +74 2749 +77 2749 +70 2750 +78 2750 +69 2751 +85 2751 +48 2752 +86 2752 +47 2753 +87 2753 +24 2754 +87 2754 +24 2755 +93 2755 +1 2756 +100 2756 +22 2757 +26 2757 +25 2758 +29 2758 +28 2759 +57 2759 +56 2760 +53 2761 +57 2761 +61 2761 +52 2762 +31 2763 +33 2763 +33 2764 +35 2764 +28 2765 +37 2765 +35 2766 +54 2766 +29 2767 +48 2767 +30 2768 +32 2768 +36 2769 +41 2769 +44 2770 +48 2770 +59 2771 +61 2771 +64 2772 +74 2772 +74 2773 +72 2774 +74 2774 +74 2775 +77 2775 +70 2776 +78 2776 +69 2777 +85 2777 +48 2778 +86 2778 +47 2779 +87 2779 +24 2780 +87 2780 +24 2781 +93 2781 +1 2782 +100 2782 +22 2783 +26 2783 +25 2784 +29 2784 +28 2785 +57 2785 +56 2786 +53 2787 +57 2787 +61 2787 +52 2788 +31 2789 +33 2789 +33 2790 +35 2790 +28 2791 +37 2791 +35 2792 +54 2792 +29 2793 +48 2793 +30 2794 +32 2794 +36 2795 +41 2795 +44 2796 +48 2796 +59 2797 +61 2797 +64 2798 +74 2798 +74 2799 +72 2800 +74 2800 +74 2801 +77 2801 +70 2802 +78 2802 +69 2803 +85 2803 +48 2804 +86 2804 +47 2805 +87 2805 +24 2806 +87 2806 +24 2807 +93 2807 +1 2808 +100 2808 +22 2809 +26 2809 +25 2810 +29 2810 +28 2811 +57 2811 +56 2812 +53 2813 +57 2813 +61 2813 +52 2814 +31 2815 +33 2815 +33 2816 +35 2816 +28 2817 +37 2817 +35 2818 +54 2818 +29 2819 +48 2819 +30 2820 +32 2820 +36 2821 +41 2821 +44 2822 +48 2822 +59 2823 +61 2823 +64 2824 +74 2824 +74 2825 +72 2826 +74 2826 +74 2827 +77 2827 +70 2828 +78 2828 +69 2829 +85 2829 +48 2830 +86 2830 +47 2831 +87 2831 +24 2832 +87 2832 +24 2833 +93 2833 +1 2834 +100 2834 +22 2835 +26 2835 +25 2836 +29 2836 +28 2837 +57 2837 +56 2838 +53 2839 +57 2839 +61 2839 +52 2840 +31 2841 +33 2841 +33 2842 +35 2842 +28 2843 +37 2843 +35 2844 +54 2844 +29 2845 +48 2845 +30 2846 +32 2846 +36 2847 +41 2847 +44 2848 +48 2848 +59 2849 +61 2849 +64 2850 +74 2850 +74 2851 +72 2852 +74 2852 +74 2853 +77 2853 +70 2854 +78 2854 +69 2855 +85 2855 +48 2856 +86 2856 +47 2857 +87 2857 +24 2858 +87 2858 +24 2859 +93 2859 +1 2860 +100 2860 +22 2861 +26 2861 +25 2862 +29 2862 +28 2863 +57 2863 +56 2864 +53 2865 +57 2865 +61 2865 +52 2866 +31 2867 +33 2867 +33 2868 +35 2868 +28 2869 +37 2869 +35 2870 +54 2870 +29 2871 +48 2871 +30 2872 +32 2872 +36 2873 +41 2873 +44 2874 +48 2874 +59 2875 +61 2875 +64 2876 +74 2876 +74 2877 +72 2878 +74 2878 +74 2879 +77 2879 +70 2880 +78 2880 +69 2881 +85 2881 +48 2882 +86 2882 +47 2883 +87 2883 +24 2884 +87 2884 +24 2885 +93 2885 +1 2886 +100 2886 +22 2887 +26 2887 +25 2888 +29 2888 +28 2889 +57 2889 +56 2890 +53 2891 +57 2891 +61 2891 +52 2892 +31 2893 +33 2893 +33 2894 +35 2894 +28 2895 +37 2895 +35 2896 +54 2896 +29 2897 +48 2897 +30 2898 +32 2898 +36 2899 +41 2899 +44 2900 +48 2900 +59 2901 +61 2901 +64 2902 +74 2902 +74 2903 +72 2904 +74 2904 +74 2905 +77 2905 +70 2906 +78 2906 +69 2907 +85 2907 +48 2908 +86 2908 +47 2909 +87 2909 +24 2910 +87 2910 +24 2911 +93 2911 +1 2912 +100 2912 +22 2913 +26 2913 +25 2914 +29 2914 +28 2915 +57 2915 +56 2916 +53 2917 +57 2917 +61 2917 +52 2918 +31 2919 +33 2919 +33 2920 +35 2920 +28 2921 +37 2921 +35 2922 +54 2922 +29 2923 +48 2923 +30 2924 +32 2924 +36 2925 +41 2925 +44 2926 +48 2926 +59 2927 +61 2927 +64 2928 +74 2928 +74 2929 +72 2930 +74 2930 +74 2931 +77 2931 +70 2932 +78 2932 +69 2933 +85 2933 +48 2934 +86 2934 +47 2935 +87 2935 +24 2936 +87 2936 +24 2937 +93 2937 +1 2938 +100 2938 +22 2939 +26 2939 +25 2940 +29 2940 +28 2941 +57 2941 +56 2942 +53 2943 +57 2943 +61 2943 +52 2944 +31 2945 +33 2945 +33 2946 +35 2946 +28 2947 +37 2947 +35 2948 +54 2948 +29 2949 +48 2949 +30 2950 +32 2950 +36 2951 +41 2951 +44 2952 +48 2952 +59 2953 +61 2953 +64 2954 +74 2954 +74 2955 +72 2956 +74 2956 +74 2957 +77 2957 +70 2958 +78 2958 +69 2959 +85 2959 +48 2960 +86 2960 +47 2961 +87 2961 +24 2962 +87 2962 +24 2963 +93 2963 +1 2964 +100 2964 +22 2965 +26 2965 +25 2966 +29 2966 +28 2967 +57 2967 +56 2968 +53 2969 +57 2969 +61 2969 +52 2970 +31 2971 +33 2971 +33 2972 +35 2972 +28 2973 +37 2973 +35 2974 +54 2974 +29 2975 +48 2975 +30 2976 +32 2976 +36 2977 +41 2977 +44 2978 +48 2978 +59 2979 +61 2979 +64 2980 +74 2980 +74 2981 +72 2982 +74 2982 +74 2983 +77 2983 +70 2984 +78 2984 +69 2985 +85 2985 +48 2986 +86 2986 +47 2987 +87 2987 +24 2988 +87 2988 +24 2989 +93 2989 +1 2990 +100 2990 +22 2991 +26 2991 +25 2992 +29 2992 +28 2993 +57 2993 +56 2994 +53 2995 +57 2995 +61 2995 +52 2996 +31 2997 +33 2997 +33 2998 +35 2998 +28 2999 +37 2999 +35 3000 +54 3000 +29 3001 +48 3001 +30 3002 +32 3002 +36 3003 +41 3003 +44 3004 +48 3004 +59 3005 +61 3005 +64 3006 +74 3006 +74 3007 +72 3008 +74 3008 +74 3009 +77 3009 +70 3010 +78 3010 +69 3011 +85 3011 +48 3012 +86 3012 +47 3013 +87 3013 +24 3014 +87 3014 +24 3015 +93 3015 +1 3016 +100 3016 +22 3017 +26 3017 +25 3018 +29 3018 +28 3019 +57 3019 +56 3020 +53 3021 +57 3021 +61 3021 +52 3022 +31 3023 +33 3023 +33 3024 +35 3024 +28 3025 +37 3025 +35 3026 +54 3026 +29 3027 +48 3027 +30 3028 +32 3028 +36 3029 +41 3029 +44 3030 +48 3030 +59 3031 +61 3031 +64 3032 +74 3032 +74 3033 +72 3034 +74 3034 +74 3035 +77 3035 +70 3036 +78 3036 +69 3037 +85 3037 +48 3038 +86 3038 +47 3039 +87 3039 +24 3040 +87 3040 +24 3041 +93 3041 +1 3042 +100 3042 +22 3043 +26 3043 +25 3044 +29 3044 +28 3045 +57 3045 +56 3046 +53 3047 +57 3047 +61 3047 +52 3048 +31 3049 +33 3049 +33 3050 +35 3050 +28 3051 +37 3051 +35 3052 +54 3052 +29 3053 +48 3053 +30 3054 +32 3054 +36 3055 +41 3055 +44 3056 +48 3056 +59 3057 +61 3057 +64 3058 +74 3058 +74 3059 +72 3060 +74 3060 +74 3061 +77 3061 +70 3062 +78 3062 +69 3063 +85 3063 +48 3064 +86 3064 +47 3065 +87 3065 +24 3066 +87 3066 +24 3067 +93 3067 +1 3068 +100 3068 +22 3069 +26 3069 +25 3070 +29 3070 +28 3071 +57 3071 +56 3072 +53 3073 +57 3073 +61 3073 +52 3074 +31 3075 +33 3075 +33 3076 +35 3076 +28 3077 +37 3077 +35 3078 +54 3078 +29 3079 +48 3079 +30 3080 +32 3080 +36 3081 +41 3081 +44 3082 +48 3082 +59 3083 +61 3083 +64 3084 +74 3084 +74 3085 +72 3086 +74 3086 +74 3087 +77 3087 +70 3088 +78 3088 +69 3089 +85 3089 +48 3090 +86 3090 +47 3091 +87 3091 +24 3092 +87 3092 +24 3093 +93 3093 +1 3094 +100 3094 +22 3095 +26 3095 +25 3096 +29 3096 +28 3097 +57 3097 +56 3098 +53 3099 +57 3099 +61 3099 +52 3100 +31 3101 +33 3101 +33 3102 +35 3102 +28 3103 +37 3103 +35 3104 +54 3104 +29 3105 +48 3105 +30 3106 +32 3106 +36 3107 +41 3107 +44 3108 +48 3108 +59 3109 +61 3109 +64 3110 +74 3110 +74 3111 +72 3112 +74 3112 +74 3113 +77 3113 +70 3114 +78 3114 +69 3115 +85 3115 +48 3116 +86 3116 +47 3117 +87 3117 +24 3118 +87 3118 +24 3119 +93 3119 +1 3120 +100 3120 +22 3121 +26 3121 +25 3122 +29 3122 +28 3123 +57 3123 +56 3124 +53 3125 +57 3125 +61 3125 +52 3126 +31 3127 +33 3127 +33 3128 +35 3128 +28 3129 +37 3129 +35 3130 +54 3130 +29 3131 +48 3131 +30 3132 +32 3132 +36 3133 +41 3133 +44 3134 +48 3134 +59 3135 +61 3135 +64 3136 +74 3136 +74 3137 +72 3138 +74 3138 +74 3139 +77 3139 +70 3140 +78 3140 +69 3141 +85 3141 +48 3142 +86 3142 +47 3143 +87 3143 +24 3144 +87 3144 +24 3145 +93 3145 +1 3146 +100 3146 +22 3147 +26 3147 +25 3148 +29 3148 +28 3149 +57 3149 +56 3150 +53 3151 +57 3151 +61 3151 +52 3152 +31 3153 +33 3153 +33 3154 +35 3154 +28 3155 +37 3155 +35 3156 +54 3156 +29 3157 +48 3157 +30 3158 +32 3158 +36 3159 +41 3159 +44 3160 +48 3160 +59 3161 +61 3161 +64 3162 +74 3162 +74 3163 +72 3164 +74 3164 +74 3165 +77 3165 +70 3166 +78 3166 +69 3167 +85 3167 +48 3168 +86 3168 +47 3169 +87 3169 +24 3170 +87 3170 +24 3171 +93 3171 +1 3172 +100 3172 +22 3173 +26 3173 +25 3174 +29 3174 +28 3175 +57 3175 +56 3176 +53 3177 +57 3177 +61 3177 +52 3178 +31 3179 +33 3179 +33 3180 +35 3180 +28 3181 +37 3181 +35 3182 +54 3182 +29 3183 +48 3183 +30 3184 +32 3184 +36 3185 +41 3185 +44 3186 +48 3186 +59 3187 +61 3187 +64 3188 +74 3188 +74 3189 +72 3190 +74 3190 +74 3191 +77 3191 +70 3192 +78 3192 +69 3193 +85 3193 +48 3194 +86 3194 +47 3195 +87 3195 +24 3196 +87 3196 +24 3197 +93 3197 +1 3198 +100 3198 +22 3199 +26 3199 +25 3200 +29 3200 +28 3201 +57 3201 +56 3202 +53 3203 +57 3203 +61 3203 +52 3204 +31 3205 +33 3205 +33 3206 +35 3206 +28 3207 +37 3207 +35 3208 +54 3208 +29 3209 +48 3209 +30 3210 +32 3210 +36 3211 +41 3211 +44 3212 +48 3212 +59 3213 +61 3213 +64 3214 +74 3214 +74 3215 +72 3216 +74 3216 +74 3217 +77 3217 +70 3218 +78 3218 +69 3219 +85 3219 +48 3220 +86 3220 +47 3221 +87 3221 +24 3222 +87 3222 +24 3223 +93 3223 +1 3224 +100 3224 +22 3225 +26 3225 +25 3226 +29 3226 +28 3227 +57 3227 +56 3228 +53 3229 +57 3229 +61 3229 +52 3230 +31 3231 +33 3231 +33 3232 +35 3232 +28 3233 +37 3233 +35 3234 +54 3234 +29 3235 +48 3235 +30 3236 +32 3236 +36 3237 +41 3237 +44 3238 +48 3238 +59 3239 +61 3239 +64 3240 +74 3240 +74 3241 +72 3242 +74 3242 +74 3243 +77 3243 +70 3244 +78 3244 +69 3245 +85 3245 +48 3246 +86 3246 +47 3247 +87 3247 +24 3248 +87 3248 +24 3249 +93 3249 +1 3250 +100 3250 +22 3251 +26 3251 +25 3252 +29 3252 +28 3253 +57 3253 +56 3254 +53 3255 +57 3255 +61 3255 +52 3256 +31 3257 +33 3257 +33 3258 +35 3258 +28 3259 +37 3259 +35 3260 +54 3260 +29 3261 +48 3261 +30 3262 +32 3262 +36 3263 +41 3263 +44 3264 +48 3264 +59 3265 +61 3265 +64 3266 +74 3266 +74 3267 +72 3268 +74 3268 +74 3269 +77 3269 +70 3270 +78 3270 +69 3271 +85 3271 +48 3272 +86 3272 +47 3273 +87 3273 +24 3274 +87 3274 +24 3275 +93 3275 +1 3276 +100 3276 +22 3277 +26 3277 +25 3278 +29 3278 +28 3279 +57 3279 +56 3280 +53 3281 +57 3281 +61 3281 +52 3282 +31 3283 +33 3283 +33 3284 +35 3284 +28 3285 +37 3285 +35 3286 +54 3286 +29 3287 +48 3287 +30 3288 +32 3288 +36 3289 +41 3289 +44 3290 +48 3290 +59 3291 +61 3291 +64 3292 +74 3292 +74 3293 +72 3294 +74 3294 +74 3295 +77 3295 +70 3296 +78 3296 +69 3297 +85 3297 +48 3298 +86 3298 +47 3299 +87 3299 +24 3300 +87 3300 +24 3301 +93 3301 +1 3302 +100 3302 +22 3303 +26 3303 +25 3304 +29 3304 +28 3305 +57 3305 +56 3306 +53 3307 +57 3307 +61 3307 +52 3308 +31 3309 +33 3309 +33 3310 +35 3310 +28 3311 +37 3311 +35 3312 +54 3312 +29 3313 +48 3313 +30 3314 +32 3314 +36 3315 +41 3315 +44 3316 +48 3316 +59 3317 +61 3317 +64 3318 +74 3318 +74 3319 +72 3320 +74 3320 +74 3321 +77 3321 +70 3322 +78 3322 +69 3323 +85 3323 +48 3324 +86 3324 +47 3325 +87 3325 +24 3326 +87 3326 +24 3327 +93 3327 +1 3328 +100 3328 +22 3329 +26 3329 +25 3330 +29 3330 +28 3331 +57 3331 +56 3332 +53 3333 +57 3333 +61 3333 +52 3334 +31 3335 +33 3335 +33 3336 +35 3336 +28 3337 +37 3337 +35 3338 +54 3338 +29 3339 +48 3339 +30 3340 +32 3340 +36 3341 +41 3341 +44 3342 +48 3342 +59 3343 +61 3343 +64 3344 +74 3344 +74 3345 +72 3346 +74 3346 +74 3347 +77 3347 +70 3348 +78 3348 +69 3349 +85 3349 +48 3350 +86 3350 +47 3351 +87 3351 +24 3352 +87 3352 +24 3353 +93 3353 +1 3354 +100 3354 +22 3355 +26 3355 +25 3356 +29 3356 +28 3357 +57 3357 +56 3358 +53 3359 +57 3359 +61 3359 +52 3360 +31 3361 +33 3361 +33 3362 +35 3362 +28 3363 +37 3363 +35 3364 +54 3364 +29 3365 +48 3365 +30 3366 +32 3366 +36 3367 +41 3367 +44 3368 +48 3368 +59 3369 +61 3369 +64 3370 +74 3370 +74 3371 +72 3372 +74 3372 +74 3373 +77 3373 +70 3374 +78 3374 +69 3375 +85 3375 +48 3376 +86 3376 +47 3377 +87 3377 +24 3378 +87 3378 +24 3379 +93 3379 +1 3380 +100 3380 +22 3381 +26 3381 +25 3382 +29 3382 +28 3383 +57 3383 +56 3384 +53 3385 +57 3385 +61 3385 +52 3386 +31 3387 +33 3387 +33 3388 +35 3388 +28 3389 +37 3389 +35 3390 +54 3390 +29 3391 +48 3391 +30 3392 +32 3392 +36 3393 +41 3393 +44 3394 +48 3394 +59 3395 +61 3395 +64 3396 +74 3396 +74 3397 +72 3398 +74 3398 +74 3399 +77 3399 +70 3400 +78 3400 +69 3401 +85 3401 +48 3402 +86 3402 +47 3403 +87 3403 +24 3404 +87 3404 +24 3405 +93 3405 +1 3406 +100 3406 +22 3407 +26 3407 +25 3408 +29 3408 +28 3409 +57 3409 +56 3410 +53 3411 +57 3411 +61 3411 +52 3412 +31 3413 +33 3413 +33 3414 +35 3414 +28 3415 +37 3415 +35 3416 +54 3416 +29 3417 +48 3417 +30 3418 +32 3418 +36 3419 +41 3419 +44 3420 +48 3420 +59 3421 +61 3421 +64 3422 +74 3422 +74 3423 +72 3424 +74 3424 +74 3425 +77 3425 +70 3426 +78 3426 +69 3427 +85 3427 +48 3428 +86 3428 +47 3429 +87 3429 +24 3430 +87 3430 +24 3431 +93 3431 +1 3432 +100 3432 +22 3433 +26 3433 +25 3434 +29 3434 +28 3435 +57 3435 +56 3436 +53 3437 +57 3437 +61 3437 +52 3438 +31 3439 +33 3439 +33 3440 +35 3440 +28 3441 +37 3441 +35 3442 +54 3442 +29 3443 +48 3443 +30 3444 +32 3444 +36 3445 +41 3445 +44 3446 +48 3446 +59 3447 +61 3447 +64 3448 +74 3448 +74 3449 +72 3450 +74 3450 +74 3451 +77 3451 +70 3452 +78 3452 +69 3453 +85 3453 +48 3454 +86 3454 +47 3455 +87 3455 +24 3456 +87 3456 +24 3457 +93 3457 +1 3458 +100 3458 +22 3459 +26 3459 +25 3460 +29 3460 +28 3461 +57 3461 +56 3462 +53 3463 +57 3463 +61 3463 +52 3464 +31 3465 +33 3465 +33 3466 +35 3466 +28 3467 +37 3467 +35 3468 +54 3468 +29 3469 +48 3469 +30 3470 +32 3470 +36 3471 +41 3471 +44 3472 +48 3472 +59 3473 +61 3473 +64 3474 +74 3474 +74 3475 +72 3476 +74 3476 +74 3477 +77 3477 +70 3478 +78 3478 +69 3479 +85 3479 +48 3480 +86 3480 +47 3481 +87 3481 +24 3482 +87 3482 +24 3483 +93 3483 +1 3484 +100 3484 +22 3485 +26 3485 +25 3486 +29 3486 +28 3487 +57 3487 +56 3488 +53 3489 +57 3489 +61 3489 +52 3490 +31 3491 +33 3491 +33 3492 +35 3492 +28 3493 +37 3493 +35 3494 +54 3494 +29 3495 +48 3495 +30 3496 +32 3496 +36 3497 +41 3497 +44 3498 +48 3498 +59 3499 +61 3499 +64 3500 +74 3500 +74 3501 +72 3502 +74 3502 +74 3503 +77 3503 +70 3504 +78 3504 +69 3505 +85 3505 +48 3506 +86 3506 +47 3507 +87 3507 +24 3508 +87 3508 +24 3509 +93 3509 +1 3510 +100 3510 +22 3511 +26 3511 +25 3512 +29 3512 +28 3513 +57 3513 +56 3514 +53 3515 +57 3515 +61 3515 +52 3516 +31 3517 +33 3517 +33 3518 +35 3518 +28 3519 +37 3519 +35 3520 +54 3520 +29 3521 +48 3521 +30 3522 +32 3522 +36 3523 +41 3523 +44 3524 +48 3524 +59 3525 +61 3525 +64 3526 +74 3526 +74 3527 +72 3528 +74 3528 +74 3529 +77 3529 +70 3530 +78 3530 +69 3531 +85 3531 +48 3532 +86 3532 +47 3533 +87 3533 +24 3534 +87 3534 +24 3535 +93 3535 +1 3536 +100 3536 +22 3537 +26 3537 +25 3538 +29 3538 +28 3539 +57 3539 +56 3540 +53 3541 +57 3541 +61 3541 +52 3542 +31 3543 +33 3543 +33 3544 +35 3544 +28 3545 +37 3545 +35 3546 +54 3546 +29 3547 +48 3547 +30 3548 +32 3548 +36 3549 +41 3549 +44 3550 +48 3550 +59 3551 +61 3551 +64 3552 +74 3552 +74 3553 +72 3554 +74 3554 +74 3555 +77 3555 +70 3556 +78 3556 +69 3557 +85 3557 +48 3558 +86 3558 +47 3559 +87 3559 +24 3560 +87 3560 +24 3561 +93 3561 +1 3562 +100 3562 +22 3563 +26 3563 +25 3564 +29 3564 +28 3565 +57 3565 +56 3566 +53 3567 +57 3567 +61 3567 +52 3568 +31 3569 +33 3569 +33 3570 +35 3570 +28 3571 +37 3571 +35 3572 +54 3572 +29 3573 +48 3573 +30 3574 +32 3574 +36 3575 +41 3575 +44 3576 +48 3576 +59 3577 +61 3577 +64 3578 +74 3578 +74 3579 +72 3580 +74 3580 +74 3581 +77 3581 +70 3582 +78 3582 +69 3583 +85 3583 +48 3584 +86 3584 +47 3585 +87 3585 +24 3586 +87 3586 +24 3587 +93 3587 +1 3588 +100 3588 +22 3589 +26 3589 +25 3590 +29 3590 +28 3591 +57 3591 +56 3592 +53 3593 +57 3593 +61 3593 +52 3594 +31 3595 +33 3595 +33 3596 +35 3596 +28 3597 +37 3597 +35 3598 +54 3598 +29 3599 +48 3599 +30 3600 +32 3600 +36 3601 +41 3601 +44 3602 +48 3602 +59 3603 +61 3603 +64 3604 +74 3604 +74 3605 +72 3606 +74 3606 +74 3607 +77 3607 +70 3608 +78 3608 +69 3609 +85 3609 +48 3610 +86 3610 +47 3611 +87 3611 +24 3612 +87 3612 +24 3613 +93 3613 +1 3614 +100 3614 +22 3615 +26 3615 +25 3616 +29 3616 +28 3617 +57 3617 +56 3618 +53 3619 +57 3619 +61 3619 +52 3620 +31 3621 +33 3621 +33 3622 +35 3622 +28 3623 +37 3623 +35 3624 +54 3624 +29 3625 +48 3625 +30 3626 +32 3626 +36 3627 +41 3627 +44 3628 +48 3628 +59 3629 +61 3629 +64 3630 +74 3630 +74 3631 +72 3632 +74 3632 +74 3633 +77 3633 +70 3634 +78 3634 +69 3635 +85 3635 +48 3636 +86 3636 +47 3637 +87 3637 +24 3638 +87 3638 +24 3639 +93 3639 +1 3640 +100 3640 +22 3641 +26 3641 +25 3642 +29 3642 +28 3643 +57 3643 +56 3644 +53 3645 +57 3645 +61 3645 +52 3646 +31 3647 +33 3647 +33 3648 +35 3648 +28 3649 +37 3649 +35 3650 +54 3650 +29 3651 +48 3651 +30 3652 +32 3652 +36 3653 +41 3653 +44 3654 +48 3654 +59 3655 +61 3655 +64 3656 +74 3656 +74 3657 +72 3658 +74 3658 +74 3659 +77 3659 +70 3660 +78 3660 +69 3661 +85 3661 +48 3662 +86 3662 +47 3663 +87 3663 +24 3664 +87 3664 +24 3665 +93 3665 +1 3666 +100 3666 +22 3667 +26 3667 +25 3668 +29 3668 +28 3669 +57 3669 +56 3670 +53 3671 +57 3671 +61 3671 +52 3672 +31 3673 +33 3673 +33 3674 +35 3674 +28 3675 +37 3675 +35 3676 +54 3676 +29 3677 +48 3677 +30 3678 +32 3678 +36 3679 +41 3679 +44 3680 +48 3680 +59 3681 +61 3681 +64 3682 +74 3682 +74 3683 +72 3684 +74 3684 +74 3685 +77 3685 +70 3686 +78 3686 +69 3687 +85 3687 +48 3688 +86 3688 +47 3689 +87 3689 +24 3690 +87 3690 +24 3691 +93 3691 +1 3692 +100 3692 +22 3693 +26 3693 +25 3694 +29 3694 +28 3695 +57 3695 +56 3696 +53 3697 +57 3697 +61 3697 +52 3698 +31 3699 +33 3699 +33 3700 +35 3700 +28 3701 +37 3701 +35 3702 +54 3702 +29 3703 +48 3703 +30 3704 +32 3704 +36 3705 +41 3705 +44 3706 +48 3706 +59 3707 +61 3707 +64 3708 +74 3708 +74 3709 +72 3710 +74 3710 +74 3711 +77 3711 +70 3712 +78 3712 +69 3713 +85 3713 +48 3714 +86 3714 +47 3715 +87 3715 +24 3716 +87 3716 +24 3717 +93 3717 +1 3718 +100 3718 +22 3719 +26 3719 +25 3720 +29 3720 +28 3721 +57 3721 +56 3722 +53 3723 +57 3723 +61 3723 +52 3724 +31 3725 +33 3725 +33 3726 +35 3726 +28 3727 +37 3727 +35 3728 +54 3728 +29 3729 +48 3729 +30 3730 +32 3730 +36 3731 +41 3731 +44 3732 +48 3732 +59 3733 +61 3733 +64 3734 +74 3734 +74 3735 +72 3736 +74 3736 +74 3737 +77 3737 +70 3738 +78 3738 +69 3739 +85 3739 +48 3740 +86 3740 +47 3741 +87 3741 +24 3742 +87 3742 +24 3743 +93 3743 +1 3744 +100 3744 +22 3745 +26 3745 +25 3746 +29 3746 +28 3747 +57 3747 +56 3748 +53 3749 +57 3749 +61 3749 +52 3750 +31 3751 +33 3751 +33 3752 +35 3752 +28 3753 +37 3753 +35 3754 +54 3754 +29 3755 +48 3755 +30 3756 +32 3756 +36 3757 +41 3757 +44 3758 +48 3758 +59 3759 +61 3759 +64 3760 +74 3760 +74 3761 +72 3762 +74 3762 +74 3763 +77 3763 +70 3764 +78 3764 +69 3765 +85 3765 +48 3766 +86 3766 +47 3767 +87 3767 +24 3768 +87 3768 +24 3769 +93 3769 +1 3770 +100 3770 +22 3771 +26 3771 +25 3772 +29 3772 +28 3773 +57 3773 +56 3774 +53 3775 +57 3775 +61 3775 +52 3776 +31 3777 +33 3777 +33 3778 +35 3778 +28 3779 +37 3779 +35 3780 +54 3780 +29 3781 +48 3781 +30 3782 +32 3782 +36 3783 +41 3783 +44 3784 +48 3784 +59 3785 +61 3785 +64 3786 +74 3786 +74 3787 +72 3788 +74 3788 +74 3789 +77 3789 +70 3790 +78 3790 +69 3791 +85 3791 +48 3792 +86 3792 +47 3793 +87 3793 +24 3794 +87 3794 +24 3795 +93 3795 +1 3796 +100 3796 +22 3797 +26 3797 +25 3798 +29 3798 +28 3799 +57 3799 +56 3800 +53 3801 +57 3801 +61 3801 +52 3802 +31 3803 +33 3803 +33 3804 +35 3804 +28 3805 +37 3805 +35 3806 +54 3806 +29 3807 +48 3807 +30 3808 +32 3808 +36 3809 +41 3809 +44 3810 +48 3810 +59 3811 +61 3811 +64 3812 +74 3812 +74 3813 +72 3814 +74 3814 +74 3815 +77 3815 +70 3816 +78 3816 +69 3817 +85 3817 +48 3818 +86 3818 +47 3819 +87 3819 +24 3820 +87 3820 +24 3821 +93 3821 +1 3822 +100 3822 +22 3823 +26 3823 +25 3824 +29 3824 +28 3825 +57 3825 +56 3826 +53 3827 +57 3827 +61 3827 +52 3828 +31 3829 +33 3829 +33 3830 +35 3830 +28 3831 +37 3831 +35 3832 +54 3832 +29 3833 +48 3833 +30 3834 +32 3834 +36 3835 +41 3835 +44 3836 +48 3836 +59 3837 +61 3837 +64 3838 +74 3838 +74 3839 +72 3840 +74 3840 +74 3841 +77 3841 +70 3842 +78 3842 +69 3843 +85 3843 +48 3844 +86 3844 +47 3845 +87 3845 +24 3846 +87 3846 +24 3847 +93 3847 +1 3848 +100 3848 +22 3849 +26 3849 +25 3850 +29 3850 +28 3851 +57 3851 +56 3852 +53 3853 +57 3853 +61 3853 +52 3854 +31 3855 +33 3855 +33 3856 +35 3856 +28 3857 +37 3857 +35 3858 +54 3858 +29 3859 +48 3859 +30 3860 +32 3860 +36 3861 +41 3861 +44 3862 +48 3862 +59 3863 +61 3863 +64 3864 +74 3864 +74 3865 +72 3866 +74 3866 +74 3867 +77 3867 +70 3868 +78 3868 +69 3869 +85 3869 +48 3870 +86 3870 +47 3871 +87 3871 +24 3872 +87 3872 +24 3873 +93 3873 +1 3874 +100 3874 +22 3875 +26 3875 +25 3876 +29 3876 +28 3877 +57 3877 +56 3878 +53 3879 +57 3879 +61 3879 +52 3880 +31 3881 +33 3881 +33 3882 +35 3882 +28 3883 +37 3883 +35 3884 +54 3884 +29 3885 +48 3885 +30 3886 +32 3886 +36 3887 +41 3887 +44 3888 +48 3888 +59 3889 +61 3889 +64 3890 +74 3890 +74 3891 +72 3892 +74 3892 +74 3893 +77 3893 +70 3894 +78 3894 +69 3895 +85 3895 +48 3896 +86 3896 +47 3897 +87 3897 +24 3898 +87 3898 +24 3899 +93 3899 +1 3900 +100 3900 +22 3901 +26 3901 +25 3902 +29 3902 +28 3903 +57 3903 +56 3904 +53 3905 +57 3905 +61 3905 +52 3906 +31 3907 +33 3907 +33 3908 +35 3908 +28 3909 +37 3909 +35 3910 +54 3910 +29 3911 +48 3911 +30 3912 +32 3912 +36 3913 +41 3913 +44 3914 +48 3914 +59 3915 +61 3915 +64 3916 +74 3916 +74 3917 +72 3918 +74 3918 +74 3919 +77 3919 +70 3920 +78 3920 +69 3921 +85 3921 +48 3922 +86 3922 +47 3923 +87 3923 +24 3924 +87 3924 +24 3925 +93 3925 +1 3926 +100 3926 +22 3927 +26 3927 +25 3928 +29 3928 +28 3929 +57 3929 +56 3930 +53 3931 +57 3931 +61 3931 +52 3932 +31 3933 +33 3933 +33 3934 +35 3934 +28 3935 +37 3935 +35 3936 +54 3936 +29 3937 +48 3937 +30 3938 +32 3938 +36 3939 +41 3939 +44 3940 +48 3940 +59 3941 +61 3941 +64 3942 +74 3942 +74 3943 +72 3944 +74 3944 +74 3945 +77 3945 +70 3946 +78 3946 +69 3947 +85 3947 +48 3948 +86 3948 +47 3949 +87 3949 +24 3950 +87 3950 +24 3951 +93 3951 +1 3952 +100 3952 +22 3953 +26 3953 +25 3954 +29 3954 +28 3955 +57 3955 +56 3956 +53 3957 +57 3957 +61 3957 +52 3958 +31 3959 +33 3959 +33 3960 +35 3960 +28 3961 +37 3961 +35 3962 +54 3962 +29 3963 +48 3963 +30 3964 +32 3964 +36 3965 +41 3965 +44 3966 +48 3966 +59 3967 +61 3967 +64 3968 +74 3968 +74 3969 +72 3970 +74 3970 +74 3971 +77 3971 +70 3972 +78 3972 +69 3973 +85 3973 +48 3974 +86 3974 +47 3975 +87 3975 +24 3976 +87 3976 +24 3977 +93 3977 +1 3978 +100 3978 +22 3979 +26 3979 +25 3980 +29 3980 +28 3981 +57 3981 +56 3982 +53 3983 +57 3983 +61 3983 +52 3984 +31 3985 +33 3985 +33 3986 +35 3986 +28 3987 +37 3987 +35 3988 +54 3988 +29 3989 +48 3989 +30 3990 +32 3990 +36 3991 +41 3991 +44 3992 +48 3992 +59 3993 +61 3993 +64 3994 +74 3994 +74 3995 +72 3996 +74 3996 +74 3997 +77 3997 +70 3998 +78 3998 +69 3999 +85 3999 +48 4000 +86 4000 +47 4001 +87 4001 +24 4002 +87 4002 +24 4003 +93 4003 +1 4004 +100 4004 +22 4005 +26 4005 +25 4006 +29 4006 +28 4007 +57 4007 +56 4008 +53 4009 +57 4009 +61 4009 +52 4010 +31 4011 +33 4011 +33 4012 +35 4012 +28 4013 +37 4013 +35 4014 +54 4014 +29 4015 +48 4015 +30 4016 +32 4016 +36 4017 +41 4017 +44 4018 +48 4018 +59 4019 +61 4019 +64 4020 +74 4020 +74 4021 +72 4022 +74 4022 +74 4023 +77 4023 +70 4024 +78 4024 +69 4025 +85 4025 +48 4026 +86 4026 +47 4027 +87 4027 +24 4028 +87 4028 +24 4029 +93 4029 +1 4030 +100 4030 +22 4031 +26 4031 +25 4032 +29 4032 +28 4033 +57 4033 +56 4034 +53 4035 +57 4035 +61 4035 +52 4036 +31 4037 +33 4037 +33 4038 +35 4038 +28 4039 +37 4039 +35 4040 +54 4040 +29 4041 +48 4041 +30 4042 +32 4042 +36 4043 +41 4043 +44 4044 +48 4044 +59 4045 +61 4045 +64 4046 +74 4046 +74 4047 +72 4048 +74 4048 +74 4049 +77 4049 +70 4050 +78 4050 +69 4051 +85 4051 +48 4052 +86 4052 +47 4053 +87 4053 +24 4054 +87 4054 +24 4055 +93 4055 +1 4056 +100 4056 +22 4057 +26 4057 +25 4058 +29 4058 +28 4059 +57 4059 +56 4060 +53 4061 +57 4061 +61 4061 +52 4062 +31 4063 +33 4063 +33 4064 +35 4064 +28 4065 +37 4065 +35 4066 +54 4066 +29 4067 +48 4067 +30 4068 +32 4068 +36 4069 +41 4069 +44 4070 +48 4070 +59 4071 +61 4071 +64 4072 +74 4072 +74 4073 +72 4074 +74 4074 +74 4075 +77 4075 +70 4076 +78 4076 +69 4077 +85 4077 +48 4078 +86 4078 +47 4079 +87 4079 +24 4080 +87 4080 +24 4081 +93 4081 +1 4082 +100 4082 +22 4083 +26 4083 +25 4084 +29 4084 +28 4085 +57 4085 +56 4086 +53 4087 +57 4087 +61 4087 +52 4088 +31 4089 +33 4089 +33 4090 +35 4090 +28 4091 +37 4091 +35 4092 +54 4092 +29 4093 +48 4093 +30 4094 +32 4094 +36 4095 +41 4095 +44 4096 +48 4096 +59 4097 +61 4097 +64 4098 +74 4098 +74 4099 +72 4100 +74 4100 +74 4101 +77 4101 +70 4102 +78 4102 +69 4103 +85 4103 +48 4104 +86 4104 +47 4105 +87 4105 +24 4106 +87 4106 +24 4107 +93 4107 +1 4108 +100 4108 +22 4109 +26 4109 +25 4110 +29 4110 +28 4111 +57 4111 +56 4112 +53 4113 +57 4113 +61 4113 +52 4114 +31 4115 +33 4115 +33 4116 +35 4116 +28 4117 +37 4117 +35 4118 +54 4118 +29 4119 +48 4119 +30 4120 +32 4120 +36 4121 +41 4121 +44 4122 +48 4122 +59 4123 +61 4123 +64 4124 +74 4124 +74 4125 +72 4126 +74 4126 +74 4127 +77 4127 +70 4128 +78 4128 +69 4129 +85 4129 +48 4130 +86 4130 +47 4131 +87 4131 +24 4132 +87 4132 +24 4133 +93 4133 +1 4134 +100 4134 +22 4135 +26 4135 +25 4136 +29 4136 +28 4137 +57 4137 +56 4138 +53 4139 +57 4139 +61 4139 +52 4140 +31 4141 +33 4141 +33 4142 +35 4142 +28 4143 +37 4143 +35 4144 +54 4144 +29 4145 +48 4145 +30 4146 +32 4146 +36 4147 +41 4147 +44 4148 +48 4148 +59 4149 +61 4149 +64 4150 +74 4150 +74 4151 +72 4152 +74 4152 +74 4153 +77 4153 +70 4154 +78 4154 +69 4155 +85 4155 +48 4156 +86 4156 +47 4157 +87 4157 +24 4158 +87 4158 +24 4159 +93 4159 +1 4160 +100 4160 +22 4161 +26 4161 +25 4162 +29 4162 +28 4163 +57 4163 +56 4164 +53 4165 +57 4165 +61 4165 +52 4166 +31 4167 +33 4167 +33 4168 +35 4168 +28 4169 +37 4169 +35 4170 +54 4170 +29 4171 +48 4171 +30 4172 +32 4172 +36 4173 +41 4173 +44 4174 +48 4174 +59 4175 +61 4175 +64 4176 +74 4176 +74 4177 +72 4178 +74 4178 +74 4179 +77 4179 +70 4180 +78 4180 +69 4181 +85 4181 +48 4182 +86 4182 +47 4183 +87 4183 +24 4184 +87 4184 +24 4185 +93 4185 +1 4186 +100 4186 +22 4187 +26 4187 +25 4188 +29 4188 +28 4189 +57 4189 +56 4190 +53 4191 +57 4191 +61 4191 +52 4192 +31 4193 +33 4193 +33 4194 +35 4194 +28 4195 +37 4195 +35 4196 +54 4196 +29 4197 +48 4197 +30 4198 +32 4198 +36 4199 +41 4199 +44 4200 +48 4200 +59 4201 +61 4201 +64 4202 +74 4202 +74 4203 +72 4204 +74 4204 +74 4205 +77 4205 +70 4206 +78 4206 +69 4207 +85 4207 +48 4208 +86 4208 +47 4209 +87 4209 +24 4210 +87 4210 +24 4211 +93 4211 +1 4212 +100 4212 +22 4213 +26 4213 +25 4214 +29 4214 +28 4215 +57 4215 +56 4216 +53 4217 +57 4217 +61 4217 +52 4218 +31 4219 +33 4219 +33 4220 +35 4220 +28 4221 +37 4221 +35 4222 +54 4222 +29 4223 +48 4223 +30 4224 +32 4224 +36 4225 +41 4225 +44 4226 +48 4226 +59 4227 +61 4227 +64 4228 +74 4228 +74 4229 +72 4230 +74 4230 +74 4231 +77 4231 +70 4232 +78 4232 +69 4233 +85 4233 +48 4234 +86 4234 +47 4235 +87 4235 +24 4236 +87 4236 +24 4237 +93 4237 +1 4238 +100 4238 +22 4239 +26 4239 +25 4240 +29 4240 +28 4241 +57 4241 +56 4242 +53 4243 +57 4243 +61 4243 +52 4244 +31 4245 +33 4245 +33 4246 +35 4246 +28 4247 +37 4247 +35 4248 +54 4248 +29 4249 +48 4249 +30 4250 +32 4250 +36 4251 +41 4251 +44 4252 +48 4252 +59 4253 +61 4253 +64 4254 +74 4254 +74 4255 +72 4256 +74 4256 +74 4257 +77 4257 +70 4258 +78 4258 +69 4259 +85 4259 +48 4260 +86 4260 +47 4261 +87 4261 +24 4262 +87 4262 +24 4263 +93 4263 +1 4264 +100 4264 +22 4265 +26 4265 +25 4266 +29 4266 +28 4267 +57 4267 +56 4268 +53 4269 +57 4269 +61 4269 +52 4270 +31 4271 +33 4271 +33 4272 +35 4272 +28 4273 +37 4273 +35 4274 +54 4274 +29 4275 +48 4275 +30 4276 +32 4276 +36 4277 +41 4277 +44 4278 +48 4278 +59 4279 +61 4279 +64 4280 +74 4280 +74 4281 +72 4282 +74 4282 +74 4283 +77 4283 +70 4284 +78 4284 +69 4285 +85 4285 +48 4286 +86 4286 +47 4287 +87 4287 +24 4288 +87 4288 +24 4289 +93 4289 +1 4290 +100 4290 +22 4291 +26 4291 +25 4292 +29 4292 +28 4293 +57 4293 +56 4294 +53 4295 +57 4295 +61 4295 +52 4296 +31 4297 +33 4297 +33 4298 +35 4298 +28 4299 +37 4299 +35 4300 +54 4300 +29 4301 +48 4301 +30 4302 +32 4302 +36 4303 +41 4303 +44 4304 +48 4304 +59 4305 +61 4305 +64 4306 +74 4306 +74 4307 +72 4308 +74 4308 +74 4309 +77 4309 +70 4310 +78 4310 +69 4311 +85 4311 +48 4312 +86 4312 +47 4313 +87 4313 +24 4314 +87 4314 +24 4315 +93 4315 +1 4316 +100 4316 +22 4317 +26 4317 +25 4318 +29 4318 +28 4319 +57 4319 +56 4320 +53 4321 +57 4321 +61 4321 +52 4322 +31 4323 +33 4323 +33 4324 +35 4324 +28 4325 +37 4325 +35 4326 +54 4326 +29 4327 +48 4327 +30 4328 +32 4328 +36 4329 +41 4329 +44 4330 +48 4330 +59 4331 +61 4331 +64 4332 +74 4332 +74 4333 +72 4334 +74 4334 +74 4335 +77 4335 +70 4336 +78 4336 +69 4337 +85 4337 +48 4338 +86 4338 +47 4339 +87 4339 +24 4340 +87 4340 +24 4341 +93 4341 +1 4342 +100 4342 +22 4343 +26 4343 +25 4344 +29 4344 +28 4345 +57 4345 +56 4346 +53 4347 +57 4347 +61 4347 +52 4348 +31 4349 +33 4349 +33 4350 +35 4350 +28 4351 +37 4351 +35 4352 +54 4352 +29 4353 +48 4353 +30 4354 +32 4354 +36 4355 +41 4355 +44 4356 +48 4356 +59 4357 +61 4357 +64 4358 +74 4358 +74 4359 +72 4360 +74 4360 +74 4361 +77 4361 +70 4362 +78 4362 +69 4363 +85 4363 +48 4364 +86 4364 +47 4365 +87 4365 +24 4366 +87 4366 +24 4367 +93 4367 +1 4368 +100 4368 +22 4369 +26 4369 +25 4370 +29 4370 +28 4371 +57 4371 +56 4372 +53 4373 +57 4373 +61 4373 +52 4374 +31 4375 +33 4375 +33 4376 +35 4376 +28 4377 +37 4377 +35 4378 +54 4378 +29 4379 +48 4379 +30 4380 +32 4380 +36 4381 +41 4381 +44 4382 +48 4382 +59 4383 +61 4383 +64 4384 +74 4384 +74 4385 +72 4386 +74 4386 +74 4387 +77 4387 +70 4388 +78 4388 +69 4389 +85 4389 +48 4390 +86 4390 +47 4391 +87 4391 +24 4392 +87 4392 +24 4393 +93 4393 +1 4394 +100 4394 +22 4395 +26 4395 +25 4396 +29 4396 +28 4397 +57 4397 +56 4398 +53 4399 +57 4399 +61 4399 +52 4400 +31 4401 +33 4401 +33 4402 +35 4402 +28 4403 +37 4403 +35 4404 +54 4404 +29 4405 +48 4405 +30 4406 +32 4406 +36 4407 +41 4407 +44 4408 +48 4408 +59 4409 +61 4409 +64 4410 +74 4410 +74 4411 +72 4412 +74 4412 +74 4413 +77 4413 +70 4414 +78 4414 +69 4415 +85 4415 +48 4416 +86 4416 +47 4417 +87 4417 +24 4418 +87 4418 +24 4419 +93 4419 +1 4420 +100 4420 +22 4421 +26 4421 +25 4422 +29 4422 +28 4423 +57 4423 +56 4424 +53 4425 +57 4425 +61 4425 +52 4426 +31 4427 +33 4427 +33 4428 +35 4428 +28 4429 +37 4429 +35 4430 +54 4430 +29 4431 +48 4431 +30 4432 +32 4432 +36 4433 +41 4433 +44 4434 +48 4434 +59 4435 +61 4435 +64 4436 +74 4436 +74 4437 +72 4438 +74 4438 +74 4439 +77 4439 +70 4440 +78 4440 +69 4441 +85 4441 +48 4442 +86 4442 +47 4443 +87 4443 +24 4444 +87 4444 +24 4445 +93 4445 +1 4446 +100 4446 +22 4447 +26 4447 +25 4448 +29 4448 +28 4449 +57 4449 +56 4450 +53 4451 +57 4451 +61 4451 +52 4452 +31 4453 +33 4453 +33 4454 +35 4454 +28 4455 +37 4455 +35 4456 +54 4456 +29 4457 +48 4457 +30 4458 +32 4458 +36 4459 +41 4459 +44 4460 +48 4460 +59 4461 +61 4461 +64 4462 +74 4462 +74 4463 +72 4464 +74 4464 +74 4465 +77 4465 +70 4466 +78 4466 +69 4467 +85 4467 +48 4468 +86 4468 +47 4469 +87 4469 +24 4470 +87 4470 +24 4471 +93 4471 +1 4472 +100 4472 +22 4473 +26 4473 +25 4474 +29 4474 +28 4475 +57 4475 +56 4476 +53 4477 +57 4477 +61 4477 +52 4478 +31 4479 +33 4479 +33 4480 +35 4480 +28 4481 +37 4481 +35 4482 +54 4482 +29 4483 +48 4483 +30 4484 +32 4484 +36 4485 +41 4485 +44 4486 +48 4486 +59 4487 +61 4487 +64 4488 +74 4488 +74 4489 +72 4490 +74 4490 +74 4491 +77 4491 +70 4492 +78 4492 +69 4493 +85 4493 +48 4494 +86 4494 +47 4495 +87 4495 +24 4496 +87 4496 +24 4497 +93 4497 +1 4498 +100 4498 +22 4499 +26 4499 +25 4500 +29 4500 +28 4501 +57 4501 +56 4502 +53 4503 +57 4503 +61 4503 +52 4504 +31 4505 +33 4505 +33 4506 +35 4506 +28 4507 +37 4507 +35 4508 +54 4508 +29 4509 +48 4509 +30 4510 +32 4510 +36 4511 +41 4511 +44 4512 +48 4512 +59 4513 +61 4513 +64 4514 +74 4514 +74 4515 +72 4516 +74 4516 +74 4517 +77 4517 +70 4518 +78 4518 +69 4519 +85 4519 +48 4520 +86 4520 +47 4521 +87 4521 +24 4522 +87 4522 +24 4523 +93 4523 +1 4524 +100 4524 +22 4525 +26 4525 +25 4526 +29 4526 +28 4527 +57 4527 +56 4528 +53 4529 +57 4529 +61 4529 +52 4530 +31 4531 +33 4531 +33 4532 +35 4532 +28 4533 +37 4533 +35 4534 +54 4534 +29 4535 +48 4535 +30 4536 +32 4536 +36 4537 +41 4537 +44 4538 +48 4538 +59 4539 +61 4539 +64 4540 +74 4540 +74 4541 +72 4542 +74 4542 +74 4543 +77 4543 +70 4544 +78 4544 +69 4545 +85 4545 +48 4546 +86 4546 +47 4547 +87 4547 +24 4548 +87 4548 +24 4549 +93 4549 +1 4550 +100 4550 +22 4551 +26 4551 +25 4552 +29 4552 +28 4553 +57 4553 +56 4554 +53 4555 +57 4555 +61 4555 +52 4556 +31 4557 +33 4557 +33 4558 +35 4558 +28 4559 +37 4559 +35 4560 +54 4560 +29 4561 +48 4561 +30 4562 +32 4562 +36 4563 +41 4563 +44 4564 +48 4564 +59 4565 +61 4565 +64 4566 +74 4566 +74 4567 +72 4568 +74 4568 +74 4569 +77 4569 +70 4570 +78 4570 +69 4571 +85 4571 +48 4572 +86 4572 +47 4573 +87 4573 +24 4574 +87 4574 +24 4575 +93 4575 +1 4576 +100 4576 +22 4577 +26 4577 +25 4578 +29 4578 +28 4579 +57 4579 +56 4580 +53 4581 +57 4581 +61 4581 +52 4582 +31 4583 +33 4583 +33 4584 +35 4584 +28 4585 +37 4585 +35 4586 +54 4586 +29 4587 +48 4587 +30 4588 +32 4588 +36 4589 +41 4589 +44 4590 +48 4590 +59 4591 +61 4591 +64 4592 +74 4592 +74 4593 +72 4594 +74 4594 +74 4595 +77 4595 +70 4596 +78 4596 +69 4597 +85 4597 +48 4598 +86 4598 +47 4599 +87 4599 +24 4600 +87 4600 +24 4601 +93 4601 +1 4602 +100 4602 +22 4603 +26 4603 +25 4604 +29 4604 +28 4605 +57 4605 +56 4606 +53 4607 +57 4607 +61 4607 +52 4608 +31 4609 +33 4609 +33 4610 +35 4610 +28 4611 +37 4611 +35 4612 +54 4612 +29 4613 +48 4613 +30 4614 +32 4614 +36 4615 +41 4615 +44 4616 +48 4616 +59 4617 +61 4617 +64 4618 +74 4618 +74 4619 +72 4620 +74 4620 +74 4621 +77 4621 +70 4622 +78 4622 +69 4623 +85 4623 +48 4624 +86 4624 +47 4625 +87 4625 +24 4626 +87 4626 +24 4627 +93 4627 +1 4628 +100 4628 +22 4629 +26 4629 +25 4630 +29 4630 +28 4631 +57 4631 +56 4632 +53 4633 +57 4633 +61 4633 +52 4634 +31 4635 +33 4635 +33 4636 +35 4636 +28 4637 +37 4637 +35 4638 +54 4638 +29 4639 +48 4639 +30 4640 +32 4640 +36 4641 +41 4641 +44 4642 +48 4642 +59 4643 +61 4643 +64 4644 +74 4644 +74 4645 +72 4646 +74 4646 +74 4647 +77 4647 +70 4648 +78 4648 +69 4649 +85 4649 +48 4650 +86 4650 +47 4651 +87 4651 +24 4652 +87 4652 +24 4653 +93 4653 +1 4654 +100 4654 +22 4655 +26 4655 +25 4656 +29 4656 +28 4657 +57 4657 +56 4658 +53 4659 +57 4659 +61 4659 +52 4660 +31 4661 +33 4661 +33 4662 +35 4662 +28 4663 +37 4663 +35 4664 +54 4664 +29 4665 +48 4665 +30 4666 +32 4666 +36 4667 +41 4667 +44 4668 +48 4668 +59 4669 +61 4669 +64 4670 +74 4670 +74 4671 +72 4672 +74 4672 +74 4673 +77 4673 +70 4674 +78 4674 +69 4675 +85 4675 +48 4676 +86 4676 +47 4677 +87 4677 +24 4678 +87 4678 +24 4679 +93 4679 +1 4680 +100 4680 +22 4681 +26 4681 +25 4682 +29 4682 +28 4683 +57 4683 +56 4684 +53 4685 +57 4685 +61 4685 +52 4686 +31 4687 +33 4687 +33 4688 +35 4688 +28 4689 +37 4689 +35 4690 +54 4690 +29 4691 +48 4691 +30 4692 +32 4692 +36 4693 +41 4693 +44 4694 +48 4694 +59 4695 +61 4695 +64 4696 +74 4696 +74 4697 +72 4698 +74 4698 +74 4699 +77 4699 +70 4700 +78 4700 +69 4701 +85 4701 +48 4702 +86 4702 +47 4703 +87 4703 +24 4704 +87 4704 +24 4705 +93 4705 +1 4706 +100 4706 +22 4707 +26 4707 +25 4708 +29 4708 +28 4709 +57 4709 +56 4710 +53 4711 +57 4711 +61 4711 +52 4712 +31 4713 +33 4713 +33 4714 +35 4714 +28 4715 +37 4715 +35 4716 +54 4716 +29 4717 +48 4717 +30 4718 +32 4718 +36 4719 +41 4719 +44 4720 +48 4720 +59 4721 +61 4721 +64 4722 +74 4722 +74 4723 +72 4724 +74 4724 +74 4725 +77 4725 +70 4726 +78 4726 +69 4727 +85 4727 +48 4728 +86 4728 +47 4729 +87 4729 +24 4730 +87 4730 +24 4731 +93 4731 +1 4732 +100 4732 +22 4733 +26 4733 +25 4734 +29 4734 +28 4735 +57 4735 +56 4736 +53 4737 +57 4737 +61 4737 +52 4738 +31 4739 +33 4739 +33 4740 +35 4740 +28 4741 +37 4741 +35 4742 +54 4742 +29 4743 +48 4743 +30 4744 +32 4744 +36 4745 +41 4745 +44 4746 +48 4746 +59 4747 +61 4747 +64 4748 +74 4748 +74 4749 +72 4750 +74 4750 +74 4751 +77 4751 +70 4752 +78 4752 +69 4753 +85 4753 +48 4754 +86 4754 +47 4755 +87 4755 +24 4756 +87 4756 +24 4757 +93 4757 +1 4758 +100 4758 +22 4759 +26 4759 +25 4760 +29 4760 +28 4761 +57 4761 +56 4762 +53 4763 +57 4763 +61 4763 +52 4764 +31 4765 +33 4765 +33 4766 +35 4766 +28 4767 +37 4767 +35 4768 +54 4768 +29 4769 +48 4769 +30 4770 +32 4770 +36 4771 +41 4771 +44 4772 +48 4772 +59 4773 +61 4773 +64 4774 +74 4774 +74 4775 +72 4776 +74 4776 +74 4777 +77 4777 +70 4778 +78 4778 +69 4779 +85 4779 +48 4780 +86 4780 +47 4781 +87 4781 +24 4782 +87 4782 +24 4783 +93 4783 +1 4784 +100 4784 +22 4785 +26 4785 +25 4786 +29 4786 +28 4787 +57 4787 +56 4788 +53 4789 +57 4789 +61 4789 +52 4790 +31 4791 +33 4791 +33 4792 +35 4792 +28 4793 +37 4793 +35 4794 +54 4794 +29 4795 +48 4795 +30 4796 +32 4796 +36 4797 +41 4797 +44 4798 +48 4798 +59 4799 +61 4799 +64 4800 +74 4800 +74 4801 +72 4802 +74 4802 +74 4803 +77 4803 +70 4804 +78 4804 +69 4805 +85 4805 +48 4806 +86 4806 +47 4807 +87 4807 +24 4808 +87 4808 +24 4809 +93 4809 +1 4810 +100 4810 +22 4811 +26 4811 +25 4812 +29 4812 +28 4813 +57 4813 +56 4814 +53 4815 +57 4815 +61 4815 +52 4816 +31 4817 +33 4817 +33 4818 +35 4818 +28 4819 +37 4819 +35 4820 +54 4820 +29 4821 +48 4821 +30 4822 +32 4822 +36 4823 +41 4823 +44 4824 +48 4824 +59 4825 +61 4825 +64 4826 +74 4826 +74 4827 +72 4828 +74 4828 +74 4829 +77 4829 +70 4830 +78 4830 +69 4831 +85 4831 +48 4832 +86 4832 +47 4833 +87 4833 +24 4834 +87 4834 +24 4835 +93 4835 +1 4836 +100 4836 +22 4837 +26 4837 +25 4838 +29 4838 +28 4839 +57 4839 +56 4840 +53 4841 +57 4841 +61 4841 +52 4842 +31 4843 +33 4843 +33 4844 +35 4844 +28 4845 +37 4845 +35 4846 +54 4846 +29 4847 +48 4847 +30 4848 +32 4848 +36 4849 +41 4849 +44 4850 +48 4850 +59 4851 +61 4851 +64 4852 +74 4852 +74 4853 +72 4854 +74 4854 +74 4855 +77 4855 +70 4856 +78 4856 +69 4857 +85 4857 +48 4858 +86 4858 +47 4859 +87 4859 +24 4860 +87 4860 +24 4861 +93 4861 +1 4862 +100 4862 +22 4863 +26 4863 +25 4864 +29 4864 +28 4865 +57 4865 +56 4866 +53 4867 +57 4867 +61 4867 +52 4868 +31 4869 +33 4869 +33 4870 +35 4870 +28 4871 +37 4871 +35 4872 +54 4872 +29 4873 +48 4873 +30 4874 +32 4874 +36 4875 +41 4875 +44 4876 +48 4876 +59 4877 +61 4877 +64 4878 +74 4878 +74 4879 +72 4880 +74 4880 +74 4881 +77 4881 +70 4882 +78 4882 +69 4883 +85 4883 +48 4884 +86 4884 +47 4885 +87 4885 +24 4886 +87 4886 +24 4887 +93 4887 +1 4888 +100 4888 +22 4889 +26 4889 +25 4890 +29 4890 +28 4891 +57 4891 +56 4892 +53 4893 +57 4893 +61 4893 +52 4894 +31 4895 +33 4895 +33 4896 +35 4896 +28 4897 +37 4897 +35 4898 +54 4898 +29 4899 +48 4899 +30 4900 +32 4900 +36 4901 +41 4901 +44 4902 +48 4902 +59 4903 +61 4903 +64 4904 +74 4904 +74 4905 +72 4906 +74 4906 +74 4907 +77 4907 +70 4908 +78 4908 +69 4909 +85 4909 +48 4910 +86 4910 +47 4911 +87 4911 +24 4912 +87 4912 +24 4913 +93 4913 +1 4914 +100 4914 +22 4915 +26 4915 +25 4916 +29 4916 +28 4917 +57 4917 +56 4918 +53 4919 +57 4919 +61 4919 +52 4920 +31 4921 +33 4921 +33 4922 +35 4922 +28 4923 +37 4923 +35 4924 +54 4924 +29 4925 +48 4925 +30 4926 +32 4926 +36 4927 +41 4927 +44 4928 +48 4928 +59 4929 +61 4929 +64 4930 +74 4930 +74 4931 +72 4932 +74 4932 +74 4933 +77 4933 +70 4934 +78 4934 +69 4935 +85 4935 +48 4936 +86 4936 +47 4937 +87 4937 +24 4938 +87 4938 +24 4939 +93 4939 +1 4940 +100 4940 +22 4941 +26 4941 +25 4942 +29 4942 +28 4943 +57 4943 +56 4944 +53 4945 +57 4945 +61 4945 +52 4946 +31 4947 +33 4947 +33 4948 +35 4948 +28 4949 +37 4949 +35 4950 +54 4950 +29 4951 +48 4951 +30 4952 +32 4952 +36 4953 +41 4953 +44 4954 +48 4954 +59 4955 +61 4955 +64 4956 +74 4956 +74 4957 +72 4958 +74 4958 +74 4959 +77 4959 +70 4960 +78 4960 +69 4961 +85 4961 +48 4962 +86 4962 +47 4963 +87 4963 +24 4964 +87 4964 +24 4965 +93 4965 +1 4966 +100 4966 +22 4967 +26 4967 +25 4968 +29 4968 +28 4969 +57 4969 +56 4970 +53 4971 +57 4971 +61 4971 +52 4972 +31 4973 +33 4973 +33 4974 +35 4974 +28 4975 +37 4975 +35 4976 +54 4976 +29 4977 +48 4977 +30 4978 +32 4978 +36 4979 +41 4979 +44 4980 +48 4980 +59 4981 +61 4981 +64 4982 +74 4982 +74 4983 +72 4984 +74 4984 +74 4985 +77 4985 +70 4986 +78 4986 +69 4987 +85 4987 +48 4988 +86 4988 +47 4989 +87 4989 +24 4990 +87 4990 +24 4991 +93 4991 +1 4992 +100 4992 +22 4993 +26 4993 +25 4994 +29 4994 +28 4995 +57 4995 +56 4996 +53 4997 +57 4997 +61 4997 +52 4998 +31 4999 +33 4999 +33 5000 +35 5000 +28 5001 +37 5001 +35 5002 +54 5002 +29 5003 +48 5003 +30 5004 +32 5004 +36 5005 +41 5005 +44 5006 +48 5006 +59 5007 +61 5007 +64 5008 +74 5008 +74 5009 +72 5010 +74 5010 +74 5011 +77 5011 +70 5012 +78 5012 +69 5013 +85 5013 +48 5014 +86 5014 +47 5015 +87 5015 +24 5016 +87 5016 +24 5017 +93 5017 +1 5018 +100 5018 +22 5019 +26 5019 +25 5020 +29 5020 +28 5021 +57 5021 +56 5022 +53 5023 +57 5023 +61 5023 +52 5024 +31 5025 +33 5025 +33 5026 +35 5026 +28 5027 +37 5027 +35 5028 +54 5028 +29 5029 +48 5029 +30 5030 +32 5030 +36 5031 +41 5031 +44 5032 +48 5032 +59 5033 +61 5033 +64 5034 +74 5034 +74 5035 +72 5036 +74 5036 +74 5037 +77 5037 +70 5038 +78 5038 +69 5039 +85 5039 +48 5040 +86 5040 +47 5041 +87 5041 +24 5042 +87 5042 +24 5043 +93 5043 +1 5044 +100 5044 +22 5045 +26 5045 +25 5046 +29 5046 +28 5047 +57 5047 +56 5048 +53 5049 +57 5049 +61 5049 +52 5050 +31 5051 +33 5051 +33 5052 +35 5052 +28 5053 +37 5053 +35 5054 +54 5054 +29 5055 +48 5055 +30 5056 +32 5056 +36 5057 +41 5057 +44 5058 +48 5058 +59 5059 +61 5059 +64 5060 +74 5060 +74 5061 +72 5062 +74 5062 +74 5063 +77 5063 +70 5064 +78 5064 +69 5065 +85 5065 +48 5066 +86 5066 +47 5067 +87 5067 +24 5068 +87 5068 +24 5069 +93 5069 +1 5070 +100 5070 +22 5071 +26 5071 +25 5072 +29 5072 +28 5073 +57 5073 +56 5074 +53 5075 +57 5075 +61 5075 +52 5076 +31 5077 +33 5077 +33 5078 +35 5078 +28 5079 +37 5079 +35 5080 +54 5080 +29 5081 +48 5081 +30 5082 +32 5082 +36 5083 +41 5083 +44 5084 +48 5084 +59 5085 +61 5085 +64 5086 +74 5086 +74 5087 +72 5088 +74 5088 +74 5089 +77 5089 +70 5090 +78 5090 +69 5091 +85 5091 +48 5092 +86 5092 +47 5093 +87 5093 +24 5094 +87 5094 +24 5095 +93 5095 +1 5096 +100 5096 +22 5097 +26 5097 +25 5098 +29 5098 +28 5099 +57 5099 +56 5100 +53 5101 +57 5101 +61 5101 +52 5102 +31 5103 +33 5103 +33 5104 +35 5104 +28 5105 +37 5105 +35 5106 +54 5106 +29 5107 +48 5107 +30 5108 +32 5108 +36 5109 +41 5109 +44 5110 +48 5110 +59 5111 +61 5111 +64 5112 +74 5112 +74 5113 +72 5114 +74 5114 +74 5115 +77 5115 +70 5116 +78 5116 +69 5117 +85 5117 +48 5118 +86 5118 +47 5119 +87 5119 +24 5120 +87 5120 +24 5121 +93 5121 +1 5122 +100 5122 +22 5123 +26 5123 +25 5124 +29 5124 +28 5125 +57 5125 +56 5126 +53 5127 +57 5127 +61 5127 +52 5128 +31 5129 +33 5129 +33 5130 +35 5130 +28 5131 +37 5131 +35 5132 +54 5132 +29 5133 +48 5133 +30 5134 +32 5134 +36 5135 +41 5135 +44 5136 +48 5136 +59 5137 +61 5137 +64 5138 +74 5138 +74 5139 +72 5140 +74 5140 +74 5141 +77 5141 +70 5142 +78 5142 +69 5143 +85 5143 +48 5144 +86 5144 +47 5145 +87 5145 +24 5146 +87 5146 +24 5147 +93 5147 +1 5148 +100 5148 +22 5149 +26 5149 +25 5150 +29 5150 +28 5151 +57 5151 +56 5152 +53 5153 +57 5153 +61 5153 +52 5154 +31 5155 +33 5155 +33 5156 +35 5156 +28 5157 +37 5157 +35 5158 +54 5158 +29 5159 +48 5159 +30 5160 +32 5160 +36 5161 +41 5161 +44 5162 +48 5162 +59 5163 +61 5163 +64 5164 +74 5164 +74 5165 +72 5166 +74 5166 +74 5167 +77 5167 +70 5168 +78 5168 +69 5169 +85 5169 +48 5170 +86 5170 +47 5171 +87 5171 +24 5172 +87 5172 +24 5173 +93 5173 +1 5174 +100 5174 +22 5175 +26 5175 +25 5176 +29 5176 +28 5177 +57 5177 +56 5178 +53 5179 +57 5179 +61 5179 +52 5180 +31 5181 +33 5181 +33 5182 +35 5182 +28 5183 +37 5183 +35 5184 +54 5184 +29 5185 +48 5185 +30 5186 +32 5186 +36 5187 +41 5187 +44 5188 +48 5188 +59 5189 +61 5189 +64 5190 +74 5190 +74 5191 +72 5192 +74 5192 +74 5193 +77 5193 +70 5194 +78 5194 +69 5195 +85 5195 +48 5196 +86 5196 +47 5197 +87 5197 +24 5198 +87 5198 +24 5199 +93 5199 +1 5200 +100 5200 diff --git a/2018/republic/10-12_d2/sarpe/tests/input.8 b/2018/republic/10-12_d2/sarpe/tests/input.8 new file mode 100644 index 0000000..428ca10 --- /dev/null +++ b/2018/republic/10-12_d2/sarpe/tests/input.8 @@ -0,0 +1,10001 @@ +10000 +5200 1 +5000 2 +5400 2 +5300 3 +5800 3 +5500 4 +5700 4 +6000 5 +7700 5 +5500 6 +5600 6 +5600 7 +5900 7 +4800 8 +6000 8 +4700 9 +7500 9 +2700 10 +7100 10 +4100 11 +7300 11 +4700 12 +6300 12 +4800 13 +5100 13 +2900 14 +5200 14 +2800 15 +7000 15 +6500 16 +7900 16 +4600 17 +7700 17 +3800 18 +8800 18 +6200 19 +6500 19 +6600 20 +7600 20 +100 21 +5000 21 +2000 22 +6700 22 +6600 23 +10000 23 +4800 24 +6100 24 +8600 24 +7900 25 +8000 25 +5200 26 +5000 27 +5400 27 +5300 28 +5800 28 +5500 29 +5700 29 +6000 30 +7700 30 +5500 31 +5600 31 +5600 32 +5900 32 +4800 33 +6000 33 +4700 34 +7500 34 +2700 35 +7100 35 +4100 36 +7300 36 +4700 37 +6300 37 +4800 38 +5100 38 +2900 39 +5200 39 +2800 40 +7000 40 +6500 41 +7900 41 +4600 42 +7700 42 +3800 43 +8800 43 +6200 44 +6500 44 +6600 45 +7600 45 +100 46 +5000 46 +2000 47 +6700 47 +6600 48 +10000 48 +4800 49 +6100 49 +8600 49 +7900 50 +8000 50 +5200 51 +5000 52 +5400 52 +5300 53 +5800 53 +5500 54 +5700 54 +6000 55 +7700 55 +5500 56 +5600 56 +5600 57 +5900 57 +4800 58 +6000 58 +4700 59 +7500 59 +2700 60 +7100 60 +4100 61 +7300 61 +4700 62 +6300 62 +4800 63 +5100 63 +2900 64 +5200 64 +2800 65 +7000 65 +6500 66 +7900 66 +4600 67 +7700 67 +3800 68 +8800 68 +6200 69 +6500 69 +6600 70 +7600 70 +100 71 +5000 71 +2000 72 +6700 72 +6600 73 +10000 73 +4800 74 +6100 74 +8600 74 +7900 75 +8000 75 +5200 76 +5000 77 +5400 77 +5300 78 +5800 78 +5500 79 +5700 79 +6000 80 +7700 80 +5500 81 +5600 81 +5600 82 +5900 82 +4800 83 +6000 83 +4700 84 +7500 84 +2700 85 +7100 85 +4100 86 +7300 86 +4700 87 +6300 87 +4800 88 +5100 88 +2900 89 +5200 89 +2800 90 +7000 90 +6500 91 +7900 91 +4600 92 +7700 92 +3800 93 +8800 93 +6200 94 +6500 94 +6600 95 +7600 95 +100 96 +5000 96 +2000 97 +6700 97 +6600 98 +10000 98 +4800 99 +6100 99 +8600 99 +7900 100 +8000 100 +5200 101 +5000 102 +5400 102 +5300 103 +5800 103 +5500 104 +5700 104 +6000 105 +7700 105 +5500 106 +5600 106 +5600 107 +5900 107 +4800 108 +6000 108 +4700 109 +7500 109 +2700 110 +7100 110 +4100 111 +7300 111 +4700 112 +6300 112 +4800 113 +5100 113 +2900 114 +5200 114 +2800 115 +7000 115 +6500 116 +7900 116 +4600 117 +7700 117 +3800 118 +8800 118 +6200 119 +6500 119 +6600 120 +7600 120 +100 121 +5000 121 +2000 122 +6700 122 +6600 123 +10000 123 +4800 124 +6100 124 +8600 124 +7900 125 +8000 125 +5200 126 +5000 127 +5400 127 +5300 128 +5800 128 +5500 129 +5700 129 +6000 130 +7700 130 +5500 131 +5600 131 +5600 132 +5900 132 +4800 133 +6000 133 +4700 134 +7500 134 +2700 135 +7100 135 +4100 136 +7300 136 +4700 137 +6300 137 +4800 138 +5100 138 +2900 139 +5200 139 +2800 140 +7000 140 +6500 141 +7900 141 +4600 142 +7700 142 +3800 143 +8800 143 +6200 144 +6500 144 +6600 145 +7600 145 +100 146 +5000 146 +2000 147 +6700 147 +6600 148 +10000 148 +4800 149 +6100 149 +8600 149 +7900 150 +8000 150 +5200 151 +5000 152 +5400 152 +5300 153 +5800 153 +5500 154 +5700 154 +6000 155 +7700 155 +5500 156 +5600 156 +5600 157 +5900 157 +4800 158 +6000 158 +4700 159 +7500 159 +2700 160 +7100 160 +4100 161 +7300 161 +4700 162 +6300 162 +4800 163 +5100 163 +2900 164 +5200 164 +2800 165 +7000 165 +6500 166 +7900 166 +4600 167 +7700 167 +3800 168 +8800 168 +6200 169 +6500 169 +6600 170 +7600 170 +100 171 +5000 171 +2000 172 +6700 172 +6600 173 +10000 173 +4800 174 +6100 174 +8600 174 +7900 175 +8000 175 +5200 176 +5000 177 +5400 177 +5300 178 +5800 178 +5500 179 +5700 179 +6000 180 +7700 180 +5500 181 +5600 181 +5600 182 +5900 182 +4800 183 +6000 183 +4700 184 +7500 184 +2700 185 +7100 185 +4100 186 +7300 186 +4700 187 +6300 187 +4800 188 +5100 188 +2900 189 +5200 189 +2800 190 +7000 190 +6500 191 +7900 191 +4600 192 +7700 192 +3800 193 +8800 193 +6200 194 +6500 194 +6600 195 +7600 195 +100 196 +5000 196 +2000 197 +6700 197 +6600 198 +10000 198 +4800 199 +6100 199 +8600 199 +7900 200 +8000 200 +5200 201 +5000 202 +5400 202 +5300 203 +5800 203 +5500 204 +5700 204 +6000 205 +7700 205 +5500 206 +5600 206 +5600 207 +5900 207 +4800 208 +6000 208 +4700 209 +7500 209 +2700 210 +7100 210 +4100 211 +7300 211 +4700 212 +6300 212 +4800 213 +5100 213 +2900 214 +5200 214 +2800 215 +7000 215 +6500 216 +7900 216 +4600 217 +7700 217 +3800 218 +8800 218 +6200 219 +6500 219 +6600 220 +7600 220 +100 221 +5000 221 +2000 222 +6700 222 +6600 223 +10000 223 +4800 224 +6100 224 +8600 224 +7900 225 +8000 225 +5200 226 +5000 227 +5400 227 +5300 228 +5800 228 +5500 229 +5700 229 +6000 230 +7700 230 +5500 231 +5600 231 +5600 232 +5900 232 +4800 233 +6000 233 +4700 234 +7500 234 +2700 235 +7100 235 +4100 236 +7300 236 +4700 237 +6300 237 +4800 238 +5100 238 +2900 239 +5200 239 +2800 240 +7000 240 +6500 241 +7900 241 +4600 242 +7700 242 +3800 243 +8800 243 +6200 244 +6500 244 +6600 245 +7600 245 +100 246 +5000 246 +2000 247 +6700 247 +6600 248 +10000 248 +4800 249 +6100 249 +8600 249 +7900 250 +8000 250 +5200 251 +5000 252 +5400 252 +5300 253 +5800 253 +5500 254 +5700 254 +6000 255 +7700 255 +5500 256 +5600 256 +5600 257 +5900 257 +4800 258 +6000 258 +4700 259 +7500 259 +2700 260 +7100 260 +4100 261 +7300 261 +4700 262 +6300 262 +4800 263 +5100 263 +2900 264 +5200 264 +2800 265 +7000 265 +6500 266 +7900 266 +4600 267 +7700 267 +3800 268 +8800 268 +6200 269 +6500 269 +6600 270 +7600 270 +100 271 +5000 271 +2000 272 +6700 272 +6600 273 +10000 273 +4800 274 +6100 274 +8600 274 +7900 275 +8000 275 +5200 276 +5000 277 +5400 277 +5300 278 +5800 278 +5500 279 +5700 279 +6000 280 +7700 280 +5500 281 +5600 281 +5600 282 +5900 282 +4800 283 +6000 283 +4700 284 +7500 284 +2700 285 +7100 285 +4100 286 +7300 286 +4700 287 +6300 287 +4800 288 +5100 288 +2900 289 +5200 289 +2800 290 +7000 290 +6500 291 +7900 291 +4600 292 +7700 292 +3800 293 +8800 293 +6200 294 +6500 294 +6600 295 +7600 295 +100 296 +5000 296 +2000 297 +6700 297 +6600 298 +10000 298 +4800 299 +6100 299 +8600 299 +7900 300 +8000 300 +5200 301 +5000 302 +5400 302 +5300 303 +5800 303 +5500 304 +5700 304 +6000 305 +7700 305 +5500 306 +5600 306 +5600 307 +5900 307 +4800 308 +6000 308 +4700 309 +7500 309 +2700 310 +7100 310 +4100 311 +7300 311 +4700 312 +6300 312 +4800 313 +5100 313 +2900 314 +5200 314 +2800 315 +7000 315 +6500 316 +7900 316 +4600 317 +7700 317 +3800 318 +8800 318 +6200 319 +6500 319 +6600 320 +7600 320 +100 321 +5000 321 +2000 322 +6700 322 +6600 323 +10000 323 +4800 324 +6100 324 +8600 324 +7900 325 +8000 325 +5200 326 +5000 327 +5400 327 +5300 328 +5800 328 +5500 329 +5700 329 +6000 330 +7700 330 +5500 331 +5600 331 +5600 332 +5900 332 +4800 333 +6000 333 +4700 334 +7500 334 +2700 335 +7100 335 +4100 336 +7300 336 +4700 337 +6300 337 +4800 338 +5100 338 +2900 339 +5200 339 +2800 340 +7000 340 +6500 341 +7900 341 +4600 342 +7700 342 +3800 343 +8800 343 +6200 344 +6500 344 +6600 345 +7600 345 +100 346 +5000 346 +2000 347 +6700 347 +6600 348 +10000 348 +4800 349 +6100 349 +8600 349 +7900 350 +8000 350 +5200 351 +5000 352 +5400 352 +5300 353 +5800 353 +5500 354 +5700 354 +6000 355 +7700 355 +5500 356 +5600 356 +5600 357 +5900 357 +4800 358 +6000 358 +4700 359 +7500 359 +2700 360 +7100 360 +4100 361 +7300 361 +4700 362 +6300 362 +4800 363 +5100 363 +2900 364 +5200 364 +2800 365 +7000 365 +6500 366 +7900 366 +4600 367 +7700 367 +3800 368 +8800 368 +6200 369 +6500 369 +6600 370 +7600 370 +100 371 +5000 371 +2000 372 +6700 372 +6600 373 +10000 373 +4800 374 +6100 374 +8600 374 +7900 375 +8000 375 +5200 376 +5000 377 +5400 377 +5300 378 +5800 378 +5500 379 +5700 379 +6000 380 +7700 380 +5500 381 +5600 381 +5600 382 +5900 382 +4800 383 +6000 383 +4700 384 +7500 384 +2700 385 +7100 385 +4100 386 +7300 386 +4700 387 +6300 387 +4800 388 +5100 388 +2900 389 +5200 389 +2800 390 +7000 390 +6500 391 +7900 391 +4600 392 +7700 392 +3800 393 +8800 393 +6200 394 +6500 394 +6600 395 +7600 395 +100 396 +5000 396 +2000 397 +6700 397 +6600 398 +10000 398 +4800 399 +6100 399 +8600 399 +7900 400 +8000 400 +5200 401 +5000 402 +5400 402 +5300 403 +5800 403 +5500 404 +5700 404 +6000 405 +7700 405 +5500 406 +5600 406 +5600 407 +5900 407 +4800 408 +6000 408 +4700 409 +7500 409 +2700 410 +7100 410 +4100 411 +7300 411 +4700 412 +6300 412 +4800 413 +5100 413 +2900 414 +5200 414 +2800 415 +7000 415 +6500 416 +7900 416 +4600 417 +7700 417 +3800 418 +8800 418 +6200 419 +6500 419 +6600 420 +7600 420 +100 421 +5000 421 +2000 422 +6700 422 +6600 423 +10000 423 +4800 424 +6100 424 +8600 424 +7900 425 +8000 425 +5200 426 +5000 427 +5400 427 +5300 428 +5800 428 +5500 429 +5700 429 +6000 430 +7700 430 +5500 431 +5600 431 +5600 432 +5900 432 +4800 433 +6000 433 +4700 434 +7500 434 +2700 435 +7100 435 +4100 436 +7300 436 +4700 437 +6300 437 +4800 438 +5100 438 +2900 439 +5200 439 +2800 440 +7000 440 +6500 441 +7900 441 +4600 442 +7700 442 +3800 443 +8800 443 +6200 444 +6500 444 +6600 445 +7600 445 +100 446 +5000 446 +2000 447 +6700 447 +6600 448 +10000 448 +4800 449 +6100 449 +8600 449 +7900 450 +8000 450 +5200 451 +5000 452 +5400 452 +5300 453 +5800 453 +5500 454 +5700 454 +6000 455 +7700 455 +5500 456 +5600 456 +5600 457 +5900 457 +4800 458 +6000 458 +4700 459 +7500 459 +2700 460 +7100 460 +4100 461 +7300 461 +4700 462 +6300 462 +4800 463 +5100 463 +2900 464 +5200 464 +2800 465 +7000 465 +6500 466 +7900 466 +4600 467 +7700 467 +3800 468 +8800 468 +6200 469 +6500 469 +6600 470 +7600 470 +100 471 +5000 471 +2000 472 +6700 472 +6600 473 +10000 473 +4800 474 +6100 474 +8600 474 +7900 475 +8000 475 +5200 476 +5000 477 +5400 477 +5300 478 +5800 478 +5500 479 +5700 479 +6000 480 +7700 480 +5500 481 +5600 481 +5600 482 +5900 482 +4800 483 +6000 483 +4700 484 +7500 484 +2700 485 +7100 485 +4100 486 +7300 486 +4700 487 +6300 487 +4800 488 +5100 488 +2900 489 +5200 489 +2800 490 +7000 490 +6500 491 +7900 491 +4600 492 +7700 492 +3800 493 +8800 493 +6200 494 +6500 494 +6600 495 +7600 495 +100 496 +5000 496 +2000 497 +6700 497 +6600 498 +10000 498 +4800 499 +6100 499 +8600 499 +7900 500 +8000 500 +5200 501 +5000 502 +5400 502 +5300 503 +5800 503 +5500 504 +5700 504 +6000 505 +7700 505 +5500 506 +5600 506 +5600 507 +5900 507 +4800 508 +6000 508 +4700 509 +7500 509 +2700 510 +7100 510 +4100 511 +7300 511 +4700 512 +6300 512 +4800 513 +5100 513 +2900 514 +5200 514 +2800 515 +7000 515 +6500 516 +7900 516 +4600 517 +7700 517 +3800 518 +8800 518 +6200 519 +6500 519 +6600 520 +7600 520 +100 521 +5000 521 +2000 522 +6700 522 +6600 523 +10000 523 +4800 524 +6100 524 +8600 524 +7900 525 +8000 525 +5200 526 +5000 527 +5400 527 +5300 528 +5800 528 +5500 529 +5700 529 +6000 530 +7700 530 +5500 531 +5600 531 +5600 532 +5900 532 +4800 533 +6000 533 +4700 534 +7500 534 +2700 535 +7100 535 +4100 536 +7300 536 +4700 537 +6300 537 +4800 538 +5100 538 +2900 539 +5200 539 +2800 540 +7000 540 +6500 541 +7900 541 +4600 542 +7700 542 +3800 543 +8800 543 +6200 544 +6500 544 +6600 545 +7600 545 +100 546 +5000 546 +2000 547 +6700 547 +6600 548 +10000 548 +4800 549 +6100 549 +8600 549 +7900 550 +8000 550 +5200 551 +5000 552 +5400 552 +5300 553 +5800 553 +5500 554 +5700 554 +6000 555 +7700 555 +5500 556 +5600 556 +5600 557 +5900 557 +4800 558 +6000 558 +4700 559 +7500 559 +2700 560 +7100 560 +4100 561 +7300 561 +4700 562 +6300 562 +4800 563 +5100 563 +2900 564 +5200 564 +2800 565 +7000 565 +6500 566 +7900 566 +4600 567 +7700 567 +3800 568 +8800 568 +6200 569 +6500 569 +6600 570 +7600 570 +100 571 +5000 571 +2000 572 +6700 572 +6600 573 +10000 573 +4800 574 +6100 574 +8600 574 +7900 575 +8000 575 +5200 576 +5000 577 +5400 577 +5300 578 +5800 578 +5500 579 +5700 579 +6000 580 +7700 580 +5500 581 +5600 581 +5600 582 +5900 582 +4800 583 +6000 583 +4700 584 +7500 584 +2700 585 +7100 585 +4100 586 +7300 586 +4700 587 +6300 587 +4800 588 +5100 588 +2900 589 +5200 589 +2800 590 +7000 590 +6500 591 +7900 591 +4600 592 +7700 592 +3800 593 +8800 593 +6200 594 +6500 594 +6600 595 +7600 595 +100 596 +5000 596 +2000 597 +6700 597 +6600 598 +10000 598 +4800 599 +6100 599 +8600 599 +7900 600 +8000 600 +5200 601 +5000 602 +5400 602 +5300 603 +5800 603 +5500 604 +5700 604 +6000 605 +7700 605 +5500 606 +5600 606 +5600 607 +5900 607 +4800 608 +6000 608 +4700 609 +7500 609 +2700 610 +7100 610 +4100 611 +7300 611 +4700 612 +6300 612 +4800 613 +5100 613 +2900 614 +5200 614 +2800 615 +7000 615 +6500 616 +7900 616 +4600 617 +7700 617 +3800 618 +8800 618 +6200 619 +6500 619 +6600 620 +7600 620 +100 621 +5000 621 +2000 622 +6700 622 +6600 623 +10000 623 +4800 624 +6100 624 +8600 624 +7900 625 +8000 625 +5200 626 +5000 627 +5400 627 +5300 628 +5800 628 +5500 629 +5700 629 +6000 630 +7700 630 +5500 631 +5600 631 +5600 632 +5900 632 +4800 633 +6000 633 +4700 634 +7500 634 +2700 635 +7100 635 +4100 636 +7300 636 +4700 637 +6300 637 +4800 638 +5100 638 +2900 639 +5200 639 +2800 640 +7000 640 +6500 641 +7900 641 +4600 642 +7700 642 +3800 643 +8800 643 +6200 644 +6500 644 +6600 645 +7600 645 +100 646 +5000 646 +2000 647 +6700 647 +6600 648 +10000 648 +4800 649 +6100 649 +8600 649 +7900 650 +8000 650 +5200 651 +5000 652 +5400 652 +5300 653 +5800 653 +5500 654 +5700 654 +6000 655 +7700 655 +5500 656 +5600 656 +5600 657 +5900 657 +4800 658 +6000 658 +4700 659 +7500 659 +2700 660 +7100 660 +4100 661 +7300 661 +4700 662 +6300 662 +4800 663 +5100 663 +2900 664 +5200 664 +2800 665 +7000 665 +6500 666 +7900 666 +4600 667 +7700 667 +3800 668 +8800 668 +6200 669 +6500 669 +6600 670 +7600 670 +100 671 +5000 671 +2000 672 +6700 672 +6600 673 +10000 673 +4800 674 +6100 674 +8600 674 +7900 675 +8000 675 +5200 676 +5000 677 +5400 677 +5300 678 +5800 678 +5500 679 +5700 679 +6000 680 +7700 680 +5500 681 +5600 681 +5600 682 +5900 682 +4800 683 +6000 683 +4700 684 +7500 684 +2700 685 +7100 685 +4100 686 +7300 686 +4700 687 +6300 687 +4800 688 +5100 688 +2900 689 +5200 689 +2800 690 +7000 690 +6500 691 +7900 691 +4600 692 +7700 692 +3800 693 +8800 693 +6200 694 +6500 694 +6600 695 +7600 695 +100 696 +5000 696 +2000 697 +6700 697 +6600 698 +10000 698 +4800 699 +6100 699 +8600 699 +7900 700 +8000 700 +5200 701 +5000 702 +5400 702 +5300 703 +5800 703 +5500 704 +5700 704 +6000 705 +7700 705 +5500 706 +5600 706 +5600 707 +5900 707 +4800 708 +6000 708 +4700 709 +7500 709 +2700 710 +7100 710 +4100 711 +7300 711 +4700 712 +6300 712 +4800 713 +5100 713 +2900 714 +5200 714 +2800 715 +7000 715 +6500 716 +7900 716 +4600 717 +7700 717 +3800 718 +8800 718 +6200 719 +6500 719 +6600 720 +7600 720 +100 721 +5000 721 +2000 722 +6700 722 +6600 723 +10000 723 +4800 724 +6100 724 +8600 724 +7900 725 +8000 725 +5200 726 +5000 727 +5400 727 +5300 728 +5800 728 +5500 729 +5700 729 +6000 730 +7700 730 +5500 731 +5600 731 +5600 732 +5900 732 +4800 733 +6000 733 +4700 734 +7500 734 +2700 735 +7100 735 +4100 736 +7300 736 +4700 737 +6300 737 +4800 738 +5100 738 +2900 739 +5200 739 +2800 740 +7000 740 +6500 741 +7900 741 +4600 742 +7700 742 +3800 743 +8800 743 +6200 744 +6500 744 +6600 745 +7600 745 +100 746 +5000 746 +2000 747 +6700 747 +6600 748 +10000 748 +4800 749 +6100 749 +8600 749 +7900 750 +8000 750 +5200 751 +5000 752 +5400 752 +5300 753 +5800 753 +5500 754 +5700 754 +6000 755 +7700 755 +5500 756 +5600 756 +5600 757 +5900 757 +4800 758 +6000 758 +4700 759 +7500 759 +2700 760 +7100 760 +4100 761 +7300 761 +4700 762 +6300 762 +4800 763 +5100 763 +2900 764 +5200 764 +2800 765 +7000 765 +6500 766 +7900 766 +4600 767 +7700 767 +3800 768 +8800 768 +6200 769 +6500 769 +6600 770 +7600 770 +100 771 +5000 771 +2000 772 +6700 772 +6600 773 +10000 773 +4800 774 +6100 774 +8600 774 +7900 775 +8000 775 +5200 776 +5000 777 +5400 777 +5300 778 +5800 778 +5500 779 +5700 779 +6000 780 +7700 780 +5500 781 +5600 781 +5600 782 +5900 782 +4800 783 +6000 783 +4700 784 +7500 784 +2700 785 +7100 785 +4100 786 +7300 786 +4700 787 +6300 787 +4800 788 +5100 788 +2900 789 +5200 789 +2800 790 +7000 790 +6500 791 +7900 791 +4600 792 +7700 792 +3800 793 +8800 793 +6200 794 +6500 794 +6600 795 +7600 795 +100 796 +5000 796 +2000 797 +6700 797 +6600 798 +10000 798 +4800 799 +6100 799 +8600 799 +7900 800 +8000 800 +5200 801 +5000 802 +5400 802 +5300 803 +5800 803 +5500 804 +5700 804 +6000 805 +7700 805 +5500 806 +5600 806 +5600 807 +5900 807 +4800 808 +6000 808 +4700 809 +7500 809 +2700 810 +7100 810 +4100 811 +7300 811 +4700 812 +6300 812 +4800 813 +5100 813 +2900 814 +5200 814 +2800 815 +7000 815 +6500 816 +7900 816 +4600 817 +7700 817 +3800 818 +8800 818 +6200 819 +6500 819 +6600 820 +7600 820 +100 821 +5000 821 +2000 822 +6700 822 +6600 823 +10000 823 +4800 824 +6100 824 +8600 824 +7900 825 +8000 825 +5200 826 +5000 827 +5400 827 +5300 828 +5800 828 +5500 829 +5700 829 +6000 830 +7700 830 +5500 831 +5600 831 +5600 832 +5900 832 +4800 833 +6000 833 +4700 834 +7500 834 +2700 835 +7100 835 +4100 836 +7300 836 +4700 837 +6300 837 +4800 838 +5100 838 +2900 839 +5200 839 +2800 840 +7000 840 +6500 841 +7900 841 +4600 842 +7700 842 +3800 843 +8800 843 +6200 844 +6500 844 +6600 845 +7600 845 +100 846 +5000 846 +2000 847 +6700 847 +6600 848 +10000 848 +4800 849 +6100 849 +8600 849 +7900 850 +8000 850 +5200 851 +5000 852 +5400 852 +5300 853 +5800 853 +5500 854 +5700 854 +6000 855 +7700 855 +5500 856 +5600 856 +5600 857 +5900 857 +4800 858 +6000 858 +4700 859 +7500 859 +2700 860 +7100 860 +4100 861 +7300 861 +4700 862 +6300 862 +4800 863 +5100 863 +2900 864 +5200 864 +2800 865 +7000 865 +6500 866 +7900 866 +4600 867 +7700 867 +3800 868 +8800 868 +6200 869 +6500 869 +6600 870 +7600 870 +100 871 +5000 871 +2000 872 +6700 872 +6600 873 +10000 873 +4800 874 +6100 874 +8600 874 +7900 875 +8000 875 +5200 876 +5000 877 +5400 877 +5300 878 +5800 878 +5500 879 +5700 879 +6000 880 +7700 880 +5500 881 +5600 881 +5600 882 +5900 882 +4800 883 +6000 883 +4700 884 +7500 884 +2700 885 +7100 885 +4100 886 +7300 886 +4700 887 +6300 887 +4800 888 +5100 888 +2900 889 +5200 889 +2800 890 +7000 890 +6500 891 +7900 891 +4600 892 +7700 892 +3800 893 +8800 893 +6200 894 +6500 894 +6600 895 +7600 895 +100 896 +5000 896 +2000 897 +6700 897 +6600 898 +10000 898 +4800 899 +6100 899 +8600 899 +7900 900 +8000 900 +5200 901 +5000 902 +5400 902 +5300 903 +5800 903 +5500 904 +5700 904 +6000 905 +7700 905 +5500 906 +5600 906 +5600 907 +5900 907 +4800 908 +6000 908 +4700 909 +7500 909 +2700 910 +7100 910 +4100 911 +7300 911 +4700 912 +6300 912 +4800 913 +5100 913 +2900 914 +5200 914 +2800 915 +7000 915 +6500 916 +7900 916 +4600 917 +7700 917 +3800 918 +8800 918 +6200 919 +6500 919 +6600 920 +7600 920 +100 921 +5000 921 +2000 922 +6700 922 +6600 923 +10000 923 +4800 924 +6100 924 +8600 924 +7900 925 +8000 925 +5200 926 +5000 927 +5400 927 +5300 928 +5800 928 +5500 929 +5700 929 +6000 930 +7700 930 +5500 931 +5600 931 +5600 932 +5900 932 +4800 933 +6000 933 +4700 934 +7500 934 +2700 935 +7100 935 +4100 936 +7300 936 +4700 937 +6300 937 +4800 938 +5100 938 +2900 939 +5200 939 +2800 940 +7000 940 +6500 941 +7900 941 +4600 942 +7700 942 +3800 943 +8800 943 +6200 944 +6500 944 +6600 945 +7600 945 +100 946 +5000 946 +2000 947 +6700 947 +6600 948 +10000 948 +4800 949 +6100 949 +8600 949 +7900 950 +8000 950 +5200 951 +5000 952 +5400 952 +5300 953 +5800 953 +5500 954 +5700 954 +6000 955 +7700 955 +5500 956 +5600 956 +5600 957 +5900 957 +4800 958 +6000 958 +4700 959 +7500 959 +2700 960 +7100 960 +4100 961 +7300 961 +4700 962 +6300 962 +4800 963 +5100 963 +2900 964 +5200 964 +2800 965 +7000 965 +6500 966 +7900 966 +4600 967 +7700 967 +3800 968 +8800 968 +6200 969 +6500 969 +6600 970 +7600 970 +100 971 +5000 971 +2000 972 +6700 972 +6600 973 +10000 973 +4800 974 +6100 974 +8600 974 +7900 975 +8000 975 +5200 976 +5000 977 +5400 977 +5300 978 +5800 978 +5500 979 +5700 979 +6000 980 +7700 980 +5500 981 +5600 981 +5600 982 +5900 982 +4800 983 +6000 983 +4700 984 +7500 984 +2700 985 +7100 985 +4100 986 +7300 986 +4700 987 +6300 987 +4800 988 +5100 988 +2900 989 +5200 989 +2800 990 +7000 990 +6500 991 +7900 991 +4600 992 +7700 992 +3800 993 +8800 993 +6200 994 +6500 994 +6600 995 +7600 995 +100 996 +5000 996 +2000 997 +6700 997 +6600 998 +10000 998 +4800 999 +6100 999 +8600 999 +7900 1000 +8000 1000 +5200 1001 +5000 1002 +5400 1002 +5300 1003 +5800 1003 +5500 1004 +5700 1004 +6000 1005 +7700 1005 +5500 1006 +5600 1006 +5600 1007 +5900 1007 +4800 1008 +6000 1008 +4700 1009 +7500 1009 +2700 1010 +7100 1010 +4100 1011 +7300 1011 +4700 1012 +6300 1012 +4800 1013 +5100 1013 +2900 1014 +5200 1014 +2800 1015 +7000 1015 +6500 1016 +7900 1016 +4600 1017 +7700 1017 +3800 1018 +8800 1018 +6200 1019 +6500 1019 +6600 1020 +7600 1020 +100 1021 +5000 1021 +2000 1022 +6700 1022 +6600 1023 +10000 1023 +4800 1024 +6100 1024 +8600 1024 +7900 1025 +8000 1025 +5200 1026 +5000 1027 +5400 1027 +5300 1028 +5800 1028 +5500 1029 +5700 1029 +6000 1030 +7700 1030 +5500 1031 +5600 1031 +5600 1032 +5900 1032 +4800 1033 +6000 1033 +4700 1034 +7500 1034 +2700 1035 +7100 1035 +4100 1036 +7300 1036 +4700 1037 +6300 1037 +4800 1038 +5100 1038 +2900 1039 +5200 1039 +2800 1040 +7000 1040 +6500 1041 +7900 1041 +4600 1042 +7700 1042 +3800 1043 +8800 1043 +6200 1044 +6500 1044 +6600 1045 +7600 1045 +100 1046 +5000 1046 +2000 1047 +6700 1047 +6600 1048 +10000 1048 +4800 1049 +6100 1049 +8600 1049 +7900 1050 +8000 1050 +5200 1051 +5000 1052 +5400 1052 +5300 1053 +5800 1053 +5500 1054 +5700 1054 +6000 1055 +7700 1055 +5500 1056 +5600 1056 +5600 1057 +5900 1057 +4800 1058 +6000 1058 +4700 1059 +7500 1059 +2700 1060 +7100 1060 +4100 1061 +7300 1061 +4700 1062 +6300 1062 +4800 1063 +5100 1063 +2900 1064 +5200 1064 +2800 1065 +7000 1065 +6500 1066 +7900 1066 +4600 1067 +7700 1067 +3800 1068 +8800 1068 +6200 1069 +6500 1069 +6600 1070 +7600 1070 +100 1071 +5000 1071 +2000 1072 +6700 1072 +6600 1073 +10000 1073 +4800 1074 +6100 1074 +8600 1074 +7900 1075 +8000 1075 +5200 1076 +5000 1077 +5400 1077 +5300 1078 +5800 1078 +5500 1079 +5700 1079 +6000 1080 +7700 1080 +5500 1081 +5600 1081 +5600 1082 +5900 1082 +4800 1083 +6000 1083 +4700 1084 +7500 1084 +2700 1085 +7100 1085 +4100 1086 +7300 1086 +4700 1087 +6300 1087 +4800 1088 +5100 1088 +2900 1089 +5200 1089 +2800 1090 +7000 1090 +6500 1091 +7900 1091 +4600 1092 +7700 1092 +3800 1093 +8800 1093 +6200 1094 +6500 1094 +6600 1095 +7600 1095 +100 1096 +5000 1096 +2000 1097 +6700 1097 +6600 1098 +10000 1098 +4800 1099 +6100 1099 +8600 1099 +7900 1100 +8000 1100 +5200 1101 +5000 1102 +5400 1102 +5300 1103 +5800 1103 +5500 1104 +5700 1104 +6000 1105 +7700 1105 +5500 1106 +5600 1106 +5600 1107 +5900 1107 +4800 1108 +6000 1108 +4700 1109 +7500 1109 +2700 1110 +7100 1110 +4100 1111 +7300 1111 +4700 1112 +6300 1112 +4800 1113 +5100 1113 +2900 1114 +5200 1114 +2800 1115 +7000 1115 +6500 1116 +7900 1116 +4600 1117 +7700 1117 +3800 1118 +8800 1118 +6200 1119 +6500 1119 +6600 1120 +7600 1120 +100 1121 +5000 1121 +2000 1122 +6700 1122 +6600 1123 +10000 1123 +4800 1124 +6100 1124 +8600 1124 +7900 1125 +8000 1125 +5200 1126 +5000 1127 +5400 1127 +5300 1128 +5800 1128 +5500 1129 +5700 1129 +6000 1130 +7700 1130 +5500 1131 +5600 1131 +5600 1132 +5900 1132 +4800 1133 +6000 1133 +4700 1134 +7500 1134 +2700 1135 +7100 1135 +4100 1136 +7300 1136 +4700 1137 +6300 1137 +4800 1138 +5100 1138 +2900 1139 +5200 1139 +2800 1140 +7000 1140 +6500 1141 +7900 1141 +4600 1142 +7700 1142 +3800 1143 +8800 1143 +6200 1144 +6500 1144 +6600 1145 +7600 1145 +100 1146 +5000 1146 +2000 1147 +6700 1147 +6600 1148 +10000 1148 +4800 1149 +6100 1149 +8600 1149 +7900 1150 +8000 1150 +5200 1151 +5000 1152 +5400 1152 +5300 1153 +5800 1153 +5500 1154 +5700 1154 +6000 1155 +7700 1155 +5500 1156 +5600 1156 +5600 1157 +5900 1157 +4800 1158 +6000 1158 +4700 1159 +7500 1159 +2700 1160 +7100 1160 +4100 1161 +7300 1161 +4700 1162 +6300 1162 +4800 1163 +5100 1163 +2900 1164 +5200 1164 +2800 1165 +7000 1165 +6500 1166 +7900 1166 +4600 1167 +7700 1167 +3800 1168 +8800 1168 +6200 1169 +6500 1169 +6600 1170 +7600 1170 +100 1171 +5000 1171 +2000 1172 +6700 1172 +6600 1173 +10000 1173 +4800 1174 +6100 1174 +8600 1174 +7900 1175 +8000 1175 +5200 1176 +5000 1177 +5400 1177 +5300 1178 +5800 1178 +5500 1179 +5700 1179 +6000 1180 +7700 1180 +5500 1181 +5600 1181 +5600 1182 +5900 1182 +4800 1183 +6000 1183 +4700 1184 +7500 1184 +2700 1185 +7100 1185 +4100 1186 +7300 1186 +4700 1187 +6300 1187 +4800 1188 +5100 1188 +2900 1189 +5200 1189 +2800 1190 +7000 1190 +6500 1191 +7900 1191 +4600 1192 +7700 1192 +3800 1193 +8800 1193 +6200 1194 +6500 1194 +6600 1195 +7600 1195 +100 1196 +5000 1196 +2000 1197 +6700 1197 +6600 1198 +10000 1198 +4800 1199 +6100 1199 +8600 1199 +7900 1200 +8000 1200 +5200 1201 +5000 1202 +5400 1202 +5300 1203 +5800 1203 +5500 1204 +5700 1204 +6000 1205 +7700 1205 +5500 1206 +5600 1206 +5600 1207 +5900 1207 +4800 1208 +6000 1208 +4700 1209 +7500 1209 +2700 1210 +7100 1210 +4100 1211 +7300 1211 +4700 1212 +6300 1212 +4800 1213 +5100 1213 +2900 1214 +5200 1214 +2800 1215 +7000 1215 +6500 1216 +7900 1216 +4600 1217 +7700 1217 +3800 1218 +8800 1218 +6200 1219 +6500 1219 +6600 1220 +7600 1220 +100 1221 +5000 1221 +2000 1222 +6700 1222 +6600 1223 +10000 1223 +4800 1224 +6100 1224 +8600 1224 +7900 1225 +8000 1225 +5200 1226 +5000 1227 +5400 1227 +5300 1228 +5800 1228 +5500 1229 +5700 1229 +6000 1230 +7700 1230 +5500 1231 +5600 1231 +5600 1232 +5900 1232 +4800 1233 +6000 1233 +4700 1234 +7500 1234 +2700 1235 +7100 1235 +4100 1236 +7300 1236 +4700 1237 +6300 1237 +4800 1238 +5100 1238 +2900 1239 +5200 1239 +2800 1240 +7000 1240 +6500 1241 +7900 1241 +4600 1242 +7700 1242 +3800 1243 +8800 1243 +6200 1244 +6500 1244 +6600 1245 +7600 1245 +100 1246 +5000 1246 +2000 1247 +6700 1247 +6600 1248 +10000 1248 +4800 1249 +6100 1249 +8600 1249 +7900 1250 +8000 1250 +5200 1251 +5000 1252 +5400 1252 +5300 1253 +5800 1253 +5500 1254 +5700 1254 +6000 1255 +7700 1255 +5500 1256 +5600 1256 +5600 1257 +5900 1257 +4800 1258 +6000 1258 +4700 1259 +7500 1259 +2700 1260 +7100 1260 +4100 1261 +7300 1261 +4700 1262 +6300 1262 +4800 1263 +5100 1263 +2900 1264 +5200 1264 +2800 1265 +7000 1265 +6500 1266 +7900 1266 +4600 1267 +7700 1267 +3800 1268 +8800 1268 +6200 1269 +6500 1269 +6600 1270 +7600 1270 +100 1271 +5000 1271 +2000 1272 +6700 1272 +6600 1273 +10000 1273 +4800 1274 +6100 1274 +8600 1274 +7900 1275 +8000 1275 +5200 1276 +5000 1277 +5400 1277 +5300 1278 +5800 1278 +5500 1279 +5700 1279 +6000 1280 +7700 1280 +5500 1281 +5600 1281 +5600 1282 +5900 1282 +4800 1283 +6000 1283 +4700 1284 +7500 1284 +2700 1285 +7100 1285 +4100 1286 +7300 1286 +4700 1287 +6300 1287 +4800 1288 +5100 1288 +2900 1289 +5200 1289 +2800 1290 +7000 1290 +6500 1291 +7900 1291 +4600 1292 +7700 1292 +3800 1293 +8800 1293 +6200 1294 +6500 1294 +6600 1295 +7600 1295 +100 1296 +5000 1296 +2000 1297 +6700 1297 +6600 1298 +10000 1298 +4800 1299 +6100 1299 +8600 1299 +7900 1300 +8000 1300 +5200 1301 +5000 1302 +5400 1302 +5300 1303 +5800 1303 +5500 1304 +5700 1304 +6000 1305 +7700 1305 +5500 1306 +5600 1306 +5600 1307 +5900 1307 +4800 1308 +6000 1308 +4700 1309 +7500 1309 +2700 1310 +7100 1310 +4100 1311 +7300 1311 +4700 1312 +6300 1312 +4800 1313 +5100 1313 +2900 1314 +5200 1314 +2800 1315 +7000 1315 +6500 1316 +7900 1316 +4600 1317 +7700 1317 +3800 1318 +8800 1318 +6200 1319 +6500 1319 +6600 1320 +7600 1320 +100 1321 +5000 1321 +2000 1322 +6700 1322 +6600 1323 +10000 1323 +4800 1324 +6100 1324 +8600 1324 +7900 1325 +8000 1325 +5200 1326 +5000 1327 +5400 1327 +5300 1328 +5800 1328 +5500 1329 +5700 1329 +6000 1330 +7700 1330 +5500 1331 +5600 1331 +5600 1332 +5900 1332 +4800 1333 +6000 1333 +4700 1334 +7500 1334 +2700 1335 +7100 1335 +4100 1336 +7300 1336 +4700 1337 +6300 1337 +4800 1338 +5100 1338 +2900 1339 +5200 1339 +2800 1340 +7000 1340 +6500 1341 +7900 1341 +4600 1342 +7700 1342 +3800 1343 +8800 1343 +6200 1344 +6500 1344 +6600 1345 +7600 1345 +100 1346 +5000 1346 +2000 1347 +6700 1347 +6600 1348 +10000 1348 +4800 1349 +6100 1349 +8600 1349 +7900 1350 +8000 1350 +5200 1351 +5000 1352 +5400 1352 +5300 1353 +5800 1353 +5500 1354 +5700 1354 +6000 1355 +7700 1355 +5500 1356 +5600 1356 +5600 1357 +5900 1357 +4800 1358 +6000 1358 +4700 1359 +7500 1359 +2700 1360 +7100 1360 +4100 1361 +7300 1361 +4700 1362 +6300 1362 +4800 1363 +5100 1363 +2900 1364 +5200 1364 +2800 1365 +7000 1365 +6500 1366 +7900 1366 +4600 1367 +7700 1367 +3800 1368 +8800 1368 +6200 1369 +6500 1369 +6600 1370 +7600 1370 +100 1371 +5000 1371 +2000 1372 +6700 1372 +6600 1373 +10000 1373 +4800 1374 +6100 1374 +8600 1374 +7900 1375 +8000 1375 +5200 1376 +5000 1377 +5400 1377 +5300 1378 +5800 1378 +5500 1379 +5700 1379 +6000 1380 +7700 1380 +5500 1381 +5600 1381 +5600 1382 +5900 1382 +4800 1383 +6000 1383 +4700 1384 +7500 1384 +2700 1385 +7100 1385 +4100 1386 +7300 1386 +4700 1387 +6300 1387 +4800 1388 +5100 1388 +2900 1389 +5200 1389 +2800 1390 +7000 1390 +6500 1391 +7900 1391 +4600 1392 +7700 1392 +3800 1393 +8800 1393 +6200 1394 +6500 1394 +6600 1395 +7600 1395 +100 1396 +5000 1396 +2000 1397 +6700 1397 +6600 1398 +10000 1398 +4800 1399 +6100 1399 +8600 1399 +7900 1400 +8000 1400 +5200 1401 +5000 1402 +5400 1402 +5300 1403 +5800 1403 +5500 1404 +5700 1404 +6000 1405 +7700 1405 +5500 1406 +5600 1406 +5600 1407 +5900 1407 +4800 1408 +6000 1408 +4700 1409 +7500 1409 +2700 1410 +7100 1410 +4100 1411 +7300 1411 +4700 1412 +6300 1412 +4800 1413 +5100 1413 +2900 1414 +5200 1414 +2800 1415 +7000 1415 +6500 1416 +7900 1416 +4600 1417 +7700 1417 +3800 1418 +8800 1418 +6200 1419 +6500 1419 +6600 1420 +7600 1420 +100 1421 +5000 1421 +2000 1422 +6700 1422 +6600 1423 +10000 1423 +4800 1424 +6100 1424 +8600 1424 +7900 1425 +8000 1425 +5200 1426 +5000 1427 +5400 1427 +5300 1428 +5800 1428 +5500 1429 +5700 1429 +6000 1430 +7700 1430 +5500 1431 +5600 1431 +5600 1432 +5900 1432 +4800 1433 +6000 1433 +4700 1434 +7500 1434 +2700 1435 +7100 1435 +4100 1436 +7300 1436 +4700 1437 +6300 1437 +4800 1438 +5100 1438 +2900 1439 +5200 1439 +2800 1440 +7000 1440 +6500 1441 +7900 1441 +4600 1442 +7700 1442 +3800 1443 +8800 1443 +6200 1444 +6500 1444 +6600 1445 +7600 1445 +100 1446 +5000 1446 +2000 1447 +6700 1447 +6600 1448 +10000 1448 +4800 1449 +6100 1449 +8600 1449 +7900 1450 +8000 1450 +5200 1451 +5000 1452 +5400 1452 +5300 1453 +5800 1453 +5500 1454 +5700 1454 +6000 1455 +7700 1455 +5500 1456 +5600 1456 +5600 1457 +5900 1457 +4800 1458 +6000 1458 +4700 1459 +7500 1459 +2700 1460 +7100 1460 +4100 1461 +7300 1461 +4700 1462 +6300 1462 +4800 1463 +5100 1463 +2900 1464 +5200 1464 +2800 1465 +7000 1465 +6500 1466 +7900 1466 +4600 1467 +7700 1467 +3800 1468 +8800 1468 +6200 1469 +6500 1469 +6600 1470 +7600 1470 +100 1471 +5000 1471 +2000 1472 +6700 1472 +6600 1473 +10000 1473 +4800 1474 +6100 1474 +8600 1474 +7900 1475 +8000 1475 +5200 1476 +5000 1477 +5400 1477 +5300 1478 +5800 1478 +5500 1479 +5700 1479 +6000 1480 +7700 1480 +5500 1481 +5600 1481 +5600 1482 +5900 1482 +4800 1483 +6000 1483 +4700 1484 +7500 1484 +2700 1485 +7100 1485 +4100 1486 +7300 1486 +4700 1487 +6300 1487 +4800 1488 +5100 1488 +2900 1489 +5200 1489 +2800 1490 +7000 1490 +6500 1491 +7900 1491 +4600 1492 +7700 1492 +3800 1493 +8800 1493 +6200 1494 +6500 1494 +6600 1495 +7600 1495 +100 1496 +5000 1496 +2000 1497 +6700 1497 +6600 1498 +10000 1498 +4800 1499 +6100 1499 +8600 1499 +7900 1500 +8000 1500 +5200 1501 +5000 1502 +5400 1502 +5300 1503 +5800 1503 +5500 1504 +5700 1504 +6000 1505 +7700 1505 +5500 1506 +5600 1506 +5600 1507 +5900 1507 +4800 1508 +6000 1508 +4700 1509 +7500 1509 +2700 1510 +7100 1510 +4100 1511 +7300 1511 +4700 1512 +6300 1512 +4800 1513 +5100 1513 +2900 1514 +5200 1514 +2800 1515 +7000 1515 +6500 1516 +7900 1516 +4600 1517 +7700 1517 +3800 1518 +8800 1518 +6200 1519 +6500 1519 +6600 1520 +7600 1520 +100 1521 +5000 1521 +2000 1522 +6700 1522 +6600 1523 +10000 1523 +4800 1524 +6100 1524 +8600 1524 +7900 1525 +8000 1525 +5200 1526 +5000 1527 +5400 1527 +5300 1528 +5800 1528 +5500 1529 +5700 1529 +6000 1530 +7700 1530 +5500 1531 +5600 1531 +5600 1532 +5900 1532 +4800 1533 +6000 1533 +4700 1534 +7500 1534 +2700 1535 +7100 1535 +4100 1536 +7300 1536 +4700 1537 +6300 1537 +4800 1538 +5100 1538 +2900 1539 +5200 1539 +2800 1540 +7000 1540 +6500 1541 +7900 1541 +4600 1542 +7700 1542 +3800 1543 +8800 1543 +6200 1544 +6500 1544 +6600 1545 +7600 1545 +100 1546 +5000 1546 +2000 1547 +6700 1547 +6600 1548 +10000 1548 +4800 1549 +6100 1549 +8600 1549 +7900 1550 +8000 1550 +5200 1551 +5000 1552 +5400 1552 +5300 1553 +5800 1553 +5500 1554 +5700 1554 +6000 1555 +7700 1555 +5500 1556 +5600 1556 +5600 1557 +5900 1557 +4800 1558 +6000 1558 +4700 1559 +7500 1559 +2700 1560 +7100 1560 +4100 1561 +7300 1561 +4700 1562 +6300 1562 +4800 1563 +5100 1563 +2900 1564 +5200 1564 +2800 1565 +7000 1565 +6500 1566 +7900 1566 +4600 1567 +7700 1567 +3800 1568 +8800 1568 +6200 1569 +6500 1569 +6600 1570 +7600 1570 +100 1571 +5000 1571 +2000 1572 +6700 1572 +6600 1573 +10000 1573 +4800 1574 +6100 1574 +8600 1574 +7900 1575 +8000 1575 +5200 1576 +5000 1577 +5400 1577 +5300 1578 +5800 1578 +5500 1579 +5700 1579 +6000 1580 +7700 1580 +5500 1581 +5600 1581 +5600 1582 +5900 1582 +4800 1583 +6000 1583 +4700 1584 +7500 1584 +2700 1585 +7100 1585 +4100 1586 +7300 1586 +4700 1587 +6300 1587 +4800 1588 +5100 1588 +2900 1589 +5200 1589 +2800 1590 +7000 1590 +6500 1591 +7900 1591 +4600 1592 +7700 1592 +3800 1593 +8800 1593 +6200 1594 +6500 1594 +6600 1595 +7600 1595 +100 1596 +5000 1596 +2000 1597 +6700 1597 +6600 1598 +10000 1598 +4800 1599 +6100 1599 +8600 1599 +7900 1600 +8000 1600 +5200 1601 +5000 1602 +5400 1602 +5300 1603 +5800 1603 +5500 1604 +5700 1604 +6000 1605 +7700 1605 +5500 1606 +5600 1606 +5600 1607 +5900 1607 +4800 1608 +6000 1608 +4700 1609 +7500 1609 +2700 1610 +7100 1610 +4100 1611 +7300 1611 +4700 1612 +6300 1612 +4800 1613 +5100 1613 +2900 1614 +5200 1614 +2800 1615 +7000 1615 +6500 1616 +7900 1616 +4600 1617 +7700 1617 +3800 1618 +8800 1618 +6200 1619 +6500 1619 +6600 1620 +7600 1620 +100 1621 +5000 1621 +2000 1622 +6700 1622 +6600 1623 +10000 1623 +4800 1624 +6100 1624 +8600 1624 +7900 1625 +8000 1625 +5200 1626 +5000 1627 +5400 1627 +5300 1628 +5800 1628 +5500 1629 +5700 1629 +6000 1630 +7700 1630 +5500 1631 +5600 1631 +5600 1632 +5900 1632 +4800 1633 +6000 1633 +4700 1634 +7500 1634 +2700 1635 +7100 1635 +4100 1636 +7300 1636 +4700 1637 +6300 1637 +4800 1638 +5100 1638 +2900 1639 +5200 1639 +2800 1640 +7000 1640 +6500 1641 +7900 1641 +4600 1642 +7700 1642 +3800 1643 +8800 1643 +6200 1644 +6500 1644 +6600 1645 +7600 1645 +100 1646 +5000 1646 +2000 1647 +6700 1647 +6600 1648 +10000 1648 +4800 1649 +6100 1649 +8600 1649 +7900 1650 +8000 1650 +5200 1651 +5000 1652 +5400 1652 +5300 1653 +5800 1653 +5500 1654 +5700 1654 +6000 1655 +7700 1655 +5500 1656 +5600 1656 +5600 1657 +5900 1657 +4800 1658 +6000 1658 +4700 1659 +7500 1659 +2700 1660 +7100 1660 +4100 1661 +7300 1661 +4700 1662 +6300 1662 +4800 1663 +5100 1663 +2900 1664 +5200 1664 +2800 1665 +7000 1665 +6500 1666 +7900 1666 +4600 1667 +7700 1667 +3800 1668 +8800 1668 +6200 1669 +6500 1669 +6600 1670 +7600 1670 +100 1671 +5000 1671 +2000 1672 +6700 1672 +6600 1673 +10000 1673 +4800 1674 +6100 1674 +8600 1674 +7900 1675 +8000 1675 +5200 1676 +5000 1677 +5400 1677 +5300 1678 +5800 1678 +5500 1679 +5700 1679 +6000 1680 +7700 1680 +5500 1681 +5600 1681 +5600 1682 +5900 1682 +4800 1683 +6000 1683 +4700 1684 +7500 1684 +2700 1685 +7100 1685 +4100 1686 +7300 1686 +4700 1687 +6300 1687 +4800 1688 +5100 1688 +2900 1689 +5200 1689 +2800 1690 +7000 1690 +6500 1691 +7900 1691 +4600 1692 +7700 1692 +3800 1693 +8800 1693 +6200 1694 +6500 1694 +6600 1695 +7600 1695 +100 1696 +5000 1696 +2000 1697 +6700 1697 +6600 1698 +10000 1698 +4800 1699 +6100 1699 +8600 1699 +7900 1700 +8000 1700 +5200 1701 +5000 1702 +5400 1702 +5300 1703 +5800 1703 +5500 1704 +5700 1704 +6000 1705 +7700 1705 +5500 1706 +5600 1706 +5600 1707 +5900 1707 +4800 1708 +6000 1708 +4700 1709 +7500 1709 +2700 1710 +7100 1710 +4100 1711 +7300 1711 +4700 1712 +6300 1712 +4800 1713 +5100 1713 +2900 1714 +5200 1714 +2800 1715 +7000 1715 +6500 1716 +7900 1716 +4600 1717 +7700 1717 +3800 1718 +8800 1718 +6200 1719 +6500 1719 +6600 1720 +7600 1720 +100 1721 +5000 1721 +2000 1722 +6700 1722 +6600 1723 +10000 1723 +4800 1724 +6100 1724 +8600 1724 +7900 1725 +8000 1725 +5200 1726 +5000 1727 +5400 1727 +5300 1728 +5800 1728 +5500 1729 +5700 1729 +6000 1730 +7700 1730 +5500 1731 +5600 1731 +5600 1732 +5900 1732 +4800 1733 +6000 1733 +4700 1734 +7500 1734 +2700 1735 +7100 1735 +4100 1736 +7300 1736 +4700 1737 +6300 1737 +4800 1738 +5100 1738 +2900 1739 +5200 1739 +2800 1740 +7000 1740 +6500 1741 +7900 1741 +4600 1742 +7700 1742 +3800 1743 +8800 1743 +6200 1744 +6500 1744 +6600 1745 +7600 1745 +100 1746 +5000 1746 +2000 1747 +6700 1747 +6600 1748 +10000 1748 +4800 1749 +6100 1749 +8600 1749 +7900 1750 +8000 1750 +5200 1751 +5000 1752 +5400 1752 +5300 1753 +5800 1753 +5500 1754 +5700 1754 +6000 1755 +7700 1755 +5500 1756 +5600 1756 +5600 1757 +5900 1757 +4800 1758 +6000 1758 +4700 1759 +7500 1759 +2700 1760 +7100 1760 +4100 1761 +7300 1761 +4700 1762 +6300 1762 +4800 1763 +5100 1763 +2900 1764 +5200 1764 +2800 1765 +7000 1765 +6500 1766 +7900 1766 +4600 1767 +7700 1767 +3800 1768 +8800 1768 +6200 1769 +6500 1769 +6600 1770 +7600 1770 +100 1771 +5000 1771 +2000 1772 +6700 1772 +6600 1773 +10000 1773 +4800 1774 +6100 1774 +8600 1774 +7900 1775 +8000 1775 +5200 1776 +5000 1777 +5400 1777 +5300 1778 +5800 1778 +5500 1779 +5700 1779 +6000 1780 +7700 1780 +5500 1781 +5600 1781 +5600 1782 +5900 1782 +4800 1783 +6000 1783 +4700 1784 +7500 1784 +2700 1785 +7100 1785 +4100 1786 +7300 1786 +4700 1787 +6300 1787 +4800 1788 +5100 1788 +2900 1789 +5200 1789 +2800 1790 +7000 1790 +6500 1791 +7900 1791 +4600 1792 +7700 1792 +3800 1793 +8800 1793 +6200 1794 +6500 1794 +6600 1795 +7600 1795 +100 1796 +5000 1796 +2000 1797 +6700 1797 +6600 1798 +10000 1798 +4800 1799 +6100 1799 +8600 1799 +7900 1800 +8000 1800 +5200 1801 +5000 1802 +5400 1802 +5300 1803 +5800 1803 +5500 1804 +5700 1804 +6000 1805 +7700 1805 +5500 1806 +5600 1806 +5600 1807 +5900 1807 +4800 1808 +6000 1808 +4700 1809 +7500 1809 +2700 1810 +7100 1810 +4100 1811 +7300 1811 +4700 1812 +6300 1812 +4800 1813 +5100 1813 +2900 1814 +5200 1814 +2800 1815 +7000 1815 +6500 1816 +7900 1816 +4600 1817 +7700 1817 +3800 1818 +8800 1818 +6200 1819 +6500 1819 +6600 1820 +7600 1820 +100 1821 +5000 1821 +2000 1822 +6700 1822 +6600 1823 +10000 1823 +4800 1824 +6100 1824 +8600 1824 +7900 1825 +8000 1825 +5200 1826 +5000 1827 +5400 1827 +5300 1828 +5800 1828 +5500 1829 +5700 1829 +6000 1830 +7700 1830 +5500 1831 +5600 1831 +5600 1832 +5900 1832 +4800 1833 +6000 1833 +4700 1834 +7500 1834 +2700 1835 +7100 1835 +4100 1836 +7300 1836 +4700 1837 +6300 1837 +4800 1838 +5100 1838 +2900 1839 +5200 1839 +2800 1840 +7000 1840 +6500 1841 +7900 1841 +4600 1842 +7700 1842 +3800 1843 +8800 1843 +6200 1844 +6500 1844 +6600 1845 +7600 1845 +100 1846 +5000 1846 +2000 1847 +6700 1847 +6600 1848 +10000 1848 +4800 1849 +6100 1849 +8600 1849 +7900 1850 +8000 1850 +5200 1851 +5000 1852 +5400 1852 +5300 1853 +5800 1853 +5500 1854 +5700 1854 +6000 1855 +7700 1855 +5500 1856 +5600 1856 +5600 1857 +5900 1857 +4800 1858 +6000 1858 +4700 1859 +7500 1859 +2700 1860 +7100 1860 +4100 1861 +7300 1861 +4700 1862 +6300 1862 +4800 1863 +5100 1863 +2900 1864 +5200 1864 +2800 1865 +7000 1865 +6500 1866 +7900 1866 +4600 1867 +7700 1867 +3800 1868 +8800 1868 +6200 1869 +6500 1869 +6600 1870 +7600 1870 +100 1871 +5000 1871 +2000 1872 +6700 1872 +6600 1873 +10000 1873 +4800 1874 +6100 1874 +8600 1874 +7900 1875 +8000 1875 +5200 1876 +5000 1877 +5400 1877 +5300 1878 +5800 1878 +5500 1879 +5700 1879 +6000 1880 +7700 1880 +5500 1881 +5600 1881 +5600 1882 +5900 1882 +4800 1883 +6000 1883 +4700 1884 +7500 1884 +2700 1885 +7100 1885 +4100 1886 +7300 1886 +4700 1887 +6300 1887 +4800 1888 +5100 1888 +2900 1889 +5200 1889 +2800 1890 +7000 1890 +6500 1891 +7900 1891 +4600 1892 +7700 1892 +3800 1893 +8800 1893 +6200 1894 +6500 1894 +6600 1895 +7600 1895 +100 1896 +5000 1896 +2000 1897 +6700 1897 +6600 1898 +10000 1898 +4800 1899 +6100 1899 +8600 1899 +7900 1900 +8000 1900 +5200 1901 +5000 1902 +5400 1902 +5300 1903 +5800 1903 +5500 1904 +5700 1904 +6000 1905 +7700 1905 +5500 1906 +5600 1906 +5600 1907 +5900 1907 +4800 1908 +6000 1908 +4700 1909 +7500 1909 +2700 1910 +7100 1910 +4100 1911 +7300 1911 +4700 1912 +6300 1912 +4800 1913 +5100 1913 +2900 1914 +5200 1914 +2800 1915 +7000 1915 +6500 1916 +7900 1916 +4600 1917 +7700 1917 +3800 1918 +8800 1918 +6200 1919 +6500 1919 +6600 1920 +7600 1920 +100 1921 +5000 1921 +2000 1922 +6700 1922 +6600 1923 +10000 1923 +4800 1924 +6100 1924 +8600 1924 +7900 1925 +8000 1925 +5200 1926 +5000 1927 +5400 1927 +5300 1928 +5800 1928 +5500 1929 +5700 1929 +6000 1930 +7700 1930 +5500 1931 +5600 1931 +5600 1932 +5900 1932 +4800 1933 +6000 1933 +4700 1934 +7500 1934 +2700 1935 +7100 1935 +4100 1936 +7300 1936 +4700 1937 +6300 1937 +4800 1938 +5100 1938 +2900 1939 +5200 1939 +2800 1940 +7000 1940 +6500 1941 +7900 1941 +4600 1942 +7700 1942 +3800 1943 +8800 1943 +6200 1944 +6500 1944 +6600 1945 +7600 1945 +100 1946 +5000 1946 +2000 1947 +6700 1947 +6600 1948 +10000 1948 +4800 1949 +6100 1949 +8600 1949 +7900 1950 +8000 1950 +5200 1951 +5000 1952 +5400 1952 +5300 1953 +5800 1953 +5500 1954 +5700 1954 +6000 1955 +7700 1955 +5500 1956 +5600 1956 +5600 1957 +5900 1957 +4800 1958 +6000 1958 +4700 1959 +7500 1959 +2700 1960 +7100 1960 +4100 1961 +7300 1961 +4700 1962 +6300 1962 +4800 1963 +5100 1963 +2900 1964 +5200 1964 +2800 1965 +7000 1965 +6500 1966 +7900 1966 +4600 1967 +7700 1967 +3800 1968 +8800 1968 +6200 1969 +6500 1969 +6600 1970 +7600 1970 +100 1971 +5000 1971 +2000 1972 +6700 1972 +6600 1973 +10000 1973 +4800 1974 +6100 1974 +8600 1974 +7900 1975 +8000 1975 +5200 1976 +5000 1977 +5400 1977 +5300 1978 +5800 1978 +5500 1979 +5700 1979 +6000 1980 +7700 1980 +5500 1981 +5600 1981 +5600 1982 +5900 1982 +4800 1983 +6000 1983 +4700 1984 +7500 1984 +2700 1985 +7100 1985 +4100 1986 +7300 1986 +4700 1987 +6300 1987 +4800 1988 +5100 1988 +2900 1989 +5200 1989 +2800 1990 +7000 1990 +6500 1991 +7900 1991 +4600 1992 +7700 1992 +3800 1993 +8800 1993 +6200 1994 +6500 1994 +6600 1995 +7600 1995 +100 1996 +5000 1996 +2000 1997 +6700 1997 +6600 1998 +10000 1998 +4800 1999 +6100 1999 +8600 1999 +7900 2000 +8000 2000 +5200 2001 +5000 2002 +5400 2002 +5300 2003 +5800 2003 +5500 2004 +5700 2004 +6000 2005 +7700 2005 +5500 2006 +5600 2006 +5600 2007 +5900 2007 +4800 2008 +6000 2008 +4700 2009 +7500 2009 +2700 2010 +7100 2010 +4100 2011 +7300 2011 +4700 2012 +6300 2012 +4800 2013 +5100 2013 +2900 2014 +5200 2014 +2800 2015 +7000 2015 +6500 2016 +7900 2016 +4600 2017 +7700 2017 +3800 2018 +8800 2018 +6200 2019 +6500 2019 +6600 2020 +7600 2020 +100 2021 +5000 2021 +2000 2022 +6700 2022 +6600 2023 +10000 2023 +4800 2024 +6100 2024 +8600 2024 +7900 2025 +8000 2025 +5200 2026 +5000 2027 +5400 2027 +5300 2028 +5800 2028 +5500 2029 +5700 2029 +6000 2030 +7700 2030 +5500 2031 +5600 2031 +5600 2032 +5900 2032 +4800 2033 +6000 2033 +4700 2034 +7500 2034 +2700 2035 +7100 2035 +4100 2036 +7300 2036 +4700 2037 +6300 2037 +4800 2038 +5100 2038 +2900 2039 +5200 2039 +2800 2040 +7000 2040 +6500 2041 +7900 2041 +4600 2042 +7700 2042 +3800 2043 +8800 2043 +6200 2044 +6500 2044 +6600 2045 +7600 2045 +100 2046 +5000 2046 +2000 2047 +6700 2047 +6600 2048 +10000 2048 +4800 2049 +6100 2049 +8600 2049 +7900 2050 +8000 2050 +5200 2051 +5000 2052 +5400 2052 +5300 2053 +5800 2053 +5500 2054 +5700 2054 +6000 2055 +7700 2055 +5500 2056 +5600 2056 +5600 2057 +5900 2057 +4800 2058 +6000 2058 +4700 2059 +7500 2059 +2700 2060 +7100 2060 +4100 2061 +7300 2061 +4700 2062 +6300 2062 +4800 2063 +5100 2063 +2900 2064 +5200 2064 +2800 2065 +7000 2065 +6500 2066 +7900 2066 +4600 2067 +7700 2067 +3800 2068 +8800 2068 +6200 2069 +6500 2069 +6600 2070 +7600 2070 +100 2071 +5000 2071 +2000 2072 +6700 2072 +6600 2073 +10000 2073 +4800 2074 +6100 2074 +8600 2074 +7900 2075 +8000 2075 +5200 2076 +5000 2077 +5400 2077 +5300 2078 +5800 2078 +5500 2079 +5700 2079 +6000 2080 +7700 2080 +5500 2081 +5600 2081 +5600 2082 +5900 2082 +4800 2083 +6000 2083 +4700 2084 +7500 2084 +2700 2085 +7100 2085 +4100 2086 +7300 2086 +4700 2087 +6300 2087 +4800 2088 +5100 2088 +2900 2089 +5200 2089 +2800 2090 +7000 2090 +6500 2091 +7900 2091 +4600 2092 +7700 2092 +3800 2093 +8800 2093 +6200 2094 +6500 2094 +6600 2095 +7600 2095 +100 2096 +5000 2096 +2000 2097 +6700 2097 +6600 2098 +10000 2098 +4800 2099 +6100 2099 +8600 2099 +7900 2100 +8000 2100 +5200 2101 +5000 2102 +5400 2102 +5300 2103 +5800 2103 +5500 2104 +5700 2104 +6000 2105 +7700 2105 +5500 2106 +5600 2106 +5600 2107 +5900 2107 +4800 2108 +6000 2108 +4700 2109 +7500 2109 +2700 2110 +7100 2110 +4100 2111 +7300 2111 +4700 2112 +6300 2112 +4800 2113 +5100 2113 +2900 2114 +5200 2114 +2800 2115 +7000 2115 +6500 2116 +7900 2116 +4600 2117 +7700 2117 +3800 2118 +8800 2118 +6200 2119 +6500 2119 +6600 2120 +7600 2120 +100 2121 +5000 2121 +2000 2122 +6700 2122 +6600 2123 +10000 2123 +4800 2124 +6100 2124 +8600 2124 +7900 2125 +8000 2125 +5200 2126 +5000 2127 +5400 2127 +5300 2128 +5800 2128 +5500 2129 +5700 2129 +6000 2130 +7700 2130 +5500 2131 +5600 2131 +5600 2132 +5900 2132 +4800 2133 +6000 2133 +4700 2134 +7500 2134 +2700 2135 +7100 2135 +4100 2136 +7300 2136 +4700 2137 +6300 2137 +4800 2138 +5100 2138 +2900 2139 +5200 2139 +2800 2140 +7000 2140 +6500 2141 +7900 2141 +4600 2142 +7700 2142 +3800 2143 +8800 2143 +6200 2144 +6500 2144 +6600 2145 +7600 2145 +100 2146 +5000 2146 +2000 2147 +6700 2147 +6600 2148 +10000 2148 +4800 2149 +6100 2149 +8600 2149 +7900 2150 +8000 2150 +5200 2151 +5000 2152 +5400 2152 +5300 2153 +5800 2153 +5500 2154 +5700 2154 +6000 2155 +7700 2155 +5500 2156 +5600 2156 +5600 2157 +5900 2157 +4800 2158 +6000 2158 +4700 2159 +7500 2159 +2700 2160 +7100 2160 +4100 2161 +7300 2161 +4700 2162 +6300 2162 +4800 2163 +5100 2163 +2900 2164 +5200 2164 +2800 2165 +7000 2165 +6500 2166 +7900 2166 +4600 2167 +7700 2167 +3800 2168 +8800 2168 +6200 2169 +6500 2169 +6600 2170 +7600 2170 +100 2171 +5000 2171 +2000 2172 +6700 2172 +6600 2173 +10000 2173 +4800 2174 +6100 2174 +8600 2174 +7900 2175 +8000 2175 +5200 2176 +5000 2177 +5400 2177 +5300 2178 +5800 2178 +5500 2179 +5700 2179 +6000 2180 +7700 2180 +5500 2181 +5600 2181 +5600 2182 +5900 2182 +4800 2183 +6000 2183 +4700 2184 +7500 2184 +2700 2185 +7100 2185 +4100 2186 +7300 2186 +4700 2187 +6300 2187 +4800 2188 +5100 2188 +2900 2189 +5200 2189 +2800 2190 +7000 2190 +6500 2191 +7900 2191 +4600 2192 +7700 2192 +3800 2193 +8800 2193 +6200 2194 +6500 2194 +6600 2195 +7600 2195 +100 2196 +5000 2196 +2000 2197 +6700 2197 +6600 2198 +10000 2198 +4800 2199 +6100 2199 +8600 2199 +7900 2200 +8000 2200 +5200 2201 +5000 2202 +5400 2202 +5300 2203 +5800 2203 +5500 2204 +5700 2204 +6000 2205 +7700 2205 +5500 2206 +5600 2206 +5600 2207 +5900 2207 +4800 2208 +6000 2208 +4700 2209 +7500 2209 +2700 2210 +7100 2210 +4100 2211 +7300 2211 +4700 2212 +6300 2212 +4800 2213 +5100 2213 +2900 2214 +5200 2214 +2800 2215 +7000 2215 +6500 2216 +7900 2216 +4600 2217 +7700 2217 +3800 2218 +8800 2218 +6200 2219 +6500 2219 +6600 2220 +7600 2220 +100 2221 +5000 2221 +2000 2222 +6700 2222 +6600 2223 +10000 2223 +4800 2224 +6100 2224 +8600 2224 +7900 2225 +8000 2225 +5200 2226 +5000 2227 +5400 2227 +5300 2228 +5800 2228 +5500 2229 +5700 2229 +6000 2230 +7700 2230 +5500 2231 +5600 2231 +5600 2232 +5900 2232 +4800 2233 +6000 2233 +4700 2234 +7500 2234 +2700 2235 +7100 2235 +4100 2236 +7300 2236 +4700 2237 +6300 2237 +4800 2238 +5100 2238 +2900 2239 +5200 2239 +2800 2240 +7000 2240 +6500 2241 +7900 2241 +4600 2242 +7700 2242 +3800 2243 +8800 2243 +6200 2244 +6500 2244 +6600 2245 +7600 2245 +100 2246 +5000 2246 +2000 2247 +6700 2247 +6600 2248 +10000 2248 +4800 2249 +6100 2249 +8600 2249 +7900 2250 +8000 2250 +5200 2251 +5000 2252 +5400 2252 +5300 2253 +5800 2253 +5500 2254 +5700 2254 +6000 2255 +7700 2255 +5500 2256 +5600 2256 +5600 2257 +5900 2257 +4800 2258 +6000 2258 +4700 2259 +7500 2259 +2700 2260 +7100 2260 +4100 2261 +7300 2261 +4700 2262 +6300 2262 +4800 2263 +5100 2263 +2900 2264 +5200 2264 +2800 2265 +7000 2265 +6500 2266 +7900 2266 +4600 2267 +7700 2267 +3800 2268 +8800 2268 +6200 2269 +6500 2269 +6600 2270 +7600 2270 +100 2271 +5000 2271 +2000 2272 +6700 2272 +6600 2273 +10000 2273 +4800 2274 +6100 2274 +8600 2274 +7900 2275 +8000 2275 +5200 2276 +5000 2277 +5400 2277 +5300 2278 +5800 2278 +5500 2279 +5700 2279 +6000 2280 +7700 2280 +5500 2281 +5600 2281 +5600 2282 +5900 2282 +4800 2283 +6000 2283 +4700 2284 +7500 2284 +2700 2285 +7100 2285 +4100 2286 +7300 2286 +4700 2287 +6300 2287 +4800 2288 +5100 2288 +2900 2289 +5200 2289 +2800 2290 +7000 2290 +6500 2291 +7900 2291 +4600 2292 +7700 2292 +3800 2293 +8800 2293 +6200 2294 +6500 2294 +6600 2295 +7600 2295 +100 2296 +5000 2296 +2000 2297 +6700 2297 +6600 2298 +10000 2298 +4800 2299 +6100 2299 +8600 2299 +7900 2300 +8000 2300 +5200 2301 +5000 2302 +5400 2302 +5300 2303 +5800 2303 +5500 2304 +5700 2304 +6000 2305 +7700 2305 +5500 2306 +5600 2306 +5600 2307 +5900 2307 +4800 2308 +6000 2308 +4700 2309 +7500 2309 +2700 2310 +7100 2310 +4100 2311 +7300 2311 +4700 2312 +6300 2312 +4800 2313 +5100 2313 +2900 2314 +5200 2314 +2800 2315 +7000 2315 +6500 2316 +7900 2316 +4600 2317 +7700 2317 +3800 2318 +8800 2318 +6200 2319 +6500 2319 +6600 2320 +7600 2320 +100 2321 +5000 2321 +2000 2322 +6700 2322 +6600 2323 +10000 2323 +4800 2324 +6100 2324 +8600 2324 +7900 2325 +8000 2325 +5200 2326 +5000 2327 +5400 2327 +5300 2328 +5800 2328 +5500 2329 +5700 2329 +6000 2330 +7700 2330 +5500 2331 +5600 2331 +5600 2332 +5900 2332 +4800 2333 +6000 2333 +4700 2334 +7500 2334 +2700 2335 +7100 2335 +4100 2336 +7300 2336 +4700 2337 +6300 2337 +4800 2338 +5100 2338 +2900 2339 +5200 2339 +2800 2340 +7000 2340 +6500 2341 +7900 2341 +4600 2342 +7700 2342 +3800 2343 +8800 2343 +6200 2344 +6500 2344 +6600 2345 +7600 2345 +100 2346 +5000 2346 +2000 2347 +6700 2347 +6600 2348 +10000 2348 +4800 2349 +6100 2349 +8600 2349 +7900 2350 +8000 2350 +5200 2351 +5000 2352 +5400 2352 +5300 2353 +5800 2353 +5500 2354 +5700 2354 +6000 2355 +7700 2355 +5500 2356 +5600 2356 +5600 2357 +5900 2357 +4800 2358 +6000 2358 +4700 2359 +7500 2359 +2700 2360 +7100 2360 +4100 2361 +7300 2361 +4700 2362 +6300 2362 +4800 2363 +5100 2363 +2900 2364 +5200 2364 +2800 2365 +7000 2365 +6500 2366 +7900 2366 +4600 2367 +7700 2367 +3800 2368 +8800 2368 +6200 2369 +6500 2369 +6600 2370 +7600 2370 +100 2371 +5000 2371 +2000 2372 +6700 2372 +6600 2373 +10000 2373 +4800 2374 +6100 2374 +8600 2374 +7900 2375 +8000 2375 +5200 2376 +5000 2377 +5400 2377 +5300 2378 +5800 2378 +5500 2379 +5700 2379 +6000 2380 +7700 2380 +5500 2381 +5600 2381 +5600 2382 +5900 2382 +4800 2383 +6000 2383 +4700 2384 +7500 2384 +2700 2385 +7100 2385 +4100 2386 +7300 2386 +4700 2387 +6300 2387 +4800 2388 +5100 2388 +2900 2389 +5200 2389 +2800 2390 +7000 2390 +6500 2391 +7900 2391 +4600 2392 +7700 2392 +3800 2393 +8800 2393 +6200 2394 +6500 2394 +6600 2395 +7600 2395 +100 2396 +5000 2396 +2000 2397 +6700 2397 +6600 2398 +10000 2398 +4800 2399 +6100 2399 +8600 2399 +7900 2400 +8000 2400 +5200 2401 +5000 2402 +5400 2402 +5300 2403 +5800 2403 +5500 2404 +5700 2404 +6000 2405 +7700 2405 +5500 2406 +5600 2406 +5600 2407 +5900 2407 +4800 2408 +6000 2408 +4700 2409 +7500 2409 +2700 2410 +7100 2410 +4100 2411 +7300 2411 +4700 2412 +6300 2412 +4800 2413 +5100 2413 +2900 2414 +5200 2414 +2800 2415 +7000 2415 +6500 2416 +7900 2416 +4600 2417 +7700 2417 +3800 2418 +8800 2418 +6200 2419 +6500 2419 +6600 2420 +7600 2420 +100 2421 +5000 2421 +2000 2422 +6700 2422 +6600 2423 +10000 2423 +4800 2424 +6100 2424 +8600 2424 +7900 2425 +8000 2425 +5200 2426 +5000 2427 +5400 2427 +5300 2428 +5800 2428 +5500 2429 +5700 2429 +6000 2430 +7700 2430 +5500 2431 +5600 2431 +5600 2432 +5900 2432 +4800 2433 +6000 2433 +4700 2434 +7500 2434 +2700 2435 +7100 2435 +4100 2436 +7300 2436 +4700 2437 +6300 2437 +4800 2438 +5100 2438 +2900 2439 +5200 2439 +2800 2440 +7000 2440 +6500 2441 +7900 2441 +4600 2442 +7700 2442 +3800 2443 +8800 2443 +6200 2444 +6500 2444 +6600 2445 +7600 2445 +100 2446 +5000 2446 +2000 2447 +6700 2447 +6600 2448 +10000 2448 +4800 2449 +6100 2449 +8600 2449 +7900 2450 +8000 2450 +5200 2451 +5000 2452 +5400 2452 +5300 2453 +5800 2453 +5500 2454 +5700 2454 +6000 2455 +7700 2455 +5500 2456 +5600 2456 +5600 2457 +5900 2457 +4800 2458 +6000 2458 +4700 2459 +7500 2459 +2700 2460 +7100 2460 +4100 2461 +7300 2461 +4700 2462 +6300 2462 +4800 2463 +5100 2463 +2900 2464 +5200 2464 +2800 2465 +7000 2465 +6500 2466 +7900 2466 +4600 2467 +7700 2467 +3800 2468 +8800 2468 +6200 2469 +6500 2469 +6600 2470 +7600 2470 +100 2471 +5000 2471 +2000 2472 +6700 2472 +6600 2473 +10000 2473 +4800 2474 +6100 2474 +8600 2474 +7900 2475 +8000 2475 +5200 2476 +5000 2477 +5400 2477 +5300 2478 +5800 2478 +5500 2479 +5700 2479 +6000 2480 +7700 2480 +5500 2481 +5600 2481 +5600 2482 +5900 2482 +4800 2483 +6000 2483 +4700 2484 +7500 2484 +2700 2485 +7100 2485 +4100 2486 +7300 2486 +4700 2487 +6300 2487 +4800 2488 +5100 2488 +2900 2489 +5200 2489 +2800 2490 +7000 2490 +6500 2491 +7900 2491 +4600 2492 +7700 2492 +3800 2493 +8800 2493 +6200 2494 +6500 2494 +6600 2495 +7600 2495 +100 2496 +5000 2496 +2000 2497 +6700 2497 +6600 2498 +10000 2498 +4800 2499 +6100 2499 +8600 2499 +7900 2500 +8000 2500 +5200 2501 +5000 2502 +5400 2502 +5300 2503 +5800 2503 +5500 2504 +5700 2504 +6000 2505 +7700 2505 +5500 2506 +5600 2506 +5600 2507 +5900 2507 +4800 2508 +6000 2508 +4700 2509 +7500 2509 +2700 2510 +7100 2510 +4100 2511 +7300 2511 +4700 2512 +6300 2512 +4800 2513 +5100 2513 +2900 2514 +5200 2514 +2800 2515 +7000 2515 +6500 2516 +7900 2516 +4600 2517 +7700 2517 +3800 2518 +8800 2518 +6200 2519 +6500 2519 +6600 2520 +7600 2520 +100 2521 +5000 2521 +2000 2522 +6700 2522 +6600 2523 +10000 2523 +4800 2524 +6100 2524 +8600 2524 +7900 2525 +8000 2525 +5200 2526 +5000 2527 +5400 2527 +5300 2528 +5800 2528 +5500 2529 +5700 2529 +6000 2530 +7700 2530 +5500 2531 +5600 2531 +5600 2532 +5900 2532 +4800 2533 +6000 2533 +4700 2534 +7500 2534 +2700 2535 +7100 2535 +4100 2536 +7300 2536 +4700 2537 +6300 2537 +4800 2538 +5100 2538 +2900 2539 +5200 2539 +2800 2540 +7000 2540 +6500 2541 +7900 2541 +4600 2542 +7700 2542 +3800 2543 +8800 2543 +6200 2544 +6500 2544 +6600 2545 +7600 2545 +100 2546 +5000 2546 +2000 2547 +6700 2547 +6600 2548 +10000 2548 +4800 2549 +6100 2549 +8600 2549 +7900 2550 +8000 2550 +5200 2551 +5000 2552 +5400 2552 +5300 2553 +5800 2553 +5500 2554 +5700 2554 +6000 2555 +7700 2555 +5500 2556 +5600 2556 +5600 2557 +5900 2557 +4800 2558 +6000 2558 +4700 2559 +7500 2559 +2700 2560 +7100 2560 +4100 2561 +7300 2561 +4700 2562 +6300 2562 +4800 2563 +5100 2563 +2900 2564 +5200 2564 +2800 2565 +7000 2565 +6500 2566 +7900 2566 +4600 2567 +7700 2567 +3800 2568 +8800 2568 +6200 2569 +6500 2569 +6600 2570 +7600 2570 +100 2571 +5000 2571 +2000 2572 +6700 2572 +6600 2573 +10000 2573 +4800 2574 +6100 2574 +8600 2574 +7900 2575 +8000 2575 +5200 2576 +5000 2577 +5400 2577 +5300 2578 +5800 2578 +5500 2579 +5700 2579 +6000 2580 +7700 2580 +5500 2581 +5600 2581 +5600 2582 +5900 2582 +4800 2583 +6000 2583 +4700 2584 +7500 2584 +2700 2585 +7100 2585 +4100 2586 +7300 2586 +4700 2587 +6300 2587 +4800 2588 +5100 2588 +2900 2589 +5200 2589 +2800 2590 +7000 2590 +6500 2591 +7900 2591 +4600 2592 +7700 2592 +3800 2593 +8800 2593 +6200 2594 +6500 2594 +6600 2595 +7600 2595 +100 2596 +5000 2596 +2000 2597 +6700 2597 +6600 2598 +10000 2598 +4800 2599 +6100 2599 +8600 2599 +7900 2600 +8000 2600 +5200 2601 +5000 2602 +5400 2602 +5300 2603 +5800 2603 +5500 2604 +5700 2604 +6000 2605 +7700 2605 +5500 2606 +5600 2606 +5600 2607 +5900 2607 +4800 2608 +6000 2608 +4700 2609 +7500 2609 +2700 2610 +7100 2610 +4100 2611 +7300 2611 +4700 2612 +6300 2612 +4800 2613 +5100 2613 +2900 2614 +5200 2614 +2800 2615 +7000 2615 +6500 2616 +7900 2616 +4600 2617 +7700 2617 +3800 2618 +8800 2618 +6200 2619 +6500 2619 +6600 2620 +7600 2620 +100 2621 +5000 2621 +2000 2622 +6700 2622 +6600 2623 +10000 2623 +4800 2624 +6100 2624 +8600 2624 +7900 2625 +8000 2625 +5200 2626 +5000 2627 +5400 2627 +5300 2628 +5800 2628 +5500 2629 +5700 2629 +6000 2630 +7700 2630 +5500 2631 +5600 2631 +5600 2632 +5900 2632 +4800 2633 +6000 2633 +4700 2634 +7500 2634 +2700 2635 +7100 2635 +4100 2636 +7300 2636 +4700 2637 +6300 2637 +4800 2638 +5100 2638 +2900 2639 +5200 2639 +2800 2640 +7000 2640 +6500 2641 +7900 2641 +4600 2642 +7700 2642 +3800 2643 +8800 2643 +6200 2644 +6500 2644 +6600 2645 +7600 2645 +100 2646 +5000 2646 +2000 2647 +6700 2647 +6600 2648 +10000 2648 +4800 2649 +6100 2649 +8600 2649 +7900 2650 +8000 2650 +5200 2651 +5000 2652 +5400 2652 +5300 2653 +5800 2653 +5500 2654 +5700 2654 +6000 2655 +7700 2655 +5500 2656 +5600 2656 +5600 2657 +5900 2657 +4800 2658 +6000 2658 +4700 2659 +7500 2659 +2700 2660 +7100 2660 +4100 2661 +7300 2661 +4700 2662 +6300 2662 +4800 2663 +5100 2663 +2900 2664 +5200 2664 +2800 2665 +7000 2665 +6500 2666 +7900 2666 +4600 2667 +7700 2667 +3800 2668 +8800 2668 +6200 2669 +6500 2669 +6600 2670 +7600 2670 +100 2671 +5000 2671 +2000 2672 +6700 2672 +6600 2673 +10000 2673 +4800 2674 +6100 2674 +8600 2674 +7900 2675 +8000 2675 +5200 2676 +5000 2677 +5400 2677 +5300 2678 +5800 2678 +5500 2679 +5700 2679 +6000 2680 +7700 2680 +5500 2681 +5600 2681 +5600 2682 +5900 2682 +4800 2683 +6000 2683 +4700 2684 +7500 2684 +2700 2685 +7100 2685 +4100 2686 +7300 2686 +4700 2687 +6300 2687 +4800 2688 +5100 2688 +2900 2689 +5200 2689 +2800 2690 +7000 2690 +6500 2691 +7900 2691 +4600 2692 +7700 2692 +3800 2693 +8800 2693 +6200 2694 +6500 2694 +6600 2695 +7600 2695 +100 2696 +5000 2696 +2000 2697 +6700 2697 +6600 2698 +10000 2698 +4800 2699 +6100 2699 +8600 2699 +7900 2700 +8000 2700 +5200 2701 +5000 2702 +5400 2702 +5300 2703 +5800 2703 +5500 2704 +5700 2704 +6000 2705 +7700 2705 +5500 2706 +5600 2706 +5600 2707 +5900 2707 +4800 2708 +6000 2708 +4700 2709 +7500 2709 +2700 2710 +7100 2710 +4100 2711 +7300 2711 +4700 2712 +6300 2712 +4800 2713 +5100 2713 +2900 2714 +5200 2714 +2800 2715 +7000 2715 +6500 2716 +7900 2716 +4600 2717 +7700 2717 +3800 2718 +8800 2718 +6200 2719 +6500 2719 +6600 2720 +7600 2720 +100 2721 +5000 2721 +2000 2722 +6700 2722 +6600 2723 +10000 2723 +4800 2724 +6100 2724 +8600 2724 +7900 2725 +8000 2725 +5200 2726 +5000 2727 +5400 2727 +5300 2728 +5800 2728 +5500 2729 +5700 2729 +6000 2730 +7700 2730 +5500 2731 +5600 2731 +5600 2732 +5900 2732 +4800 2733 +6000 2733 +4700 2734 +7500 2734 +2700 2735 +7100 2735 +4100 2736 +7300 2736 +4700 2737 +6300 2737 +4800 2738 +5100 2738 +2900 2739 +5200 2739 +2800 2740 +7000 2740 +6500 2741 +7900 2741 +4600 2742 +7700 2742 +3800 2743 +8800 2743 +6200 2744 +6500 2744 +6600 2745 +7600 2745 +100 2746 +5000 2746 +2000 2747 +6700 2747 +6600 2748 +10000 2748 +4800 2749 +6100 2749 +8600 2749 +7900 2750 +8000 2750 +5200 2751 +5000 2752 +5400 2752 +5300 2753 +5800 2753 +5500 2754 +5700 2754 +6000 2755 +7700 2755 +5500 2756 +5600 2756 +5600 2757 +5900 2757 +4800 2758 +6000 2758 +4700 2759 +7500 2759 +2700 2760 +7100 2760 +4100 2761 +7300 2761 +4700 2762 +6300 2762 +4800 2763 +5100 2763 +2900 2764 +5200 2764 +2800 2765 +7000 2765 +6500 2766 +7900 2766 +4600 2767 +7700 2767 +3800 2768 +8800 2768 +6200 2769 +6500 2769 +6600 2770 +7600 2770 +100 2771 +5000 2771 +2000 2772 +6700 2772 +6600 2773 +10000 2773 +4800 2774 +6100 2774 +8600 2774 +7900 2775 +8000 2775 +5200 2776 +5000 2777 +5400 2777 +5300 2778 +5800 2778 +5500 2779 +5700 2779 +6000 2780 +7700 2780 +5500 2781 +5600 2781 +5600 2782 +5900 2782 +4800 2783 +6000 2783 +4700 2784 +7500 2784 +2700 2785 +7100 2785 +4100 2786 +7300 2786 +4700 2787 +6300 2787 +4800 2788 +5100 2788 +2900 2789 +5200 2789 +2800 2790 +7000 2790 +6500 2791 +7900 2791 +4600 2792 +7700 2792 +3800 2793 +8800 2793 +6200 2794 +6500 2794 +6600 2795 +7600 2795 +100 2796 +5000 2796 +2000 2797 +6700 2797 +6600 2798 +10000 2798 +4800 2799 +6100 2799 +8600 2799 +7900 2800 +8000 2800 +5200 2801 +5000 2802 +5400 2802 +5300 2803 +5800 2803 +5500 2804 +5700 2804 +6000 2805 +7700 2805 +5500 2806 +5600 2806 +5600 2807 +5900 2807 +4800 2808 +6000 2808 +4700 2809 +7500 2809 +2700 2810 +7100 2810 +4100 2811 +7300 2811 +4700 2812 +6300 2812 +4800 2813 +5100 2813 +2900 2814 +5200 2814 +2800 2815 +7000 2815 +6500 2816 +7900 2816 +4600 2817 +7700 2817 +3800 2818 +8800 2818 +6200 2819 +6500 2819 +6600 2820 +7600 2820 +100 2821 +5000 2821 +2000 2822 +6700 2822 +6600 2823 +10000 2823 +4800 2824 +6100 2824 +8600 2824 +7900 2825 +8000 2825 +5200 2826 +5000 2827 +5400 2827 +5300 2828 +5800 2828 +5500 2829 +5700 2829 +6000 2830 +7700 2830 +5500 2831 +5600 2831 +5600 2832 +5900 2832 +4800 2833 +6000 2833 +4700 2834 +7500 2834 +2700 2835 +7100 2835 +4100 2836 +7300 2836 +4700 2837 +6300 2837 +4800 2838 +5100 2838 +2900 2839 +5200 2839 +2800 2840 +7000 2840 +6500 2841 +7900 2841 +4600 2842 +7700 2842 +3800 2843 +8800 2843 +6200 2844 +6500 2844 +6600 2845 +7600 2845 +100 2846 +5000 2846 +2000 2847 +6700 2847 +6600 2848 +10000 2848 +4800 2849 +6100 2849 +8600 2849 +7900 2850 +8000 2850 +5200 2851 +5000 2852 +5400 2852 +5300 2853 +5800 2853 +5500 2854 +5700 2854 +6000 2855 +7700 2855 +5500 2856 +5600 2856 +5600 2857 +5900 2857 +4800 2858 +6000 2858 +4700 2859 +7500 2859 +2700 2860 +7100 2860 +4100 2861 +7300 2861 +4700 2862 +6300 2862 +4800 2863 +5100 2863 +2900 2864 +5200 2864 +2800 2865 +7000 2865 +6500 2866 +7900 2866 +4600 2867 +7700 2867 +3800 2868 +8800 2868 +6200 2869 +6500 2869 +6600 2870 +7600 2870 +100 2871 +5000 2871 +2000 2872 +6700 2872 +6600 2873 +10000 2873 +4800 2874 +6100 2874 +8600 2874 +7900 2875 +8000 2875 +5200 2876 +5000 2877 +5400 2877 +5300 2878 +5800 2878 +5500 2879 +5700 2879 +6000 2880 +7700 2880 +5500 2881 +5600 2881 +5600 2882 +5900 2882 +4800 2883 +6000 2883 +4700 2884 +7500 2884 +2700 2885 +7100 2885 +4100 2886 +7300 2886 +4700 2887 +6300 2887 +4800 2888 +5100 2888 +2900 2889 +5200 2889 +2800 2890 +7000 2890 +6500 2891 +7900 2891 +4600 2892 +7700 2892 +3800 2893 +8800 2893 +6200 2894 +6500 2894 +6600 2895 +7600 2895 +100 2896 +5000 2896 +2000 2897 +6700 2897 +6600 2898 +10000 2898 +4800 2899 +6100 2899 +8600 2899 +7900 2900 +8000 2900 +5200 2901 +5000 2902 +5400 2902 +5300 2903 +5800 2903 +5500 2904 +5700 2904 +6000 2905 +7700 2905 +5500 2906 +5600 2906 +5600 2907 +5900 2907 +4800 2908 +6000 2908 +4700 2909 +7500 2909 +2700 2910 +7100 2910 +4100 2911 +7300 2911 +4700 2912 +6300 2912 +4800 2913 +5100 2913 +2900 2914 +5200 2914 +2800 2915 +7000 2915 +6500 2916 +7900 2916 +4600 2917 +7700 2917 +3800 2918 +8800 2918 +6200 2919 +6500 2919 +6600 2920 +7600 2920 +100 2921 +5000 2921 +2000 2922 +6700 2922 +6600 2923 +10000 2923 +4800 2924 +6100 2924 +8600 2924 +7900 2925 +8000 2925 +5200 2926 +5000 2927 +5400 2927 +5300 2928 +5800 2928 +5500 2929 +5700 2929 +6000 2930 +7700 2930 +5500 2931 +5600 2931 +5600 2932 +5900 2932 +4800 2933 +6000 2933 +4700 2934 +7500 2934 +2700 2935 +7100 2935 +4100 2936 +7300 2936 +4700 2937 +6300 2937 +4800 2938 +5100 2938 +2900 2939 +5200 2939 +2800 2940 +7000 2940 +6500 2941 +7900 2941 +4600 2942 +7700 2942 +3800 2943 +8800 2943 +6200 2944 +6500 2944 +6600 2945 +7600 2945 +100 2946 +5000 2946 +2000 2947 +6700 2947 +6600 2948 +10000 2948 +4800 2949 +6100 2949 +8600 2949 +7900 2950 +8000 2950 +5200 2951 +5000 2952 +5400 2952 +5300 2953 +5800 2953 +5500 2954 +5700 2954 +6000 2955 +7700 2955 +5500 2956 +5600 2956 +5600 2957 +5900 2957 +4800 2958 +6000 2958 +4700 2959 +7500 2959 +2700 2960 +7100 2960 +4100 2961 +7300 2961 +4700 2962 +6300 2962 +4800 2963 +5100 2963 +2900 2964 +5200 2964 +2800 2965 +7000 2965 +6500 2966 +7900 2966 +4600 2967 +7700 2967 +3800 2968 +8800 2968 +6200 2969 +6500 2969 +6600 2970 +7600 2970 +100 2971 +5000 2971 +2000 2972 +6700 2972 +6600 2973 +10000 2973 +4800 2974 +6100 2974 +8600 2974 +7900 2975 +8000 2975 +5200 2976 +5000 2977 +5400 2977 +5300 2978 +5800 2978 +5500 2979 +5700 2979 +6000 2980 +7700 2980 +5500 2981 +5600 2981 +5600 2982 +5900 2982 +4800 2983 +6000 2983 +4700 2984 +7500 2984 +2700 2985 +7100 2985 +4100 2986 +7300 2986 +4700 2987 +6300 2987 +4800 2988 +5100 2988 +2900 2989 +5200 2989 +2800 2990 +7000 2990 +6500 2991 +7900 2991 +4600 2992 +7700 2992 +3800 2993 +8800 2993 +6200 2994 +6500 2994 +6600 2995 +7600 2995 +100 2996 +5000 2996 +2000 2997 +6700 2997 +6600 2998 +10000 2998 +4800 2999 +6100 2999 +8600 2999 +7900 3000 +8000 3000 +5200 3001 +5000 3002 +5400 3002 +5300 3003 +5800 3003 +5500 3004 +5700 3004 +6000 3005 +7700 3005 +5500 3006 +5600 3006 +5600 3007 +5900 3007 +4800 3008 +6000 3008 +4700 3009 +7500 3009 +2700 3010 +7100 3010 +4100 3011 +7300 3011 +4700 3012 +6300 3012 +4800 3013 +5100 3013 +2900 3014 +5200 3014 +2800 3015 +7000 3015 +6500 3016 +7900 3016 +4600 3017 +7700 3017 +3800 3018 +8800 3018 +6200 3019 +6500 3019 +6600 3020 +7600 3020 +100 3021 +5000 3021 +2000 3022 +6700 3022 +6600 3023 +10000 3023 +4800 3024 +6100 3024 +8600 3024 +7900 3025 +8000 3025 +5200 3026 +5000 3027 +5400 3027 +5300 3028 +5800 3028 +5500 3029 +5700 3029 +6000 3030 +7700 3030 +5500 3031 +5600 3031 +5600 3032 +5900 3032 +4800 3033 +6000 3033 +4700 3034 +7500 3034 +2700 3035 +7100 3035 +4100 3036 +7300 3036 +4700 3037 +6300 3037 +4800 3038 +5100 3038 +2900 3039 +5200 3039 +2800 3040 +7000 3040 +6500 3041 +7900 3041 +4600 3042 +7700 3042 +3800 3043 +8800 3043 +6200 3044 +6500 3044 +6600 3045 +7600 3045 +100 3046 +5000 3046 +2000 3047 +6700 3047 +6600 3048 +10000 3048 +4800 3049 +6100 3049 +8600 3049 +7900 3050 +8000 3050 +5200 3051 +5000 3052 +5400 3052 +5300 3053 +5800 3053 +5500 3054 +5700 3054 +6000 3055 +7700 3055 +5500 3056 +5600 3056 +5600 3057 +5900 3057 +4800 3058 +6000 3058 +4700 3059 +7500 3059 +2700 3060 +7100 3060 +4100 3061 +7300 3061 +4700 3062 +6300 3062 +4800 3063 +5100 3063 +2900 3064 +5200 3064 +2800 3065 +7000 3065 +6500 3066 +7900 3066 +4600 3067 +7700 3067 +3800 3068 +8800 3068 +6200 3069 +6500 3069 +6600 3070 +7600 3070 +100 3071 +5000 3071 +2000 3072 +6700 3072 +6600 3073 +10000 3073 +4800 3074 +6100 3074 +8600 3074 +7900 3075 +8000 3075 +5200 3076 +5000 3077 +5400 3077 +5300 3078 +5800 3078 +5500 3079 +5700 3079 +6000 3080 +7700 3080 +5500 3081 +5600 3081 +5600 3082 +5900 3082 +4800 3083 +6000 3083 +4700 3084 +7500 3084 +2700 3085 +7100 3085 +4100 3086 +7300 3086 +4700 3087 +6300 3087 +4800 3088 +5100 3088 +2900 3089 +5200 3089 +2800 3090 +7000 3090 +6500 3091 +7900 3091 +4600 3092 +7700 3092 +3800 3093 +8800 3093 +6200 3094 +6500 3094 +6600 3095 +7600 3095 +100 3096 +5000 3096 +2000 3097 +6700 3097 +6600 3098 +10000 3098 +4800 3099 +6100 3099 +8600 3099 +7900 3100 +8000 3100 +5200 3101 +5000 3102 +5400 3102 +5300 3103 +5800 3103 +5500 3104 +5700 3104 +6000 3105 +7700 3105 +5500 3106 +5600 3106 +5600 3107 +5900 3107 +4800 3108 +6000 3108 +4700 3109 +7500 3109 +2700 3110 +7100 3110 +4100 3111 +7300 3111 +4700 3112 +6300 3112 +4800 3113 +5100 3113 +2900 3114 +5200 3114 +2800 3115 +7000 3115 +6500 3116 +7900 3116 +4600 3117 +7700 3117 +3800 3118 +8800 3118 +6200 3119 +6500 3119 +6600 3120 +7600 3120 +100 3121 +5000 3121 +2000 3122 +6700 3122 +6600 3123 +10000 3123 +4800 3124 +6100 3124 +8600 3124 +7900 3125 +8000 3125 +5200 3126 +5000 3127 +5400 3127 +5300 3128 +5800 3128 +5500 3129 +5700 3129 +6000 3130 +7700 3130 +5500 3131 +5600 3131 +5600 3132 +5900 3132 +4800 3133 +6000 3133 +4700 3134 +7500 3134 +2700 3135 +7100 3135 +4100 3136 +7300 3136 +4700 3137 +6300 3137 +4800 3138 +5100 3138 +2900 3139 +5200 3139 +2800 3140 +7000 3140 +6500 3141 +7900 3141 +4600 3142 +7700 3142 +3800 3143 +8800 3143 +6200 3144 +6500 3144 +6600 3145 +7600 3145 +100 3146 +5000 3146 +2000 3147 +6700 3147 +6600 3148 +10000 3148 +4800 3149 +6100 3149 +8600 3149 +7900 3150 +8000 3150 +5200 3151 +5000 3152 +5400 3152 +5300 3153 +5800 3153 +5500 3154 +5700 3154 +6000 3155 +7700 3155 +5500 3156 +5600 3156 +5600 3157 +5900 3157 +4800 3158 +6000 3158 +4700 3159 +7500 3159 +2700 3160 +7100 3160 +4100 3161 +7300 3161 +4700 3162 +6300 3162 +4800 3163 +5100 3163 +2900 3164 +5200 3164 +2800 3165 +7000 3165 +6500 3166 +7900 3166 +4600 3167 +7700 3167 +3800 3168 +8800 3168 +6200 3169 +6500 3169 +6600 3170 +7600 3170 +100 3171 +5000 3171 +2000 3172 +6700 3172 +6600 3173 +10000 3173 +4800 3174 +6100 3174 +8600 3174 +7900 3175 +8000 3175 +5200 3176 +5000 3177 +5400 3177 +5300 3178 +5800 3178 +5500 3179 +5700 3179 +6000 3180 +7700 3180 +5500 3181 +5600 3181 +5600 3182 +5900 3182 +4800 3183 +6000 3183 +4700 3184 +7500 3184 +2700 3185 +7100 3185 +4100 3186 +7300 3186 +4700 3187 +6300 3187 +4800 3188 +5100 3188 +2900 3189 +5200 3189 +2800 3190 +7000 3190 +6500 3191 +7900 3191 +4600 3192 +7700 3192 +3800 3193 +8800 3193 +6200 3194 +6500 3194 +6600 3195 +7600 3195 +100 3196 +5000 3196 +2000 3197 +6700 3197 +6600 3198 +10000 3198 +4800 3199 +6100 3199 +8600 3199 +7900 3200 +8000 3200 +5200 3201 +5000 3202 +5400 3202 +5300 3203 +5800 3203 +5500 3204 +5700 3204 +6000 3205 +7700 3205 +5500 3206 +5600 3206 +5600 3207 +5900 3207 +4800 3208 +6000 3208 +4700 3209 +7500 3209 +2700 3210 +7100 3210 +4100 3211 +7300 3211 +4700 3212 +6300 3212 +4800 3213 +5100 3213 +2900 3214 +5200 3214 +2800 3215 +7000 3215 +6500 3216 +7900 3216 +4600 3217 +7700 3217 +3800 3218 +8800 3218 +6200 3219 +6500 3219 +6600 3220 +7600 3220 +100 3221 +5000 3221 +2000 3222 +6700 3222 +6600 3223 +10000 3223 +4800 3224 +6100 3224 +8600 3224 +7900 3225 +8000 3225 +5200 3226 +5000 3227 +5400 3227 +5300 3228 +5800 3228 +5500 3229 +5700 3229 +6000 3230 +7700 3230 +5500 3231 +5600 3231 +5600 3232 +5900 3232 +4800 3233 +6000 3233 +4700 3234 +7500 3234 +2700 3235 +7100 3235 +4100 3236 +7300 3236 +4700 3237 +6300 3237 +4800 3238 +5100 3238 +2900 3239 +5200 3239 +2800 3240 +7000 3240 +6500 3241 +7900 3241 +4600 3242 +7700 3242 +3800 3243 +8800 3243 +6200 3244 +6500 3244 +6600 3245 +7600 3245 +100 3246 +5000 3246 +2000 3247 +6700 3247 +6600 3248 +10000 3248 +4800 3249 +6100 3249 +8600 3249 +7900 3250 +8000 3250 +5200 3251 +5000 3252 +5400 3252 +5300 3253 +5800 3253 +5500 3254 +5700 3254 +6000 3255 +7700 3255 +5500 3256 +5600 3256 +5600 3257 +5900 3257 +4800 3258 +6000 3258 +4700 3259 +7500 3259 +2700 3260 +7100 3260 +4100 3261 +7300 3261 +4700 3262 +6300 3262 +4800 3263 +5100 3263 +2900 3264 +5200 3264 +2800 3265 +7000 3265 +6500 3266 +7900 3266 +4600 3267 +7700 3267 +3800 3268 +8800 3268 +6200 3269 +6500 3269 +6600 3270 +7600 3270 +100 3271 +5000 3271 +2000 3272 +6700 3272 +6600 3273 +10000 3273 +4800 3274 +6100 3274 +8600 3274 +7900 3275 +8000 3275 +5200 3276 +5000 3277 +5400 3277 +5300 3278 +5800 3278 +5500 3279 +5700 3279 +6000 3280 +7700 3280 +5500 3281 +5600 3281 +5600 3282 +5900 3282 +4800 3283 +6000 3283 +4700 3284 +7500 3284 +2700 3285 +7100 3285 +4100 3286 +7300 3286 +4700 3287 +6300 3287 +4800 3288 +5100 3288 +2900 3289 +5200 3289 +2800 3290 +7000 3290 +6500 3291 +7900 3291 +4600 3292 +7700 3292 +3800 3293 +8800 3293 +6200 3294 +6500 3294 +6600 3295 +7600 3295 +100 3296 +5000 3296 +2000 3297 +6700 3297 +6600 3298 +10000 3298 +4800 3299 +6100 3299 +8600 3299 +7900 3300 +8000 3300 +5200 3301 +5000 3302 +5400 3302 +5300 3303 +5800 3303 +5500 3304 +5700 3304 +6000 3305 +7700 3305 +5500 3306 +5600 3306 +5600 3307 +5900 3307 +4800 3308 +6000 3308 +4700 3309 +7500 3309 +2700 3310 +7100 3310 +4100 3311 +7300 3311 +4700 3312 +6300 3312 +4800 3313 +5100 3313 +2900 3314 +5200 3314 +2800 3315 +7000 3315 +6500 3316 +7900 3316 +4600 3317 +7700 3317 +3800 3318 +8800 3318 +6200 3319 +6500 3319 +6600 3320 +7600 3320 +100 3321 +5000 3321 +2000 3322 +6700 3322 +6600 3323 +10000 3323 +4800 3324 +6100 3324 +8600 3324 +7900 3325 +8000 3325 +5200 3326 +5000 3327 +5400 3327 +5300 3328 +5800 3328 +5500 3329 +5700 3329 +6000 3330 +7700 3330 +5500 3331 +5600 3331 +5600 3332 +5900 3332 +4800 3333 +6000 3333 +4700 3334 +7500 3334 +2700 3335 +7100 3335 +4100 3336 +7300 3336 +4700 3337 +6300 3337 +4800 3338 +5100 3338 +2900 3339 +5200 3339 +2800 3340 +7000 3340 +6500 3341 +7900 3341 +4600 3342 +7700 3342 +3800 3343 +8800 3343 +6200 3344 +6500 3344 +6600 3345 +7600 3345 +100 3346 +5000 3346 +2000 3347 +6700 3347 +6600 3348 +10000 3348 +4800 3349 +6100 3349 +8600 3349 +7900 3350 +8000 3350 +5200 3351 +5000 3352 +5400 3352 +5300 3353 +5800 3353 +5500 3354 +5700 3354 +6000 3355 +7700 3355 +5500 3356 +5600 3356 +5600 3357 +5900 3357 +4800 3358 +6000 3358 +4700 3359 +7500 3359 +2700 3360 +7100 3360 +4100 3361 +7300 3361 +4700 3362 +6300 3362 +4800 3363 +5100 3363 +2900 3364 +5200 3364 +2800 3365 +7000 3365 +6500 3366 +7900 3366 +4600 3367 +7700 3367 +3800 3368 +8800 3368 +6200 3369 +6500 3369 +6600 3370 +7600 3370 +100 3371 +5000 3371 +2000 3372 +6700 3372 +6600 3373 +10000 3373 +4800 3374 +6100 3374 +8600 3374 +7900 3375 +8000 3375 +5200 3376 +5000 3377 +5400 3377 +5300 3378 +5800 3378 +5500 3379 +5700 3379 +6000 3380 +7700 3380 +5500 3381 +5600 3381 +5600 3382 +5900 3382 +4800 3383 +6000 3383 +4700 3384 +7500 3384 +2700 3385 +7100 3385 +4100 3386 +7300 3386 +4700 3387 +6300 3387 +4800 3388 +5100 3388 +2900 3389 +5200 3389 +2800 3390 +7000 3390 +6500 3391 +7900 3391 +4600 3392 +7700 3392 +3800 3393 +8800 3393 +6200 3394 +6500 3394 +6600 3395 +7600 3395 +100 3396 +5000 3396 +2000 3397 +6700 3397 +6600 3398 +10000 3398 +4800 3399 +6100 3399 +8600 3399 +7900 3400 +8000 3400 +5200 3401 +5000 3402 +5400 3402 +5300 3403 +5800 3403 +5500 3404 +5700 3404 +6000 3405 +7700 3405 +5500 3406 +5600 3406 +5600 3407 +5900 3407 +4800 3408 +6000 3408 +4700 3409 +7500 3409 +2700 3410 +7100 3410 +4100 3411 +7300 3411 +4700 3412 +6300 3412 +4800 3413 +5100 3413 +2900 3414 +5200 3414 +2800 3415 +7000 3415 +6500 3416 +7900 3416 +4600 3417 +7700 3417 +3800 3418 +8800 3418 +6200 3419 +6500 3419 +6600 3420 +7600 3420 +100 3421 +5000 3421 +2000 3422 +6700 3422 +6600 3423 +10000 3423 +4800 3424 +6100 3424 +8600 3424 +7900 3425 +8000 3425 +5200 3426 +5000 3427 +5400 3427 +5300 3428 +5800 3428 +5500 3429 +5700 3429 +6000 3430 +7700 3430 +5500 3431 +5600 3431 +5600 3432 +5900 3432 +4800 3433 +6000 3433 +4700 3434 +7500 3434 +2700 3435 +7100 3435 +4100 3436 +7300 3436 +4700 3437 +6300 3437 +4800 3438 +5100 3438 +2900 3439 +5200 3439 +2800 3440 +7000 3440 +6500 3441 +7900 3441 +4600 3442 +7700 3442 +3800 3443 +8800 3443 +6200 3444 +6500 3444 +6600 3445 +7600 3445 +100 3446 +5000 3446 +2000 3447 +6700 3447 +6600 3448 +10000 3448 +4800 3449 +6100 3449 +8600 3449 +7900 3450 +8000 3450 +5200 3451 +5000 3452 +5400 3452 +5300 3453 +5800 3453 +5500 3454 +5700 3454 +6000 3455 +7700 3455 +5500 3456 +5600 3456 +5600 3457 +5900 3457 +4800 3458 +6000 3458 +4700 3459 +7500 3459 +2700 3460 +7100 3460 +4100 3461 +7300 3461 +4700 3462 +6300 3462 +4800 3463 +5100 3463 +2900 3464 +5200 3464 +2800 3465 +7000 3465 +6500 3466 +7900 3466 +4600 3467 +7700 3467 +3800 3468 +8800 3468 +6200 3469 +6500 3469 +6600 3470 +7600 3470 +100 3471 +5000 3471 +2000 3472 +6700 3472 +6600 3473 +10000 3473 +4800 3474 +6100 3474 +8600 3474 +7900 3475 +8000 3475 +5200 3476 +5000 3477 +5400 3477 +5300 3478 +5800 3478 +5500 3479 +5700 3479 +6000 3480 +7700 3480 +5500 3481 +5600 3481 +5600 3482 +5900 3482 +4800 3483 +6000 3483 +4700 3484 +7500 3484 +2700 3485 +7100 3485 +4100 3486 +7300 3486 +4700 3487 +6300 3487 +4800 3488 +5100 3488 +2900 3489 +5200 3489 +2800 3490 +7000 3490 +6500 3491 +7900 3491 +4600 3492 +7700 3492 +3800 3493 +8800 3493 +6200 3494 +6500 3494 +6600 3495 +7600 3495 +100 3496 +5000 3496 +2000 3497 +6700 3497 +6600 3498 +10000 3498 +4800 3499 +6100 3499 +8600 3499 +7900 3500 +8000 3500 +5200 3501 +5000 3502 +5400 3502 +5300 3503 +5800 3503 +5500 3504 +5700 3504 +6000 3505 +7700 3505 +5500 3506 +5600 3506 +5600 3507 +5900 3507 +4800 3508 +6000 3508 +4700 3509 +7500 3509 +2700 3510 +7100 3510 +4100 3511 +7300 3511 +4700 3512 +6300 3512 +4800 3513 +5100 3513 +2900 3514 +5200 3514 +2800 3515 +7000 3515 +6500 3516 +7900 3516 +4600 3517 +7700 3517 +3800 3518 +8800 3518 +6200 3519 +6500 3519 +6600 3520 +7600 3520 +100 3521 +5000 3521 +2000 3522 +6700 3522 +6600 3523 +10000 3523 +4800 3524 +6100 3524 +8600 3524 +7900 3525 +8000 3525 +5200 3526 +5000 3527 +5400 3527 +5300 3528 +5800 3528 +5500 3529 +5700 3529 +6000 3530 +7700 3530 +5500 3531 +5600 3531 +5600 3532 +5900 3532 +4800 3533 +6000 3533 +4700 3534 +7500 3534 +2700 3535 +7100 3535 +4100 3536 +7300 3536 +4700 3537 +6300 3537 +4800 3538 +5100 3538 +2900 3539 +5200 3539 +2800 3540 +7000 3540 +6500 3541 +7900 3541 +4600 3542 +7700 3542 +3800 3543 +8800 3543 +6200 3544 +6500 3544 +6600 3545 +7600 3545 +100 3546 +5000 3546 +2000 3547 +6700 3547 +6600 3548 +10000 3548 +4800 3549 +6100 3549 +8600 3549 +7900 3550 +8000 3550 +5200 3551 +5000 3552 +5400 3552 +5300 3553 +5800 3553 +5500 3554 +5700 3554 +6000 3555 +7700 3555 +5500 3556 +5600 3556 +5600 3557 +5900 3557 +4800 3558 +6000 3558 +4700 3559 +7500 3559 +2700 3560 +7100 3560 +4100 3561 +7300 3561 +4700 3562 +6300 3562 +4800 3563 +5100 3563 +2900 3564 +5200 3564 +2800 3565 +7000 3565 +6500 3566 +7900 3566 +4600 3567 +7700 3567 +3800 3568 +8800 3568 +6200 3569 +6500 3569 +6600 3570 +7600 3570 +100 3571 +5000 3571 +2000 3572 +6700 3572 +6600 3573 +10000 3573 +4800 3574 +6100 3574 +8600 3574 +7900 3575 +8000 3575 +5200 3576 +5000 3577 +5400 3577 +5300 3578 +5800 3578 +5500 3579 +5700 3579 +6000 3580 +7700 3580 +5500 3581 +5600 3581 +5600 3582 +5900 3582 +4800 3583 +6000 3583 +4700 3584 +7500 3584 +2700 3585 +7100 3585 +4100 3586 +7300 3586 +4700 3587 +6300 3587 +4800 3588 +5100 3588 +2900 3589 +5200 3589 +2800 3590 +7000 3590 +6500 3591 +7900 3591 +4600 3592 +7700 3592 +3800 3593 +8800 3593 +6200 3594 +6500 3594 +6600 3595 +7600 3595 +100 3596 +5000 3596 +2000 3597 +6700 3597 +6600 3598 +10000 3598 +4800 3599 +6100 3599 +8600 3599 +7900 3600 +8000 3600 +5200 3601 +5000 3602 +5400 3602 +5300 3603 +5800 3603 +5500 3604 +5700 3604 +6000 3605 +7700 3605 +5500 3606 +5600 3606 +5600 3607 +5900 3607 +4800 3608 +6000 3608 +4700 3609 +7500 3609 +2700 3610 +7100 3610 +4100 3611 +7300 3611 +4700 3612 +6300 3612 +4800 3613 +5100 3613 +2900 3614 +5200 3614 +2800 3615 +7000 3615 +6500 3616 +7900 3616 +4600 3617 +7700 3617 +3800 3618 +8800 3618 +6200 3619 +6500 3619 +6600 3620 +7600 3620 +100 3621 +5000 3621 +2000 3622 +6700 3622 +6600 3623 +10000 3623 +4800 3624 +6100 3624 +8600 3624 +7900 3625 +8000 3625 +5200 3626 +5000 3627 +5400 3627 +5300 3628 +5800 3628 +5500 3629 +5700 3629 +6000 3630 +7700 3630 +5500 3631 +5600 3631 +5600 3632 +5900 3632 +4800 3633 +6000 3633 +4700 3634 +7500 3634 +2700 3635 +7100 3635 +4100 3636 +7300 3636 +4700 3637 +6300 3637 +4800 3638 +5100 3638 +2900 3639 +5200 3639 +2800 3640 +7000 3640 +6500 3641 +7900 3641 +4600 3642 +7700 3642 +3800 3643 +8800 3643 +6200 3644 +6500 3644 +6600 3645 +7600 3645 +100 3646 +5000 3646 +2000 3647 +6700 3647 +6600 3648 +10000 3648 +4800 3649 +6100 3649 +8600 3649 +7900 3650 +8000 3650 +5200 3651 +5000 3652 +5400 3652 +5300 3653 +5800 3653 +5500 3654 +5700 3654 +6000 3655 +7700 3655 +5500 3656 +5600 3656 +5600 3657 +5900 3657 +4800 3658 +6000 3658 +4700 3659 +7500 3659 +2700 3660 +7100 3660 +4100 3661 +7300 3661 +4700 3662 +6300 3662 +4800 3663 +5100 3663 +2900 3664 +5200 3664 +2800 3665 +7000 3665 +6500 3666 +7900 3666 +4600 3667 +7700 3667 +3800 3668 +8800 3668 +6200 3669 +6500 3669 +6600 3670 +7600 3670 +100 3671 +5000 3671 +2000 3672 +6700 3672 +6600 3673 +10000 3673 +4800 3674 +6100 3674 +8600 3674 +7900 3675 +8000 3675 +5200 3676 +5000 3677 +5400 3677 +5300 3678 +5800 3678 +5500 3679 +5700 3679 +6000 3680 +7700 3680 +5500 3681 +5600 3681 +5600 3682 +5900 3682 +4800 3683 +6000 3683 +4700 3684 +7500 3684 +2700 3685 +7100 3685 +4100 3686 +7300 3686 +4700 3687 +6300 3687 +4800 3688 +5100 3688 +2900 3689 +5200 3689 +2800 3690 +7000 3690 +6500 3691 +7900 3691 +4600 3692 +7700 3692 +3800 3693 +8800 3693 +6200 3694 +6500 3694 +6600 3695 +7600 3695 +100 3696 +5000 3696 +2000 3697 +6700 3697 +6600 3698 +10000 3698 +4800 3699 +6100 3699 +8600 3699 +7900 3700 +8000 3700 +5200 3701 +5000 3702 +5400 3702 +5300 3703 +5800 3703 +5500 3704 +5700 3704 +6000 3705 +7700 3705 +5500 3706 +5600 3706 +5600 3707 +5900 3707 +4800 3708 +6000 3708 +4700 3709 +7500 3709 +2700 3710 +7100 3710 +4100 3711 +7300 3711 +4700 3712 +6300 3712 +4800 3713 +5100 3713 +2900 3714 +5200 3714 +2800 3715 +7000 3715 +6500 3716 +7900 3716 +4600 3717 +7700 3717 +3800 3718 +8800 3718 +6200 3719 +6500 3719 +6600 3720 +7600 3720 +100 3721 +5000 3721 +2000 3722 +6700 3722 +6600 3723 +10000 3723 +4800 3724 +6100 3724 +8600 3724 +7900 3725 +8000 3725 +5200 3726 +5000 3727 +5400 3727 +5300 3728 +5800 3728 +5500 3729 +5700 3729 +6000 3730 +7700 3730 +5500 3731 +5600 3731 +5600 3732 +5900 3732 +4800 3733 +6000 3733 +4700 3734 +7500 3734 +2700 3735 +7100 3735 +4100 3736 +7300 3736 +4700 3737 +6300 3737 +4800 3738 +5100 3738 +2900 3739 +5200 3739 +2800 3740 +7000 3740 +6500 3741 +7900 3741 +4600 3742 +7700 3742 +3800 3743 +8800 3743 +6200 3744 +6500 3744 +6600 3745 +7600 3745 +100 3746 +5000 3746 +2000 3747 +6700 3747 +6600 3748 +10000 3748 +4800 3749 +6100 3749 +8600 3749 +7900 3750 +8000 3750 +5200 3751 +5000 3752 +5400 3752 +5300 3753 +5800 3753 +5500 3754 +5700 3754 +6000 3755 +7700 3755 +5500 3756 +5600 3756 +5600 3757 +5900 3757 +4800 3758 +6000 3758 +4700 3759 +7500 3759 +2700 3760 +7100 3760 +4100 3761 +7300 3761 +4700 3762 +6300 3762 +4800 3763 +5100 3763 +2900 3764 +5200 3764 +2800 3765 +7000 3765 +6500 3766 +7900 3766 +4600 3767 +7700 3767 +3800 3768 +8800 3768 +6200 3769 +6500 3769 +6600 3770 +7600 3770 +100 3771 +5000 3771 +2000 3772 +6700 3772 +6600 3773 +10000 3773 +4800 3774 +6100 3774 +8600 3774 +7900 3775 +8000 3775 +5200 3776 +5000 3777 +5400 3777 +5300 3778 +5800 3778 +5500 3779 +5700 3779 +6000 3780 +7700 3780 +5500 3781 +5600 3781 +5600 3782 +5900 3782 +4800 3783 +6000 3783 +4700 3784 +7500 3784 +2700 3785 +7100 3785 +4100 3786 +7300 3786 +4700 3787 +6300 3787 +4800 3788 +5100 3788 +2900 3789 +5200 3789 +2800 3790 +7000 3790 +6500 3791 +7900 3791 +4600 3792 +7700 3792 +3800 3793 +8800 3793 +6200 3794 +6500 3794 +6600 3795 +7600 3795 +100 3796 +5000 3796 +2000 3797 +6700 3797 +6600 3798 +10000 3798 +4800 3799 +6100 3799 +8600 3799 +7900 3800 +8000 3800 +5200 3801 +5000 3802 +5400 3802 +5300 3803 +5800 3803 +5500 3804 +5700 3804 +6000 3805 +7700 3805 +5500 3806 +5600 3806 +5600 3807 +5900 3807 +4800 3808 +6000 3808 +4700 3809 +7500 3809 +2700 3810 +7100 3810 +4100 3811 +7300 3811 +4700 3812 +6300 3812 +4800 3813 +5100 3813 +2900 3814 +5200 3814 +2800 3815 +7000 3815 +6500 3816 +7900 3816 +4600 3817 +7700 3817 +3800 3818 +8800 3818 +6200 3819 +6500 3819 +6600 3820 +7600 3820 +100 3821 +5000 3821 +2000 3822 +6700 3822 +6600 3823 +10000 3823 +4800 3824 +6100 3824 +8600 3824 +7900 3825 +8000 3825 +5200 3826 +5000 3827 +5400 3827 +5300 3828 +5800 3828 +5500 3829 +5700 3829 +6000 3830 +7700 3830 +5500 3831 +5600 3831 +5600 3832 +5900 3832 +4800 3833 +6000 3833 +4700 3834 +7500 3834 +2700 3835 +7100 3835 +4100 3836 +7300 3836 +4700 3837 +6300 3837 +4800 3838 +5100 3838 +2900 3839 +5200 3839 +2800 3840 +7000 3840 +6500 3841 +7900 3841 +4600 3842 +7700 3842 +3800 3843 +8800 3843 +6200 3844 +6500 3844 +6600 3845 +7600 3845 +100 3846 +5000 3846 +2000 3847 +6700 3847 +6600 3848 +10000 3848 +4800 3849 +6100 3849 +8600 3849 +7900 3850 +8000 3850 +5200 3851 +5000 3852 +5400 3852 +5300 3853 +5800 3853 +5500 3854 +5700 3854 +6000 3855 +7700 3855 +5500 3856 +5600 3856 +5600 3857 +5900 3857 +4800 3858 +6000 3858 +4700 3859 +7500 3859 +2700 3860 +7100 3860 +4100 3861 +7300 3861 +4700 3862 +6300 3862 +4800 3863 +5100 3863 +2900 3864 +5200 3864 +2800 3865 +7000 3865 +6500 3866 +7900 3866 +4600 3867 +7700 3867 +3800 3868 +8800 3868 +6200 3869 +6500 3869 +6600 3870 +7600 3870 +100 3871 +5000 3871 +2000 3872 +6700 3872 +6600 3873 +10000 3873 +4800 3874 +6100 3874 +8600 3874 +7900 3875 +8000 3875 +5200 3876 +5000 3877 +5400 3877 +5300 3878 +5800 3878 +5500 3879 +5700 3879 +6000 3880 +7700 3880 +5500 3881 +5600 3881 +5600 3882 +5900 3882 +4800 3883 +6000 3883 +4700 3884 +7500 3884 +2700 3885 +7100 3885 +4100 3886 +7300 3886 +4700 3887 +6300 3887 +4800 3888 +5100 3888 +2900 3889 +5200 3889 +2800 3890 +7000 3890 +6500 3891 +7900 3891 +4600 3892 +7700 3892 +3800 3893 +8800 3893 +6200 3894 +6500 3894 +6600 3895 +7600 3895 +100 3896 +5000 3896 +2000 3897 +6700 3897 +6600 3898 +10000 3898 +4800 3899 +6100 3899 +8600 3899 +7900 3900 +8000 3900 +5200 3901 +5000 3902 +5400 3902 +5300 3903 +5800 3903 +5500 3904 +5700 3904 +6000 3905 +7700 3905 +5500 3906 +5600 3906 +5600 3907 +5900 3907 +4800 3908 +6000 3908 +4700 3909 +7500 3909 +2700 3910 +7100 3910 +4100 3911 +7300 3911 +4700 3912 +6300 3912 +4800 3913 +5100 3913 +2900 3914 +5200 3914 +2800 3915 +7000 3915 +6500 3916 +7900 3916 +4600 3917 +7700 3917 +3800 3918 +8800 3918 +6200 3919 +6500 3919 +6600 3920 +7600 3920 +100 3921 +5000 3921 +2000 3922 +6700 3922 +6600 3923 +10000 3923 +4800 3924 +6100 3924 +8600 3924 +7900 3925 +8000 3925 +5200 3926 +5000 3927 +5400 3927 +5300 3928 +5800 3928 +5500 3929 +5700 3929 +6000 3930 +7700 3930 +5500 3931 +5600 3931 +5600 3932 +5900 3932 +4800 3933 +6000 3933 +4700 3934 +7500 3934 +2700 3935 +7100 3935 +4100 3936 +7300 3936 +4700 3937 +6300 3937 +4800 3938 +5100 3938 +2900 3939 +5200 3939 +2800 3940 +7000 3940 +6500 3941 +7900 3941 +4600 3942 +7700 3942 +3800 3943 +8800 3943 +6200 3944 +6500 3944 +6600 3945 +7600 3945 +100 3946 +5000 3946 +2000 3947 +6700 3947 +6600 3948 +10000 3948 +4800 3949 +6100 3949 +8600 3949 +7900 3950 +8000 3950 +5200 3951 +5000 3952 +5400 3952 +5300 3953 +5800 3953 +5500 3954 +5700 3954 +6000 3955 +7700 3955 +5500 3956 +5600 3956 +5600 3957 +5900 3957 +4800 3958 +6000 3958 +4700 3959 +7500 3959 +2700 3960 +7100 3960 +4100 3961 +7300 3961 +4700 3962 +6300 3962 +4800 3963 +5100 3963 +2900 3964 +5200 3964 +2800 3965 +7000 3965 +6500 3966 +7900 3966 +4600 3967 +7700 3967 +3800 3968 +8800 3968 +6200 3969 +6500 3969 +6600 3970 +7600 3970 +100 3971 +5000 3971 +2000 3972 +6700 3972 +6600 3973 +10000 3973 +4800 3974 +6100 3974 +8600 3974 +7900 3975 +8000 3975 +5200 3976 +5000 3977 +5400 3977 +5300 3978 +5800 3978 +5500 3979 +5700 3979 +6000 3980 +7700 3980 +5500 3981 +5600 3981 +5600 3982 +5900 3982 +4800 3983 +6000 3983 +4700 3984 +7500 3984 +2700 3985 +7100 3985 +4100 3986 +7300 3986 +4700 3987 +6300 3987 +4800 3988 +5100 3988 +2900 3989 +5200 3989 +2800 3990 +7000 3990 +6500 3991 +7900 3991 +4600 3992 +7700 3992 +3800 3993 +8800 3993 +6200 3994 +6500 3994 +6600 3995 +7600 3995 +100 3996 +5000 3996 +2000 3997 +6700 3997 +6600 3998 +10000 3998 +4800 3999 +6100 3999 +8600 3999 +7900 4000 +8000 4000 +5200 4001 +5000 4002 +5400 4002 +5300 4003 +5800 4003 +5500 4004 +5700 4004 +6000 4005 +7700 4005 +5500 4006 +5600 4006 +5600 4007 +5900 4007 +4800 4008 +6000 4008 +4700 4009 +7500 4009 +2700 4010 +7100 4010 +4100 4011 +7300 4011 +4700 4012 +6300 4012 +4800 4013 +5100 4013 +2900 4014 +5200 4014 +2800 4015 +7000 4015 +6500 4016 +7900 4016 +4600 4017 +7700 4017 +3800 4018 +8800 4018 +6200 4019 +6500 4019 +6600 4020 +7600 4020 +100 4021 +5000 4021 +2000 4022 +6700 4022 +6600 4023 +10000 4023 +4800 4024 +6100 4024 +8600 4024 +7900 4025 +8000 4025 +5200 4026 +5000 4027 +5400 4027 +5300 4028 +5800 4028 +5500 4029 +5700 4029 +6000 4030 +7700 4030 +5500 4031 +5600 4031 +5600 4032 +5900 4032 +4800 4033 +6000 4033 +4700 4034 +7500 4034 +2700 4035 +7100 4035 +4100 4036 +7300 4036 +4700 4037 +6300 4037 +4800 4038 +5100 4038 +2900 4039 +5200 4039 +2800 4040 +7000 4040 +6500 4041 +7900 4041 +4600 4042 +7700 4042 +3800 4043 +8800 4043 +6200 4044 +6500 4044 +6600 4045 +7600 4045 +100 4046 +5000 4046 +2000 4047 +6700 4047 +6600 4048 +10000 4048 +4800 4049 +6100 4049 +8600 4049 +7900 4050 +8000 4050 +5200 4051 +5000 4052 +5400 4052 +5300 4053 +5800 4053 +5500 4054 +5700 4054 +6000 4055 +7700 4055 +5500 4056 +5600 4056 +5600 4057 +5900 4057 +4800 4058 +6000 4058 +4700 4059 +7500 4059 +2700 4060 +7100 4060 +4100 4061 +7300 4061 +4700 4062 +6300 4062 +4800 4063 +5100 4063 +2900 4064 +5200 4064 +2800 4065 +7000 4065 +6500 4066 +7900 4066 +4600 4067 +7700 4067 +3800 4068 +8800 4068 +6200 4069 +6500 4069 +6600 4070 +7600 4070 +100 4071 +5000 4071 +2000 4072 +6700 4072 +6600 4073 +10000 4073 +4800 4074 +6100 4074 +8600 4074 +7900 4075 +8000 4075 +5200 4076 +5000 4077 +5400 4077 +5300 4078 +5800 4078 +5500 4079 +5700 4079 +6000 4080 +7700 4080 +5500 4081 +5600 4081 +5600 4082 +5900 4082 +4800 4083 +6000 4083 +4700 4084 +7500 4084 +2700 4085 +7100 4085 +4100 4086 +7300 4086 +4700 4087 +6300 4087 +4800 4088 +5100 4088 +2900 4089 +5200 4089 +2800 4090 +7000 4090 +6500 4091 +7900 4091 +4600 4092 +7700 4092 +3800 4093 +8800 4093 +6200 4094 +6500 4094 +6600 4095 +7600 4095 +100 4096 +5000 4096 +2000 4097 +6700 4097 +6600 4098 +10000 4098 +4800 4099 +6100 4099 +8600 4099 +7900 4100 +8000 4100 +5200 4101 +5000 4102 +5400 4102 +5300 4103 +5800 4103 +5500 4104 +5700 4104 +6000 4105 +7700 4105 +5500 4106 +5600 4106 +5600 4107 +5900 4107 +4800 4108 +6000 4108 +4700 4109 +7500 4109 +2700 4110 +7100 4110 +4100 4111 +7300 4111 +4700 4112 +6300 4112 +4800 4113 +5100 4113 +2900 4114 +5200 4114 +2800 4115 +7000 4115 +6500 4116 +7900 4116 +4600 4117 +7700 4117 +3800 4118 +8800 4118 +6200 4119 +6500 4119 +6600 4120 +7600 4120 +100 4121 +5000 4121 +2000 4122 +6700 4122 +6600 4123 +10000 4123 +4800 4124 +6100 4124 +8600 4124 +7900 4125 +8000 4125 +5200 4126 +5000 4127 +5400 4127 +5300 4128 +5800 4128 +5500 4129 +5700 4129 +6000 4130 +7700 4130 +5500 4131 +5600 4131 +5600 4132 +5900 4132 +4800 4133 +6000 4133 +4700 4134 +7500 4134 +2700 4135 +7100 4135 +4100 4136 +7300 4136 +4700 4137 +6300 4137 +4800 4138 +5100 4138 +2900 4139 +5200 4139 +2800 4140 +7000 4140 +6500 4141 +7900 4141 +4600 4142 +7700 4142 +3800 4143 +8800 4143 +6200 4144 +6500 4144 +6600 4145 +7600 4145 +100 4146 +5000 4146 +2000 4147 +6700 4147 +6600 4148 +10000 4148 +4800 4149 +6100 4149 +8600 4149 +7900 4150 +8000 4150 +5200 4151 +5000 4152 +5400 4152 +5300 4153 +5800 4153 +5500 4154 +5700 4154 +6000 4155 +7700 4155 +5500 4156 +5600 4156 +5600 4157 +5900 4157 +4800 4158 +6000 4158 +4700 4159 +7500 4159 +2700 4160 +7100 4160 +4100 4161 +7300 4161 +4700 4162 +6300 4162 +4800 4163 +5100 4163 +2900 4164 +5200 4164 +2800 4165 +7000 4165 +6500 4166 +7900 4166 +4600 4167 +7700 4167 +3800 4168 +8800 4168 +6200 4169 +6500 4169 +6600 4170 +7600 4170 +100 4171 +5000 4171 +2000 4172 +6700 4172 +6600 4173 +10000 4173 +4800 4174 +6100 4174 +8600 4174 +7900 4175 +8000 4175 +5200 4176 +5000 4177 +5400 4177 +5300 4178 +5800 4178 +5500 4179 +5700 4179 +6000 4180 +7700 4180 +5500 4181 +5600 4181 +5600 4182 +5900 4182 +4800 4183 +6000 4183 +4700 4184 +7500 4184 +2700 4185 +7100 4185 +4100 4186 +7300 4186 +4700 4187 +6300 4187 +4800 4188 +5100 4188 +2900 4189 +5200 4189 +2800 4190 +7000 4190 +6500 4191 +7900 4191 +4600 4192 +7700 4192 +3800 4193 +8800 4193 +6200 4194 +6500 4194 +6600 4195 +7600 4195 +100 4196 +5000 4196 +2000 4197 +6700 4197 +6600 4198 +10000 4198 +4800 4199 +6100 4199 +8600 4199 +7900 4200 +8000 4200 +5200 4201 +5000 4202 +5400 4202 +5300 4203 +5800 4203 +5500 4204 +5700 4204 +6000 4205 +7700 4205 +5500 4206 +5600 4206 +5600 4207 +5900 4207 +4800 4208 +6000 4208 +4700 4209 +7500 4209 +2700 4210 +7100 4210 +4100 4211 +7300 4211 +4700 4212 +6300 4212 +4800 4213 +5100 4213 +2900 4214 +5200 4214 +2800 4215 +7000 4215 +6500 4216 +7900 4216 +4600 4217 +7700 4217 +3800 4218 +8800 4218 +6200 4219 +6500 4219 +6600 4220 +7600 4220 +100 4221 +5000 4221 +2000 4222 +6700 4222 +6600 4223 +10000 4223 +4800 4224 +6100 4224 +8600 4224 +7900 4225 +8000 4225 +5200 4226 +5000 4227 +5400 4227 +5300 4228 +5800 4228 +5500 4229 +5700 4229 +6000 4230 +7700 4230 +5500 4231 +5600 4231 +5600 4232 +5900 4232 +4800 4233 +6000 4233 +4700 4234 +7500 4234 +2700 4235 +7100 4235 +4100 4236 +7300 4236 +4700 4237 +6300 4237 +4800 4238 +5100 4238 +2900 4239 +5200 4239 +2800 4240 +7000 4240 +6500 4241 +7900 4241 +4600 4242 +7700 4242 +3800 4243 +8800 4243 +6200 4244 +6500 4244 +6600 4245 +7600 4245 +100 4246 +5000 4246 +2000 4247 +6700 4247 +6600 4248 +10000 4248 +4800 4249 +6100 4249 +8600 4249 +7900 4250 +8000 4250 +5200 4251 +5000 4252 +5400 4252 +5300 4253 +5800 4253 +5500 4254 +5700 4254 +6000 4255 +7700 4255 +5500 4256 +5600 4256 +5600 4257 +5900 4257 +4800 4258 +6000 4258 +4700 4259 +7500 4259 +2700 4260 +7100 4260 +4100 4261 +7300 4261 +4700 4262 +6300 4262 +4800 4263 +5100 4263 +2900 4264 +5200 4264 +2800 4265 +7000 4265 +6500 4266 +7900 4266 +4600 4267 +7700 4267 +3800 4268 +8800 4268 +6200 4269 +6500 4269 +6600 4270 +7600 4270 +100 4271 +5000 4271 +2000 4272 +6700 4272 +6600 4273 +10000 4273 +4800 4274 +6100 4274 +8600 4274 +7900 4275 +8000 4275 +5200 4276 +5000 4277 +5400 4277 +5300 4278 +5800 4278 +5500 4279 +5700 4279 +6000 4280 +7700 4280 +5500 4281 +5600 4281 +5600 4282 +5900 4282 +4800 4283 +6000 4283 +4700 4284 +7500 4284 +2700 4285 +7100 4285 +4100 4286 +7300 4286 +4700 4287 +6300 4287 +4800 4288 +5100 4288 +2900 4289 +5200 4289 +2800 4290 +7000 4290 +6500 4291 +7900 4291 +4600 4292 +7700 4292 +3800 4293 +8800 4293 +6200 4294 +6500 4294 +6600 4295 +7600 4295 +100 4296 +5000 4296 +2000 4297 +6700 4297 +6600 4298 +10000 4298 +4800 4299 +6100 4299 +8600 4299 +7900 4300 +8000 4300 +5200 4301 +5000 4302 +5400 4302 +5300 4303 +5800 4303 +5500 4304 +5700 4304 +6000 4305 +7700 4305 +5500 4306 +5600 4306 +5600 4307 +5900 4307 +4800 4308 +6000 4308 +4700 4309 +7500 4309 +2700 4310 +7100 4310 +4100 4311 +7300 4311 +4700 4312 +6300 4312 +4800 4313 +5100 4313 +2900 4314 +5200 4314 +2800 4315 +7000 4315 +6500 4316 +7900 4316 +4600 4317 +7700 4317 +3800 4318 +8800 4318 +6200 4319 +6500 4319 +6600 4320 +7600 4320 +100 4321 +5000 4321 +2000 4322 +6700 4322 +6600 4323 +10000 4323 +4800 4324 +6100 4324 +8600 4324 +7900 4325 +8000 4325 +5200 4326 +5000 4327 +5400 4327 +5300 4328 +5800 4328 +5500 4329 +5700 4329 +6000 4330 +7700 4330 +5500 4331 +5600 4331 +5600 4332 +5900 4332 +4800 4333 +6000 4333 +4700 4334 +7500 4334 +2700 4335 +7100 4335 +4100 4336 +7300 4336 +4700 4337 +6300 4337 +4800 4338 +5100 4338 +2900 4339 +5200 4339 +2800 4340 +7000 4340 +6500 4341 +7900 4341 +4600 4342 +7700 4342 +3800 4343 +8800 4343 +6200 4344 +6500 4344 +6600 4345 +7600 4345 +100 4346 +5000 4346 +2000 4347 +6700 4347 +6600 4348 +10000 4348 +4800 4349 +6100 4349 +8600 4349 +7900 4350 +8000 4350 +5200 4351 +5000 4352 +5400 4352 +5300 4353 +5800 4353 +5500 4354 +5700 4354 +6000 4355 +7700 4355 +5500 4356 +5600 4356 +5600 4357 +5900 4357 +4800 4358 +6000 4358 +4700 4359 +7500 4359 +2700 4360 +7100 4360 +4100 4361 +7300 4361 +4700 4362 +6300 4362 +4800 4363 +5100 4363 +2900 4364 +5200 4364 +2800 4365 +7000 4365 +6500 4366 +7900 4366 +4600 4367 +7700 4367 +3800 4368 +8800 4368 +6200 4369 +6500 4369 +6600 4370 +7600 4370 +100 4371 +5000 4371 +2000 4372 +6700 4372 +6600 4373 +10000 4373 +4800 4374 +6100 4374 +8600 4374 +7900 4375 +8000 4375 +5200 4376 +5000 4377 +5400 4377 +5300 4378 +5800 4378 +5500 4379 +5700 4379 +6000 4380 +7700 4380 +5500 4381 +5600 4381 +5600 4382 +5900 4382 +4800 4383 +6000 4383 +4700 4384 +7500 4384 +2700 4385 +7100 4385 +4100 4386 +7300 4386 +4700 4387 +6300 4387 +4800 4388 +5100 4388 +2900 4389 +5200 4389 +2800 4390 +7000 4390 +6500 4391 +7900 4391 +4600 4392 +7700 4392 +3800 4393 +8800 4393 +6200 4394 +6500 4394 +6600 4395 +7600 4395 +100 4396 +5000 4396 +2000 4397 +6700 4397 +6600 4398 +10000 4398 +4800 4399 +6100 4399 +8600 4399 +7900 4400 +8000 4400 +5200 4401 +5000 4402 +5400 4402 +5300 4403 +5800 4403 +5500 4404 +5700 4404 +6000 4405 +7700 4405 +5500 4406 +5600 4406 +5600 4407 +5900 4407 +4800 4408 +6000 4408 +4700 4409 +7500 4409 +2700 4410 +7100 4410 +4100 4411 +7300 4411 +4700 4412 +6300 4412 +4800 4413 +5100 4413 +2900 4414 +5200 4414 +2800 4415 +7000 4415 +6500 4416 +7900 4416 +4600 4417 +7700 4417 +3800 4418 +8800 4418 +6200 4419 +6500 4419 +6600 4420 +7600 4420 +100 4421 +5000 4421 +2000 4422 +6700 4422 +6600 4423 +10000 4423 +4800 4424 +6100 4424 +8600 4424 +7900 4425 +8000 4425 +5200 4426 +5000 4427 +5400 4427 +5300 4428 +5800 4428 +5500 4429 +5700 4429 +6000 4430 +7700 4430 +5500 4431 +5600 4431 +5600 4432 +5900 4432 +4800 4433 +6000 4433 +4700 4434 +7500 4434 +2700 4435 +7100 4435 +4100 4436 +7300 4436 +4700 4437 +6300 4437 +4800 4438 +5100 4438 +2900 4439 +5200 4439 +2800 4440 +7000 4440 +6500 4441 +7900 4441 +4600 4442 +7700 4442 +3800 4443 +8800 4443 +6200 4444 +6500 4444 +6600 4445 +7600 4445 +100 4446 +5000 4446 +2000 4447 +6700 4447 +6600 4448 +10000 4448 +4800 4449 +6100 4449 +8600 4449 +7900 4450 +8000 4450 +5200 4451 +5000 4452 +5400 4452 +5300 4453 +5800 4453 +5500 4454 +5700 4454 +6000 4455 +7700 4455 +5500 4456 +5600 4456 +5600 4457 +5900 4457 +4800 4458 +6000 4458 +4700 4459 +7500 4459 +2700 4460 +7100 4460 +4100 4461 +7300 4461 +4700 4462 +6300 4462 +4800 4463 +5100 4463 +2900 4464 +5200 4464 +2800 4465 +7000 4465 +6500 4466 +7900 4466 +4600 4467 +7700 4467 +3800 4468 +8800 4468 +6200 4469 +6500 4469 +6600 4470 +7600 4470 +100 4471 +5000 4471 +2000 4472 +6700 4472 +6600 4473 +10000 4473 +4800 4474 +6100 4474 +8600 4474 +7900 4475 +8000 4475 +5200 4476 +5000 4477 +5400 4477 +5300 4478 +5800 4478 +5500 4479 +5700 4479 +6000 4480 +7700 4480 +5500 4481 +5600 4481 +5600 4482 +5900 4482 +4800 4483 +6000 4483 +4700 4484 +7500 4484 +2700 4485 +7100 4485 +4100 4486 +7300 4486 +4700 4487 +6300 4487 +4800 4488 +5100 4488 +2900 4489 +5200 4489 +2800 4490 +7000 4490 +6500 4491 +7900 4491 +4600 4492 +7700 4492 +3800 4493 +8800 4493 +6200 4494 +6500 4494 +6600 4495 +7600 4495 +100 4496 +5000 4496 +2000 4497 +6700 4497 +6600 4498 +10000 4498 +4800 4499 +6100 4499 +8600 4499 +7900 4500 +8000 4500 +5200 4501 +5000 4502 +5400 4502 +5300 4503 +5800 4503 +5500 4504 +5700 4504 +6000 4505 +7700 4505 +5500 4506 +5600 4506 +5600 4507 +5900 4507 +4800 4508 +6000 4508 +4700 4509 +7500 4509 +2700 4510 +7100 4510 +4100 4511 +7300 4511 +4700 4512 +6300 4512 +4800 4513 +5100 4513 +2900 4514 +5200 4514 +2800 4515 +7000 4515 +6500 4516 +7900 4516 +4600 4517 +7700 4517 +3800 4518 +8800 4518 +6200 4519 +6500 4519 +6600 4520 +7600 4520 +100 4521 +5000 4521 +2000 4522 +6700 4522 +6600 4523 +10000 4523 +4800 4524 +6100 4524 +8600 4524 +7900 4525 +8000 4525 +5200 4526 +5000 4527 +5400 4527 +5300 4528 +5800 4528 +5500 4529 +5700 4529 +6000 4530 +7700 4530 +5500 4531 +5600 4531 +5600 4532 +5900 4532 +4800 4533 +6000 4533 +4700 4534 +7500 4534 +2700 4535 +7100 4535 +4100 4536 +7300 4536 +4700 4537 +6300 4537 +4800 4538 +5100 4538 +2900 4539 +5200 4539 +2800 4540 +7000 4540 +6500 4541 +7900 4541 +4600 4542 +7700 4542 +3800 4543 +8800 4543 +6200 4544 +6500 4544 +6600 4545 +7600 4545 +100 4546 +5000 4546 +2000 4547 +6700 4547 +6600 4548 +10000 4548 +4800 4549 +6100 4549 +8600 4549 +7900 4550 +8000 4550 +5200 4551 +5000 4552 +5400 4552 +5300 4553 +5800 4553 +5500 4554 +5700 4554 +6000 4555 +7700 4555 +5500 4556 +5600 4556 +5600 4557 +5900 4557 +4800 4558 +6000 4558 +4700 4559 +7500 4559 +2700 4560 +7100 4560 +4100 4561 +7300 4561 +4700 4562 +6300 4562 +4800 4563 +5100 4563 +2900 4564 +5200 4564 +2800 4565 +7000 4565 +6500 4566 +7900 4566 +4600 4567 +7700 4567 +3800 4568 +8800 4568 +6200 4569 +6500 4569 +6600 4570 +7600 4570 +100 4571 +5000 4571 +2000 4572 +6700 4572 +6600 4573 +10000 4573 +4800 4574 +6100 4574 +8600 4574 +7900 4575 +8000 4575 +5200 4576 +5000 4577 +5400 4577 +5300 4578 +5800 4578 +5500 4579 +5700 4579 +6000 4580 +7700 4580 +5500 4581 +5600 4581 +5600 4582 +5900 4582 +4800 4583 +6000 4583 +4700 4584 +7500 4584 +2700 4585 +7100 4585 +4100 4586 +7300 4586 +4700 4587 +6300 4587 +4800 4588 +5100 4588 +2900 4589 +5200 4589 +2800 4590 +7000 4590 +6500 4591 +7900 4591 +4600 4592 +7700 4592 +3800 4593 +8800 4593 +6200 4594 +6500 4594 +6600 4595 +7600 4595 +100 4596 +5000 4596 +2000 4597 +6700 4597 +6600 4598 +10000 4598 +4800 4599 +6100 4599 +8600 4599 +7900 4600 +8000 4600 +5200 4601 +5000 4602 +5400 4602 +5300 4603 +5800 4603 +5500 4604 +5700 4604 +6000 4605 +7700 4605 +5500 4606 +5600 4606 +5600 4607 +5900 4607 +4800 4608 +6000 4608 +4700 4609 +7500 4609 +2700 4610 +7100 4610 +4100 4611 +7300 4611 +4700 4612 +6300 4612 +4800 4613 +5100 4613 +2900 4614 +5200 4614 +2800 4615 +7000 4615 +6500 4616 +7900 4616 +4600 4617 +7700 4617 +3800 4618 +8800 4618 +6200 4619 +6500 4619 +6600 4620 +7600 4620 +100 4621 +5000 4621 +2000 4622 +6700 4622 +6600 4623 +10000 4623 +4800 4624 +6100 4624 +8600 4624 +7900 4625 +8000 4625 +5200 4626 +5000 4627 +5400 4627 +5300 4628 +5800 4628 +5500 4629 +5700 4629 +6000 4630 +7700 4630 +5500 4631 +5600 4631 +5600 4632 +5900 4632 +4800 4633 +6000 4633 +4700 4634 +7500 4634 +2700 4635 +7100 4635 +4100 4636 +7300 4636 +4700 4637 +6300 4637 +4800 4638 +5100 4638 +2900 4639 +5200 4639 +2800 4640 +7000 4640 +6500 4641 +7900 4641 +4600 4642 +7700 4642 +3800 4643 +8800 4643 +6200 4644 +6500 4644 +6600 4645 +7600 4645 +100 4646 +5000 4646 +2000 4647 +6700 4647 +6600 4648 +10000 4648 +4800 4649 +6100 4649 +8600 4649 +7900 4650 +8000 4650 +5200 4651 +5000 4652 +5400 4652 +5300 4653 +5800 4653 +5500 4654 +5700 4654 +6000 4655 +7700 4655 +5500 4656 +5600 4656 +5600 4657 +5900 4657 +4800 4658 +6000 4658 +4700 4659 +7500 4659 +2700 4660 +7100 4660 +4100 4661 +7300 4661 +4700 4662 +6300 4662 +4800 4663 +5100 4663 +2900 4664 +5200 4664 +2800 4665 +7000 4665 +6500 4666 +7900 4666 +4600 4667 +7700 4667 +3800 4668 +8800 4668 +6200 4669 +6500 4669 +6600 4670 +7600 4670 +100 4671 +5000 4671 +2000 4672 +6700 4672 +6600 4673 +10000 4673 +4800 4674 +6100 4674 +8600 4674 +7900 4675 +8000 4675 +5200 4676 +5000 4677 +5400 4677 +5300 4678 +5800 4678 +5500 4679 +5700 4679 +6000 4680 +7700 4680 +5500 4681 +5600 4681 +5600 4682 +5900 4682 +4800 4683 +6000 4683 +4700 4684 +7500 4684 +2700 4685 +7100 4685 +4100 4686 +7300 4686 +4700 4687 +6300 4687 +4800 4688 +5100 4688 +2900 4689 +5200 4689 +2800 4690 +7000 4690 +6500 4691 +7900 4691 +4600 4692 +7700 4692 +3800 4693 +8800 4693 +6200 4694 +6500 4694 +6600 4695 +7600 4695 +100 4696 +5000 4696 +2000 4697 +6700 4697 +6600 4698 +10000 4698 +4800 4699 +6100 4699 +8600 4699 +7900 4700 +8000 4700 +5200 4701 +5000 4702 +5400 4702 +5300 4703 +5800 4703 +5500 4704 +5700 4704 +6000 4705 +7700 4705 +5500 4706 +5600 4706 +5600 4707 +5900 4707 +4800 4708 +6000 4708 +4700 4709 +7500 4709 +2700 4710 +7100 4710 +4100 4711 +7300 4711 +4700 4712 +6300 4712 +4800 4713 +5100 4713 +2900 4714 +5200 4714 +2800 4715 +7000 4715 +6500 4716 +7900 4716 +4600 4717 +7700 4717 +3800 4718 +8800 4718 +6200 4719 +6500 4719 +6600 4720 +7600 4720 +100 4721 +5000 4721 +2000 4722 +6700 4722 +6600 4723 +10000 4723 +4800 4724 +6100 4724 +8600 4724 +7900 4725 +8000 4725 +5200 4726 +5000 4727 +5400 4727 +5300 4728 +5800 4728 +5500 4729 +5700 4729 +6000 4730 +7700 4730 +5500 4731 +5600 4731 +5600 4732 +5900 4732 +4800 4733 +6000 4733 +4700 4734 +7500 4734 +2700 4735 +7100 4735 +4100 4736 +7300 4736 +4700 4737 +6300 4737 +4800 4738 +5100 4738 +2900 4739 +5200 4739 +2800 4740 +7000 4740 +6500 4741 +7900 4741 +4600 4742 +7700 4742 +3800 4743 +8800 4743 +6200 4744 +6500 4744 +6600 4745 +7600 4745 +100 4746 +5000 4746 +2000 4747 +6700 4747 +6600 4748 +10000 4748 +4800 4749 +6100 4749 +8600 4749 +7900 4750 +8000 4750 +5200 4751 +5000 4752 +5400 4752 +5300 4753 +5800 4753 +5500 4754 +5700 4754 +6000 4755 +7700 4755 +5500 4756 +5600 4756 +5600 4757 +5900 4757 +4800 4758 +6000 4758 +4700 4759 +7500 4759 +2700 4760 +7100 4760 +4100 4761 +7300 4761 +4700 4762 +6300 4762 +4800 4763 +5100 4763 +2900 4764 +5200 4764 +2800 4765 +7000 4765 +6500 4766 +7900 4766 +4600 4767 +7700 4767 +3800 4768 +8800 4768 +6200 4769 +6500 4769 +6600 4770 +7600 4770 +100 4771 +5000 4771 +2000 4772 +6700 4772 +6600 4773 +10000 4773 +4800 4774 +6100 4774 +8600 4774 +7900 4775 +8000 4775 +5200 4776 +5000 4777 +5400 4777 +5300 4778 +5800 4778 +5500 4779 +5700 4779 +6000 4780 +7700 4780 +5500 4781 +5600 4781 +5600 4782 +5900 4782 +4800 4783 +6000 4783 +4700 4784 +7500 4784 +2700 4785 +7100 4785 +4100 4786 +7300 4786 +4700 4787 +6300 4787 +4800 4788 +5100 4788 +2900 4789 +5200 4789 +2800 4790 +7000 4790 +6500 4791 +7900 4791 +4600 4792 +7700 4792 +3800 4793 +8800 4793 +6200 4794 +6500 4794 +6600 4795 +7600 4795 +100 4796 +5000 4796 +2000 4797 +6700 4797 +6600 4798 +10000 4798 +4800 4799 +6100 4799 +8600 4799 +7900 4800 +8000 4800 +5200 4801 +5000 4802 +5400 4802 +5300 4803 +5800 4803 +5500 4804 +5700 4804 +6000 4805 +7700 4805 +5500 4806 +5600 4806 +5600 4807 +5900 4807 +4800 4808 +6000 4808 +4700 4809 +7500 4809 +2700 4810 +7100 4810 +4100 4811 +7300 4811 +4700 4812 +6300 4812 +4800 4813 +5100 4813 +2900 4814 +5200 4814 +2800 4815 +7000 4815 +6500 4816 +7900 4816 +4600 4817 +7700 4817 +3800 4818 +8800 4818 +6200 4819 +6500 4819 +6600 4820 +7600 4820 +100 4821 +5000 4821 +2000 4822 +6700 4822 +6600 4823 +10000 4823 +4800 4824 +6100 4824 +8600 4824 +7900 4825 +8000 4825 +5200 4826 +5000 4827 +5400 4827 +5300 4828 +5800 4828 +5500 4829 +5700 4829 +6000 4830 +7700 4830 +5500 4831 +5600 4831 +5600 4832 +5900 4832 +4800 4833 +6000 4833 +4700 4834 +7500 4834 +2700 4835 +7100 4835 +4100 4836 +7300 4836 +4700 4837 +6300 4837 +4800 4838 +5100 4838 +2900 4839 +5200 4839 +2800 4840 +7000 4840 +6500 4841 +7900 4841 +4600 4842 +7700 4842 +3800 4843 +8800 4843 +6200 4844 +6500 4844 +6600 4845 +7600 4845 +100 4846 +5000 4846 +2000 4847 +6700 4847 +6600 4848 +10000 4848 +4800 4849 +6100 4849 +8600 4849 +7900 4850 +8000 4850 +5200 4851 +5000 4852 +5400 4852 +5300 4853 +5800 4853 +5500 4854 +5700 4854 +6000 4855 +7700 4855 +5500 4856 +5600 4856 +5600 4857 +5900 4857 +4800 4858 +6000 4858 +4700 4859 +7500 4859 +2700 4860 +7100 4860 +4100 4861 +7300 4861 +4700 4862 +6300 4862 +4800 4863 +5100 4863 +2900 4864 +5200 4864 +2800 4865 +7000 4865 +6500 4866 +7900 4866 +4600 4867 +7700 4867 +3800 4868 +8800 4868 +6200 4869 +6500 4869 +6600 4870 +7600 4870 +100 4871 +5000 4871 +2000 4872 +6700 4872 +6600 4873 +10000 4873 +4800 4874 +6100 4874 +8600 4874 +7900 4875 +8000 4875 +5200 4876 +5000 4877 +5400 4877 +5300 4878 +5800 4878 +5500 4879 +5700 4879 +6000 4880 +7700 4880 +5500 4881 +5600 4881 +5600 4882 +5900 4882 +4800 4883 +6000 4883 +4700 4884 +7500 4884 +2700 4885 +7100 4885 +4100 4886 +7300 4886 +4700 4887 +6300 4887 +4800 4888 +5100 4888 +2900 4889 +5200 4889 +2800 4890 +7000 4890 +6500 4891 +7900 4891 +4600 4892 +7700 4892 +3800 4893 +8800 4893 +6200 4894 +6500 4894 +6600 4895 +7600 4895 +100 4896 +5000 4896 +2000 4897 +6700 4897 +6600 4898 +10000 4898 +4800 4899 +6100 4899 +8600 4899 +7900 4900 +8000 4900 +5200 4901 +5000 4902 +5400 4902 +5300 4903 +5800 4903 +5500 4904 +5700 4904 +6000 4905 +7700 4905 +5500 4906 +5600 4906 +5600 4907 +5900 4907 +4800 4908 +6000 4908 +4700 4909 +7500 4909 +2700 4910 +7100 4910 +4100 4911 +7300 4911 +4700 4912 +6300 4912 +4800 4913 +5100 4913 +2900 4914 +5200 4914 +2800 4915 +7000 4915 +6500 4916 +7900 4916 +4600 4917 +7700 4917 +3800 4918 +8800 4918 +6200 4919 +6500 4919 +6600 4920 +7600 4920 +100 4921 +5000 4921 +2000 4922 +6700 4922 +6600 4923 +10000 4923 +4800 4924 +6100 4924 +8600 4924 +7900 4925 +8000 4925 +5200 4926 +5000 4927 +5400 4927 +5300 4928 +5800 4928 +5500 4929 +5700 4929 +6000 4930 +7700 4930 +5500 4931 +5600 4931 +5600 4932 +5900 4932 +4800 4933 +6000 4933 +4700 4934 +7500 4934 +2700 4935 +7100 4935 +4100 4936 +7300 4936 +4700 4937 +6300 4937 +4800 4938 +5100 4938 +2900 4939 +5200 4939 +2800 4940 +7000 4940 +6500 4941 +7900 4941 +4600 4942 +7700 4942 +3800 4943 +8800 4943 +6200 4944 +6500 4944 +6600 4945 +7600 4945 +100 4946 +5000 4946 +2000 4947 +6700 4947 +6600 4948 +10000 4948 +4800 4949 +6100 4949 +8600 4949 +7900 4950 +8000 4950 +5200 4951 +5000 4952 +5400 4952 +5300 4953 +5800 4953 +5500 4954 +5700 4954 +6000 4955 +7700 4955 +5500 4956 +5600 4956 +5600 4957 +5900 4957 +4800 4958 +6000 4958 +4700 4959 +7500 4959 +2700 4960 +7100 4960 +4100 4961 +7300 4961 +4700 4962 +6300 4962 +4800 4963 +5100 4963 +2900 4964 +5200 4964 +2800 4965 +7000 4965 +6500 4966 +7900 4966 +4600 4967 +7700 4967 +3800 4968 +8800 4968 +6200 4969 +6500 4969 +6600 4970 +7600 4970 +100 4971 +5000 4971 +2000 4972 +6700 4972 +6600 4973 +10000 4973 +4800 4974 +6100 4974 +8600 4974 +7900 4975 +8000 4975 +5200 4976 +5000 4977 +5400 4977 +5300 4978 +5800 4978 +5500 4979 +5700 4979 +6000 4980 +7700 4980 +5500 4981 +5600 4981 +5600 4982 +5900 4982 +4800 4983 +6000 4983 +4700 4984 +7500 4984 +2700 4985 +7100 4985 +4100 4986 +7300 4986 +4700 4987 +6300 4987 +4800 4988 +5100 4988 +2900 4989 +5200 4989 +2800 4990 +7000 4990 +6500 4991 +7900 4991 +4600 4992 +7700 4992 +3800 4993 +8800 4993 +6200 4994 +6500 4994 +6600 4995 +7600 4995 +100 4996 +5000 4996 +2000 4997 +6700 4997 +6600 4998 +10000 4998 +4800 4999 +6100 4999 +8600 4999 +7900 5000 +8000 5000 diff --git a/2018/republic/10-12_d2/sarpe/tests/input.9 b/2018/republic/10-12_d2/sarpe/tests/input.9 new file mode 100644 index 0000000..4e297ed --- /dev/null +++ b/2018/republic/10-12_d2/sarpe/tests/input.9 @@ -0,0 +1,10001 @@ +10000 +1800 1 +1900 2 +4000 2 +1600 3 +2200 3 +900 4 +2100 4 +2600 4 +2700 5 +3200 5 +2400 6 +3000 6 +4200 6 +2900 7 +3400 7 +4100 7 +4400 7 +6100 7 +6500 8 +6800 8 +3300 9 +3800 9 +3600 10 +4000 10 +4400 10 +6400 10 +4300 11 +4900 11 +2500 12 +3100 12 +3600 12 +7800 12 +2900 13 +4700 13 +5400 13 +1900 15 +4300 15 +5000 15 +5300 15 +8800 15 +4500 16 +5700 16 +4400 17 +4700 17 +4700 18 +7100 18 +4400 19 +4600 19 +6900 20 +9700 20 +2400 21 +4500 21 +5400 21 +6900 21 +4400 23 +7100 23 +8300 23 +9400 23 +1400 24 +2300 24 +5400 25 +500 27 +1500 27 +2100 27 +5300 27 +5500 27 +100 29 +3700 29 +5700 29 +8200 29 +6300 30 +7200 30 +4800 31 +6900 31 +4600 32 +5800 32 +8000 32 +4800 33 +5400 33 +3100 34 +3500 34 +5700 34 +6900 34 +8900 34 +6900 35 +7900 35 +1600 36 +2700 36 +3600 36 +6800 36 +5200 37 +5500 37 +7700 38 +1700 39 +5800 39 +3800 40 +10000 40 +4100 87 +7100 87 +5300 100 +1800 101 +1900 102 +4000 102 +1600 103 +2200 103 +900 104 +2100 104 +2600 104 +2700 105 +3200 105 +2400 106 +3000 106 +4200 106 +2900 107 +3400 107 +4100 107 +4400 107 +6100 107 +6500 108 +6800 108 +3300 109 +3800 109 +3600 110 +4000 110 +4400 110 +6400 110 +4300 111 +4900 111 +2500 112 +3100 112 +3600 112 +7800 112 +2900 113 +4700 113 +5400 113 +1900 115 +4300 115 +5000 115 +5300 115 +8800 115 +4500 116 +5700 116 +4400 117 +4700 117 +4700 118 +7100 118 +4400 119 +4600 119 +6900 120 +9700 120 +2400 121 +4500 121 +5400 121 +6900 121 +4400 123 +7100 123 +8300 123 +9400 123 +1400 124 +2300 124 +5400 125 +500 127 +1500 127 +2100 127 +5300 127 +5500 127 +100 129 +3700 129 +5700 129 +8200 129 +6300 130 +7200 130 +4800 131 +6900 131 +4600 132 +5800 132 +8000 132 +4800 133 +5400 133 +3100 134 +3500 134 +5700 134 +6900 134 +8900 134 +6900 135 +7900 135 +1600 136 +2700 136 +3600 136 +6800 136 +5200 137 +5500 137 +7700 138 +1700 139 +5800 139 +3800 140 +10000 140 +4100 187 +7100 187 +5300 200 +1800 201 +1900 202 +4000 202 +1600 203 +2200 203 +900 204 +2100 204 +2600 204 +2700 205 +3200 205 +2400 206 +3000 206 +4200 206 +2900 207 +3400 207 +4100 207 +4400 207 +6100 207 +6500 208 +6800 208 +3300 209 +3800 209 +3600 210 +4000 210 +4400 210 +6400 210 +4300 211 +4900 211 +2500 212 +3100 212 +3600 212 +7800 212 +2900 213 +4700 213 +5400 213 +1900 215 +4300 215 +5000 215 +5300 215 +8800 215 +4500 216 +5700 216 +4400 217 +4700 217 +4700 218 +7100 218 +4400 219 +4600 219 +6900 220 +9700 220 +2400 221 +4500 221 +5400 221 +6900 221 +4400 223 +7100 223 +8300 223 +9400 223 +1400 224 +2300 224 +5400 225 +500 227 +1500 227 +2100 227 +5300 227 +5500 227 +100 229 +3700 229 +5700 229 +8200 229 +6300 230 +7200 230 +4800 231 +6900 231 +4600 232 +5800 232 +8000 232 +4800 233 +5400 233 +3100 234 +3500 234 +5700 234 +6900 234 +8900 234 +6900 235 +7900 235 +1600 236 +2700 236 +3600 236 +6800 236 +5200 237 +5500 237 +7700 238 +1700 239 +5800 239 +3800 240 +10000 240 +4100 287 +7100 287 +5300 300 +1800 301 +1900 302 +4000 302 +1600 303 +2200 303 +900 304 +2100 304 +2600 304 +2700 305 +3200 305 +2400 306 +3000 306 +4200 306 +2900 307 +3400 307 +4100 307 +4400 307 +6100 307 +6500 308 +6800 308 +3300 309 +3800 309 +3600 310 +4000 310 +4400 310 +6400 310 +4300 311 +4900 311 +2500 312 +3100 312 +3600 312 +7800 312 +2900 313 +4700 313 +5400 313 +1900 315 +4300 315 +5000 315 +5300 315 +8800 315 +4500 316 +5700 316 +4400 317 +4700 317 +4700 318 +7100 318 +4400 319 +4600 319 +6900 320 +9700 320 +2400 321 +4500 321 +5400 321 +6900 321 +4400 323 +7100 323 +8300 323 +9400 323 +1400 324 +2300 324 +5400 325 +500 327 +1500 327 +2100 327 +5300 327 +5500 327 +100 329 +3700 329 +5700 329 +8200 329 +6300 330 +7200 330 +4800 331 +6900 331 +4600 332 +5800 332 +8000 332 +4800 333 +5400 333 +3100 334 +3500 334 +5700 334 +6900 334 +8900 334 +6900 335 +7900 335 +1600 336 +2700 336 +3600 336 +6800 336 +5200 337 +5500 337 +7700 338 +1700 339 +5800 339 +3800 340 +10000 340 +4100 387 +7100 387 +5300 400 +1800 401 +1900 402 +4000 402 +1600 403 +2200 403 +900 404 +2100 404 +2600 404 +2700 405 +3200 405 +2400 406 +3000 406 +4200 406 +2900 407 +3400 407 +4100 407 +4400 407 +6100 407 +6500 408 +6800 408 +3300 409 +3800 409 +3600 410 +4000 410 +4400 410 +6400 410 +4300 411 +4900 411 +2500 412 +3100 412 +3600 412 +7800 412 +2900 413 +4700 413 +5400 413 +1900 415 +4300 415 +5000 415 +5300 415 +8800 415 +4500 416 +5700 416 +4400 417 +4700 417 +4700 418 +7100 418 +4400 419 +4600 419 +6900 420 +9700 420 +2400 421 +4500 421 +5400 421 +6900 421 +4400 423 +7100 423 +8300 423 +9400 423 +1400 424 +2300 424 +5400 425 +500 427 +1500 427 +2100 427 +5300 427 +5500 427 +100 429 +3700 429 +5700 429 +8200 429 +6300 430 +7200 430 +4800 431 +6900 431 +4600 432 +5800 432 +8000 432 +4800 433 +5400 433 +3100 434 +3500 434 +5700 434 +6900 434 +8900 434 +6900 435 +7900 435 +1600 436 +2700 436 +3600 436 +6800 436 +5200 437 +5500 437 +7700 438 +1700 439 +5800 439 +3800 440 +10000 440 +4100 487 +7100 487 +5300 500 +1800 501 +1900 502 +4000 502 +1600 503 +2200 503 +900 504 +2100 504 +2600 504 +2700 505 +3200 505 +2400 506 +3000 506 +4200 506 +2900 507 +3400 507 +4100 507 +4400 507 +6100 507 +6500 508 +6800 508 +3300 509 +3800 509 +3600 510 +4000 510 +4400 510 +6400 510 +4300 511 +4900 511 +2500 512 +3100 512 +3600 512 +7800 512 +2900 513 +4700 513 +5400 513 +1900 515 +4300 515 +5000 515 +5300 515 +8800 515 +4500 516 +5700 516 +4400 517 +4700 517 +4700 518 +7100 518 +4400 519 +4600 519 +6900 520 +9700 520 +2400 521 +4500 521 +5400 521 +6900 521 +4400 523 +7100 523 +8300 523 +9400 523 +1400 524 +2300 524 +5400 525 +500 527 +1500 527 +2100 527 +5300 527 +5500 527 +100 529 +3700 529 +5700 529 +8200 529 +6300 530 +7200 530 +4800 531 +6900 531 +4600 532 +5800 532 +8000 532 +4800 533 +5400 533 +3100 534 +3500 534 +5700 534 +6900 534 +8900 534 +6900 535 +7900 535 +1600 536 +2700 536 +3600 536 +6800 536 +5200 537 +5500 537 +7700 538 +1700 539 +5800 539 +3800 540 +10000 540 +4100 587 +7100 587 +5300 600 +1800 601 +1900 602 +4000 602 +1600 603 +2200 603 +900 604 +2100 604 +2600 604 +2700 605 +3200 605 +2400 606 +3000 606 +4200 606 +2900 607 +3400 607 +4100 607 +4400 607 +6100 607 +6500 608 +6800 608 +3300 609 +3800 609 +3600 610 +4000 610 +4400 610 +6400 610 +4300 611 +4900 611 +2500 612 +3100 612 +3600 612 +7800 612 +2900 613 +4700 613 +5400 613 +1900 615 +4300 615 +5000 615 +5300 615 +8800 615 +4500 616 +5700 616 +4400 617 +4700 617 +4700 618 +7100 618 +4400 619 +4600 619 +6900 620 +9700 620 +2400 621 +4500 621 +5400 621 +6900 621 +4400 623 +7100 623 +8300 623 +9400 623 +1400 624 +2300 624 +5400 625 +500 627 +1500 627 +2100 627 +5300 627 +5500 627 +100 629 +3700 629 +5700 629 +8200 629 +6300 630 +7200 630 +4800 631 +6900 631 +4600 632 +5800 632 +8000 632 +4800 633 +5400 633 +3100 634 +3500 634 +5700 634 +6900 634 +8900 634 +6900 635 +7900 635 +1600 636 +2700 636 +3600 636 +6800 636 +5200 637 +5500 637 +7700 638 +1700 639 +5800 639 +3800 640 +10000 640 +4100 687 +7100 687 +5300 700 +1800 701 +1900 702 +4000 702 +1600 703 +2200 703 +900 704 +2100 704 +2600 704 +2700 705 +3200 705 +2400 706 +3000 706 +4200 706 +2900 707 +3400 707 +4100 707 +4400 707 +6100 707 +6500 708 +6800 708 +3300 709 +3800 709 +3600 710 +4000 710 +4400 710 +6400 710 +4300 711 +4900 711 +2500 712 +3100 712 +3600 712 +7800 712 +2900 713 +4700 713 +5400 713 +1900 715 +4300 715 +5000 715 +5300 715 +8800 715 +4500 716 +5700 716 +4400 717 +4700 717 +4700 718 +7100 718 +4400 719 +4600 719 +6900 720 +9700 720 +2400 721 +4500 721 +5400 721 +6900 721 +4400 723 +7100 723 +8300 723 +9400 723 +1400 724 +2300 724 +5400 725 +500 727 +1500 727 +2100 727 +5300 727 +5500 727 +100 729 +3700 729 +5700 729 +8200 729 +6300 730 +7200 730 +4800 731 +6900 731 +4600 732 +5800 732 +8000 732 +4800 733 +5400 733 +3100 734 +3500 734 +5700 734 +6900 734 +8900 734 +6900 735 +7900 735 +1600 736 +2700 736 +3600 736 +6800 736 +5200 737 +5500 737 +7700 738 +1700 739 +5800 739 +3800 740 +10000 740 +4100 787 +7100 787 +5300 800 +1800 801 +1900 802 +4000 802 +1600 803 +2200 803 +900 804 +2100 804 +2600 804 +2700 805 +3200 805 +2400 806 +3000 806 +4200 806 +2900 807 +3400 807 +4100 807 +4400 807 +6100 807 +6500 808 +6800 808 +3300 809 +3800 809 +3600 810 +4000 810 +4400 810 +6400 810 +4300 811 +4900 811 +2500 812 +3100 812 +3600 812 +7800 812 +2900 813 +4700 813 +5400 813 +1900 815 +4300 815 +5000 815 +5300 815 +8800 815 +4500 816 +5700 816 +4400 817 +4700 817 +4700 818 +7100 818 +4400 819 +4600 819 +6900 820 +9700 820 +2400 821 +4500 821 +5400 821 +6900 821 +4400 823 +7100 823 +8300 823 +9400 823 +1400 824 +2300 824 +5400 825 +500 827 +1500 827 +2100 827 +5300 827 +5500 827 +100 829 +3700 829 +5700 829 +8200 829 +6300 830 +7200 830 +4800 831 +6900 831 +4600 832 +5800 832 +8000 832 +4800 833 +5400 833 +3100 834 +3500 834 +5700 834 +6900 834 +8900 834 +6900 835 +7900 835 +1600 836 +2700 836 +3600 836 +6800 836 +5200 837 +5500 837 +7700 838 +1700 839 +5800 839 +3800 840 +10000 840 +4100 887 +7100 887 +5300 900 +1800 901 +1900 902 +4000 902 +1600 903 +2200 903 +900 904 +2100 904 +2600 904 +2700 905 +3200 905 +2400 906 +3000 906 +4200 906 +2900 907 +3400 907 +4100 907 +4400 907 +6100 907 +6500 908 +6800 908 +3300 909 +3800 909 +3600 910 +4000 910 +4400 910 +6400 910 +4300 911 +4900 911 +2500 912 +3100 912 +3600 912 +7800 912 +2900 913 +4700 913 +5400 913 +1900 915 +4300 915 +5000 915 +5300 915 +8800 915 +4500 916 +5700 916 +4400 917 +4700 917 +4700 918 +7100 918 +4400 919 +4600 919 +6900 920 +9700 920 +2400 921 +4500 921 +5400 921 +6900 921 +4400 923 +7100 923 +8300 923 +9400 923 +1400 924 +2300 924 +5400 925 +500 927 +1500 927 +2100 927 +5300 927 +5500 927 +100 929 +3700 929 +5700 929 +8200 929 +6300 930 +7200 930 +4800 931 +6900 931 +4600 932 +5800 932 +8000 932 +4800 933 +5400 933 +3100 934 +3500 934 +5700 934 +6900 934 +8900 934 +6900 935 +7900 935 +1600 936 +2700 936 +3600 936 +6800 936 +5200 937 +5500 937 +7700 938 +1700 939 +5800 939 +3800 940 +10000 940 +4100 987 +7100 987 +5300 1000 +1800 1001 +1900 1002 +4000 1002 +1600 1003 +2200 1003 +900 1004 +2100 1004 +2600 1004 +2700 1005 +3200 1005 +2400 1006 +3000 1006 +4200 1006 +2900 1007 +3400 1007 +4100 1007 +4400 1007 +6100 1007 +6500 1008 +6800 1008 +3300 1009 +3800 1009 +3600 1010 +4000 1010 +4400 1010 +6400 1010 +4300 1011 +4900 1011 +2500 1012 +3100 1012 +3600 1012 +7800 1012 +2900 1013 +4700 1013 +5400 1013 +1900 1015 +4300 1015 +5000 1015 +5300 1015 +8800 1015 +4500 1016 +5700 1016 +4400 1017 +4700 1017 +4700 1018 +7100 1018 +4400 1019 +4600 1019 +6900 1020 +9700 1020 +2400 1021 +4500 1021 +5400 1021 +6900 1021 +4400 1023 +7100 1023 +8300 1023 +9400 1023 +1400 1024 +2300 1024 +5400 1025 +500 1027 +1500 1027 +2100 1027 +5300 1027 +5500 1027 +100 1029 +3700 1029 +5700 1029 +8200 1029 +6300 1030 +7200 1030 +4800 1031 +6900 1031 +4600 1032 +5800 1032 +8000 1032 +4800 1033 +5400 1033 +3100 1034 +3500 1034 +5700 1034 +6900 1034 +8900 1034 +6900 1035 +7900 1035 +1600 1036 +2700 1036 +3600 1036 +6800 1036 +5200 1037 +5500 1037 +7700 1038 +1700 1039 +5800 1039 +3800 1040 +10000 1040 +4100 1087 +7100 1087 +5300 1100 +1800 1101 +1900 1102 +4000 1102 +1600 1103 +2200 1103 +900 1104 +2100 1104 +2600 1104 +2700 1105 +3200 1105 +2400 1106 +3000 1106 +4200 1106 +2900 1107 +3400 1107 +4100 1107 +4400 1107 +6100 1107 +6500 1108 +6800 1108 +3300 1109 +3800 1109 +3600 1110 +4000 1110 +4400 1110 +6400 1110 +4300 1111 +4900 1111 +2500 1112 +3100 1112 +3600 1112 +7800 1112 +2900 1113 +4700 1113 +5400 1113 +1900 1115 +4300 1115 +5000 1115 +5300 1115 +8800 1115 +4500 1116 +5700 1116 +4400 1117 +4700 1117 +4700 1118 +7100 1118 +4400 1119 +4600 1119 +6900 1120 +9700 1120 +2400 1121 +4500 1121 +5400 1121 +6900 1121 +4400 1123 +7100 1123 +8300 1123 +9400 1123 +1400 1124 +2300 1124 +5400 1125 +500 1127 +1500 1127 +2100 1127 +5300 1127 +5500 1127 +100 1129 +3700 1129 +5700 1129 +8200 1129 +6300 1130 +7200 1130 +4800 1131 +6900 1131 +4600 1132 +5800 1132 +8000 1132 +4800 1133 +5400 1133 +3100 1134 +3500 1134 +5700 1134 +6900 1134 +8900 1134 +6900 1135 +7900 1135 +1600 1136 +2700 1136 +3600 1136 +6800 1136 +5200 1137 +5500 1137 +7700 1138 +1700 1139 +5800 1139 +3800 1140 +10000 1140 +4100 1187 +7100 1187 +5300 1200 +1800 1201 +1900 1202 +4000 1202 +1600 1203 +2200 1203 +900 1204 +2100 1204 +2600 1204 +2700 1205 +3200 1205 +2400 1206 +3000 1206 +4200 1206 +2900 1207 +3400 1207 +4100 1207 +4400 1207 +6100 1207 +6500 1208 +6800 1208 +3300 1209 +3800 1209 +3600 1210 +4000 1210 +4400 1210 +6400 1210 +4300 1211 +4900 1211 +2500 1212 +3100 1212 +3600 1212 +7800 1212 +2900 1213 +4700 1213 +5400 1213 +1900 1215 +4300 1215 +5000 1215 +5300 1215 +8800 1215 +4500 1216 +5700 1216 +4400 1217 +4700 1217 +4700 1218 +7100 1218 +4400 1219 +4600 1219 +6900 1220 +9700 1220 +2400 1221 +4500 1221 +5400 1221 +6900 1221 +4400 1223 +7100 1223 +8300 1223 +9400 1223 +1400 1224 +2300 1224 +5400 1225 +500 1227 +1500 1227 +2100 1227 +5300 1227 +5500 1227 +100 1229 +3700 1229 +5700 1229 +8200 1229 +6300 1230 +7200 1230 +4800 1231 +6900 1231 +4600 1232 +5800 1232 +8000 1232 +4800 1233 +5400 1233 +3100 1234 +3500 1234 +5700 1234 +6900 1234 +8900 1234 +6900 1235 +7900 1235 +1600 1236 +2700 1236 +3600 1236 +6800 1236 +5200 1237 +5500 1237 +7700 1238 +1700 1239 +5800 1239 +3800 1240 +10000 1240 +4100 1287 +7100 1287 +5300 1300 +1800 1301 +1900 1302 +4000 1302 +1600 1303 +2200 1303 +900 1304 +2100 1304 +2600 1304 +2700 1305 +3200 1305 +2400 1306 +3000 1306 +4200 1306 +2900 1307 +3400 1307 +4100 1307 +4400 1307 +6100 1307 +6500 1308 +6800 1308 +3300 1309 +3800 1309 +3600 1310 +4000 1310 +4400 1310 +6400 1310 +4300 1311 +4900 1311 +2500 1312 +3100 1312 +3600 1312 +7800 1312 +2900 1313 +4700 1313 +5400 1313 +1900 1315 +4300 1315 +5000 1315 +5300 1315 +8800 1315 +4500 1316 +5700 1316 +4400 1317 +4700 1317 +4700 1318 +7100 1318 +4400 1319 +4600 1319 +6900 1320 +9700 1320 +2400 1321 +4500 1321 +5400 1321 +6900 1321 +4400 1323 +7100 1323 +8300 1323 +9400 1323 +1400 1324 +2300 1324 +5400 1325 +500 1327 +1500 1327 +2100 1327 +5300 1327 +5500 1327 +100 1329 +3700 1329 +5700 1329 +8200 1329 +6300 1330 +7200 1330 +4800 1331 +6900 1331 +4600 1332 +5800 1332 +8000 1332 +4800 1333 +5400 1333 +3100 1334 +3500 1334 +5700 1334 +6900 1334 +8900 1334 +6900 1335 +7900 1335 +1600 1336 +2700 1336 +3600 1336 +6800 1336 +5200 1337 +5500 1337 +7700 1338 +1700 1339 +5800 1339 +3800 1340 +10000 1340 +4100 1387 +7100 1387 +5300 1400 +1800 1401 +1900 1402 +4000 1402 +1600 1403 +2200 1403 +900 1404 +2100 1404 +2600 1404 +2700 1405 +3200 1405 +2400 1406 +3000 1406 +4200 1406 +2900 1407 +3400 1407 +4100 1407 +4400 1407 +6100 1407 +6500 1408 +6800 1408 +3300 1409 +3800 1409 +3600 1410 +4000 1410 +4400 1410 +6400 1410 +4300 1411 +4900 1411 +2500 1412 +3100 1412 +3600 1412 +7800 1412 +2900 1413 +4700 1413 +5400 1413 +1900 1415 +4300 1415 +5000 1415 +5300 1415 +8800 1415 +4500 1416 +5700 1416 +4400 1417 +4700 1417 +4700 1418 +7100 1418 +4400 1419 +4600 1419 +6900 1420 +9700 1420 +2400 1421 +4500 1421 +5400 1421 +6900 1421 +4400 1423 +7100 1423 +8300 1423 +9400 1423 +1400 1424 +2300 1424 +5400 1425 +500 1427 +1500 1427 +2100 1427 +5300 1427 +5500 1427 +100 1429 +3700 1429 +5700 1429 +8200 1429 +6300 1430 +7200 1430 +4800 1431 +6900 1431 +4600 1432 +5800 1432 +8000 1432 +4800 1433 +5400 1433 +3100 1434 +3500 1434 +5700 1434 +6900 1434 +8900 1434 +6900 1435 +7900 1435 +1600 1436 +2700 1436 +3600 1436 +6800 1436 +5200 1437 +5500 1437 +7700 1438 +1700 1439 +5800 1439 +3800 1440 +10000 1440 +4100 1487 +7100 1487 +5300 1500 +1800 1501 +1900 1502 +4000 1502 +1600 1503 +2200 1503 +900 1504 +2100 1504 +2600 1504 +2700 1505 +3200 1505 +2400 1506 +3000 1506 +4200 1506 +2900 1507 +3400 1507 +4100 1507 +4400 1507 +6100 1507 +6500 1508 +6800 1508 +3300 1509 +3800 1509 +3600 1510 +4000 1510 +4400 1510 +6400 1510 +4300 1511 +4900 1511 +2500 1512 +3100 1512 +3600 1512 +7800 1512 +2900 1513 +4700 1513 +5400 1513 +1900 1515 +4300 1515 +5000 1515 +5300 1515 +8800 1515 +4500 1516 +5700 1516 +4400 1517 +4700 1517 +4700 1518 +7100 1518 +4400 1519 +4600 1519 +6900 1520 +9700 1520 +2400 1521 +4500 1521 +5400 1521 +6900 1521 +4400 1523 +7100 1523 +8300 1523 +9400 1523 +1400 1524 +2300 1524 +5400 1525 +500 1527 +1500 1527 +2100 1527 +5300 1527 +5500 1527 +100 1529 +3700 1529 +5700 1529 +8200 1529 +6300 1530 +7200 1530 +4800 1531 +6900 1531 +4600 1532 +5800 1532 +8000 1532 +4800 1533 +5400 1533 +3100 1534 +3500 1534 +5700 1534 +6900 1534 +8900 1534 +6900 1535 +7900 1535 +1600 1536 +2700 1536 +3600 1536 +6800 1536 +5200 1537 +5500 1537 +7700 1538 +1700 1539 +5800 1539 +3800 1540 +10000 1540 +4100 1587 +7100 1587 +5300 1600 +1800 1601 +1900 1602 +4000 1602 +1600 1603 +2200 1603 +900 1604 +2100 1604 +2600 1604 +2700 1605 +3200 1605 +2400 1606 +3000 1606 +4200 1606 +2900 1607 +3400 1607 +4100 1607 +4400 1607 +6100 1607 +6500 1608 +6800 1608 +3300 1609 +3800 1609 +3600 1610 +4000 1610 +4400 1610 +6400 1610 +4300 1611 +4900 1611 +2500 1612 +3100 1612 +3600 1612 +7800 1612 +2900 1613 +4700 1613 +5400 1613 +1900 1615 +4300 1615 +5000 1615 +5300 1615 +8800 1615 +4500 1616 +5700 1616 +4400 1617 +4700 1617 +4700 1618 +7100 1618 +4400 1619 +4600 1619 +6900 1620 +9700 1620 +2400 1621 +4500 1621 +5400 1621 +6900 1621 +4400 1623 +7100 1623 +8300 1623 +9400 1623 +1400 1624 +2300 1624 +5400 1625 +500 1627 +1500 1627 +2100 1627 +5300 1627 +5500 1627 +100 1629 +3700 1629 +5700 1629 +8200 1629 +6300 1630 +7200 1630 +4800 1631 +6900 1631 +4600 1632 +5800 1632 +8000 1632 +4800 1633 +5400 1633 +3100 1634 +3500 1634 +5700 1634 +6900 1634 +8900 1634 +6900 1635 +7900 1635 +1600 1636 +2700 1636 +3600 1636 +6800 1636 +5200 1637 +5500 1637 +7700 1638 +1700 1639 +5800 1639 +3800 1640 +10000 1640 +4100 1687 +7100 1687 +5300 1700 +1800 1701 +1900 1702 +4000 1702 +1600 1703 +2200 1703 +900 1704 +2100 1704 +2600 1704 +2700 1705 +3200 1705 +2400 1706 +3000 1706 +4200 1706 +2900 1707 +3400 1707 +4100 1707 +4400 1707 +6100 1707 +6500 1708 +6800 1708 +3300 1709 +3800 1709 +3600 1710 +4000 1710 +4400 1710 +6400 1710 +4300 1711 +4900 1711 +2500 1712 +3100 1712 +3600 1712 +7800 1712 +2900 1713 +4700 1713 +5400 1713 +1900 1715 +4300 1715 +5000 1715 +5300 1715 +8800 1715 +4500 1716 +5700 1716 +4400 1717 +4700 1717 +4700 1718 +7100 1718 +4400 1719 +4600 1719 +6900 1720 +9700 1720 +2400 1721 +4500 1721 +5400 1721 +6900 1721 +4400 1723 +7100 1723 +8300 1723 +9400 1723 +1400 1724 +2300 1724 +5400 1725 +500 1727 +1500 1727 +2100 1727 +5300 1727 +5500 1727 +100 1729 +3700 1729 +5700 1729 +8200 1729 +6300 1730 +7200 1730 +4800 1731 +6900 1731 +4600 1732 +5800 1732 +8000 1732 +4800 1733 +5400 1733 +3100 1734 +3500 1734 +5700 1734 +6900 1734 +8900 1734 +6900 1735 +7900 1735 +1600 1736 +2700 1736 +3600 1736 +6800 1736 +5200 1737 +5500 1737 +7700 1738 +1700 1739 +5800 1739 +3800 1740 +10000 1740 +4100 1787 +7100 1787 +5300 1800 +1800 1801 +1900 1802 +4000 1802 +1600 1803 +2200 1803 +900 1804 +2100 1804 +2600 1804 +2700 1805 +3200 1805 +2400 1806 +3000 1806 +4200 1806 +2900 1807 +3400 1807 +4100 1807 +4400 1807 +6100 1807 +6500 1808 +6800 1808 +3300 1809 +3800 1809 +3600 1810 +4000 1810 +4400 1810 +6400 1810 +4300 1811 +4900 1811 +2500 1812 +3100 1812 +3600 1812 +7800 1812 +2900 1813 +4700 1813 +5400 1813 +1900 1815 +4300 1815 +5000 1815 +5300 1815 +8800 1815 +4500 1816 +5700 1816 +4400 1817 +4700 1817 +4700 1818 +7100 1818 +4400 1819 +4600 1819 +6900 1820 +9700 1820 +2400 1821 +4500 1821 +5400 1821 +6900 1821 +4400 1823 +7100 1823 +8300 1823 +9400 1823 +1400 1824 +2300 1824 +5400 1825 +500 1827 +1500 1827 +2100 1827 +5300 1827 +5500 1827 +100 1829 +3700 1829 +5700 1829 +8200 1829 +6300 1830 +7200 1830 +4800 1831 +6900 1831 +4600 1832 +5800 1832 +8000 1832 +4800 1833 +5400 1833 +3100 1834 +3500 1834 +5700 1834 +6900 1834 +8900 1834 +6900 1835 +7900 1835 +1600 1836 +2700 1836 +3600 1836 +6800 1836 +5200 1837 +5500 1837 +7700 1838 +1700 1839 +5800 1839 +3800 1840 +10000 1840 +4100 1887 +7100 1887 +5300 1900 +1800 1901 +1900 1902 +4000 1902 +1600 1903 +2200 1903 +900 1904 +2100 1904 +2600 1904 +2700 1905 +3200 1905 +2400 1906 +3000 1906 +4200 1906 +2900 1907 +3400 1907 +4100 1907 +4400 1907 +6100 1907 +6500 1908 +6800 1908 +3300 1909 +3800 1909 +3600 1910 +4000 1910 +4400 1910 +6400 1910 +4300 1911 +4900 1911 +2500 1912 +3100 1912 +3600 1912 +7800 1912 +2900 1913 +4700 1913 +5400 1913 +1900 1915 +4300 1915 +5000 1915 +5300 1915 +8800 1915 +4500 1916 +5700 1916 +4400 1917 +4700 1917 +4700 1918 +7100 1918 +4400 1919 +4600 1919 +6900 1920 +9700 1920 +2400 1921 +4500 1921 +5400 1921 +6900 1921 +4400 1923 +7100 1923 +8300 1923 +9400 1923 +1400 1924 +2300 1924 +5400 1925 +500 1927 +1500 1927 +2100 1927 +5300 1927 +5500 1927 +100 1929 +3700 1929 +5700 1929 +8200 1929 +6300 1930 +7200 1930 +4800 1931 +6900 1931 +4600 1932 +5800 1932 +8000 1932 +4800 1933 +5400 1933 +3100 1934 +3500 1934 +5700 1934 +6900 1934 +8900 1934 +6900 1935 +7900 1935 +1600 1936 +2700 1936 +3600 1936 +6800 1936 +5200 1937 +5500 1937 +7700 1938 +1700 1939 +5800 1939 +3800 1940 +10000 1940 +4100 1987 +7100 1987 +5300 2000 +1800 2001 +1900 2002 +4000 2002 +1600 2003 +2200 2003 +900 2004 +2100 2004 +2600 2004 +2700 2005 +3200 2005 +2400 2006 +3000 2006 +4200 2006 +2900 2007 +3400 2007 +4100 2007 +4400 2007 +6100 2007 +6500 2008 +6800 2008 +3300 2009 +3800 2009 +3600 2010 +4000 2010 +4400 2010 +6400 2010 +4300 2011 +4900 2011 +2500 2012 +3100 2012 +3600 2012 +7800 2012 +2900 2013 +4700 2013 +5400 2013 +1900 2015 +4300 2015 +5000 2015 +5300 2015 +8800 2015 +4500 2016 +5700 2016 +4400 2017 +4700 2017 +4700 2018 +7100 2018 +4400 2019 +4600 2019 +6900 2020 +9700 2020 +2400 2021 +4500 2021 +5400 2021 +6900 2021 +4400 2023 +7100 2023 +8300 2023 +9400 2023 +1400 2024 +2300 2024 +5400 2025 +500 2027 +1500 2027 +2100 2027 +5300 2027 +5500 2027 +100 2029 +3700 2029 +5700 2029 +8200 2029 +6300 2030 +7200 2030 +4800 2031 +6900 2031 +4600 2032 +5800 2032 +8000 2032 +4800 2033 +5400 2033 +3100 2034 +3500 2034 +5700 2034 +6900 2034 +8900 2034 +6900 2035 +7900 2035 +1600 2036 +2700 2036 +3600 2036 +6800 2036 +5200 2037 +5500 2037 +7700 2038 +1700 2039 +5800 2039 +3800 2040 +10000 2040 +4100 2087 +7100 2087 +5300 2100 +1800 2101 +1900 2102 +4000 2102 +1600 2103 +2200 2103 +900 2104 +2100 2104 +2600 2104 +2700 2105 +3200 2105 +2400 2106 +3000 2106 +4200 2106 +2900 2107 +3400 2107 +4100 2107 +4400 2107 +6100 2107 +6500 2108 +6800 2108 +3300 2109 +3800 2109 +3600 2110 +4000 2110 +4400 2110 +6400 2110 +4300 2111 +4900 2111 +2500 2112 +3100 2112 +3600 2112 +7800 2112 +2900 2113 +4700 2113 +5400 2113 +1900 2115 +4300 2115 +5000 2115 +5300 2115 +8800 2115 +4500 2116 +5700 2116 +4400 2117 +4700 2117 +4700 2118 +7100 2118 +4400 2119 +4600 2119 +6900 2120 +9700 2120 +2400 2121 +4500 2121 +5400 2121 +6900 2121 +4400 2123 +7100 2123 +8300 2123 +9400 2123 +1400 2124 +2300 2124 +5400 2125 +500 2127 +1500 2127 +2100 2127 +5300 2127 +5500 2127 +100 2129 +3700 2129 +5700 2129 +8200 2129 +6300 2130 +7200 2130 +4800 2131 +6900 2131 +4600 2132 +5800 2132 +8000 2132 +4800 2133 +5400 2133 +3100 2134 +3500 2134 +5700 2134 +6900 2134 +8900 2134 +6900 2135 +7900 2135 +1600 2136 +2700 2136 +3600 2136 +6800 2136 +5200 2137 +5500 2137 +7700 2138 +1700 2139 +5800 2139 +3800 2140 +10000 2140 +4100 2187 +7100 2187 +5300 2200 +1800 2201 +1900 2202 +4000 2202 +1600 2203 +2200 2203 +900 2204 +2100 2204 +2600 2204 +2700 2205 +3200 2205 +2400 2206 +3000 2206 +4200 2206 +2900 2207 +3400 2207 +4100 2207 +4400 2207 +6100 2207 +6500 2208 +6800 2208 +3300 2209 +3800 2209 +3600 2210 +4000 2210 +4400 2210 +6400 2210 +4300 2211 +4900 2211 +2500 2212 +3100 2212 +3600 2212 +7800 2212 +2900 2213 +4700 2213 +5400 2213 +1900 2215 +4300 2215 +5000 2215 +5300 2215 +8800 2215 +4500 2216 +5700 2216 +4400 2217 +4700 2217 +4700 2218 +7100 2218 +4400 2219 +4600 2219 +6900 2220 +9700 2220 +2400 2221 +4500 2221 +5400 2221 +6900 2221 +4400 2223 +7100 2223 +8300 2223 +9400 2223 +1400 2224 +2300 2224 +5400 2225 +500 2227 +1500 2227 +2100 2227 +5300 2227 +5500 2227 +100 2229 +3700 2229 +5700 2229 +8200 2229 +6300 2230 +7200 2230 +4800 2231 +6900 2231 +4600 2232 +5800 2232 +8000 2232 +4800 2233 +5400 2233 +3100 2234 +3500 2234 +5700 2234 +6900 2234 +8900 2234 +6900 2235 +7900 2235 +1600 2236 +2700 2236 +3600 2236 +6800 2236 +5200 2237 +5500 2237 +7700 2238 +1700 2239 +5800 2239 +3800 2240 +10000 2240 +4100 2287 +7100 2287 +5300 2300 +1800 2301 +1900 2302 +4000 2302 +1600 2303 +2200 2303 +900 2304 +2100 2304 +2600 2304 +2700 2305 +3200 2305 +2400 2306 +3000 2306 +4200 2306 +2900 2307 +3400 2307 +4100 2307 +4400 2307 +6100 2307 +6500 2308 +6800 2308 +3300 2309 +3800 2309 +3600 2310 +4000 2310 +4400 2310 +6400 2310 +4300 2311 +4900 2311 +2500 2312 +3100 2312 +3600 2312 +7800 2312 +2900 2313 +4700 2313 +5400 2313 +1900 2315 +4300 2315 +5000 2315 +5300 2315 +8800 2315 +4500 2316 +5700 2316 +4400 2317 +4700 2317 +4700 2318 +7100 2318 +4400 2319 +4600 2319 +6900 2320 +9700 2320 +2400 2321 +4500 2321 +5400 2321 +6900 2321 +4400 2323 +7100 2323 +8300 2323 +9400 2323 +1400 2324 +2300 2324 +5400 2325 +500 2327 +1500 2327 +2100 2327 +5300 2327 +5500 2327 +100 2329 +3700 2329 +5700 2329 +8200 2329 +6300 2330 +7200 2330 +4800 2331 +6900 2331 +4600 2332 +5800 2332 +8000 2332 +4800 2333 +5400 2333 +3100 2334 +3500 2334 +5700 2334 +6900 2334 +8900 2334 +6900 2335 +7900 2335 +1600 2336 +2700 2336 +3600 2336 +6800 2336 +5200 2337 +5500 2337 +7700 2338 +1700 2339 +5800 2339 +3800 2340 +10000 2340 +4100 2387 +7100 2387 +5300 2400 +1800 2401 +1900 2402 +4000 2402 +1600 2403 +2200 2403 +900 2404 +2100 2404 +2600 2404 +2700 2405 +3200 2405 +2400 2406 +3000 2406 +4200 2406 +2900 2407 +3400 2407 +4100 2407 +4400 2407 +6100 2407 +6500 2408 +6800 2408 +3300 2409 +3800 2409 +3600 2410 +4000 2410 +4400 2410 +6400 2410 +4300 2411 +4900 2411 +2500 2412 +3100 2412 +3600 2412 +7800 2412 +2900 2413 +4700 2413 +5400 2413 +1900 2415 +4300 2415 +5000 2415 +5300 2415 +8800 2415 +4500 2416 +5700 2416 +4400 2417 +4700 2417 +4700 2418 +7100 2418 +4400 2419 +4600 2419 +6900 2420 +9700 2420 +2400 2421 +4500 2421 +5400 2421 +6900 2421 +4400 2423 +7100 2423 +8300 2423 +9400 2423 +1400 2424 +2300 2424 +5400 2425 +500 2427 +1500 2427 +2100 2427 +5300 2427 +5500 2427 +100 2429 +3700 2429 +5700 2429 +8200 2429 +6300 2430 +7200 2430 +4800 2431 +6900 2431 +4600 2432 +5800 2432 +8000 2432 +4800 2433 +5400 2433 +3100 2434 +3500 2434 +5700 2434 +6900 2434 +8900 2434 +6900 2435 +7900 2435 +1600 2436 +2700 2436 +3600 2436 +6800 2436 +5200 2437 +5500 2437 +7700 2438 +1700 2439 +5800 2439 +3800 2440 +10000 2440 +4100 2487 +7100 2487 +5300 2500 +1800 2501 +1900 2502 +4000 2502 +1600 2503 +2200 2503 +900 2504 +2100 2504 +2600 2504 +2700 2505 +3200 2505 +2400 2506 +3000 2506 +4200 2506 +2900 2507 +3400 2507 +4100 2507 +4400 2507 +6100 2507 +6500 2508 +6800 2508 +3300 2509 +3800 2509 +3600 2510 +4000 2510 +4400 2510 +6400 2510 +4300 2511 +4900 2511 +2500 2512 +3100 2512 +3600 2512 +7800 2512 +2900 2513 +4700 2513 +5400 2513 +1900 2515 +4300 2515 +5000 2515 +5300 2515 +8800 2515 +4500 2516 +5700 2516 +4400 2517 +4700 2517 +4700 2518 +7100 2518 +4400 2519 +4600 2519 +6900 2520 +9700 2520 +2400 2521 +4500 2521 +5400 2521 +6900 2521 +4400 2523 +7100 2523 +8300 2523 +9400 2523 +1400 2524 +2300 2524 +5400 2525 +500 2527 +1500 2527 +2100 2527 +5300 2527 +5500 2527 +100 2529 +3700 2529 +5700 2529 +8200 2529 +6300 2530 +7200 2530 +4800 2531 +6900 2531 +4600 2532 +5800 2532 +8000 2532 +4800 2533 +5400 2533 +3100 2534 +3500 2534 +5700 2534 +6900 2534 +8900 2534 +6900 2535 +7900 2535 +1600 2536 +2700 2536 +3600 2536 +6800 2536 +5200 2537 +5500 2537 +7700 2538 +1700 2539 +5800 2539 +3800 2540 +10000 2540 +4100 2587 +7100 2587 +5300 2600 +1800 2601 +1900 2602 +4000 2602 +1600 2603 +2200 2603 +900 2604 +2100 2604 +2600 2604 +2700 2605 +3200 2605 +2400 2606 +3000 2606 +4200 2606 +2900 2607 +3400 2607 +4100 2607 +4400 2607 +6100 2607 +6500 2608 +6800 2608 +3300 2609 +3800 2609 +3600 2610 +4000 2610 +4400 2610 +6400 2610 +4300 2611 +4900 2611 +2500 2612 +3100 2612 +3600 2612 +7800 2612 +2900 2613 +4700 2613 +5400 2613 +1900 2615 +4300 2615 +5000 2615 +5300 2615 +8800 2615 +4500 2616 +5700 2616 +4400 2617 +4700 2617 +4700 2618 +7100 2618 +4400 2619 +4600 2619 +6900 2620 +9700 2620 +2400 2621 +4500 2621 +5400 2621 +6900 2621 +4400 2623 +7100 2623 +8300 2623 +9400 2623 +1400 2624 +2300 2624 +5400 2625 +500 2627 +1500 2627 +2100 2627 +5300 2627 +5500 2627 +100 2629 +3700 2629 +5700 2629 +8200 2629 +6300 2630 +7200 2630 +4800 2631 +6900 2631 +4600 2632 +5800 2632 +8000 2632 +4800 2633 +5400 2633 +3100 2634 +3500 2634 +5700 2634 +6900 2634 +8900 2634 +6900 2635 +7900 2635 +1600 2636 +2700 2636 +3600 2636 +6800 2636 +5200 2637 +5500 2637 +7700 2638 +1700 2639 +5800 2639 +3800 2640 +10000 2640 +4100 2687 +7100 2687 +5300 2700 +1800 2701 +1900 2702 +4000 2702 +1600 2703 +2200 2703 +900 2704 +2100 2704 +2600 2704 +2700 2705 +3200 2705 +2400 2706 +3000 2706 +4200 2706 +2900 2707 +3400 2707 +4100 2707 +4400 2707 +6100 2707 +6500 2708 +6800 2708 +3300 2709 +3800 2709 +3600 2710 +4000 2710 +4400 2710 +6400 2710 +4300 2711 +4900 2711 +2500 2712 +3100 2712 +3600 2712 +7800 2712 +2900 2713 +4700 2713 +5400 2713 +1900 2715 +4300 2715 +5000 2715 +5300 2715 +8800 2715 +4500 2716 +5700 2716 +4400 2717 +4700 2717 +4700 2718 +7100 2718 +4400 2719 +4600 2719 +6900 2720 +9700 2720 +2400 2721 +4500 2721 +5400 2721 +6900 2721 +4400 2723 +7100 2723 +8300 2723 +9400 2723 +1400 2724 +2300 2724 +5400 2725 +500 2727 +1500 2727 +2100 2727 +5300 2727 +5500 2727 +100 2729 +3700 2729 +5700 2729 +8200 2729 +6300 2730 +7200 2730 +4800 2731 +6900 2731 +4600 2732 +5800 2732 +8000 2732 +4800 2733 +5400 2733 +3100 2734 +3500 2734 +5700 2734 +6900 2734 +8900 2734 +6900 2735 +7900 2735 +1600 2736 +2700 2736 +3600 2736 +6800 2736 +5200 2737 +5500 2737 +7700 2738 +1700 2739 +5800 2739 +3800 2740 +10000 2740 +4100 2787 +7100 2787 +5300 2800 +1800 2801 +1900 2802 +4000 2802 +1600 2803 +2200 2803 +900 2804 +2100 2804 +2600 2804 +2700 2805 +3200 2805 +2400 2806 +3000 2806 +4200 2806 +2900 2807 +3400 2807 +4100 2807 +4400 2807 +6100 2807 +6500 2808 +6800 2808 +3300 2809 +3800 2809 +3600 2810 +4000 2810 +4400 2810 +6400 2810 +4300 2811 +4900 2811 +2500 2812 +3100 2812 +3600 2812 +7800 2812 +2900 2813 +4700 2813 +5400 2813 +1900 2815 +4300 2815 +5000 2815 +5300 2815 +8800 2815 +4500 2816 +5700 2816 +4400 2817 +4700 2817 +4700 2818 +7100 2818 +4400 2819 +4600 2819 +6900 2820 +9700 2820 +2400 2821 +4500 2821 +5400 2821 +6900 2821 +4400 2823 +7100 2823 +8300 2823 +9400 2823 +1400 2824 +2300 2824 +5400 2825 +500 2827 +1500 2827 +2100 2827 +5300 2827 +5500 2827 +100 2829 +3700 2829 +5700 2829 +8200 2829 +6300 2830 +7200 2830 +4800 2831 +6900 2831 +4600 2832 +5800 2832 +8000 2832 +4800 2833 +5400 2833 +3100 2834 +3500 2834 +5700 2834 +6900 2834 +8900 2834 +6900 2835 +7900 2835 +1600 2836 +2700 2836 +3600 2836 +6800 2836 +5200 2837 +5500 2837 +7700 2838 +1700 2839 +5800 2839 +3800 2840 +10000 2840 +4100 2887 +7100 2887 +5300 2900 +1800 2901 +1900 2902 +4000 2902 +1600 2903 +2200 2903 +900 2904 +2100 2904 +2600 2904 +2700 2905 +3200 2905 +2400 2906 +3000 2906 +4200 2906 +2900 2907 +3400 2907 +4100 2907 +4400 2907 +6100 2907 +6500 2908 +6800 2908 +3300 2909 +3800 2909 +3600 2910 +4000 2910 +4400 2910 +6400 2910 +4300 2911 +4900 2911 +2500 2912 +3100 2912 +3600 2912 +7800 2912 +2900 2913 +4700 2913 +5400 2913 +1900 2915 +4300 2915 +5000 2915 +5300 2915 +8800 2915 +4500 2916 +5700 2916 +4400 2917 +4700 2917 +4700 2918 +7100 2918 +4400 2919 +4600 2919 +6900 2920 +9700 2920 +2400 2921 +4500 2921 +5400 2921 +6900 2921 +4400 2923 +7100 2923 +8300 2923 +9400 2923 +1400 2924 +2300 2924 +5400 2925 +500 2927 +1500 2927 +2100 2927 +5300 2927 +5500 2927 +100 2929 +3700 2929 +5700 2929 +8200 2929 +6300 2930 +7200 2930 +4800 2931 +6900 2931 +4600 2932 +5800 2932 +8000 2932 +4800 2933 +5400 2933 +3100 2934 +3500 2934 +5700 2934 +6900 2934 +8900 2934 +6900 2935 +7900 2935 +1600 2936 +2700 2936 +3600 2936 +6800 2936 +5200 2937 +5500 2937 +7700 2938 +1700 2939 +5800 2939 +3800 2940 +10000 2940 +4100 2987 +7100 2987 +5300 3000 +1800 3001 +1900 3002 +4000 3002 +1600 3003 +2200 3003 +900 3004 +2100 3004 +2600 3004 +2700 3005 +3200 3005 +2400 3006 +3000 3006 +4200 3006 +2900 3007 +3400 3007 +4100 3007 +4400 3007 +6100 3007 +6500 3008 +6800 3008 +3300 3009 +3800 3009 +3600 3010 +4000 3010 +4400 3010 +6400 3010 +4300 3011 +4900 3011 +2500 3012 +3100 3012 +3600 3012 +7800 3012 +2900 3013 +4700 3013 +5400 3013 +1900 3015 +4300 3015 +5000 3015 +5300 3015 +8800 3015 +4500 3016 +5700 3016 +4400 3017 +4700 3017 +4700 3018 +7100 3018 +4400 3019 +4600 3019 +6900 3020 +9700 3020 +2400 3021 +4500 3021 +5400 3021 +6900 3021 +4400 3023 +7100 3023 +8300 3023 +9400 3023 +1400 3024 +2300 3024 +5400 3025 +500 3027 +1500 3027 +2100 3027 +5300 3027 +5500 3027 +100 3029 +3700 3029 +5700 3029 +8200 3029 +6300 3030 +7200 3030 +4800 3031 +6900 3031 +4600 3032 +5800 3032 +8000 3032 +4800 3033 +5400 3033 +3100 3034 +3500 3034 +5700 3034 +6900 3034 +8900 3034 +6900 3035 +7900 3035 +1600 3036 +2700 3036 +3600 3036 +6800 3036 +5200 3037 +5500 3037 +7700 3038 +1700 3039 +5800 3039 +3800 3040 +10000 3040 +4100 3087 +7100 3087 +5300 3100 +1800 3101 +1900 3102 +4000 3102 +1600 3103 +2200 3103 +900 3104 +2100 3104 +2600 3104 +2700 3105 +3200 3105 +2400 3106 +3000 3106 +4200 3106 +2900 3107 +3400 3107 +4100 3107 +4400 3107 +6100 3107 +6500 3108 +6800 3108 +3300 3109 +3800 3109 +3600 3110 +4000 3110 +4400 3110 +6400 3110 +4300 3111 +4900 3111 +2500 3112 +3100 3112 +3600 3112 +7800 3112 +2900 3113 +4700 3113 +5400 3113 +1900 3115 +4300 3115 +5000 3115 +5300 3115 +8800 3115 +4500 3116 +5700 3116 +4400 3117 +4700 3117 +4700 3118 +7100 3118 +4400 3119 +4600 3119 +6900 3120 +9700 3120 +2400 3121 +4500 3121 +5400 3121 +6900 3121 +4400 3123 +7100 3123 +8300 3123 +9400 3123 +1400 3124 +2300 3124 +5400 3125 +500 3127 +1500 3127 +2100 3127 +5300 3127 +5500 3127 +100 3129 +3700 3129 +5700 3129 +8200 3129 +6300 3130 +7200 3130 +4800 3131 +6900 3131 +4600 3132 +5800 3132 +8000 3132 +4800 3133 +5400 3133 +3100 3134 +3500 3134 +5700 3134 +6900 3134 +8900 3134 +6900 3135 +7900 3135 +1600 3136 +2700 3136 +3600 3136 +6800 3136 +5200 3137 +5500 3137 +7700 3138 +1700 3139 +5800 3139 +3800 3140 +10000 3140 +4100 3187 +7100 3187 +5300 3200 +1800 3201 +1900 3202 +4000 3202 +1600 3203 +2200 3203 +900 3204 +2100 3204 +2600 3204 +2700 3205 +3200 3205 +2400 3206 +3000 3206 +4200 3206 +2900 3207 +3400 3207 +4100 3207 +4400 3207 +6100 3207 +6500 3208 +6800 3208 +3300 3209 +3800 3209 +3600 3210 +4000 3210 +4400 3210 +6400 3210 +4300 3211 +4900 3211 +2500 3212 +3100 3212 +3600 3212 +7800 3212 +2900 3213 +4700 3213 +5400 3213 +1900 3215 +4300 3215 +5000 3215 +5300 3215 +8800 3215 +4500 3216 +5700 3216 +4400 3217 +4700 3217 +4700 3218 +7100 3218 +4400 3219 +4600 3219 +6900 3220 +9700 3220 +2400 3221 +4500 3221 +5400 3221 +6900 3221 +4400 3223 +7100 3223 +8300 3223 +9400 3223 +1400 3224 +2300 3224 +5400 3225 +500 3227 +1500 3227 +2100 3227 +5300 3227 +5500 3227 +100 3229 +3700 3229 +5700 3229 +8200 3229 +6300 3230 +7200 3230 +4800 3231 +6900 3231 +4600 3232 +5800 3232 +8000 3232 +4800 3233 +5400 3233 +3100 3234 +3500 3234 +5700 3234 +6900 3234 +8900 3234 +6900 3235 +7900 3235 +1600 3236 +2700 3236 +3600 3236 +6800 3236 +5200 3237 +5500 3237 +7700 3238 +1700 3239 +5800 3239 +3800 3240 +10000 3240 +4100 3287 +7100 3287 +5300 3300 +1800 3301 +1900 3302 +4000 3302 +1600 3303 +2200 3303 +900 3304 +2100 3304 +2600 3304 +2700 3305 +3200 3305 +2400 3306 +3000 3306 +4200 3306 +2900 3307 +3400 3307 +4100 3307 +4400 3307 +6100 3307 +6500 3308 +6800 3308 +3300 3309 +3800 3309 +3600 3310 +4000 3310 +4400 3310 +6400 3310 +4300 3311 +4900 3311 +2500 3312 +3100 3312 +3600 3312 +7800 3312 +2900 3313 +4700 3313 +5400 3313 +1900 3315 +4300 3315 +5000 3315 +5300 3315 +8800 3315 +4500 3316 +5700 3316 +4400 3317 +4700 3317 +4700 3318 +7100 3318 +4400 3319 +4600 3319 +6900 3320 +9700 3320 +2400 3321 +4500 3321 +5400 3321 +6900 3321 +4400 3323 +7100 3323 +8300 3323 +9400 3323 +1400 3324 +2300 3324 +5400 3325 +500 3327 +1500 3327 +2100 3327 +5300 3327 +5500 3327 +100 3329 +3700 3329 +5700 3329 +8200 3329 +6300 3330 +7200 3330 +4800 3331 +6900 3331 +4600 3332 +5800 3332 +8000 3332 +4800 3333 +5400 3333 +3100 3334 +3500 3334 +5700 3334 +6900 3334 +8900 3334 +6900 3335 +7900 3335 +1600 3336 +2700 3336 +3600 3336 +6800 3336 +5200 3337 +5500 3337 +7700 3338 +1700 3339 +5800 3339 +3800 3340 +10000 3340 +4100 3387 +7100 3387 +5300 3400 +1800 3401 +1900 3402 +4000 3402 +1600 3403 +2200 3403 +900 3404 +2100 3404 +2600 3404 +2700 3405 +3200 3405 +2400 3406 +3000 3406 +4200 3406 +2900 3407 +3400 3407 +4100 3407 +4400 3407 +6100 3407 +6500 3408 +6800 3408 +3300 3409 +3800 3409 +3600 3410 +4000 3410 +4400 3410 +6400 3410 +4300 3411 +4900 3411 +2500 3412 +3100 3412 +3600 3412 +7800 3412 +2900 3413 +4700 3413 +5400 3413 +1900 3415 +4300 3415 +5000 3415 +5300 3415 +8800 3415 +4500 3416 +5700 3416 +4400 3417 +4700 3417 +4700 3418 +7100 3418 +4400 3419 +4600 3419 +6900 3420 +9700 3420 +2400 3421 +4500 3421 +5400 3421 +6900 3421 +4400 3423 +7100 3423 +8300 3423 +9400 3423 +1400 3424 +2300 3424 +5400 3425 +500 3427 +1500 3427 +2100 3427 +5300 3427 +5500 3427 +100 3429 +3700 3429 +5700 3429 +8200 3429 +6300 3430 +7200 3430 +4800 3431 +6900 3431 +4600 3432 +5800 3432 +8000 3432 +4800 3433 +5400 3433 +3100 3434 +3500 3434 +5700 3434 +6900 3434 +8900 3434 +6900 3435 +7900 3435 +1600 3436 +2700 3436 +3600 3436 +6800 3436 +5200 3437 +5500 3437 +7700 3438 +1700 3439 +5800 3439 +3800 3440 +10000 3440 +4100 3487 +7100 3487 +5300 3500 +1800 3501 +1900 3502 +4000 3502 +1600 3503 +2200 3503 +900 3504 +2100 3504 +2600 3504 +2700 3505 +3200 3505 +2400 3506 +3000 3506 +4200 3506 +2900 3507 +3400 3507 +4100 3507 +4400 3507 +6100 3507 +6500 3508 +6800 3508 +3300 3509 +3800 3509 +3600 3510 +4000 3510 +4400 3510 +6400 3510 +4300 3511 +4900 3511 +2500 3512 +3100 3512 +3600 3512 +7800 3512 +2900 3513 +4700 3513 +5400 3513 +1900 3515 +4300 3515 +5000 3515 +5300 3515 +8800 3515 +4500 3516 +5700 3516 +4400 3517 +4700 3517 +4700 3518 +7100 3518 +4400 3519 +4600 3519 +6900 3520 +9700 3520 +2400 3521 +4500 3521 +5400 3521 +6900 3521 +4400 3523 +7100 3523 +8300 3523 +9400 3523 +1400 3524 +2300 3524 +5400 3525 +500 3527 +1500 3527 +2100 3527 +5300 3527 +5500 3527 +100 3529 +3700 3529 +5700 3529 +8200 3529 +6300 3530 +7200 3530 +4800 3531 +6900 3531 +4600 3532 +5800 3532 +8000 3532 +4800 3533 +5400 3533 +3100 3534 +3500 3534 +5700 3534 +6900 3534 +8900 3534 +6900 3535 +7900 3535 +1600 3536 +2700 3536 +3600 3536 +6800 3536 +5200 3537 +5500 3537 +7700 3538 +1700 3539 +5800 3539 +3800 3540 +10000 3540 +4100 3587 +7100 3587 +5300 3600 +1800 3601 +1900 3602 +4000 3602 +1600 3603 +2200 3603 +900 3604 +2100 3604 +2600 3604 +2700 3605 +3200 3605 +2400 3606 +3000 3606 +4200 3606 +2900 3607 +3400 3607 +4100 3607 +4400 3607 +6100 3607 +6500 3608 +6800 3608 +3300 3609 +3800 3609 +3600 3610 +4000 3610 +4400 3610 +6400 3610 +4300 3611 +4900 3611 +2500 3612 +3100 3612 +3600 3612 +7800 3612 +2900 3613 +4700 3613 +5400 3613 +1900 3615 +4300 3615 +5000 3615 +5300 3615 +8800 3615 +4500 3616 +5700 3616 +4400 3617 +4700 3617 +4700 3618 +7100 3618 +4400 3619 +4600 3619 +6900 3620 +9700 3620 +2400 3621 +4500 3621 +5400 3621 +6900 3621 +4400 3623 +7100 3623 +8300 3623 +9400 3623 +1400 3624 +2300 3624 +5400 3625 +500 3627 +1500 3627 +2100 3627 +5300 3627 +5500 3627 +100 3629 +3700 3629 +5700 3629 +8200 3629 +6300 3630 +7200 3630 +4800 3631 +6900 3631 +4600 3632 +5800 3632 +8000 3632 +4800 3633 +5400 3633 +3100 3634 +3500 3634 +5700 3634 +6900 3634 +8900 3634 +6900 3635 +7900 3635 +1600 3636 +2700 3636 +3600 3636 +6800 3636 +5200 3637 +5500 3637 +7700 3638 +1700 3639 +5800 3639 +3800 3640 +10000 3640 +4100 3687 +7100 3687 +5300 3700 +1800 3701 +1900 3702 +4000 3702 +1600 3703 +2200 3703 +900 3704 +2100 3704 +2600 3704 +2700 3705 +3200 3705 +2400 3706 +3000 3706 +4200 3706 +2900 3707 +3400 3707 +4100 3707 +4400 3707 +6100 3707 +6500 3708 +6800 3708 +3300 3709 +3800 3709 +3600 3710 +4000 3710 +4400 3710 +6400 3710 +4300 3711 +4900 3711 +2500 3712 +3100 3712 +3600 3712 +7800 3712 +2900 3713 +4700 3713 +5400 3713 +1900 3715 +4300 3715 +5000 3715 +5300 3715 +8800 3715 +4500 3716 +5700 3716 +4400 3717 +4700 3717 +4700 3718 +7100 3718 +4400 3719 +4600 3719 +6900 3720 +9700 3720 +2400 3721 +4500 3721 +5400 3721 +6900 3721 +4400 3723 +7100 3723 +8300 3723 +9400 3723 +1400 3724 +2300 3724 +5400 3725 +500 3727 +1500 3727 +2100 3727 +5300 3727 +5500 3727 +100 3729 +3700 3729 +5700 3729 +8200 3729 +6300 3730 +7200 3730 +4800 3731 +6900 3731 +4600 3732 +5800 3732 +8000 3732 +4800 3733 +5400 3733 +3100 3734 +3500 3734 +5700 3734 +6900 3734 +8900 3734 +6900 3735 +7900 3735 +1600 3736 +2700 3736 +3600 3736 +6800 3736 +5200 3737 +5500 3737 +7700 3738 +1700 3739 +5800 3739 +3800 3740 +10000 3740 +4100 3787 +7100 3787 +5300 3800 +1800 3801 +1900 3802 +4000 3802 +1600 3803 +2200 3803 +900 3804 +2100 3804 +2600 3804 +2700 3805 +3200 3805 +2400 3806 +3000 3806 +4200 3806 +2900 3807 +3400 3807 +4100 3807 +4400 3807 +6100 3807 +6500 3808 +6800 3808 +3300 3809 +3800 3809 +3600 3810 +4000 3810 +4400 3810 +6400 3810 +4300 3811 +4900 3811 +2500 3812 +3100 3812 +3600 3812 +7800 3812 +2900 3813 +4700 3813 +5400 3813 +1900 3815 +4300 3815 +5000 3815 +5300 3815 +8800 3815 +4500 3816 +5700 3816 +4400 3817 +4700 3817 +4700 3818 +7100 3818 +4400 3819 +4600 3819 +6900 3820 +9700 3820 +2400 3821 +4500 3821 +5400 3821 +6900 3821 +4400 3823 +7100 3823 +8300 3823 +9400 3823 +1400 3824 +2300 3824 +5400 3825 +500 3827 +1500 3827 +2100 3827 +5300 3827 +5500 3827 +100 3829 +3700 3829 +5700 3829 +8200 3829 +6300 3830 +7200 3830 +4800 3831 +6900 3831 +4600 3832 +5800 3832 +8000 3832 +4800 3833 +5400 3833 +3100 3834 +3500 3834 +5700 3834 +6900 3834 +8900 3834 +6900 3835 +7900 3835 +1600 3836 +2700 3836 +3600 3836 +6800 3836 +5200 3837 +5500 3837 +7700 3838 +1700 3839 +5800 3839 +3800 3840 +10000 3840 +4100 3887 +7100 3887 +5300 3900 +1800 3901 +1900 3902 +4000 3902 +1600 3903 +2200 3903 +900 3904 +2100 3904 +2600 3904 +2700 3905 +3200 3905 +2400 3906 +3000 3906 +4200 3906 +2900 3907 +3400 3907 +4100 3907 +4400 3907 +6100 3907 +6500 3908 +6800 3908 +3300 3909 +3800 3909 +3600 3910 +4000 3910 +4400 3910 +6400 3910 +4300 3911 +4900 3911 +2500 3912 +3100 3912 +3600 3912 +7800 3912 +2900 3913 +4700 3913 +5400 3913 +1900 3915 +4300 3915 +5000 3915 +5300 3915 +8800 3915 +4500 3916 +5700 3916 +4400 3917 +4700 3917 +4700 3918 +7100 3918 +4400 3919 +4600 3919 +6900 3920 +9700 3920 +2400 3921 +4500 3921 +5400 3921 +6900 3921 +4400 3923 +7100 3923 +8300 3923 +9400 3923 +1400 3924 +2300 3924 +5400 3925 +500 3927 +1500 3927 +2100 3927 +5300 3927 +5500 3927 +100 3929 +3700 3929 +5700 3929 +8200 3929 +6300 3930 +7200 3930 +4800 3931 +6900 3931 +4600 3932 +5800 3932 +8000 3932 +4800 3933 +5400 3933 +3100 3934 +3500 3934 +5700 3934 +6900 3934 +8900 3934 +6900 3935 +7900 3935 +1600 3936 +2700 3936 +3600 3936 +6800 3936 +5200 3937 +5500 3937 +7700 3938 +1700 3939 +5800 3939 +3800 3940 +10000 3940 +4100 3987 +7100 3987 +5300 4000 +1800 4001 +1900 4002 +4000 4002 +1600 4003 +2200 4003 +900 4004 +2100 4004 +2600 4004 +2700 4005 +3200 4005 +2400 4006 +3000 4006 +4200 4006 +2900 4007 +3400 4007 +4100 4007 +4400 4007 +6100 4007 +6500 4008 +6800 4008 +3300 4009 +3800 4009 +3600 4010 +4000 4010 +4400 4010 +6400 4010 +4300 4011 +4900 4011 +2500 4012 +3100 4012 +3600 4012 +7800 4012 +2900 4013 +4700 4013 +5400 4013 +1900 4015 +4300 4015 +5000 4015 +5300 4015 +8800 4015 +4500 4016 +5700 4016 +4400 4017 +4700 4017 +4700 4018 +7100 4018 +4400 4019 +4600 4019 +6900 4020 +9700 4020 +2400 4021 +4500 4021 +5400 4021 +6900 4021 +4400 4023 +7100 4023 +8300 4023 +9400 4023 +1400 4024 +2300 4024 +5400 4025 +500 4027 +1500 4027 +2100 4027 +5300 4027 +5500 4027 +100 4029 +3700 4029 +5700 4029 +8200 4029 +6300 4030 +7200 4030 +4800 4031 +6900 4031 +4600 4032 +5800 4032 +8000 4032 +4800 4033 +5400 4033 +3100 4034 +3500 4034 +5700 4034 +6900 4034 +8900 4034 +6900 4035 +7900 4035 +1600 4036 +2700 4036 +3600 4036 +6800 4036 +5200 4037 +5500 4037 +7700 4038 +1700 4039 +5800 4039 +3800 4040 +10000 4040 +4100 4087 +7100 4087 +5300 4100 +1800 4101 +1900 4102 +4000 4102 +1600 4103 +2200 4103 +900 4104 +2100 4104 +2600 4104 +2700 4105 +3200 4105 +2400 4106 +3000 4106 +4200 4106 +2900 4107 +3400 4107 +4100 4107 +4400 4107 +6100 4107 +6500 4108 +6800 4108 +3300 4109 +3800 4109 +3600 4110 +4000 4110 +4400 4110 +6400 4110 +4300 4111 +4900 4111 +2500 4112 +3100 4112 +3600 4112 +7800 4112 +2900 4113 +4700 4113 +5400 4113 +1900 4115 +4300 4115 +5000 4115 +5300 4115 +8800 4115 +4500 4116 +5700 4116 +4400 4117 +4700 4117 +4700 4118 +7100 4118 +4400 4119 +4600 4119 +6900 4120 +9700 4120 +2400 4121 +4500 4121 +5400 4121 +6900 4121 +4400 4123 +7100 4123 +8300 4123 +9400 4123 +1400 4124 +2300 4124 +5400 4125 +500 4127 +1500 4127 +2100 4127 +5300 4127 +5500 4127 +100 4129 +3700 4129 +5700 4129 +8200 4129 +6300 4130 +7200 4130 +4800 4131 +6900 4131 +4600 4132 +5800 4132 +8000 4132 +4800 4133 +5400 4133 +3100 4134 +3500 4134 +5700 4134 +6900 4134 +8900 4134 +6900 4135 +7900 4135 +1600 4136 +2700 4136 +3600 4136 +6800 4136 +5200 4137 +5500 4137 +7700 4138 +1700 4139 +5800 4139 +3800 4140 +10000 4140 +4100 4187 +7100 4187 +5300 4200 +1800 4201 +1900 4202 +4000 4202 +1600 4203 +2200 4203 +900 4204 +2100 4204 +2600 4204 +2700 4205 +3200 4205 +2400 4206 +3000 4206 +4200 4206 +2900 4207 +3400 4207 +4100 4207 +4400 4207 +6100 4207 +6500 4208 +6800 4208 +3300 4209 +3800 4209 +3600 4210 +4000 4210 +4400 4210 +6400 4210 +4300 4211 +4900 4211 +2500 4212 +3100 4212 +3600 4212 +7800 4212 +2900 4213 +4700 4213 +5400 4213 +1900 4215 +4300 4215 +5000 4215 +5300 4215 +8800 4215 +4500 4216 +5700 4216 +4400 4217 +4700 4217 +4700 4218 +7100 4218 +4400 4219 +4600 4219 +6900 4220 +9700 4220 +2400 4221 +4500 4221 +5400 4221 +6900 4221 +4400 4223 +7100 4223 +8300 4223 +9400 4223 +1400 4224 +2300 4224 +5400 4225 +500 4227 +1500 4227 +2100 4227 +5300 4227 +5500 4227 +100 4229 +3700 4229 +5700 4229 +8200 4229 +6300 4230 +7200 4230 +4800 4231 +6900 4231 +4600 4232 +5800 4232 +8000 4232 +4800 4233 +5400 4233 +3100 4234 +3500 4234 +5700 4234 +6900 4234 +8900 4234 +6900 4235 +7900 4235 +1600 4236 +2700 4236 +3600 4236 +6800 4236 +5200 4237 +5500 4237 +7700 4238 +1700 4239 +5800 4239 +3800 4240 +10000 4240 +4100 4287 +7100 4287 +5300 4300 +1800 4301 +1900 4302 +4000 4302 +1600 4303 +2200 4303 +900 4304 +2100 4304 +2600 4304 +2700 4305 +3200 4305 +2400 4306 +3000 4306 +4200 4306 +2900 4307 +3400 4307 +4100 4307 +4400 4307 +6100 4307 +6500 4308 +6800 4308 +3300 4309 +3800 4309 +3600 4310 +4000 4310 +4400 4310 +6400 4310 +4300 4311 +4900 4311 +2500 4312 +3100 4312 +3600 4312 +7800 4312 +2900 4313 +4700 4313 +5400 4313 +1900 4315 +4300 4315 +5000 4315 +5300 4315 +8800 4315 +4500 4316 +5700 4316 +4400 4317 +4700 4317 +4700 4318 +7100 4318 +4400 4319 +4600 4319 +6900 4320 +9700 4320 +2400 4321 +4500 4321 +5400 4321 +6900 4321 +4400 4323 +7100 4323 +8300 4323 +9400 4323 +1400 4324 +2300 4324 +5400 4325 +500 4327 +1500 4327 +2100 4327 +5300 4327 +5500 4327 +100 4329 +3700 4329 +5700 4329 +8200 4329 +6300 4330 +7200 4330 +4800 4331 +6900 4331 +4600 4332 +5800 4332 +8000 4332 +4800 4333 +5400 4333 +3100 4334 +3500 4334 +5700 4334 +6900 4334 +8900 4334 +6900 4335 +7900 4335 +1600 4336 +2700 4336 +3600 4336 +6800 4336 +5200 4337 +5500 4337 +7700 4338 +1700 4339 +5800 4339 +3800 4340 +10000 4340 +4100 4387 +7100 4387 +5300 4400 +1800 4401 +1900 4402 +4000 4402 +1600 4403 +2200 4403 +900 4404 +2100 4404 +2600 4404 +2700 4405 +3200 4405 +2400 4406 +3000 4406 +4200 4406 +2900 4407 +3400 4407 +4100 4407 +4400 4407 +6100 4407 +6500 4408 +6800 4408 +3300 4409 +3800 4409 +3600 4410 +4000 4410 +4400 4410 +6400 4410 +4300 4411 +4900 4411 +2500 4412 +3100 4412 +3600 4412 +7800 4412 +2900 4413 +4700 4413 +5400 4413 +1900 4415 +4300 4415 +5000 4415 +5300 4415 +8800 4415 +4500 4416 +5700 4416 +4400 4417 +4700 4417 +4700 4418 +7100 4418 +4400 4419 +4600 4419 +6900 4420 +9700 4420 +2400 4421 +4500 4421 +5400 4421 +6900 4421 +4400 4423 +7100 4423 +8300 4423 +9400 4423 +1400 4424 +2300 4424 +5400 4425 +500 4427 +1500 4427 +2100 4427 +5300 4427 +5500 4427 +100 4429 +3700 4429 +5700 4429 +8200 4429 +6300 4430 +7200 4430 +4800 4431 +6900 4431 +4600 4432 +5800 4432 +8000 4432 +4800 4433 +5400 4433 +3100 4434 +3500 4434 +5700 4434 +6900 4434 +8900 4434 +6900 4435 +7900 4435 +1600 4436 +2700 4436 +3600 4436 +6800 4436 +5200 4437 +5500 4437 +7700 4438 +1700 4439 +5800 4439 +3800 4440 +10000 4440 +4100 4487 +7100 4487 +5300 4500 +1800 4501 +1900 4502 +4000 4502 +1600 4503 +2200 4503 +900 4504 +2100 4504 +2600 4504 +2700 4505 +3200 4505 +2400 4506 +3000 4506 +4200 4506 +2900 4507 +3400 4507 +4100 4507 +4400 4507 +6100 4507 +6500 4508 +6800 4508 +3300 4509 +3800 4509 +3600 4510 +4000 4510 +4400 4510 +6400 4510 +4300 4511 +4900 4511 +2500 4512 +3100 4512 +3600 4512 +7800 4512 +2900 4513 +4700 4513 +5400 4513 +1900 4515 +4300 4515 +5000 4515 +5300 4515 +8800 4515 +4500 4516 +5700 4516 +4400 4517 +4700 4517 +4700 4518 +7100 4518 +4400 4519 +4600 4519 +6900 4520 +9700 4520 +2400 4521 +4500 4521 +5400 4521 +6900 4521 +4400 4523 +7100 4523 +8300 4523 +9400 4523 +1400 4524 +2300 4524 +5400 4525 +500 4527 +1500 4527 +2100 4527 +5300 4527 +5500 4527 +100 4529 +3700 4529 +5700 4529 +8200 4529 +6300 4530 +7200 4530 +4800 4531 +6900 4531 +4600 4532 +5800 4532 +8000 4532 +4800 4533 +5400 4533 +3100 4534 +3500 4534 +5700 4534 +6900 4534 +8900 4534 +6900 4535 +7900 4535 +1600 4536 +2700 4536 +3600 4536 +6800 4536 +5200 4537 +5500 4537 +7700 4538 +1700 4539 +5800 4539 +3800 4540 +10000 4540 +4100 4587 +7100 4587 +5300 4600 +1800 4601 +1900 4602 +4000 4602 +1600 4603 +2200 4603 +900 4604 +2100 4604 +2600 4604 +2700 4605 +3200 4605 +2400 4606 +3000 4606 +4200 4606 +2900 4607 +3400 4607 +4100 4607 +4400 4607 +6100 4607 +6500 4608 +6800 4608 +3300 4609 +3800 4609 +3600 4610 +4000 4610 +4400 4610 +6400 4610 +4300 4611 +4900 4611 +2500 4612 +3100 4612 +3600 4612 +7800 4612 +2900 4613 +4700 4613 +5400 4613 +1900 4615 +4300 4615 +5000 4615 +5300 4615 +8800 4615 +4500 4616 +5700 4616 +4400 4617 +4700 4617 +4700 4618 +7100 4618 +4400 4619 +4600 4619 +6900 4620 +9700 4620 +2400 4621 +4500 4621 +5400 4621 +6900 4621 +4400 4623 +7100 4623 +8300 4623 +9400 4623 +1400 4624 +2300 4624 +5400 4625 +500 4627 +1500 4627 +2100 4627 +5300 4627 +5500 4627 +100 4629 +3700 4629 +5700 4629 +8200 4629 +6300 4630 +7200 4630 +4800 4631 +6900 4631 +4600 4632 +5800 4632 +8000 4632 +4800 4633 +5400 4633 +3100 4634 +3500 4634 +5700 4634 +6900 4634 +8900 4634 +6900 4635 +7900 4635 +1600 4636 +2700 4636 +3600 4636 +6800 4636 +5200 4637 +5500 4637 +7700 4638 +1700 4639 +5800 4639 +3800 4640 +10000 4640 +4100 4687 +7100 4687 +5300 4700 +1800 4701 +1900 4702 +4000 4702 +1600 4703 +2200 4703 +900 4704 +2100 4704 +2600 4704 +2700 4705 +3200 4705 +2400 4706 +3000 4706 +4200 4706 +2900 4707 +3400 4707 +4100 4707 +4400 4707 +6100 4707 +6500 4708 +6800 4708 +3300 4709 +3800 4709 +3600 4710 +4000 4710 +4400 4710 +6400 4710 +4300 4711 +4900 4711 +2500 4712 +3100 4712 +3600 4712 +7800 4712 +2900 4713 +4700 4713 +5400 4713 +1900 4715 +4300 4715 +5000 4715 +5300 4715 +8800 4715 +4500 4716 +5700 4716 +4400 4717 +4700 4717 +4700 4718 +7100 4718 +4400 4719 +4600 4719 +6900 4720 +9700 4720 +2400 4721 +4500 4721 +5400 4721 +6900 4721 +4400 4723 +7100 4723 +8300 4723 +9400 4723 +1400 4724 +2300 4724 +5400 4725 +500 4727 +1500 4727 +2100 4727 +5300 4727 +5500 4727 +100 4729 +3700 4729 +5700 4729 +8200 4729 +6300 4730 +7200 4730 +4800 4731 +6900 4731 +4600 4732 +5800 4732 +8000 4732 +4800 4733 +5400 4733 +3100 4734 +3500 4734 +5700 4734 +6900 4734 +8900 4734 +6900 4735 +7900 4735 +1600 4736 +2700 4736 +3600 4736 +6800 4736 +5200 4737 +5500 4737 +7700 4738 +1700 4739 +5800 4739 +3800 4740 +10000 4740 +4100 4787 +7100 4787 +5300 4800 +1800 4801 +1900 4802 +4000 4802 +1600 4803 +2200 4803 +900 4804 +2100 4804 +2600 4804 +2700 4805 +3200 4805 +2400 4806 +3000 4806 +4200 4806 +2900 4807 +3400 4807 +4100 4807 +4400 4807 +6100 4807 +6500 4808 +6800 4808 +3300 4809 +3800 4809 +3600 4810 +4000 4810 +4400 4810 +6400 4810 +4300 4811 +4900 4811 +2500 4812 +3100 4812 +3600 4812 +7800 4812 +2900 4813 +4700 4813 +5400 4813 +1900 4815 +4300 4815 +5000 4815 +5300 4815 +8800 4815 +4500 4816 +5700 4816 +4400 4817 +4700 4817 +4700 4818 +7100 4818 +4400 4819 +4600 4819 +6900 4820 +9700 4820 +2400 4821 +4500 4821 +5400 4821 +6900 4821 +4400 4823 +7100 4823 +8300 4823 +9400 4823 +1400 4824 +2300 4824 +5400 4825 +500 4827 +1500 4827 +2100 4827 +5300 4827 +5500 4827 +100 4829 +3700 4829 +5700 4829 +8200 4829 +6300 4830 +7200 4830 +4800 4831 +6900 4831 +4600 4832 +5800 4832 +8000 4832 +4800 4833 +5400 4833 +3100 4834 +3500 4834 +5700 4834 +6900 4834 +8900 4834 +6900 4835 +7900 4835 +1600 4836 +2700 4836 +3600 4836 +6800 4836 +5200 4837 +5500 4837 +7700 4838 +1700 4839 +5800 4839 +3800 4840 +10000 4840 +4100 4887 +7100 4887 +5300 4900 +1800 4901 +1900 4902 +4000 4902 +1600 4903 +2200 4903 +900 4904 +2100 4904 +2600 4904 +2700 4905 +3200 4905 +2400 4906 +3000 4906 +4200 4906 +2900 4907 +3400 4907 +4100 4907 +4400 4907 +6100 4907 +6500 4908 +6800 4908 +3300 4909 +3800 4909 +3600 4910 +4000 4910 +4400 4910 +6400 4910 +4300 4911 +4900 4911 +2500 4912 +3100 4912 +3600 4912 +7800 4912 +2900 4913 +4700 4913 +5400 4913 +1900 4915 +4300 4915 +5000 4915 +5300 4915 +8800 4915 +4500 4916 +5700 4916 +4400 4917 +4700 4917 +4700 4918 +7100 4918 +4400 4919 +4600 4919 +6900 4920 +9700 4920 +2400 4921 +4500 4921 +5400 4921 +6900 4921 +4400 4923 +7100 4923 +8300 4923 +9400 4923 +1400 4924 +2300 4924 +5400 4925 +500 4927 +1500 4927 +2100 4927 +5300 4927 +5500 4927 +100 4929 +3700 4929 +5700 4929 +8200 4929 +6300 4930 +7200 4930 +4800 4931 +6900 4931 +4600 4932 +5800 4932 +8000 4932 +4800 4933 +5400 4933 +3100 4934 +3500 4934 +5700 4934 +6900 4934 +8900 4934 +6900 4935 +7900 4935 +1600 4936 +2700 4936 +3600 4936 +6800 4936 +5200 4937 +5500 4937 +7700 4938 +1700 4939 +5800 4939 +3800 4940 +10000 4940 +4100 4987 +7100 4987 +5300 5000 +1800 5001 +1900 5002 +4000 5002 +1600 5003 +2200 5003 +900 5004 +2100 5004 +2600 5004 +2700 5005 +3200 5005 +2400 5006 +3000 5006 +4200 5006 +2900 5007 +3400 5007 +4100 5007 +4400 5007 +6100 5007 +6500 5008 +6800 5008 +3300 5009 +3800 5009 +3600 5010 +4000 5010 +4400 5010 +6400 5010 +4300 5011 +4900 5011 +2500 5012 +3100 5012 +3600 5012 +7800 5012 +2900 5013 +4700 5013 +5400 5013 +1900 5015 +4300 5015 +5000 5015 +5300 5015 +8800 5015 +4500 5016 +5700 5016 +4400 5017 +4700 5017 +4700 5018 +7100 5018 +4400 5019 +4600 5019 +6900 5020 +9700 5020 +2400 5021 +4500 5021 +5400 5021 +6900 5021 +4400 5023 +7100 5023 +8300 5023 +9400 5023 +1400 5024 +2300 5024 +5400 5025 +500 5027 +1500 5027 +2100 5027 +5300 5027 +5500 5027 +100 5029 +3700 5029 +5700 5029 +8200 5029 +6300 5030 +7200 5030 +4800 5031 +6900 5031 +4600 5032 +5800 5032 +8000 5032 +4800 5033 +5400 5033 +3100 5034 +3500 5034 +5700 5034 +6900 5034 +8900 5034 +6900 5035 +7900 5035 +1600 5036 +2700 5036 +3600 5036 +6800 5036 +5200 5037 +5500 5037 +7700 5038 +1700 5039 +5800 5039 +3800 5040 +10000 5040 +4100 5087 +7100 5087 +5300 5100 +1800 5101 +1900 5102 +4000 5102 +1600 5103 +2200 5103 +900 5104 +2100 5104 +2600 5104 +2700 5105 +3200 5105 +2400 5106 +3000 5106 +4200 5106 +2900 5107 +3400 5107 +4100 5107 +4400 5107 +6100 5107 +6500 5108 +6800 5108 +3300 5109 +3800 5109 +3600 5110 +4000 5110 +4400 5110 +6400 5110 +4300 5111 +4900 5111 +2500 5112 +3100 5112 +3600 5112 +7800 5112 +2900 5113 +4700 5113 +5400 5113 +1900 5115 +4300 5115 +5000 5115 +5300 5115 +8800 5115 +4500 5116 +5700 5116 +4400 5117 +4700 5117 +4700 5118 +7100 5118 +4400 5119 +4600 5119 +6900 5120 +9700 5120 +2400 5121 +4500 5121 +5400 5121 +6900 5121 +4400 5123 +7100 5123 +8300 5123 +9400 5123 +1400 5124 +2300 5124 +5400 5125 +500 5127 +1500 5127 +2100 5127 +5300 5127 +5500 5127 +100 5129 +3700 5129 +5700 5129 +8200 5129 +6300 5130 +7200 5130 +4800 5131 +6900 5131 +4600 5132 +5800 5132 +8000 5132 +4800 5133 +5400 5133 +3100 5134 +3500 5134 +5700 5134 +6900 5134 +8900 5134 +6900 5135 +7900 5135 +1600 5136 +2700 5136 +3600 5136 +6800 5136 +5200 5137 +5500 5137 +7700 5138 +1700 5139 +5800 5139 +3800 5140 +10000 5140 +4100 5187 +7100 5187 +5300 5200 +1800 5201 +1900 5202 +4000 5202 +1600 5203 +2200 5203 +900 5204 +2100 5204 +2600 5204 +2700 5205 +3200 5205 +2400 5206 +3000 5206 +4200 5206 +2900 5207 +3400 5207 +4100 5207 +4400 5207 +6100 5207 +6500 5208 +6800 5208 +3300 5209 +3800 5209 +3600 5210 +4000 5210 +4400 5210 +6400 5210 +4300 5211 +4900 5211 +2500 5212 +3100 5212 +3600 5212 +7800 5212 +2900 5213 +4700 5213 +5400 5213 +1900 5215 +4300 5215 +5000 5215 +5300 5215 +8800 5215 +4500 5216 +5700 5216 +4400 5217 +4700 5217 +4700 5218 +7100 5218 +4400 5219 +4600 5219 +6900 5220 +9700 5220 +2400 5221 +4500 5221 +5400 5221 +6900 5221 +4400 5223 +7100 5223 +8300 5223 +9400 5223 +1400 5224 +2300 5224 +5400 5225 +500 5227 +1500 5227 +2100 5227 +5300 5227 +5500 5227 +100 5229 +3700 5229 +5700 5229 +8200 5229 +6300 5230 +7200 5230 +4800 5231 +6900 5231 +4600 5232 +5800 5232 +8000 5232 +4800 5233 +5400 5233 +3100 5234 +3500 5234 +5700 5234 +6900 5234 +8900 5234 +6900 5235 +7900 5235 +1600 5236 +2700 5236 +3600 5236 +6800 5236 +5200 5237 +5500 5237 +7700 5238 +1700 5239 +5800 5239 +3800 5240 +10000 5240 +4100 5287 +7100 5287 +5300 5300 +1800 5301 +1900 5302 +4000 5302 +1600 5303 +2200 5303 +900 5304 +2100 5304 +2600 5304 +2700 5305 +3200 5305 +2400 5306 +3000 5306 +4200 5306 +2900 5307 +3400 5307 +4100 5307 +4400 5307 +6100 5307 +6500 5308 +6800 5308 +3300 5309 +3800 5309 +3600 5310 +4000 5310 +4400 5310 +6400 5310 +4300 5311 +4900 5311 +2500 5312 +3100 5312 +3600 5312 +7800 5312 +2900 5313 +4700 5313 +5400 5313 +1900 5315 +4300 5315 +5000 5315 +5300 5315 +8800 5315 +4500 5316 +5700 5316 +4400 5317 +4700 5317 +4700 5318 +7100 5318 +4400 5319 +4600 5319 +6900 5320 +9700 5320 +2400 5321 +4500 5321 +5400 5321 +6900 5321 +4400 5323 +7100 5323 +8300 5323 +9400 5323 +1400 5324 +2300 5324 +5400 5325 +500 5327 +1500 5327 +2100 5327 +5300 5327 +5500 5327 +100 5329 +3700 5329 +5700 5329 +8200 5329 +6300 5330 +7200 5330 +4800 5331 +6900 5331 +4600 5332 +5800 5332 +8000 5332 +4800 5333 +5400 5333 +3100 5334 +3500 5334 +5700 5334 +6900 5334 +8900 5334 +6900 5335 +7900 5335 +1600 5336 +2700 5336 +3600 5336 +6800 5336 +5200 5337 +5500 5337 +7700 5338 +1700 5339 +5800 5339 +3800 5340 +10000 5340 +4100 5387 +7100 5387 +5300 5400 +1800 5401 +1900 5402 +4000 5402 +1600 5403 +2200 5403 +900 5404 +2100 5404 +2600 5404 +2700 5405 +3200 5405 +2400 5406 +3000 5406 +4200 5406 +2900 5407 +3400 5407 +4100 5407 +4400 5407 +6100 5407 +6500 5408 +6800 5408 +3300 5409 +3800 5409 +3600 5410 +4000 5410 +4400 5410 +6400 5410 +4300 5411 +4900 5411 +2500 5412 +3100 5412 +3600 5412 +7800 5412 +2900 5413 +4700 5413 +5400 5413 +1900 5415 +4300 5415 +5000 5415 +5300 5415 +8800 5415 +4500 5416 +5700 5416 +4400 5417 +4700 5417 +4700 5418 +7100 5418 +4400 5419 +4600 5419 +6900 5420 +9700 5420 +2400 5421 +4500 5421 +5400 5421 +6900 5421 +4400 5423 +7100 5423 +8300 5423 +9400 5423 +1400 5424 +2300 5424 +5400 5425 +500 5427 +1500 5427 +2100 5427 +5300 5427 +5500 5427 +100 5429 +3700 5429 +5700 5429 +8200 5429 +6300 5430 +7200 5430 +4800 5431 +6900 5431 +4600 5432 +5800 5432 +8000 5432 +4800 5433 +5400 5433 +3100 5434 +3500 5434 +5700 5434 +6900 5434 +8900 5434 +6900 5435 +7900 5435 +1600 5436 +2700 5436 +3600 5436 +6800 5436 +5200 5437 +5500 5437 +7700 5438 +1700 5439 +5800 5439 +3800 5440 +10000 5440 +4100 5487 +7100 5487 +5300 5500 +1800 5501 +1900 5502 +4000 5502 +1600 5503 +2200 5503 +900 5504 +2100 5504 +2600 5504 +2700 5505 +3200 5505 +2400 5506 +3000 5506 +4200 5506 +2900 5507 +3400 5507 +4100 5507 +4400 5507 +6100 5507 +6500 5508 +6800 5508 +3300 5509 +3800 5509 +3600 5510 +4000 5510 +4400 5510 +6400 5510 +4300 5511 +4900 5511 +2500 5512 +3100 5512 +3600 5512 +7800 5512 +2900 5513 +4700 5513 +5400 5513 +1900 5515 +4300 5515 +5000 5515 +5300 5515 +8800 5515 +4500 5516 +5700 5516 +4400 5517 +4700 5517 +4700 5518 +7100 5518 +4400 5519 +4600 5519 +6900 5520 +9700 5520 +2400 5521 +4500 5521 +5400 5521 +6900 5521 +4400 5523 +7100 5523 +8300 5523 +9400 5523 +1400 5524 +2300 5524 +5400 5525 +500 5527 +1500 5527 +2100 5527 +5300 5527 +5500 5527 +100 5529 +3700 5529 +5700 5529 +8200 5529 +6300 5530 +7200 5530 +4800 5531 +6900 5531 +4600 5532 +5800 5532 +8000 5532 +4800 5533 +5400 5533 +3100 5534 +3500 5534 +5700 5534 +6900 5534 +8900 5534 +6900 5535 +7900 5535 +1600 5536 +2700 5536 +3600 5536 +6800 5536 +5200 5537 +5500 5537 +7700 5538 +1700 5539 +5800 5539 +3800 5540 +10000 5540 +4100 5587 +7100 5587 +5300 5600 +1800 5601 +1900 5602 +4000 5602 +1600 5603 +2200 5603 +900 5604 +2100 5604 +2600 5604 +2700 5605 +3200 5605 +2400 5606 +3000 5606 +4200 5606 +2900 5607 +3400 5607 +4100 5607 +4400 5607 +6100 5607 +6500 5608 +6800 5608 +3300 5609 +3800 5609 +3600 5610 +4000 5610 +4400 5610 +6400 5610 +4300 5611 +4900 5611 +2500 5612 +3100 5612 +3600 5612 +7800 5612 +2900 5613 +4700 5613 +5400 5613 +1900 5615 +4300 5615 +5000 5615 +5300 5615 +8800 5615 +4500 5616 +5700 5616 +4400 5617 +4700 5617 +4700 5618 +7100 5618 +4400 5619 +4600 5619 +6900 5620 +9700 5620 +2400 5621 +4500 5621 +5400 5621 +6900 5621 +4400 5623 +7100 5623 +8300 5623 +9400 5623 +1400 5624 +2300 5624 +5400 5625 +500 5627 +1500 5627 +2100 5627 +5300 5627 +5500 5627 +100 5629 +3700 5629 +5700 5629 +8200 5629 +6300 5630 +7200 5630 +4800 5631 +6900 5631 +4600 5632 +5800 5632 +8000 5632 +4800 5633 +5400 5633 +3100 5634 +3500 5634 +5700 5634 +6900 5634 +8900 5634 +6900 5635 +7900 5635 +1600 5636 +2700 5636 +3600 5636 +6800 5636 +5200 5637 +5500 5637 +7700 5638 +1700 5639 +5800 5639 +3800 5640 +10000 5640 +4100 5687 +7100 5687 +5300 5700 +1800 5701 +1900 5702 +4000 5702 +1600 5703 +2200 5703 +900 5704 +2100 5704 +2600 5704 +2700 5705 +3200 5705 +2400 5706 +3000 5706 +4200 5706 +2900 5707 +3400 5707 +4100 5707 +4400 5707 +6100 5707 +6500 5708 +6800 5708 +3300 5709 +3800 5709 +3600 5710 +4000 5710 +4400 5710 +6400 5710 +4300 5711 +4900 5711 +2500 5712 +3100 5712 +3600 5712 +7800 5712 +2900 5713 +4700 5713 +5400 5713 +1900 5715 +4300 5715 +5000 5715 +5300 5715 +8800 5715 +4500 5716 +5700 5716 +4400 5717 +4700 5717 +4700 5718 +7100 5718 +4400 5719 +4600 5719 +6900 5720 +9700 5720 +2400 5721 +4500 5721 +5400 5721 +6900 5721 +4400 5723 +7100 5723 +8300 5723 +9400 5723 +1400 5724 +2300 5724 +5400 5725 +500 5727 +1500 5727 +2100 5727 +5300 5727 +5500 5727 +100 5729 +3700 5729 +5700 5729 +8200 5729 +6300 5730 +7200 5730 +4800 5731 +6900 5731 +4600 5732 +5800 5732 +8000 5732 +4800 5733 +5400 5733 +3100 5734 +3500 5734 +5700 5734 +6900 5734 +8900 5734 +6900 5735 +7900 5735 +1600 5736 +2700 5736 +3600 5736 +6800 5736 +5200 5737 +5500 5737 +7700 5738 +1700 5739 +5800 5739 +3800 5740 +10000 5740 +4100 5787 +7100 5787 +5300 5800 +1800 5801 +1900 5802 +4000 5802 +1600 5803 +2200 5803 +900 5804 +2100 5804 +2600 5804 +2700 5805 +3200 5805 +2400 5806 +3000 5806 +4200 5806 +2900 5807 +3400 5807 +4100 5807 +4400 5807 +6100 5807 +6500 5808 +6800 5808 +3300 5809 +3800 5809 +3600 5810 +4000 5810 +4400 5810 +6400 5810 +4300 5811 +4900 5811 +2500 5812 +3100 5812 +3600 5812 +7800 5812 +2900 5813 +4700 5813 +5400 5813 +1900 5815 +4300 5815 +5000 5815 +5300 5815 +8800 5815 +4500 5816 +5700 5816 +4400 5817 +4700 5817 +4700 5818 +7100 5818 +4400 5819 +4600 5819 +6900 5820 +9700 5820 +2400 5821 +4500 5821 +5400 5821 +6900 5821 +4400 5823 +7100 5823 +8300 5823 +9400 5823 +1400 5824 +2300 5824 +5400 5825 +500 5827 +1500 5827 +2100 5827 +5300 5827 +5500 5827 +100 5829 +3700 5829 +5700 5829 +8200 5829 +6300 5830 +7200 5830 +4800 5831 +6900 5831 +4600 5832 +5800 5832 +8000 5832 +4800 5833 +5400 5833 +3100 5834 +3500 5834 +5700 5834 +6900 5834 +8900 5834 +6900 5835 +7900 5835 +1600 5836 +2700 5836 +3600 5836 +6800 5836 +5200 5837 +5500 5837 +7700 5838 +1700 5839 +5800 5839 +3800 5840 +10000 5840 +4100 5887 +7100 5887 +5300 5900 +1800 5901 +1900 5902 +4000 5902 +1600 5903 +2200 5903 +900 5904 +2100 5904 +2600 5904 +2700 5905 +3200 5905 +2400 5906 +3000 5906 +4200 5906 +2900 5907 +3400 5907 +4100 5907 +4400 5907 +6100 5907 +6500 5908 +6800 5908 +3300 5909 +3800 5909 +3600 5910 +4000 5910 +4400 5910 +6400 5910 +4300 5911 +4900 5911 +2500 5912 +3100 5912 +3600 5912 +7800 5912 +2900 5913 +4700 5913 +5400 5913 +1900 5915 +4300 5915 +5000 5915 +5300 5915 +8800 5915 +4500 5916 +5700 5916 +4400 5917 +4700 5917 +4700 5918 +7100 5918 +4400 5919 +4600 5919 +6900 5920 +9700 5920 +2400 5921 +4500 5921 +5400 5921 +6900 5921 +4400 5923 +7100 5923 +8300 5923 +9400 5923 +1400 5924 +2300 5924 +5400 5925 +500 5927 +1500 5927 +2100 5927 +5300 5927 +5500 5927 +100 5929 +3700 5929 +5700 5929 +8200 5929 +6300 5930 +7200 5930 +4800 5931 +6900 5931 +4600 5932 +5800 5932 +8000 5932 +4800 5933 +5400 5933 +3100 5934 +3500 5934 +5700 5934 +6900 5934 +8900 5934 +6900 5935 +7900 5935 +1600 5936 +2700 5936 +3600 5936 +6800 5936 +5200 5937 +5500 5937 +7700 5938 +1700 5939 +5800 5939 +3800 5940 +10000 5940 +4100 5987 +7100 5987 +5300 6000 +1800 6001 +1900 6002 +4000 6002 +1600 6003 +2200 6003 +900 6004 +2100 6004 +2600 6004 +2700 6005 +3200 6005 +2400 6006 +3000 6006 +4200 6006 +2900 6007 +3400 6007 +4100 6007 +4400 6007 +6100 6007 +6500 6008 +6800 6008 +3300 6009 +3800 6009 +3600 6010 +4000 6010 +4400 6010 +6400 6010 +4300 6011 +4900 6011 +2500 6012 +3100 6012 +3600 6012 +7800 6012 +2900 6013 +4700 6013 +5400 6013 +1900 6015 +4300 6015 +5000 6015 +5300 6015 +8800 6015 +4500 6016 +5700 6016 +4400 6017 +4700 6017 +4700 6018 +7100 6018 +4400 6019 +4600 6019 +6900 6020 +9700 6020 +2400 6021 +4500 6021 +5400 6021 +6900 6021 +4400 6023 +7100 6023 +8300 6023 +9400 6023 +1400 6024 +2300 6024 +5400 6025 +500 6027 +1500 6027 +2100 6027 +5300 6027 +5500 6027 +100 6029 +3700 6029 +5700 6029 +8200 6029 +6300 6030 +7200 6030 +4800 6031 +6900 6031 +4600 6032 +5800 6032 +8000 6032 +4800 6033 +5400 6033 +3100 6034 +3500 6034 +5700 6034 +6900 6034 +8900 6034 +6900 6035 +7900 6035 +1600 6036 +2700 6036 +3600 6036 +6800 6036 +5200 6037 +5500 6037 +7700 6038 +1700 6039 +5800 6039 +3800 6040 +10000 6040 +4100 6087 +7100 6087 +5300 6100 +1800 6101 +1900 6102 +4000 6102 +1600 6103 +2200 6103 +900 6104 +2100 6104 +2600 6104 +2700 6105 +3200 6105 +2400 6106 +3000 6106 +4200 6106 +2900 6107 +3400 6107 +4100 6107 +4400 6107 +6100 6107 +6500 6108 +6800 6108 +3300 6109 +3800 6109 +3600 6110 +4000 6110 +4400 6110 +6400 6110 +4300 6111 +4900 6111 +2500 6112 +3100 6112 +3600 6112 +7800 6112 +2900 6113 +4700 6113 +5400 6113 +1900 6115 +4300 6115 +5000 6115 +5300 6115 +8800 6115 +4500 6116 +5700 6116 +4400 6117 +4700 6117 +4700 6118 +7100 6118 +4400 6119 +4600 6119 +6900 6120 +9700 6120 +2400 6121 +4500 6121 +5400 6121 +6900 6121 +4400 6123 +7100 6123 +8300 6123 +9400 6123 +1400 6124 +2300 6124 +5400 6125 +500 6127 +1500 6127 +2100 6127 +5300 6127 +5500 6127 +100 6129 +3700 6129 +5700 6129 +8200 6129 +6300 6130 +7200 6130 +4800 6131 +6900 6131 +4600 6132 +5800 6132 +8000 6132 +4800 6133 +5400 6133 +3100 6134 +3500 6134 +5700 6134 +6900 6134 +8900 6134 +6900 6135 +7900 6135 +1600 6136 +2700 6136 +3600 6136 +6800 6136 +5200 6137 +5500 6137 +7700 6138 +1700 6139 +5800 6139 +3800 6140 +10000 6140 +4100 6187 +7100 6187 +5300 6200 +1800 6201 +1900 6202 +4000 6202 +1600 6203 +2200 6203 +900 6204 +2100 6204 +2600 6204 +2700 6205 +3200 6205 +2400 6206 +3000 6206 +4200 6206 +2900 6207 +3400 6207 +4100 6207 +4400 6207 +6100 6207 +6500 6208 +6800 6208 +3300 6209 +3800 6209 +3600 6210 +4000 6210 +4400 6210 +6400 6210 +4300 6211 +4900 6211 +2500 6212 +3100 6212 +3600 6212 +7800 6212 +2900 6213 +4700 6213 +5400 6213 +1900 6215 +4300 6215 +5000 6215 +5300 6215 +8800 6215 +4500 6216 +5700 6216 +4400 6217 +4700 6217 +4700 6218 +7100 6218 +4400 6219 +4600 6219 +6900 6220 +9700 6220 +2400 6221 +4500 6221 +5400 6221 +6900 6221 +4400 6223 +7100 6223 +8300 6223 +9400 6223 +1400 6224 +2300 6224 +5400 6225 +500 6227 +1500 6227 +2100 6227 +5300 6227 +5500 6227 +100 6229 +3700 6229 +5700 6229 +8200 6229 +6300 6230 +7200 6230 +4800 6231 +6900 6231 +4600 6232 +5800 6232 +8000 6232 +4800 6233 +5400 6233 +3100 6234 +3500 6234 +5700 6234 +6900 6234 +8900 6234 +6900 6235 +7900 6235 +1600 6236 +2700 6236 +3600 6236 +6800 6236 +5200 6237 +5500 6237 +7700 6238 +1700 6239 +5800 6239 +3800 6240 +10000 6240 +4100 6287 +7100 6287 +5300 6300 +1800 6301 +1900 6302 +4000 6302 +1600 6303 +2200 6303 +900 6304 +2100 6304 +2600 6304 +2700 6305 +3200 6305 +2400 6306 +3000 6306 +4200 6306 +2900 6307 +3400 6307 +4100 6307 +4400 6307 +6100 6307 +6500 6308 +6800 6308 +3300 6309 +3800 6309 +3600 6310 +4000 6310 +4400 6310 +6400 6310 +4300 6311 +4900 6311 +2500 6312 +3100 6312 +3600 6312 +7800 6312 +2900 6313 +4700 6313 +5400 6313 +1900 6315 +4300 6315 +5000 6315 +5300 6315 +8800 6315 +4500 6316 +5700 6316 +4400 6317 +4700 6317 +4700 6318 +7100 6318 +4400 6319 +4600 6319 +6900 6320 +9700 6320 +2400 6321 +4500 6321 +5400 6321 +6900 6321 +4400 6323 +7100 6323 +8300 6323 +9400 6323 +1400 6324 +2300 6324 +5400 6325 +500 6327 +1500 6327 +2100 6327 +5300 6327 +5500 6327 +100 6329 +3700 6329 +5700 6329 +8200 6329 +6300 6330 +7200 6330 +4800 6331 +6900 6331 +4600 6332 +5800 6332 +8000 6332 +4800 6333 +5400 6333 +3100 6334 +3500 6334 +5700 6334 +6900 6334 +8900 6334 +6900 6335 +7900 6335 +1600 6336 +2700 6336 +3600 6336 +6800 6336 +5200 6337 +5500 6337 +7700 6338 +1700 6339 +5800 6339 +3800 6340 +10000 6340 +4100 6387 +7100 6387 +5300 6400 +1800 6401 +1900 6402 +4000 6402 +1600 6403 +2200 6403 +900 6404 +2100 6404 +2600 6404 +2700 6405 +3200 6405 +2400 6406 +3000 6406 +4200 6406 +2900 6407 +3400 6407 +4100 6407 +4400 6407 +6100 6407 +6500 6408 +6800 6408 +3300 6409 +3800 6409 +3600 6410 +4000 6410 +4400 6410 +6400 6410 +4300 6411 +4900 6411 +2500 6412 +3100 6412 +3600 6412 +7800 6412 +2900 6413 +4700 6413 +5400 6413 +1900 6415 +4300 6415 +5000 6415 +5300 6415 +8800 6415 +4500 6416 +5700 6416 +4400 6417 +4700 6417 +4700 6418 +7100 6418 +4400 6419 +4600 6419 +6900 6420 +9700 6420 +2400 6421 +4500 6421 +5400 6421 +6900 6421 +4400 6423 +7100 6423 +8300 6423 +9400 6423 +1400 6424 +2300 6424 +5400 6425 +500 6427 +1500 6427 +2100 6427 +5300 6427 +5500 6427 +100 6429 +3700 6429 +5700 6429 +8200 6429 +6300 6430 +7200 6430 +4800 6431 +6900 6431 +4600 6432 +5800 6432 +8000 6432 +4800 6433 +5400 6433 +3100 6434 +3500 6434 +5700 6434 +6900 6434 +8900 6434 +6900 6435 +7900 6435 +1600 6436 +2700 6436 +3600 6436 +6800 6436 +5200 6437 +5500 6437 +7700 6438 +1700 6439 +5800 6439 +3800 6440 +10000 6440 +4100 6487 +7100 6487 +5300 6500 +1800 6501 +1900 6502 +4000 6502 +1600 6503 +2200 6503 +900 6504 +2100 6504 +2600 6504 +2700 6505 +3200 6505 +2400 6506 +3000 6506 +4200 6506 +2900 6507 +3400 6507 +4100 6507 +4400 6507 +6100 6507 +6500 6508 +6800 6508 +3300 6509 +3800 6509 +3600 6510 +4000 6510 +4400 6510 +6400 6510 +4300 6511 +4900 6511 +2500 6512 +3100 6512 +3600 6512 +7800 6512 +2900 6513 +4700 6513 +5400 6513 +1900 6515 +4300 6515 +5000 6515 +5300 6515 +8800 6515 +4500 6516 +5700 6516 +4400 6517 +4700 6517 +4700 6518 +7100 6518 +4400 6519 +4600 6519 +6900 6520 +9700 6520 +2400 6521 +4500 6521 +5400 6521 +6900 6521 +4400 6523 +7100 6523 +8300 6523 +9400 6523 +1400 6524 +2300 6524 +5400 6525 +500 6527 +1500 6527 +2100 6527 +5300 6527 +5500 6527 +100 6529 +3700 6529 +5700 6529 +8200 6529 +6300 6530 +7200 6530 +4800 6531 +6900 6531 +4600 6532 +5800 6532 +8000 6532 +4800 6533 +5400 6533 +3100 6534 +3500 6534 +5700 6534 +6900 6534 +8900 6534 +6900 6535 +7900 6535 +1600 6536 +2700 6536 +3600 6536 +6800 6536 +5200 6537 +5500 6537 +7700 6538 +1700 6539 +5800 6539 +3800 6540 +10000 6540 +4100 6587 +7100 6587 +5300 6600 +1800 6601 +1900 6602 +4000 6602 +1600 6603 +2200 6603 +900 6604 +2100 6604 +2600 6604 +2700 6605 +3200 6605 +2400 6606 +3000 6606 +4200 6606 +2900 6607 +3400 6607 +4100 6607 +4400 6607 +6100 6607 +6500 6608 +6800 6608 +3300 6609 +3800 6609 +3600 6610 +4000 6610 +4400 6610 +6400 6610 +4300 6611 +4900 6611 +2500 6612 +3100 6612 +3600 6612 +7800 6612 +2900 6613 +4700 6613 +5400 6613 +1900 6615 +4300 6615 +5000 6615 +5300 6615 +8800 6615 +4500 6616 +5700 6616 +4400 6617 +4700 6617 +4700 6618 +7100 6618 +4400 6619 +4600 6619 +6900 6620 +9700 6620 +2400 6621 +4500 6621 +5400 6621 +6900 6621 +4400 6623 +7100 6623 +8300 6623 +9400 6623 +1400 6624 +2300 6624 +5400 6625 +500 6627 +1500 6627 +2100 6627 +5300 6627 +5500 6627 +100 6629 +3700 6629 +5700 6629 +8200 6629 +6300 6630 +7200 6630 +4800 6631 +6900 6631 +4600 6632 +5800 6632 +8000 6632 +4800 6633 +5400 6633 +3100 6634 +3500 6634 +5700 6634 +6900 6634 +8900 6634 +6900 6635 +7900 6635 +1600 6636 +2700 6636 +3600 6636 +6800 6636 +5200 6637 +5500 6637 +7700 6638 +1700 6639 +5800 6639 +3800 6640 +10000 6640 +4100 6687 +7100 6687 +5300 6700 +1800 6701 +1900 6702 +4000 6702 +1600 6703 +2200 6703 +900 6704 +2100 6704 +2600 6704 +2700 6705 +3200 6705 +2400 6706 +3000 6706 +4200 6706 +2900 6707 +3400 6707 +4100 6707 +4400 6707 +6100 6707 +6500 6708 +6800 6708 +3300 6709 +3800 6709 +3600 6710 +4000 6710 +4400 6710 +6400 6710 +4300 6711 +4900 6711 +2500 6712 +3100 6712 +3600 6712 +7800 6712 +2900 6713 +4700 6713 +5400 6713 +1900 6715 +4300 6715 +5000 6715 +5300 6715 +8800 6715 +4500 6716 +5700 6716 +4400 6717 +4700 6717 +4700 6718 +7100 6718 +4400 6719 +4600 6719 +6900 6720 +9700 6720 +2400 6721 +4500 6721 +5400 6721 +6900 6721 +4400 6723 +7100 6723 +8300 6723 +9400 6723 +1400 6724 +2300 6724 +5400 6725 +500 6727 +1500 6727 +2100 6727 +5300 6727 +5500 6727 +100 6729 +3700 6729 +5700 6729 +8200 6729 +6300 6730 +7200 6730 +4800 6731 +6900 6731 +4600 6732 +5800 6732 +8000 6732 +4800 6733 +5400 6733 +3100 6734 +3500 6734 +5700 6734 +6900 6734 +8900 6734 +6900 6735 +7900 6735 +1600 6736 +2700 6736 +3600 6736 +6800 6736 +5200 6737 +5500 6737 +7700 6738 +1700 6739 +5800 6739 +3800 6740 +10000 6740 +4100 6787 +7100 6787 +5300 6800 +1800 6801 +1900 6802 +4000 6802 +1600 6803 +2200 6803 +900 6804 +2100 6804 +2600 6804 +2700 6805 +3200 6805 +2400 6806 +3000 6806 +4200 6806 +2900 6807 +3400 6807 +4100 6807 +4400 6807 +6100 6807 +6500 6808 +6800 6808 +3300 6809 +3800 6809 +3600 6810 +4000 6810 +4400 6810 +6400 6810 +4300 6811 +4900 6811 +2500 6812 +3100 6812 +3600 6812 +7800 6812 +2900 6813 +4700 6813 +5400 6813 +1900 6815 +4300 6815 +5000 6815 +5300 6815 +8800 6815 +4500 6816 +5700 6816 +4400 6817 +4700 6817 +4700 6818 +7100 6818 +4400 6819 +4600 6819 +6900 6820 +9700 6820 +2400 6821 +4500 6821 +5400 6821 +6900 6821 +4400 6823 +7100 6823 +8300 6823 +9400 6823 +1400 6824 +2300 6824 +5400 6825 +500 6827 +1500 6827 +2100 6827 +5300 6827 +5500 6827 +100 6829 +3700 6829 +5700 6829 +8200 6829 +6300 6830 +7200 6830 +4800 6831 +6900 6831 +4600 6832 +5800 6832 +8000 6832 +4800 6833 +5400 6833 +3100 6834 +3500 6834 +5700 6834 +6900 6834 +8900 6834 +6900 6835 +7900 6835 +1600 6836 +2700 6836 +3600 6836 +6800 6836 +5200 6837 +5500 6837 +7700 6838 +1700 6839 +5800 6839 +3800 6840 +10000 6840 +4100 6887 +7100 6887 +5300 6900 +1800 6901 +1900 6902 +4000 6902 +1600 6903 +2200 6903 +900 6904 +2100 6904 +2600 6904 +2700 6905 +3200 6905 +2400 6906 +3000 6906 +4200 6906 +2900 6907 +3400 6907 +4100 6907 +4400 6907 +6100 6907 +6500 6908 +6800 6908 +3300 6909 +3800 6909 +3600 6910 +4000 6910 +4400 6910 +6400 6910 +4300 6911 +4900 6911 +2500 6912 +3100 6912 +3600 6912 +7800 6912 +2900 6913 +4700 6913 +5400 6913 +1900 6915 +4300 6915 +5000 6915 +5300 6915 +8800 6915 +4500 6916 +5700 6916 +4400 6917 +4700 6917 +4700 6918 +7100 6918 +4400 6919 +4600 6919 +6900 6920 +9700 6920 +2400 6921 +4500 6921 +5400 6921 +6900 6921 +4400 6923 +7100 6923 +8300 6923 +9400 6923 +1400 6924 +2300 6924 +5400 6925 +500 6927 +1500 6927 +2100 6927 +5300 6927 +5500 6927 +100 6929 +3700 6929 +5700 6929 +8200 6929 +6300 6930 +7200 6930 +4800 6931 +6900 6931 +4600 6932 +5800 6932 +8000 6932 +4800 6933 +5400 6933 +3100 6934 +3500 6934 +5700 6934 +6900 6934 +8900 6934 +6900 6935 +7900 6935 +1600 6936 +2700 6936 +3600 6936 +6800 6936 +5200 6937 +5500 6937 +7700 6938 +1700 6939 +5800 6939 +3800 6940 +10000 6940 +4100 6987 +7100 6987 +5300 7000 +1800 7001 +1900 7002 +4000 7002 +1600 7003 +2200 7003 +900 7004 +2100 7004 +2600 7004 +2700 7005 +3200 7005 +2400 7006 +3000 7006 +4200 7006 +2900 7007 +3400 7007 +4100 7007 +4400 7007 +6100 7007 +6500 7008 +6800 7008 +3300 7009 +3800 7009 +3600 7010 +4000 7010 +4400 7010 +6400 7010 +4300 7011 +4900 7011 +2500 7012 +3100 7012 +3600 7012 +7800 7012 +2900 7013 +4700 7013 +5400 7013 +1900 7015 +4300 7015 +5000 7015 +5300 7015 +8800 7015 +4500 7016 +5700 7016 +4400 7017 +4700 7017 +4700 7018 +7100 7018 +4400 7019 +4600 7019 +6900 7020 +9700 7020 +2400 7021 +4500 7021 +5400 7021 +6900 7021 +4400 7023 +7100 7023 +8300 7023 +9400 7023 +1400 7024 +2300 7024 +5400 7025 +500 7027 +1500 7027 +2100 7027 +5300 7027 +5500 7027 +100 7029 +3700 7029 +5700 7029 +8200 7029 +6300 7030 +7200 7030 +4800 7031 +6900 7031 +4600 7032 +5800 7032 +8000 7032 +4800 7033 +5400 7033 +3100 7034 +3500 7034 +5700 7034 +6900 7034 +8900 7034 +6900 7035 +7900 7035 +1600 7036 +2700 7036 +3600 7036 +6800 7036 +5200 7037 +5500 7037 +7700 7038 +1700 7039 +5800 7039 +3800 7040 +10000 7040 +4100 7087 +7100 7087 +5300 7100 +1800 7101 +1900 7102 +4000 7102 +1600 7103 +2200 7103 +900 7104 +2100 7104 +2600 7104 +2700 7105 +3200 7105 +2400 7106 +3000 7106 +4200 7106 +2900 7107 +3400 7107 +4100 7107 +4400 7107 +6100 7107 +6500 7108 +6800 7108 +3300 7109 +3800 7109 +3600 7110 +4000 7110 +4400 7110 +6400 7110 +4300 7111 +4900 7111 +2500 7112 +3100 7112 +3600 7112 +7800 7112 +2900 7113 +4700 7113 +5400 7113 +1900 7115 +4300 7115 +5000 7115 +5300 7115 +8800 7115 +4500 7116 +5700 7116 +4400 7117 +4700 7117 +4700 7118 +7100 7118 +4400 7119 +4600 7119 +6900 7120 +9700 7120 +2400 7121 +4500 7121 +5400 7121 +6900 7121 +4400 7123 +7100 7123 +8300 7123 +9400 7123 +1400 7124 +2300 7124 +5400 7125 +500 7127 +1500 7127 +2100 7127 +5300 7127 +5500 7127 +100 7129 +3700 7129 +5700 7129 +8200 7129 +6300 7130 +7200 7130 +4800 7131 +6900 7131 +4600 7132 +5800 7132 +8000 7132 +4800 7133 +5400 7133 +3100 7134 +3500 7134 +5700 7134 +6900 7134 +8900 7134 +6900 7135 +7900 7135 +1600 7136 +2700 7136 +3600 7136 +6800 7136 +5200 7137 +5500 7137 +7700 7138 +1700 7139 +5800 7139 +3800 7140 +10000 7140 +4100 7187 +7100 7187 +5300 7200 +1800 7201 +1900 7202 +4000 7202 +1600 7203 +2200 7203 +900 7204 +2100 7204 +2600 7204 +2700 7205 +3200 7205 +2400 7206 +3000 7206 +4200 7206 +2900 7207 +3400 7207 +4100 7207 +4400 7207 +6100 7207 +6500 7208 +6800 7208 +3300 7209 +3800 7209 +3600 7210 +4000 7210 +4400 7210 +6400 7210 +4300 7211 +4900 7211 +2500 7212 +3100 7212 +3600 7212 +7800 7212 +2900 7213 +4700 7213 +5400 7213 +1900 7215 +4300 7215 +5000 7215 +5300 7215 +8800 7215 +4500 7216 +5700 7216 +4400 7217 +4700 7217 +4700 7218 +7100 7218 +4400 7219 +4600 7219 +6900 7220 +9700 7220 +2400 7221 +4500 7221 +5400 7221 +6900 7221 +4400 7223 +7100 7223 +8300 7223 +9400 7223 +1400 7224 +2300 7224 +5400 7225 +500 7227 +1500 7227 +2100 7227 +5300 7227 +5500 7227 +100 7229 +3700 7229 +5700 7229 +8200 7229 +6300 7230 +7200 7230 +4800 7231 +6900 7231 +4600 7232 +5800 7232 +8000 7232 +4800 7233 +5400 7233 +3100 7234 +3500 7234 +5700 7234 +6900 7234 +8900 7234 +6900 7235 +7900 7235 +1600 7236 +2700 7236 +3600 7236 +6800 7236 +5200 7237 +5500 7237 +7700 7238 +1700 7239 +5800 7239 +3800 7240 +10000 7240 +4100 7287 +7100 7287 +5300 7300 +1800 7301 +1900 7302 +4000 7302 +1600 7303 +2200 7303 +900 7304 +2100 7304 +2600 7304 +2700 7305 +3200 7305 +2400 7306 +3000 7306 +4200 7306 +2900 7307 +3400 7307 +4100 7307 +4400 7307 +6100 7307 +6500 7308 +6800 7308 +3300 7309 +3800 7309 +3600 7310 +4000 7310 +4400 7310 +6400 7310 +4300 7311 +4900 7311 +2500 7312 +3100 7312 +3600 7312 +7800 7312 +2900 7313 +4700 7313 +5400 7313 +1900 7315 +4300 7315 +5000 7315 +5300 7315 +8800 7315 +4500 7316 +5700 7316 +4400 7317 +4700 7317 +4700 7318 +7100 7318 +4400 7319 +4600 7319 +6900 7320 +9700 7320 +2400 7321 +4500 7321 +5400 7321 +6900 7321 +4400 7323 +7100 7323 +8300 7323 +9400 7323 +1400 7324 +2300 7324 +5400 7325 +500 7327 +1500 7327 +2100 7327 +5300 7327 +5500 7327 +100 7329 +3700 7329 +5700 7329 +8200 7329 +6300 7330 +7200 7330 +4800 7331 +6900 7331 +4600 7332 +5800 7332 +8000 7332 +4800 7333 +5400 7333 +3100 7334 +3500 7334 +5700 7334 +6900 7334 +8900 7334 +6900 7335 +7900 7335 +1600 7336 +2700 7336 +3600 7336 +6800 7336 +5200 7337 +5500 7337 +7700 7338 +1700 7339 +5800 7339 +3800 7340 +10000 7340 +4100 7387 +7100 7387 +5300 7400 +1800 7401 +1900 7402 +4000 7402 +1600 7403 +2200 7403 +900 7404 +2100 7404 +2600 7404 +2700 7405 +3200 7405 +2400 7406 +3000 7406 +4200 7406 +2900 7407 +3400 7407 +4100 7407 +4400 7407 +6100 7407 +6500 7408 +6800 7408 +3300 7409 +3800 7409 +3600 7410 +4000 7410 +4400 7410 +6400 7410 +4300 7411 +4900 7411 +2500 7412 +3100 7412 +3600 7412 +7800 7412 +2900 7413 +4700 7413 +5400 7413 +1900 7415 +4300 7415 +5000 7415 +5300 7415 +8800 7415 +4500 7416 +5700 7416 +4400 7417 +4700 7417 +4700 7418 +7100 7418 +4400 7419 +4600 7419 +6900 7420 +9700 7420 +2400 7421 +4500 7421 +5400 7421 +6900 7421 +4400 7423 +7100 7423 +8300 7423 +9400 7423 +1400 7424 +2300 7424 +5400 7425 +500 7427 +1500 7427 +2100 7427 +5300 7427 +5500 7427 +100 7429 +3700 7429 +5700 7429 +8200 7429 +6300 7430 +7200 7430 +4800 7431 +6900 7431 +4600 7432 +5800 7432 +8000 7432 +4800 7433 +5400 7433 +3100 7434 +3500 7434 +5700 7434 +6900 7434 +8900 7434 +6900 7435 +7900 7435 +1600 7436 +2700 7436 +3600 7436 +6800 7436 +5200 7437 +5500 7437 +7700 7438 +1700 7439 +5800 7439 +3800 7440 +10000 7440 +4100 7487 +7100 7487 +5300 7500 +1800 7501 +1900 7502 +4000 7502 +1600 7503 +2200 7503 +900 7504 +2100 7504 +2600 7504 +2700 7505 +3200 7505 +2400 7506 +3000 7506 +4200 7506 +2900 7507 +3400 7507 +4100 7507 +4400 7507 +6100 7507 +6500 7508 +6800 7508 +3300 7509 +3800 7509 +3600 7510 +4000 7510 +4400 7510 +6400 7510 +4300 7511 +4900 7511 +2500 7512 +3100 7512 +3600 7512 +7800 7512 +2900 7513 +4700 7513 +5400 7513 +1900 7515 +4300 7515 +5000 7515 +5300 7515 +8800 7515 +4500 7516 +5700 7516 +4400 7517 +4700 7517 +4700 7518 +7100 7518 +4400 7519 +4600 7519 +6900 7520 +9700 7520 +2400 7521 +4500 7521 +5400 7521 +6900 7521 +4400 7523 +7100 7523 +8300 7523 +9400 7523 +1400 7524 +2300 7524 +5400 7525 +500 7527 +1500 7527 +2100 7527 +5300 7527 +5500 7527 +100 7529 +3700 7529 +5700 7529 +8200 7529 +6300 7530 +7200 7530 +4800 7531 +6900 7531 +4600 7532 +5800 7532 +8000 7532 +4800 7533 +5400 7533 +3100 7534 +3500 7534 +5700 7534 +6900 7534 +8900 7534 +6900 7535 +7900 7535 +1600 7536 +2700 7536 +3600 7536 +6800 7536 +5200 7537 +5500 7537 +7700 7538 +1700 7539 +5800 7539 +3800 7540 +10000 7540 +4100 7587 +7100 7587 +5300 7600 +1800 7601 +1900 7602 +4000 7602 +1600 7603 +2200 7603 +900 7604 +2100 7604 +2600 7604 +2700 7605 +3200 7605 +2400 7606 +3000 7606 +4200 7606 +2900 7607 +3400 7607 +4100 7607 +4400 7607 +6100 7607 +6500 7608 +6800 7608 +3300 7609 +3800 7609 +3600 7610 +4000 7610 +4400 7610 +6400 7610 +4300 7611 +4900 7611 +2500 7612 +3100 7612 +3600 7612 +7800 7612 +2900 7613 +4700 7613 +5400 7613 +1900 7615 +4300 7615 +5000 7615 +5300 7615 +8800 7615 +4500 7616 +5700 7616 +4400 7617 +4700 7617 +4700 7618 +7100 7618 +4400 7619 +4600 7619 +6900 7620 +9700 7620 +2400 7621 +4500 7621 +5400 7621 +6900 7621 +4400 7623 +7100 7623 +8300 7623 +9400 7623 +1400 7624 +2300 7624 +5400 7625 +500 7627 +1500 7627 +2100 7627 +5300 7627 +5500 7627 +100 7629 +3700 7629 +5700 7629 +8200 7629 +6300 7630 +7200 7630 +4800 7631 +6900 7631 +4600 7632 +5800 7632 +8000 7632 +4800 7633 +5400 7633 +3100 7634 +3500 7634 +5700 7634 +6900 7634 +8900 7634 +6900 7635 +7900 7635 +1600 7636 +2700 7636 +3600 7636 +6800 7636 +5200 7637 +5500 7637 +7700 7638 +1700 7639 +5800 7639 +3800 7640 +10000 7640 +4100 7687 +7100 7687 +5300 7700 +1800 7701 +1900 7702 +4000 7702 +1600 7703 +2200 7703 +900 7704 +2100 7704 +2600 7704 +2700 7705 +3200 7705 +2400 7706 +3000 7706 +4200 7706 +2900 7707 +3400 7707 +4100 7707 +4400 7707 +6100 7707 +6500 7708 +6800 7708 +3300 7709 +3800 7709 +3600 7710 +4000 7710 +4400 7710 +6400 7710 +4300 7711 +4900 7711 +2500 7712 +3100 7712 +3600 7712 +7800 7712 +2900 7713 +4700 7713 +5400 7713 +1900 7715 +4300 7715 +5000 7715 +5300 7715 +8800 7715 +4500 7716 +5700 7716 +4400 7717 +4700 7717 +4700 7718 +7100 7718 +4400 7719 +4600 7719 +6900 7720 +9700 7720 +2400 7721 +4500 7721 +5400 7721 +6900 7721 +4400 7723 +7100 7723 +8300 7723 +9400 7723 +1400 7724 +2300 7724 +5400 7725 +500 7727 +1500 7727 +2100 7727 +5300 7727 +5500 7727 +100 7729 +3700 7729 +5700 7729 +8200 7729 +6300 7730 +7200 7730 +4800 7731 +6900 7731 +4600 7732 +5800 7732 +8000 7732 +4800 7733 +5400 7733 +3100 7734 +3500 7734 +5700 7734 +6900 7734 +8900 7734 +6900 7735 +7900 7735 +1600 7736 +2700 7736 +3600 7736 +6800 7736 +5200 7737 +5500 7737 +7700 7738 +1700 7739 +5800 7739 +3800 7740 +10000 7740 +4100 7787 +7100 7787 +5300 7800 +1800 7801 +1900 7802 +4000 7802 +1600 7803 +2200 7803 +900 7804 +2100 7804 +2600 7804 +2700 7805 +3200 7805 +2400 7806 +3000 7806 +4200 7806 +2900 7807 +3400 7807 +4100 7807 +4400 7807 +6100 7807 +6500 7808 +6800 7808 +3300 7809 +3800 7809 +3600 7810 +4000 7810 +4400 7810 +6400 7810 +4300 7811 +4900 7811 +2500 7812 +3100 7812 +3600 7812 +7800 7812 +2900 7813 +4700 7813 +5400 7813 +1900 7815 +4300 7815 +5000 7815 +5300 7815 +8800 7815 +4500 7816 +5700 7816 +4400 7817 +4700 7817 +4700 7818 +7100 7818 +4400 7819 +4600 7819 +6900 7820 +9700 7820 +2400 7821 +4500 7821 +5400 7821 +6900 7821 +4400 7823 +7100 7823 +8300 7823 +9400 7823 +1400 7824 +2300 7824 +5400 7825 +500 7827 +1500 7827 +2100 7827 +5300 7827 +5500 7827 +100 7829 +3700 7829 +5700 7829 +8200 7829 +6300 7830 +7200 7830 +4800 7831 +6900 7831 +4600 7832 +5800 7832 +8000 7832 +4800 7833 +5400 7833 +3100 7834 +3500 7834 +5700 7834 +6900 7834 +8900 7834 +6900 7835 +7900 7835 +1600 7836 +2700 7836 +3600 7836 +6800 7836 +5200 7837 +5500 7837 +7700 7838 +1700 7839 +5800 7839 +3800 7840 +10000 7840 +4100 7887 +7100 7887 +5300 7900 +1800 7901 +1900 7902 +4000 7902 +1600 7903 +2200 7903 +900 7904 +2100 7904 +2600 7904 +2700 7905 +3200 7905 +2400 7906 +3000 7906 +4200 7906 +2900 7907 +3400 7907 +4100 7907 +4400 7907 +6100 7907 +6500 7908 +6800 7908 +3300 7909 +3800 7909 +3600 7910 +4000 7910 +4400 7910 +6400 7910 +4300 7911 +4900 7911 +2500 7912 +3100 7912 +3600 7912 +7800 7912 +2900 7913 +4700 7913 +5400 7913 +1900 7915 +4300 7915 +5000 7915 +5300 7915 +8800 7915 +4500 7916 +5700 7916 +4400 7917 +4700 7917 +4700 7918 +7100 7918 +4400 7919 +4600 7919 +6900 7920 +9700 7920 +2400 7921 +4500 7921 +5400 7921 +6900 7921 +4400 7923 +7100 7923 +8300 7923 +9400 7923 +1400 7924 +2300 7924 +5400 7925 +500 7927 +1500 7927 +2100 7927 +5300 7927 +5500 7927 +100 7929 +3700 7929 +5700 7929 +8200 7929 +6300 7930 +7200 7930 +4800 7931 +6900 7931 +4600 7932 +5800 7932 +8000 7932 +4800 7933 +5400 7933 +3100 7934 +3500 7934 +5700 7934 +6900 7934 +8900 7934 +6900 7935 +7900 7935 +1600 7936 +2700 7936 +3600 7936 +6800 7936 +5200 7937 +5500 7937 +7700 7938 +1700 7939 +5800 7939 +3800 7940 +10000 7940 +4100 7987 +7100 7987 +5300 8000 +1800 8001 +1900 8002 +4000 8002 +1600 8003 +2200 8003 +900 8004 +2100 8004 +2600 8004 +2700 8005 +3200 8005 +2400 8006 +3000 8006 +4200 8006 +2900 8007 +3400 8007 +4100 8007 +4400 8007 +6100 8007 +6500 8008 +6800 8008 +3300 8009 +3800 8009 +3600 8010 +4000 8010 +4400 8010 +6400 8010 +4300 8011 +4900 8011 +2500 8012 +3100 8012 +3600 8012 +7800 8012 +2900 8013 +4700 8013 +5400 8013 +1900 8015 +4300 8015 +5000 8015 +5300 8015 +8800 8015 +4500 8016 +5700 8016 +4400 8017 +4700 8017 +4700 8018 +7100 8018 +4400 8019 +4600 8019 +6900 8020 +9700 8020 +2400 8021 +4500 8021 +5400 8021 +6900 8021 +4400 8023 +7100 8023 +8300 8023 +9400 8023 +1400 8024 +2300 8024 +5400 8025 +500 8027 +1500 8027 +2100 8027 +5300 8027 +5500 8027 +100 8029 +3700 8029 +5700 8029 +8200 8029 +6300 8030 +7200 8030 +4800 8031 +6900 8031 +4600 8032 +5800 8032 +8000 8032 +4800 8033 +5400 8033 +3100 8034 +3500 8034 +5700 8034 +6900 8034 +8900 8034 +6900 8035 +7900 8035 +1600 8036 +2700 8036 +3600 8036 +6800 8036 +5200 8037 +5500 8037 +7700 8038 +1700 8039 +5800 8039 +3800 8040 +10000 8040 +4100 8087 +7100 8087 +5300 8100 +1800 8101 +1900 8102 +4000 8102 +1600 8103 +2200 8103 +900 8104 +2100 8104 +2600 8104 +2700 8105 +3200 8105 +2400 8106 +3000 8106 +4200 8106 +2900 8107 +3400 8107 +4100 8107 +4400 8107 +6100 8107 +6500 8108 +6800 8108 +3300 8109 +3800 8109 +3600 8110 +4000 8110 +4400 8110 +6400 8110 +4300 8111 +4900 8111 +2500 8112 +3100 8112 +3600 8112 +7800 8112 +2900 8113 +4700 8113 +5400 8113 +1900 8115 +4300 8115 +5000 8115 +5300 8115 +8800 8115 +4500 8116 +5700 8116 +4400 8117 +4700 8117 +4700 8118 +7100 8118 +4400 8119 +4600 8119 +6900 8120 +9700 8120 +2400 8121 +4500 8121 +5400 8121 +6900 8121 +4400 8123 +7100 8123 +8300 8123 +9400 8123 +1400 8124 +2300 8124 +5400 8125 +500 8127 +1500 8127 +2100 8127 +5300 8127 +5500 8127 +100 8129 +3700 8129 +5700 8129 +8200 8129 +6300 8130 +7200 8130 +4800 8131 +6900 8131 +4600 8132 +5800 8132 +8000 8132 +4800 8133 +5400 8133 +3100 8134 +3500 8134 +5700 8134 +6900 8134 +8900 8134 +6900 8135 +7900 8135 +1600 8136 +2700 8136 +3600 8136 +6800 8136 +5200 8137 +5500 8137 +7700 8138 +1700 8139 +5800 8139 +3800 8140 +10000 8140 +4100 8187 +7100 8187 +5300 8200 +1800 8201 +1900 8202 +4000 8202 +1600 8203 +2200 8203 +900 8204 +2100 8204 +2600 8204 +2700 8205 +3200 8205 +2400 8206 +3000 8206 +4200 8206 +2900 8207 +3400 8207 +4100 8207 +4400 8207 +6100 8207 +6500 8208 +6800 8208 +3300 8209 +3800 8209 +3600 8210 +4000 8210 +4400 8210 +6400 8210 +4300 8211 +4900 8211 +2500 8212 +3100 8212 +3600 8212 +7800 8212 +2900 8213 +4700 8213 +5400 8213 +1900 8215 +4300 8215 +5000 8215 +5300 8215 +8800 8215 +4500 8216 +5700 8216 +4400 8217 +4700 8217 +4700 8218 +7100 8218 +4400 8219 +4600 8219 +6900 8220 +9700 8220 +2400 8221 +4500 8221 +5400 8221 +6900 8221 +4400 8223 +7100 8223 +8300 8223 +9400 8223 +1400 8224 +2300 8224 +5400 8225 +500 8227 +1500 8227 +2100 8227 +5300 8227 +5500 8227 +100 8229 +3700 8229 +5700 8229 +8200 8229 +6300 8230 +7200 8230 +4800 8231 +6900 8231 +4600 8232 +5800 8232 +8000 8232 +4800 8233 +5400 8233 +3100 8234 +3500 8234 +5700 8234 +6900 8234 +8900 8234 +6900 8235 +7900 8235 +1600 8236 +2700 8236 +3600 8236 +6800 8236 +5200 8237 +5500 8237 +7700 8238 +1700 8239 +5800 8239 +3800 8240 +10000 8240 +4100 8287 +7100 8287 +5300 8300 +1800 8301 +1900 8302 +4000 8302 +1600 8303 +2200 8303 +900 8304 +2100 8304 +2600 8304 +2700 8305 +3200 8305 +2400 8306 +3000 8306 +4200 8306 +2900 8307 +3400 8307 +4100 8307 +4400 8307 +6100 8307 +6500 8308 +6800 8308 +3300 8309 +3800 8309 +3600 8310 +4000 8310 +4400 8310 +6400 8310 +4300 8311 +4900 8311 +2500 8312 +3100 8312 +3600 8312 +7800 8312 +2900 8313 +4700 8313 +5400 8313 +1900 8315 +4300 8315 +5000 8315 +5300 8315 +8800 8315 +4500 8316 +5700 8316 +4400 8317 +4700 8317 +4700 8318 +7100 8318 +4400 8319 +4600 8319 +6900 8320 +9700 8320 +2400 8321 +4500 8321 +5400 8321 +6900 8321 +4400 8323 +7100 8323 +8300 8323 +9400 8323 +1400 8324 +2300 8324 +5400 8325 +500 8327 +1500 8327 +2100 8327 +5300 8327 +5500 8327 +100 8329 +3700 8329 +5700 8329 +8200 8329 +6300 8330 +7200 8330 +4800 8331 +6900 8331 +4600 8332 +5800 8332 +8000 8332 +4800 8333 +5400 8333 +3100 8334 +3500 8334 +5700 8334 +6900 8334 +8900 8334 +6900 8335 +7900 8335 +1600 8336 +2700 8336 +3600 8336 +6800 8336 +5200 8337 +5500 8337 +7700 8338 +1700 8339 +5800 8339 +3800 8340 +10000 8340 +4100 8387 +7100 8387 +5300 8400 +1800 8401 +1900 8402 +4000 8402 +1600 8403 +2200 8403 +900 8404 +2100 8404 +2600 8404 +2700 8405 +3200 8405 +2400 8406 +3000 8406 +4200 8406 +2900 8407 +3400 8407 +4100 8407 +4400 8407 +6100 8407 +6500 8408 +6800 8408 +3300 8409 +3800 8409 +3600 8410 +4000 8410 +4400 8410 +6400 8410 +4300 8411 +4900 8411 +2500 8412 +3100 8412 +3600 8412 +7800 8412 +2900 8413 +4700 8413 +5400 8413 +1900 8415 +4300 8415 +5000 8415 +5300 8415 +8800 8415 +4500 8416 +5700 8416 +4400 8417 +4700 8417 +4700 8418 +7100 8418 +4400 8419 +4600 8419 +6900 8420 +9700 8420 +2400 8421 +4500 8421 +5400 8421 +6900 8421 +4400 8423 +7100 8423 +8300 8423 +9400 8423 +1400 8424 +2300 8424 +5400 8425 +500 8427 +1500 8427 +2100 8427 +5300 8427 +5500 8427 +100 8429 +3700 8429 +5700 8429 +8200 8429 +6300 8430 +7200 8430 +4800 8431 +6900 8431 +4600 8432 +5800 8432 +8000 8432 +4800 8433 +5400 8433 +3100 8434 +3500 8434 +5700 8434 +6900 8434 +8900 8434 +6900 8435 +7900 8435 +1600 8436 +2700 8436 +3600 8436 +6800 8436 +5200 8437 +5500 8437 +7700 8438 +1700 8439 +5800 8439 +3800 8440 +10000 8440 +4100 8487 +7100 8487 +5300 8500 +1800 8501 +1900 8502 +4000 8502 +1600 8503 +2200 8503 +900 8504 +2100 8504 +2600 8504 +2700 8505 +3200 8505 +2400 8506 +3000 8506 +4200 8506 +2900 8507 +3400 8507 +4100 8507 +4400 8507 +6100 8507 +6500 8508 +6800 8508 +3300 8509 +3800 8509 +3600 8510 +4000 8510 +4400 8510 +6400 8510 +4300 8511 +4900 8511 +2500 8512 +3100 8512 +3600 8512 +7800 8512 +2900 8513 +4700 8513 +5400 8513 +1900 8515 +4300 8515 +5000 8515 +5300 8515 +8800 8515 +4500 8516 +5700 8516 +4400 8517 +4700 8517 +4700 8518 +7100 8518 +4400 8519 +4600 8519 +6900 8520 +9700 8520 +2400 8521 +4500 8521 +5400 8521 +6900 8521 +4400 8523 +7100 8523 +8300 8523 +9400 8523 +1400 8524 +2300 8524 +5400 8525 +500 8527 +1500 8527 +2100 8527 +5300 8527 +5500 8527 +100 8529 +3700 8529 +5700 8529 +8200 8529 +6300 8530 +7200 8530 +4800 8531 +6900 8531 +4600 8532 +5800 8532 +8000 8532 +4800 8533 +5400 8533 +3100 8534 +3500 8534 +5700 8534 +6900 8534 +8900 8534 +6900 8535 +7900 8535 +1600 8536 +2700 8536 +3600 8536 +6800 8536 +5200 8537 +5500 8537 +7700 8538 +1700 8539 +5800 8539 +3800 8540 +10000 8540 +4100 8587 +7100 8587 +5300 8600 +1800 8601 +1900 8602 +4000 8602 +1600 8603 +2200 8603 +900 8604 +2100 8604 +2600 8604 +2700 8605 +3200 8605 +2400 8606 +3000 8606 +4200 8606 +2900 8607 +3400 8607 +4100 8607 +4400 8607 +6100 8607 +6500 8608 +6800 8608 +3300 8609 +3800 8609 +3600 8610 +4000 8610 +4400 8610 +6400 8610 +4300 8611 +4900 8611 +2500 8612 +3100 8612 +3600 8612 +7800 8612 +2900 8613 +4700 8613 +5400 8613 +1900 8615 +4300 8615 +5000 8615 +5300 8615 +8800 8615 +4500 8616 +5700 8616 +4400 8617 +4700 8617 +4700 8618 +7100 8618 +4400 8619 +4600 8619 +6900 8620 +9700 8620 +2400 8621 +4500 8621 +5400 8621 +6900 8621 +4400 8623 +7100 8623 +8300 8623 +9400 8623 +1400 8624 +2300 8624 +5400 8625 +500 8627 +1500 8627 +2100 8627 +5300 8627 +5500 8627 +100 8629 +3700 8629 +5700 8629 +8200 8629 +6300 8630 +7200 8630 +4800 8631 +6900 8631 +4600 8632 +5800 8632 +8000 8632 +4800 8633 +5400 8633 +3100 8634 +3500 8634 +5700 8634 +6900 8634 +8900 8634 +6900 8635 +7900 8635 +1600 8636 +2700 8636 +3600 8636 +6800 8636 +5200 8637 +5500 8637 +7700 8638 +1700 8639 +5800 8639 +3800 8640 +10000 8640 +4100 8687 +7100 8687 +5300 8700 +1800 8701 +1900 8702 +4000 8702 +1600 8703 +2200 8703 +900 8704 +2100 8704 +2600 8704 +2700 8705 +3200 8705 +2400 8706 +3000 8706 +4200 8706 +2900 8707 +3400 8707 +4100 8707 +4400 8707 +6100 8707 +6500 8708 +6800 8708 +3300 8709 +3800 8709 +3600 8710 +4000 8710 +4400 8710 +6400 8710 +4300 8711 +4900 8711 +2500 8712 +3100 8712 +3600 8712 +7800 8712 +2900 8713 +4700 8713 +5400 8713 +1900 8715 +4300 8715 +5000 8715 +5300 8715 +8800 8715 +4500 8716 +5700 8716 +4400 8717 +4700 8717 +4700 8718 +7100 8718 +4400 8719 +4600 8719 +6900 8720 +9700 8720 +2400 8721 +4500 8721 +5400 8721 +6900 8721 +4400 8723 +7100 8723 +8300 8723 +9400 8723 +1400 8724 +2300 8724 +5400 8725 +500 8727 +1500 8727 +2100 8727 +5300 8727 +5500 8727 +100 8729 +3700 8729 +5700 8729 +8200 8729 +6300 8730 +7200 8730 +4800 8731 +6900 8731 +4600 8732 +5800 8732 +8000 8732 +4800 8733 +5400 8733 +3100 8734 +3500 8734 +5700 8734 +6900 8734 +8900 8734 +6900 8735 +7900 8735 +1600 8736 +2700 8736 +3600 8736 +6800 8736 +5200 8737 +5500 8737 +7700 8738 +1700 8739 +5800 8739 +3800 8740 +10000 8740 +4100 8787 +7100 8787 +5300 8800 +1800 8801 +1900 8802 +4000 8802 +1600 8803 +2200 8803 +900 8804 +2100 8804 +2600 8804 +2700 8805 +3200 8805 +2400 8806 +3000 8806 +4200 8806 +2900 8807 +3400 8807 +4100 8807 +4400 8807 +6100 8807 +6500 8808 +6800 8808 +3300 8809 +3800 8809 +3600 8810 +4000 8810 +4400 8810 +6400 8810 +4300 8811 +4900 8811 +2500 8812 +3100 8812 +3600 8812 +7800 8812 +2900 8813 +4700 8813 +5400 8813 +1900 8815 +4300 8815 +5000 8815 +5300 8815 +8800 8815 +4500 8816 +5700 8816 +4400 8817 +4700 8817 +4700 8818 +7100 8818 +4400 8819 +4600 8819 +6900 8820 +9700 8820 +2400 8821 +4500 8821 +5400 8821 +6900 8821 +4400 8823 +7100 8823 +8300 8823 +9400 8823 +1400 8824 +2300 8824 +5400 8825 +500 8827 +1500 8827 +2100 8827 +5300 8827 +5500 8827 +100 8829 +3700 8829 +5700 8829 +8200 8829 +6300 8830 +7200 8830 +4800 8831 +6900 8831 +4600 8832 +5800 8832 +8000 8832 +4800 8833 +5400 8833 +3100 8834 +3500 8834 +5700 8834 +6900 8834 +8900 8834 +6900 8835 +7900 8835 +1600 8836 +2700 8836 +3600 8836 +6800 8836 +5200 8837 +5500 8837 +7700 8838 +1700 8839 +5800 8839 +3800 8840 +10000 8840 +4100 8887 +7100 8887 +5300 8900 +1800 8901 +1900 8902 +4000 8902 +1600 8903 +2200 8903 +900 8904 +2100 8904 +2600 8904 +2700 8905 +3200 8905 +2400 8906 +3000 8906 +4200 8906 +2900 8907 +3400 8907 +4100 8907 +4400 8907 +6100 8907 +6500 8908 +6800 8908 +3300 8909 +3800 8909 +3600 8910 +4000 8910 +4400 8910 +6400 8910 +4300 8911 +4900 8911 +2500 8912 +3100 8912 +3600 8912 +7800 8912 +2900 8913 +4700 8913 +5400 8913 +1900 8915 +4300 8915 +5000 8915 +5300 8915 +8800 8915 +4500 8916 +5700 8916 +4400 8917 +4700 8917 +4700 8918 +7100 8918 +4400 8919 +4600 8919 +6900 8920 +9700 8920 +2400 8921 +4500 8921 +5400 8921 +6900 8921 +4400 8923 +7100 8923 +8300 8923 +9400 8923 +1400 8924 +2300 8924 +5400 8925 +500 8927 +1500 8927 +2100 8927 +5300 8927 +5500 8927 +100 8929 +3700 8929 +5700 8929 +8200 8929 +6300 8930 +7200 8930 +4800 8931 +6900 8931 +4600 8932 +5800 8932 +8000 8932 +4800 8933 +5400 8933 +3100 8934 +3500 8934 +5700 8934 +6900 8934 +8900 8934 +6900 8935 +7900 8935 +1600 8936 +2700 8936 +3600 8936 +6800 8936 +5200 8937 +5500 8937 +7700 8938 +1700 8939 +5800 8939 +3800 8940 +10000 8940 +4100 8987 +7100 8987 +5300 9000 +1800 9001 +1900 9002 +4000 9002 +1600 9003 +2200 9003 +900 9004 +2100 9004 +2600 9004 +2700 9005 +3200 9005 +2400 9006 +3000 9006 +4200 9006 +2900 9007 +3400 9007 +4100 9007 +4400 9007 +6100 9007 +6500 9008 +6800 9008 +3300 9009 +3800 9009 +3600 9010 +4000 9010 +4400 9010 +6400 9010 +4300 9011 +4900 9011 +2500 9012 +3100 9012 +3600 9012 +7800 9012 +2900 9013 +4700 9013 +5400 9013 +1900 9015 +4300 9015 +5000 9015 +5300 9015 +8800 9015 +4500 9016 +5700 9016 +4400 9017 +4700 9017 +4700 9018 +7100 9018 +4400 9019 +4600 9019 +6900 9020 +9700 9020 +2400 9021 +4500 9021 +5400 9021 +6900 9021 +4400 9023 +7100 9023 +8300 9023 +9400 9023 +1400 9024 +2300 9024 +5400 9025 +500 9027 +1500 9027 +2100 9027 +5300 9027 +5500 9027 +100 9029 +3700 9029 +5700 9029 +8200 9029 +6300 9030 +7200 9030 +4800 9031 +6900 9031 +4600 9032 +5800 9032 +8000 9032 +4800 9033 +5400 9033 +3100 9034 +3500 9034 +5700 9034 +6900 9034 +8900 9034 +6900 9035 +7900 9035 +1600 9036 +2700 9036 +3600 9036 +6800 9036 +5200 9037 +5500 9037 +7700 9038 +1700 9039 +5800 9039 +3800 9040 +10000 9040 +4100 9087 +7100 9087 +5300 9100 +1800 9101 +1900 9102 +4000 9102 +1600 9103 +2200 9103 +900 9104 +2100 9104 +2600 9104 +2700 9105 +3200 9105 +2400 9106 +3000 9106 +4200 9106 +2900 9107 +3400 9107 +4100 9107 +4400 9107 +6100 9107 +6500 9108 +6800 9108 +3300 9109 +3800 9109 +3600 9110 +4000 9110 +4400 9110 +6400 9110 +4300 9111 +4900 9111 +2500 9112 +3100 9112 +3600 9112 +7800 9112 +2900 9113 +4700 9113 +5400 9113 +1900 9115 +4300 9115 +5000 9115 +5300 9115 +8800 9115 +4500 9116 +5700 9116 +4400 9117 +4700 9117 +4700 9118 +7100 9118 +4400 9119 +4600 9119 +6900 9120 +9700 9120 +2400 9121 +4500 9121 +5400 9121 +6900 9121 +4400 9123 +7100 9123 +8300 9123 +9400 9123 +1400 9124 +2300 9124 +5400 9125 +500 9127 +1500 9127 +2100 9127 +5300 9127 +5500 9127 +100 9129 +3700 9129 +5700 9129 +8200 9129 +6300 9130 +7200 9130 +4800 9131 +6900 9131 +4600 9132 +5800 9132 +8000 9132 +4800 9133 +5400 9133 +3100 9134 +3500 9134 +5700 9134 +6900 9134 +8900 9134 +6900 9135 +7900 9135 +1600 9136 +2700 9136 +3600 9136 +6800 9136 +5200 9137 +5500 9137 +7700 9138 +1700 9139 +5800 9139 +3800 9140 +10000 9140 +4100 9187 +7100 9187 +5300 9200 +1800 9201 +1900 9202 +4000 9202 +1600 9203 +2200 9203 +900 9204 +2100 9204 +2600 9204 +2700 9205 +3200 9205 +2400 9206 +3000 9206 +4200 9206 +2900 9207 +3400 9207 +4100 9207 +4400 9207 +6100 9207 +6500 9208 +6800 9208 +3300 9209 +3800 9209 +3600 9210 +4000 9210 +4400 9210 +6400 9210 +4300 9211 +4900 9211 +2500 9212 +3100 9212 +3600 9212 +7800 9212 +2900 9213 +4700 9213 +5400 9213 +1900 9215 +4300 9215 +5000 9215 +5300 9215 +8800 9215 +4500 9216 +5700 9216 +4400 9217 +4700 9217 +4700 9218 +7100 9218 +4400 9219 +4600 9219 +6900 9220 +9700 9220 +2400 9221 +4500 9221 +5400 9221 +6900 9221 +4400 9223 +7100 9223 +8300 9223 +9400 9223 +1400 9224 +2300 9224 +5400 9225 +500 9227 +1500 9227 +2100 9227 +5300 9227 +5500 9227 +100 9229 +3700 9229 +5700 9229 +8200 9229 +6300 9230 +7200 9230 +4800 9231 +6900 9231 +4600 9232 +5800 9232 +8000 9232 +4800 9233 +5400 9233 +3100 9234 +3500 9234 +5700 9234 +6900 9234 +8900 9234 +6900 9235 +7900 9235 +1600 9236 +2700 9236 +3600 9236 +6800 9236 +5200 9237 +5500 9237 +7700 9238 +1700 9239 +5800 9239 +3800 9240 +10000 9240 +4100 9287 +7100 9287 +5300 9300 +1800 9301 +1900 9302 +4000 9302 +1600 9303 +2200 9303 +900 9304 +2100 9304 +2600 9304 +2700 9305 +3200 9305 +2400 9306 +3000 9306 +4200 9306 +2900 9307 +3400 9307 +4100 9307 +4400 9307 +6100 9307 +6500 9308 +6800 9308 +3300 9309 +3800 9309 +3600 9310 +4000 9310 +4400 9310 +6400 9310 +4300 9311 +4900 9311 +2500 9312 +3100 9312 +3600 9312 +7800 9312 +2900 9313 +4700 9313 +5400 9313 +1900 9315 +4300 9315 +5000 9315 +5300 9315 +8800 9315 +4500 9316 +5700 9316 +4400 9317 +4700 9317 +4700 9318 +7100 9318 +4400 9319 +4600 9319 +6900 9320 +9700 9320 +2400 9321 +4500 9321 +5400 9321 +6900 9321 +4400 9323 +7100 9323 +8300 9323 +9400 9323 +1400 9324 +2300 9324 +5400 9325 +500 9327 +1500 9327 +2100 9327 +5300 9327 +5500 9327 +100 9329 +3700 9329 +5700 9329 +8200 9329 +6300 9330 +7200 9330 +4800 9331 +6900 9331 +4600 9332 +5800 9332 +8000 9332 +4800 9333 +5400 9333 +3100 9334 +3500 9334 +5700 9334 +6900 9334 +8900 9334 +6900 9335 +7900 9335 +1600 9336 +2700 9336 +3600 9336 +6800 9336 +5200 9337 +5500 9337 +7700 9338 +1700 9339 +5800 9339 +3800 9340 +10000 9340 +4100 9387 +7100 9387 +5300 9400 +1800 9401 +1900 9402 +4000 9402 +1600 9403 +2200 9403 +900 9404 +2100 9404 +2600 9404 +2700 9405 +3200 9405 +2400 9406 +3000 9406 +4200 9406 +2900 9407 +3400 9407 +4100 9407 +4400 9407 +6100 9407 +6500 9408 +6800 9408 +3300 9409 +3800 9409 +3600 9410 +4000 9410 +4400 9410 +6400 9410 +4300 9411 +4900 9411 +2500 9412 +3100 9412 +3600 9412 +7800 9412 +2900 9413 +4700 9413 +5400 9413 +1900 9415 +4300 9415 +5000 9415 +5300 9415 +8800 9415 +4500 9416 +5700 9416 +4400 9417 +4700 9417 +4700 9418 +7100 9418 +4400 9419 +4600 9419 +6900 9420 +9700 9420 +2400 9421 +4500 9421 +5400 9421 +6900 9421 +4400 9423 +7100 9423 +8300 9423 +9400 9423 +1400 9424 +2300 9424 +5400 9425 +500 9427 +1500 9427 +2100 9427 +5300 9427 +5500 9427 +100 9429 +3700 9429 +5700 9429 +8200 9429 +6300 9430 +7200 9430 +4800 9431 +6900 9431 +4600 9432 +5800 9432 +8000 9432 +4800 9433 +5400 9433 +3100 9434 +3500 9434 +5700 9434 +6900 9434 +8900 9434 +6900 9435 +7900 9435 +1600 9436 +2700 9436 +3600 9436 +6800 9436 +5200 9437 +5500 9437 +7700 9438 +1700 9439 +5800 9439 +3800 9440 +10000 9440 +4100 9487 +7100 9487 +5300 9500 +1800 9501 +1900 9502 +4000 9502 +1600 9503 +2200 9503 +900 9504 +2100 9504 +2600 9504 +2700 9505 +3200 9505 +2400 9506 +3000 9506 +4200 9506 +2900 9507 +3400 9507 +4100 9507 +4400 9507 +6100 9507 +6500 9508 +6800 9508 +3300 9509 +3800 9509 +3600 9510 +4000 9510 +4400 9510 +6400 9510 +4300 9511 +4900 9511 +2500 9512 +3100 9512 +3600 9512 +7800 9512 +2900 9513 +4700 9513 +5400 9513 +1900 9515 +4300 9515 +5000 9515 +5300 9515 +8800 9515 +4500 9516 +5700 9516 +4400 9517 +4700 9517 +4700 9518 +7100 9518 +4400 9519 +4600 9519 +6900 9520 +9700 9520 +2400 9521 +4500 9521 +5400 9521 +6900 9521 +4400 9523 +7100 9523 +8300 9523 +9400 9523 +1400 9524 +2300 9524 +5400 9525 +500 9527 +1500 9527 +2100 9527 +5300 9527 +5500 9527 +100 9529 +3700 9529 +5700 9529 +8200 9529 +6300 9530 +7200 9530 +4800 9531 +6900 9531 +4600 9532 +5800 9532 +8000 9532 +4800 9533 +5400 9533 +3100 9534 +3500 9534 +5700 9534 +6900 9534 +8900 9534 +6900 9535 +7900 9535 +1600 9536 +2700 9536 +3600 9536 +6800 9536 +5200 9537 +5500 9537 +7700 9538 +1700 9539 +5800 9539 +3800 9540 +10000 9540 +4100 9587 +7100 9587 +5300 9600 +1800 9601 +1900 9602 +4000 9602 +1600 9603 +2200 9603 +900 9604 +2100 9604 +2600 9604 +2700 9605 +3200 9605 +2400 9606 +3000 9606 +4200 9606 +2900 9607 +3400 9607 +4100 9607 +4400 9607 +6100 9607 +6500 9608 +6800 9608 +3300 9609 +3800 9609 +3600 9610 +4000 9610 +4400 9610 +6400 9610 +4300 9611 +4900 9611 +2500 9612 +3100 9612 +3600 9612 +7800 9612 +2900 9613 +4700 9613 +5400 9613 +1900 9615 +4300 9615 +5000 9615 +5300 9615 +8800 9615 +4500 9616 +5700 9616 +4400 9617 +4700 9617 +4700 9618 +7100 9618 +4400 9619 +4600 9619 +6900 9620 +9700 9620 +2400 9621 +4500 9621 +5400 9621 +6900 9621 +4400 9623 +7100 9623 +8300 9623 +9400 9623 +1400 9624 +2300 9624 +5400 9625 +500 9627 +1500 9627 +2100 9627 +5300 9627 +5500 9627 +100 9629 +3700 9629 +5700 9629 +8200 9629 +6300 9630 +7200 9630 +4800 9631 +6900 9631 +4600 9632 +5800 9632 +8000 9632 +4800 9633 +5400 9633 +3100 9634 +3500 9634 +5700 9634 +6900 9634 +8900 9634 +6900 9635 +7900 9635 +1600 9636 +2700 9636 +3600 9636 +6800 9636 +5200 9637 +5500 9637 +7700 9638 +1700 9639 +5800 9639 +3800 9640 +10000 9640 +4100 9687 +7100 9687 +5300 9700 +1800 9701 +1900 9702 +4000 9702 +1600 9703 +2200 9703 +900 9704 +2100 9704 +2600 9704 +2700 9705 +3200 9705 +2400 9706 +3000 9706 +4200 9706 +2900 9707 +3400 9707 +4100 9707 +4400 9707 +6100 9707 +6500 9708 +6800 9708 +3300 9709 +3800 9709 +3600 9710 +4000 9710 +4400 9710 +6400 9710 +4300 9711 +4900 9711 +2500 9712 +3100 9712 +3600 9712 +7800 9712 +2900 9713 +4700 9713 +5400 9713 +1900 9715 +4300 9715 +5000 9715 +5300 9715 +8800 9715 +4500 9716 +5700 9716 +4400 9717 +4700 9717 +4700 9718 +7100 9718 +4400 9719 +4600 9719 +6900 9720 +9700 9720 +2400 9721 +4500 9721 +5400 9721 +6900 9721 +4400 9723 +7100 9723 +8300 9723 +9400 9723 +1400 9724 +2300 9724 +5400 9725 +500 9727 +1500 9727 +2100 9727 +5300 9727 +5500 9727 +100 9729 +3700 9729 +5700 9729 +8200 9729 +6300 9730 +7200 9730 +4800 9731 +6900 9731 +4600 9732 +5800 9732 +8000 9732 +4800 9733 +5400 9733 +3100 9734 +3500 9734 +5700 9734 +6900 9734 +8900 9734 +6900 9735 +7900 9735 +1600 9736 +2700 9736 +3600 9736 +6800 9736 +5200 9737 +5500 9737 +7700 9738 +1700 9739 +5800 9739 +3800 9740 +10000 9740 +4100 9787 +7100 9787 +5300 9800 +1800 9801 +1900 9802 +4000 9802 +1600 9803 +2200 9803 +900 9804 +2100 9804 +2600 9804 +2700 9805 +3200 9805 +2400 9806 +3000 9806 +4200 9806 +2900 9807 +3400 9807 +4100 9807 +4400 9807 +6100 9807 +6500 9808 +6800 9808 +3300 9809 +3800 9809 +3600 9810 +4000 9810 +4400 9810 +6400 9810 +4300 9811 +4900 9811 +2500 9812 +3100 9812 +3600 9812 +7800 9812 +2900 9813 +4700 9813 +5400 9813 +1900 9815 +4300 9815 +5000 9815 +5300 9815 +8800 9815 +4500 9816 +5700 9816 +4400 9817 +4700 9817 +4700 9818 +7100 9818 +4400 9819 +4600 9819 +6900 9820 +9700 9820 +2400 9821 +4500 9821 +5400 9821 +6900 9821 +4400 9823 +7100 9823 +8300 9823 +9400 9823 +1400 9824 +2300 9824 +5400 9825 +500 9827 +1500 9827 +2100 9827 +5300 9827 +5500 9827 +100 9829 +3700 9829 +5700 9829 +8200 9829 +6300 9830 +7200 9830 +4800 9831 +6900 9831 +4600 9832 +5800 9832 +8000 9832 +4800 9833 +5400 9833 +3100 9834 +3500 9834 +5700 9834 +6900 9834 +8900 9834 +6900 9835 +7900 9835 +1600 9836 +2700 9836 +3600 9836 +6800 9836 +5200 9837 +5500 9837 +7700 9838 +1700 9839 +5800 9839 +3800 9840 +10000 9840 +4100 9887 +7100 9887 +5300 9900 +1800 9901 +1900 9902 +4000 9902 +1600 9903 +2200 9903 +900 9904 +2100 9904 +2600 9904 +2700 9905 +3200 9905 +2400 9906 +3000 9906 +4200 9906 +2900 9907 +3400 9907 +4100 9907 +4400 9907 +6100 9907 +6500 9908 +6800 9908 +3300 9909 +3800 9909 +3600 9910 +4000 9910 +4400 9910 +6400 9910 +4300 9911 +4900 9911 +2500 9912 +3100 9912 +3600 9912 +7800 9912 +2900 9913 +4700 9913 +5400 9913 +1900 9915 +4300 9915 +5000 9915 +5300 9915 +8800 9915 +4500 9916 +5700 9916 +4400 9917 +4700 9917 +4700 9918 +7100 9918 +4400 9919 +4600 9919 +6900 9920 +9700 9920 +2400 9921 +4500 9921 +5400 9921 +6900 9921 +4400 9923 +7100 9923 +8300 9923 +9400 9923 +1400 9924 +2300 9924 +5400 9925 +500 9927 +1500 9927 +2100 9927 +5300 9927 +5500 9927 +100 9929 +3700 9929 +5700 9929 +8200 9929 +6300 9930 +7200 9930 +4800 9931 +6900 9931 +4600 9932 +5800 9932 +8000 9932 +4800 9933 +5400 9933 +3100 9934 +3500 9934 +5700 9934 +6900 9934 +8900 9934 +6900 9935 +7900 9935 +1600 9936 +2700 9936 +3600 9936 +6800 9936 +5200 9937 +5500 9937 +7700 9938 +1700 9939 +5800 9939 +3800 9940 +10000 9940 +4100 9987 +7100 9987 +5300 10000 diff --git a/2018/republic/10-12_d2/sarpe/tests/output.0 b/2018/republic/10-12_d2/sarpe/tests/output.0 new file mode 100644 index 0000000..e30739c --- /dev/null +++ b/2018/republic/10-12_d2/sarpe/tests/output.0 @@ -0,0 +1 @@ +7 diff --git a/2018/republic/10-12_d2/sarpe/tests/output.1 b/2018/republic/10-12_d2/sarpe/tests/output.1 new file mode 100644 index 0000000..9c4eee9 --- /dev/null +++ b/2018/republic/10-12_d2/sarpe/tests/output.1 @@ -0,0 +1 @@ +30019 diff --git a/2018/republic/10-12_d2/sarpe/tests/output.2 b/2018/republic/10-12_d2/sarpe/tests/output.2 new file mode 100644 index 0000000..2e3b5f6 --- /dev/null +++ b/2018/republic/10-12_d2/sarpe/tests/output.2 @@ -0,0 +1 @@ +25 diff --git a/2018/republic/10-12_d2/sarpe/tests/output.3 b/2018/republic/10-12_d2/sarpe/tests/output.3 new file mode 100644 index 0000000..e8ae876 --- /dev/null +++ b/2018/republic/10-12_d2/sarpe/tests/output.3 @@ -0,0 +1 @@ +151 diff --git a/2018/republic/10-12_d2/sarpe/tests/output.4 b/2018/republic/10-12_d2/sarpe/tests/output.4 new file mode 100644 index 0000000..bb3ef5f --- /dev/null +++ b/2018/republic/10-12_d2/sarpe/tests/output.4 @@ -0,0 +1 @@ +311 diff --git a/2018/republic/10-12_d2/sarpe/tests/output.5 b/2018/republic/10-12_d2/sarpe/tests/output.5 new file mode 100644 index 0000000..e99e029 --- /dev/null +++ b/2018/republic/10-12_d2/sarpe/tests/output.5 @@ -0,0 +1 @@ +3807 diff --git a/2018/republic/10-12_d2/sarpe/tests/output.6 b/2018/republic/10-12_d2/sarpe/tests/output.6 new file mode 100644 index 0000000..e49948c --- /dev/null +++ b/2018/republic/10-12_d2/sarpe/tests/output.6 @@ -0,0 +1 @@ +628 diff --git a/2018/republic/10-12_d2/sarpe/tests/output.7 b/2018/republic/10-12_d2/sarpe/tests/output.7 new file mode 100644 index 0000000..341687c --- /dev/null +++ b/2018/republic/10-12_d2/sarpe/tests/output.7 @@ -0,0 +1 @@ +116799 diff --git a/2018/republic/10-12_d2/sarpe/tests/output.8 b/2018/republic/10-12_d2/sarpe/tests/output.8 new file mode 100644 index 0000000..76bc6a6 --- /dev/null +++ b/2018/republic/10-12_d2/sarpe/tests/output.8 @@ -0,0 +1 @@ +14687398 diff --git a/2018/republic/10-12_d2/sarpe/tests/output.9 b/2018/republic/10-12_d2/sarpe/tests/output.9 new file mode 100644 index 0000000..ec7213c --- /dev/null +++ b/2018/republic/10-12_d2/sarpe/tests/output.9 @@ -0,0 +1 @@ +15568298 diff --git a/2018/republic/10-12_d2/senzori/tests/input.01 b/2018/republic/10-12_d2/senzori/tests/input.01 new file mode 100644 index 0000000..db27ceb --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/input.01 @@ -0,0 +1,22 @@ +10 4 3 +6 +3 16 3 +8 15 4 +14 14 3 +6 10 3 +15 8 5 +5 5 4 +11 +2 18 +8 18 +15 16 +6 14 +7 12 +17 11 +12 9 +6 8 +3 6 +18 6 +13 4 +1 +4 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/input.02 b/2018/republic/10-12_d2/senzori/tests/input.02 new file mode 100644 index 0000000..73ad640 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/input.02 @@ -0,0 +1,22 @@ +10 4 3 +6 +3 16 3 +8 15 4 +14 14 3 +6 10 3 +15 8 5 +5 5 4 +11 +2 18 +8 18 +15 16 +6 14 +7 12 +17 11 +12 9 +6 8 +3 6 +18 6 +13 4 +1 +3 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/input.03 b/2018/republic/10-12_d2/senzori/tests/input.03 new file mode 100644 index 0000000..cde85ff --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/input.03 @@ -0,0 +1,65 @@ +576 104 32 +20 +479 104 97 +518 228 43 +347 152 99 +191 171 90 +618 125 31 +68 80 87 +620 215 64 +556 166 49 +115 139 41 +168 59 56 +687 51 96 +266 195 59 +175 309 77 +683 160 36 +103 344 79 +213 450 85 +245 538 93 +335 578 58 +107 473 76 +155 412 52 +40 +569 241 +67 374 +220 262 +646 261 +233 457 +72 422 +83 296 +330 205 +553 115 +221 362 +334 100 +134 261 +542 231 +376 188 +771 60 +239 224 +501 114 +293 467 +60 149 +154 421 +352 172 +68 444 +288 244 +580 130 +95 532 +287 188 +136 204 +501 239 +178 536 +552 135 +477 121 +105 334 +317 547 +267 479 +159 94 +111 165 +136 430 +254 550 +504 51 +689 109 +10 +9 19 11 3 4 14 13 18 15 7 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/input.04 b/2018/republic/10-12_d2/senzori/tests/input.04 new file mode 100644 index 0000000..57c0410 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/input.04 @@ -0,0 +1,65 @@ +74 170 46 +20 +120 147 55 +113 84 54 +235 122 75 +233 185 31 +327 227 78 +341 323 36 +435 261 74 +535 359 88 +425 441 90 +618 381 77 +685 313 75 +494 552 75 +763 345 92 +452 341 51 +720 457 84 +527 219 96 +300 370 62 +705 221 48 +117 225 59 +190 331 72 +40 +367 183 +451 195 +783 461 +418 284 +739 375 +684 215 +500 422 +513 536 +254 68 +548 145 +480 499 +509 143 +92 72 +446 510 +631 358 +689 281 +557 569 +136 277 +320 225 +756 346 +694 316 +65 165 +418 493 +766 447 +91 50 +409 415 +615 421 +256 405 +390 504 +425 223 +442 561 +401 234 +552 296 +92 216 +588 422 +237 208 +516 574 +534 344 +489 479 +210 85 +10 +13 9 12 20 4 8 5 11 17 14 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/input.05 b/2018/republic/10-12_d2/senzori/tests/input.05 new file mode 100644 index 0000000..d115864 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/input.05 @@ -0,0 +1,105 @@ +447 303 42 +40 +394 268 32 +513 390 82 +508 280 54 +535 494 92 +660 498 68 +611 356 80 +622 592 68 +715 565 61 +417 441 62 +373 159 99 +742 408 92 +499 635 87 +609 253 79 +237 188 84 +484 101 56 +372 676 95 +743 265 63 +100 234 95 +538 189 68 +199 336 56 +174 100 59 +259 277 99 +834 235 81 +341 583 69 +258 489 70 +655 417 42 +170 586 73 +921 146 86 +971 60 60 +796 585 30 +873 577 65 +828 68 74 +107 449 87 +1072 108 97 +89 691 70 +765 87 39 +637 676 34 +59 76 89 +562 302 31 +885 398 93 +60 +452 630 +656 410 +318 637 +453 371 +490 325 +115 576 +461 321 +257 550 +497 658 +687 358 +644 336 +102 700 +161 487 +813 246 +1149 120 +840 189 +431 121 +665 252 +208 610 +1012 164 +438 730 +502 606 +741 264 +167 95 +387 702 +627 314 +622 360 +827 421 +450 108 +727 597 +128 123 +101 318 +849 279 +64 112 +673 453 +869 217 +720 399 +441 467 +125 206 +472 358 +526 460 +874 243 +50 64 +782 279 +651 530 +149 660 +473 697 +149 326 +516 507 +632 608 +139 719 +625 449 +330 726 +784 485 +434 167 +628 669 +259 494 +579 262 +947 104 +507 480 +20 +27 30 9 32 21 14 33 31 40 12 3 10 23 15 38 6 28 4 25 17 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/input.06 b/2018/republic/10-12_d2/senzori/tests/input.06 new file mode 100644 index 0000000..bea65d6 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/input.06 @@ -0,0 +1,185 @@ +581 703 69 +80 +518 688 43 +596 613 65 +687 721 69 +703 653 66 +723 812 84 +625 795 93 +652 620 33 +487 520 90 +774 890 36 +868 860 71 +530 811 41 +617 426 97 +391 528 62 +703 534 91 +484 752 97 +406 446 31 +440 867 61 +547 359 92 +706 301 75 +930 901 67 +390 717 35 +752 437 44 +373 859 34 +579 508 33 +286 800 83 +793 744 92 +826 940 81 +741 381 45 +674 187 81 +407 971 98 +856 448 65 +778 82 76 +610 191 47 +937 835 47 +499 605 56 +449 655 44 +776 253 49 +453 610 30 +1023 923 82 +501 235 83 +634 297 42 +541 860 41 +317 927 90 +1112 883 65 +916 435 55 +220 770 56 +224 845 66 +988 461 91 +1060 485 51 +914 581 71 +494 961 43 +582 264 62 +546 900 33 +872 347 95 +631 887 83 +996 650 90 +907 750 93 +791 618 48 +918 121 99 +385 386 77 +242 673 58 +299 359 64 +1089 432 42 +667 103 39 +569 139 42 +1059 50 62 +217 478 85 +1150 331 91 +209 579 62 +1094 620 66 +341 698 53 +396 176 56 +988 174 72 +1045 558 39 +478 825 43 +137 622 64 +1142 489 73 +775 541 32 +1085 969 35 +542 579 43 +100 +586 692 +332 827 +473 952 +401 132 +775 672 +793 311 +999 154 +223 730 +451 846 +731 415 +396 488 +574 241 +1143 842 +548 326 +991 421 +881 159 +576 895 +218 606 +513 277 +750 865 +1014 635 +933 743 +462 821 +1089 841 +766 456 +850 810 +942 828 +1021 606 +641 132 +909 738 +274 368 +906 866 +242 818 +1007 939 +836 874 +1006 848 +678 362 +975 74 +350 498 +323 696 +754 576 +994 681 +868 570 +503 629 +407 423 +1069 578 +594 862 +649 731 +150 502 +277 312 +699 680 +412 988 +199 644 +960 657 +237 842 +954 102 +424 953 +666 955 +216 546 +351 373 +506 352 +580 726 +698 785 +385 208 +886 890 +817 428 +1134 622 +488 589 +575 426 +657 436 +793 385 +556 117 +675 637 +1024 860 +486 475 +897 420 +730 504 +503 726 +856 441 +781 144 +1128 352 +325 347 +1142 885 +1041 849 +844 108 +900 114 +1024 174 +870 612 +1084 344 +482 816 +750 97 +591 608 +563 766 +1080 514 +714 274 +646 961 +1112 880 +789 546 +766 299 +504 518 +40 +17 52 76 35 57 73 34 23 70 13 8 79 77 11 16 56 43 46 54 64 71 59 33 78 58 67 65 40 48 68 80 26 31 53 69 39 47 55 66 44 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/input.07 b/2018/republic/10-12_d2/senzori/tests/input.07 new file mode 100644 index 0000000..badabe5 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/input.07 @@ -0,0 +1,110 @@ +972 816 55 +80 +920 876 98 +756 930 89 +846 802 85 +1006 742 93 +1045 834 51 +956 671 64 +913 614 71 +598 917 97 +807 703 39 +1011 617 74 +1026 977 76 +832 978 73 +555 792 73 +793 580 87 +478 746 66 +503 870 97 +721 527 83 +1126 869 96 +902 525 32 +829 454 67 +754 648 43 +730 709 78 +623 562 65 +411 685 83 +522 512 77 +875 355 72 +910 431 55 +1092 604 89 +598 417 78 +418 753 39 +950 263 93 +676 437 33 +1183 966 65 +697 818 52 +1157 747 83 +461 449 46 +854 711 50 +265 760 95 +988 389 72 +1096 461 60 +776 277 86 +243 840 63 +641 693 88 +310 939 65 +858 269 59 +381 447 69 +720 452 56 +981 547 62 +1024 306 46 +749 128 73 +179 673 39 +570 623 86 +668 595 32 +761 810 39 +713 185 51 +385 352 77 +1008 172 79 +152 753 90 +614 296 91 +801 749 32 +365 538 52 +484 227 96 +1137 121 96 +604 188 86 +916 95 43 +72 816 30 +473 982 52 +408 923 84 +1089 773 42 +831 528 37 +317 694 63 +387 160 49 +675 156 30 +312 380 35 +930 979 97 +798 206 33 +347 876 31 +525 378 82 +313 187 72 +69 626 75 +25 +1053 791 +430 728 +1119 912 +664 383 +582 644 +479 325 +465 308 +567 312 +253 772 +217 784 +360 399 +579 403 +1146 183 +1103 436 +393 980 +1038 869 +1042 831 +886 884 +638 954 +342 577 +843 496 +498 355 +763 918 +471 945 +369 183 +40 +24 66 49 16 39 75 21 44 46 48 42 29 74 63 11 4 47 9 55 10 64 50 23 67 35 72 41 2 18 32 56 65 52 78 33 54 6 15 58 79 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/input.08 b/2018/republic/10-12_d2/senzori/tests/input.08 new file mode 100644 index 0000000..ce0f4b7 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/input.08 @@ -0,0 +1,135 @@ +1035 157 46 +80 +1116 127 50 +1015 57 62 +1179 188 84 +1009 257 63 +1045 216 45 +1101 254 59 +1109 388 84 +974 141 63 +923 50 91 +765 125 94 +1021 371 84 +950 466 94 +874 133 68 +772 188 31 +940 318 64 +1129 309 62 +886 400 77 +886 549 76 +770 252 74 +779 419 36 +645 242 95 +686 56 91 +635 411 79 +641 314 35 +542 369 65 +606 476 43 +562 219 42 +497 477 98 +970 635 48 +1054 690 98 +1075 840 87 +639 527 37 +741 367 83 +444 158 94 +853 263 59 +1172 852 61 +835 693 91 +381 211 57 +828 469 45 +388 65 68 +674 130 55 +402 450 87 +297 461 56 +259 507 39 +905 674 34 +1042 527 53 +1099 985 93 +1189 469 56 +1188 744 52 +460 261 37 +911 810 70 +180 525 74 +502 573 42 +548 595 40 +966 581 33 +516 99 41 +210 449 52 +103 625 89 +292 84 49 +270 278 95 +859 73 38 +123 777 79 +64 834 57 +1039 608 67 +159 857 82 +763 745 48 +905 933 60 +275 911 98 +484 357 32 +1003 908 40 +1184 970 41 +852 942 31 +102 210 93 +367 276 55 +111 465 79 +346 571 77 +808 898 38 +722 683 76 +865 881 31 +171 369 61 +50 +587 204 +330 921 +135 265 +711 307 +880 976 +681 409 +229 961 +593 394 +1077 672 +864 615 +136 204 +537 332 +574 262 +631 159 +257 267 +124 508 +1172 763 +1132 398 +165 178 +905 829 +359 572 +856 807 +1166 416 +1138 855 +940 280 +781 183 +863 726 +676 643 +938 311 +688 136 +1031 968 +406 150 +621 242 +113 843 +772 224 +820 271 +227 268 +56 277 +291 484 +677 111 +383 528 +810 446 +736 354 +944 973 +987 125 +1098 627 +673 730 +556 550 +384 584 +1068 206 +40 +74 42 36 25 46 48 18 21 28 23 62 10 59 22 41 57 39 78 4 58 9 38 75 52 79 33 45 43 5 54 65 76 67 49 69 47 19 17 53 35 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/input.09 b/2018/republic/10-12_d2/senzori/tests/input.09 new file mode 100644 index 0000000..1c58d1c --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/input.09 @@ -0,0 +1,255 @@ +699 191 73 +150 +750 110 99 +657 65 37 +596 282 87 +830 186 32 +532 257 46 +568 438 77 +559 168 55 +484 436 76 +765 241 44 +587 367 42 +667 413 54 +480 523 86 +641 148 33 +367 572 41 +430 559 36 +798 399 94 +692 53 30 +865 133 57 +797 290 57 +873 291 45 +628 469 51 +360 523 51 +967 180 72 +520 369 61 +360 467 57 +314 587 56 +245 521 43 +918 334 42 +252 580 67 +912 445 45 +688 273 67 +576 600 58 +965 388 98 +891 66 42 +945 60 52 +1069 521 84 +1004 298 41 +799 495 40 +1062 380 65 +256 677 83 +449 345 74 +467 211 43 +678 665 94 +913 107 30 +400 397 38 +1090 611 63 +412 196 31 +309 327 94 +750 482 56 +204 403 65 +349 678 51 +171 518 84 +1120 125 96 +1106 745 86 +640 200 34 +1078 301 95 +694 351 52 +726 813 86 +1180 670 51 +106 602 95 +143 693 38 +212 183 82 +74 438 51 +1041 149 33 +289 793 71 +227 738 43 +404 860 84 +77 721 56 +166 753 36 +758 613 42 +301 133 91 +588 849 89 +963 101 30 +130 188 58 +99 496 34 +1143 485 69 +815 921 97 +906 532 83 +940 260 85 +288 453 56 +1032 860 59 +1121 217 46 +930 859 83 +200 886 75 +452 641 77 +1180 268 37 +597 932 39 +288 264 34 +54 180 58 +404 939 43 +775 682 59 +248 266 43 +660 896 70 +382 66 69 +65 363 81 +297 910 88 +91 60 93 +199 607 34 +253 985 38 +961 639 59 +495 104 99 +1028 203 35 +672 537 50 +1034 700 36 +517 719 99 +94 850 64 +942 926 41 +1156 375 30 +787 200 36 +880 979 41 +1117 904 58 +169 300 56 +1171 863 44 +917 769 59 +842 739 53 +111 979 97 +611 53 45 +1176 207 55 +1086 964 61 +505 969 81 +1017 934 65 +1006 60 67 +869 357 41 +107 265 43 +502 845 30 +407 437 43 +213 102 32 +714 934 38 +51 785 32 +1035 797 56 +142 416 42 +229 352 42 +75 535 50 +1188 133 39 +810 789 37 +347 252 52 +282 203 50 +636 977 43 +861 655 41 +1176 572 99 +431 767 43 +897 387 34 +381 314 43 +970 481 64 +933 705 68 +501 320 37 +875 234 34 +651 733 37 +437 981 35 +1067 179 38 +100 +174 984 +391 184 +921 226 +821 834 +382 617 +217 165 +778 873 +740 425 +1091 499 +772 226 +264 741 +86 207 +426 455 +868 561 +320 313 +615 672 +717 185 +839 428 +97 611 +752 907 +451 237 +269 510 +136 643 +461 155 +637 886 +50 296 +478 528 +624 858 +1060 617 +1059 387 +483 936 +746 530 +547 84 +701 722 +487 832 +322 263 +583 620 +1098 411 +217 703 +213 454 +80 550 +156 760 +79 718 +983 373 +1103 433 +1051 580 +271 354 +665 801 +426 76 +1051 560 +758 669 +204 312 +550 986 +956 161 +602 899 +1125 816 +780 417 +447 899 +1012 376 +679 504 +1080 220 +202 394 +706 98 +681 823 +923 706 +140 323 +484 730 +174 503 +491 508 +327 793 +1039 843 +908 544 +766 51 +50 765 +827 353 +359 604 +1004 228 +1175 861 +123 661 +990 163 +294 162 +879 110 +1119 372 +114 374 +259 717 +815 144 +108 275 +130 123 +290 799 +791 368 +169 407 +877 670 +513 751 +767 79 +288 868 +960 579 +104 227 +354 921 +513 169 +975 825 +100 +88 113 125 90 13 69 102 140 63 93 107 85 61 141 67 97 134 28 77 6 17 120 106 79 44 60 124 34 86 136 100 138 7 144 114 31 131 24 66 73 41 109 149 146 9 132 150 95 59 12 108 110 57 82 74 49 43 8 104 21 148 87 55 91 94 81 98 46 64 72 142 35 78 3 30 37 122 51 40 42 2 84 130 123 19 18 15 128 48 27 38 16 147 89 45 14 33 127 119 121 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/input.10 b/2018/republic/10-12_d2/senzori/tests/input.10 new file mode 100644 index 0000000..23a13bb --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/input.10 @@ -0,0 +1,508 @@ +432 54 26 +250 +483 67 31 +433 113 45 +420 175 49 +387 66 29 +367 201 24 +523 54 42 +357 105 41 +341 153 22 +314 179 36 +312 65 48 +271 162 33 +583 83 27 +640 115 44 +329 231 31 +673 165 43 +563 121 33 +281 247 48 +450 243 35 +692 52 43 +419 266 25 +293 295 48 +625 213 41 +482 256 34 +664 210 26 +366 293 47 +221 178 40 +302 128 42 +747 81 44 +666 278 40 +681 114 32 +809 116 43 +221 122 30 +185 135 36 +629 156 27 +753 138 26 +741 115 20 +174 172 26 +867 138 38 +874 190 33 +706 194 34 +572 199 28 +136 210 30 +169 226 40 +153 296 45 +942 120 43 +1013 112 33 +901 71 38 +1038 156 21 +596 141 27 +985 153 24 +465 194 34 +1030 210 43 +230 336 44 +376 342 25 +107 183 49 +513 168 35 +721 321 40 +615 302 30 +668 337 34 +67 217 25 +1066 202 23 +633 382 28 +90 263 41 +179 319 24 +1045 95 22 +312 372 44 +202 383 35 +145 403 33 +789 168 37 +408 296 36 +606 60 33 +630 272 21 +146 116 47 +275 429 41 +507 117 40 +776 227 39 +1055 59 22 +501 301 21 +239 481 30 +62 328 41 +597 266 44 +432 320 20 +644 63 29 +455 372 44 +791 279 36 +991 265 29 +118 377 24 +865 293 44 +61 154 49 +517 334 41 +76 103 41 +608 411 22 +95 61 48 +555 333 20 +271 497 22 +914 214 20 +375 153 37 +1020 320 44 +866 68 23 +1063 130 35 +104 401 27 +196 282 21 +230 64 37 +808 62 44 +326 410 33 +959 54 38 +999 355 35 +947 343 30 +115 429 32 +904 361 25 +963 391 33 +397 237 21 +604 100 21 +516 220 28 +1007 69 47 +847 248 20 +734 262 29 +992 454 46 +728 372 22 +1060 256 33 +926 162 27 +176 67 22 +502 365 23 +225 531 30 +393 419 46 +174 521 30 +544 308 26 +443 301 21 +642 355 25 +689 363 28 +731 155 29 +733 224 20 +887 254 30 +574 414 28 +242 391 44 +1030 492 45 +928 478 41 +1090 162 46 +918 290 27 +967 187 38 +1052 381 33 +119 144 20 +1149 137 37 +929 528 31 +476 319 40 +1068 420 30 +1091 217 31 +52 281 24 +892 516 40 +1083 456 25 +1133 408 46 +550 277 34 +1101 479 30 +1181 106 42 +836 215 41 +414 450 21 +906 387 21 +1006 389 29 +540 401 29 +506 86 22 +1081 303 29 +880 105 21 +295 341 21 +1109 101 43 +652 240 33 +806 331 33 +118 502 41 +640 445 37 +52 247 28 +191 569 26 +166 582 30 +839 526 41 +834 358 35 +95 530 24 +952 274 38 +1189 420 35 +775 484 47 +926 196 20 +1057 553 48 +245 592 38 +393 493 45 +127 639 42 +1121 544 41 +1031 430 43 +969 237 34 +460 159 28 +156 677 34 +1154 195 48 +711 100 30 +1045 286 27 +549 79 28 +807 513 20 +809 408 49 +149 603 24 +299 636 44 +1130 592 27 +95 302 27 +608 180 20 +210 430 21 +563 469 36 +730 539 37 +62 369 33 +1146 472 33 +278 534 30 +691 579 40 +479 428 41 +341 598 22 +794 583 46 +362 635 22 +753 591 25 +362 518 27 +363 452 32 +728 457 43 +309 694 47 +456 461 33 +211 631 45 +589 519 33 +103 564 33 +525 483 37 +1081 358 38 +543 240 36 +1014 550 36 +377 584 25 +254 654 36 +594 443 34 +486 489 28 +308 593 31 +68 445 38 +850 568 25 +860 613 24 +1167 618 24 +125 719 41 +837 318 31 +1099 586 34 +570 562 43 +840 472 21 +691 642 35 +977 117 25 +937 584 40 +218 678 20 +637 492 40 +441 80 21 +721 614 20 +509 585 42 +339 741 42 +1169 269 43 +552 630 34 +930 426 37 +410 765 40 +1158 659 24 +253 +625 392 +596 284 +805 208 +523 595 +338 596 +578 495 +353 493 +222 304 +627 494 +119 496 +909 125 +804 556 +788 370 +774 262 +868 106 +247 384 +977 446 +629 223 +513 234 +792 329 +435 114 +82 504 +1163 605 +476 203 +261 561 +912 466 +482 485 +1115 462 +243 56 +392 456 +797 61 +735 114 +973 278 +62 151 +666 508 +359 282 +834 581 +675 555 +1171 146 +1138 109 +1182 217 +223 147 +213 431 +298 254 +138 256 +537 488 +799 413 +888 185 +1186 121 +1139 461 +442 760 +599 439 +342 98 +912 404 +174 565 +553 57 +644 144 +302 51 +554 609 +395 299 +491 601 +987 75 +59 471 +91 401 +464 135 +317 408 +269 289 +1038 161 +758 569 +718 514 +94 289 +1101 149 +748 514 +982 245 +136 279 +421 750 +404 494 +1073 472 +254 329 +413 396 +82 172 +911 357 +735 594 +115 557 +899 206 +306 746 +316 727 +839 381 +409 419 +167 670 +527 362 +965 95 +163 595 +705 217 +138 51 +420 465 +853 612 +232 543 +366 644 +175 224 +154 704 +125 655 +1106 352 +316 326 +1087 91 +185 689 +565 201 +58 350 +639 336 +1091 311 +377 256 +747 134 +1104 384 +105 152 +712 376 +705 588 +874 212 +1174 70 +1112 186 +1074 352 +1117 113 +1076 433 +69 388 +945 261 +322 279 +386 770 +716 463 +264 510 +131 157 +772 488 +365 741 +289 423 +1019 93 +202 647 +544 457 +199 314 +1020 345 +532 407 +879 493 +752 265 +349 224 +333 618 +634 118 +211 400 +865 135 +115 239 +783 218 +908 508 +1004 297 +120 439 +80 579 +273 665 +877 292 +828 187 +996 413 +840 107 +463 74 +444 193 +548 296 +567 514 +591 473 +699 536 +528 277 +892 389 +809 373 +509 460 +1140 160 +517 59 +732 189 +621 179 +1020 222 +248 81 +424 97 +76 85 +381 229 +1057 565 +779 140 +456 170 +130 751 +400 322 +224 86 +949 169 +1077 524 +394 185 +933 449 +630 80 +76 203 +890 103 +858 199 +1128 485 +406 239 +494 509 +244 204 +376 323 +782 552 +366 111 +339 737 +1061 227 +459 381 +485 392 +512 493 +831 283 +837 310 +212 546 +150 322 +1078 210 +1181 407 +861 305 +96 345 +59 317 +994 370 +107 701 +165 284 +218 66 +804 270 +294 659 +1084 577 +78 459 +880 317 +1128 607 +413 174 +721 417 +126 114 +874 261 +301 128 +448 423 +1164 112 +335 646 +68 280 +1041 595 +155 505 +204 671 +1147 229 +599 547 +123 617 +1044 395 +344 147 +679 672 +530 513 +627 518 +672 225 +1051 133 +154 644 +950 134 +468 270 +917 286 +314 694 +199 342 +75 236 +828 139 +1043 529 +192 163 +484 360 +163 +46 231 175 78 141 143 152 200 196 120 82 112 136 113 114 24 164 75 140 7 58 163 247 166 11 151 250 20 142 34 17 49 52 103 222 238 178 237 32 171 121 8 182 145 169 9 89 207 70 179 162 131 242 153 56 97 101 80 66 62 13 53 218 87 212 28 116 47 4 220 106 134 186 68 77 189 61 233 174 26 57 227 202 71 42 138 117 85 158 206 122 79 245 60 205 129 23 172 35 5 154 90 188 213 6 104 22 193 65 240 100 30 73 194 225 228 226 41 38 39 214 219 239 59 96 14 139 244 98 173 51 50 216 115 211 246 124 221 217 159 243 215 2 25 36 201 88 63 157 55 125 99 109 168 147 105 177 45 150 18 43 184 181 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/input.11 b/2018/republic/10-12_d2/senzori/tests/input.11 new file mode 100644 index 0000000..c781486 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/input.11 @@ -0,0 +1,658 @@ +323 756 32 +400 +355 773 34 +274 792 46 +309 796 22 +193 788 42 +146 802 39 +168 868 33 +391 750 23 +244 746 31 +92 799 49 +417 714 40 +211 733 39 +340 828 45 +248 669 39 +189 909 38 +360 866 33 +194 639 31 +262 843 33 +286 897 33 +190 954 33 +294 610 38 +322 910 39 +330 552 48 +255 563 35 +171 705 29 +369 608 36 +108 718 36 +239 891 38 +274 494 37 +362 911 36 +377 656 34 +342 682 48 +134 864 29 +436 757 25 +275 690 23 +212 683 25 +118 658 46 +220 515 37 +256 633 21 +148 1008 41 +172 745 40 +493 757 42 +355 484 49 +180 452 41 +409 478 36 +465 654 41 +428 521 33 +103 869 23 +407 878 26 +126 833 20 +512 666 40 +283 946 23 +241 607 23 +223 845 26 +59 634 37 +560 748 49 +86 978 46 +459 710 21 +493 709 33 +124 779 20 +97 1053 49 +141 513 48 +105 580 31 +115 1107 38 +211 429 22 +53 700 37 +145 596 31 +613 814 49 +87 621 20 +173 1132 29 +137 1078 33 +450 587 44 +174 600 22 +332 968 47 +462 825 49 +269 428 32 +87 1169 34 +230 939 32 +296 818 20 +131 431 40 +378 571 33 +431 673 31 +524 837 37 +56 1117 26 +139 464 23 +457 884 29 +454 433 36 +197 1035 30 +137 949 47 +445 958 48 +481 945 25 +283 980 32 +157 1161 33 +199 1067 29 +262 1024 26 +535 689 24 +553 642 41 +357 434 37 +292 853 27 +522 882 35 +226 1082 30 +488 545 49 +612 715 47 +434 358 48 +500 494 42 +70 488 42 +216 1129 30 +586 888 40 +250 1129 22 +67 593 22 +523 448 42 +433 277 37 +451 1015 49 +553 571 27 +537 521 42 +98 927 30 +668 751 37 +223 1177 41 +403 918 39 +677 708 48 +414 814 39 +75 735 32 +299 1123 48 +402 993 31 +669 622 49 +599 507 37 +199 582 34 +464 476 25 +593 684 23 +356 1129 37 +606 761 38 +284 741 42 +610 941 49 +69 429 46 +165 665 31 +382 1145 20 +665 802 48 +384 707 23 +187 995 37 +94 364 37 +624 594 23 +393 526 26 +417 1131 44 +456 1177 20 +491 363 48 +466 1124 27 +511 925 25 +232 418 23 +150 302 49 +681 935 34 +673 853 45 +375 399 36 +171 405 21 +621 990 25 +209 319 38 +233 1009 25 +225 281 22 +482 1063 20 +332 1097 22 +236 251 31 +58 891 46 +191 365 27 +409 1181 46 +311 242 47 +326 315 47 +637 499 33 +276 184 38 +310 363 42 +368 263 39 +137 556 25 +738 641 27 +724 817 48 +517 1144 46 +433 636 26 +69 938 25 +646 901 33 +241 338 32 +257 116 35 +127 213 47 +227 209 48 +206 154 33 +170 1030 21 +570 422 21 +773 790 20 +533 993 41 +548 946 29 +74 218 40 +107 274 48 +58 189 21 +282 397 30 +308 1027 38 +147 167 22 +292 144 34 +406 1028 25 +483 279 23 +61 857 21 +503 1021 23 +220 464 27 +567 813 29 +332 615 32 +106 185 20 +183 539 33 +51 539 29 +477 1091 22 +177 173 23 +590 1176 43 +384 188 45 +577 1118 29 +239 974 32 +294 1189 38 +252 460 37 +313 453 41 +751 709 38 +518 1049 38 +425 237 40 +314 413 22 +629 1105 43 +277 76 24 +311 80 41 +705 1008 49 +533 356 30 +180 247 46 +549 293 43 +54 390 34 +682 1092 28 +583 990 37 +341 725 28 +262 1069 45 +619 448 43 +93 890 20 +671 1176 49 +182 116 41 +53 290 42 +369 1087 22 +727 1096 21 +589 224 46 +665 449 32 +151 844 20 +506 236 44 +411 141 33 +85 132 48 +340 156 27 +619 249 21 +724 1066 27 +178 841 24 +457 117 42 +819 798 32 +599 286 32 +736 748 45 +65 773 21 +809 748 24 +157 480 23 +564 1038 34 +708 654 23 +477 193 20 +519 80 35 +484 310 33 +369 947 27 +596 328 40 +299 1061 20 +578 174 39 +348 1178 38 +432 785 29 +588 389 43 +56 1175 23 +598 131 28 +132 378 21 +354 1012 28 +553 1182 31 +566 703 21 +536 797 27 +777 657 47 +614 85 30 +783 823 26 +817 608 49 +713 455 45 +711 574 33 +655 1136 21 +861 573 21 +79 81 23 +784 886 43 +857 835 43 +752 913 28 +608 642 28 +357 1046 26 +784 1063 37 +672 665 32 +690 548 33 +264 266 25 +754 988 42 +377 975 22 +210 62 25 +623 1049 27 +491 611 22 +606 563 34 +654 1053 25 +823 1015 42 +170 572 26 +388 322 28 +885 992 30 +148 361 22 +52 53 46 +769 433 32 +768 946 36 +788 380 34 +130 1183 36 +688 393 36 +364 306 21 +895 867 36 +840 1068 47 +924 809 40 +890 544 27 +927 974 29 +863 740 39 +670 82 31 +355 55 24 +952 773 40 +108 471 37 +480 144 24 +783 526 45 +913 1025 29 +914 560 30 +650 408 45 +465 61 39 +840 903 47 +440 176 40 +962 1007 26 +780 1117 47 +786 316 48 +665 995 34 +682 1062 29 +137 60 45 +733 1123 20 +660 255 30 +737 1188 34 +805 1177 29 +642 357 36 +333 119 38 +911 1066 41 +758 390 25 +853 485 49 +827 345 42 +366 98 28 +791 266 41 +737 206 43 +969 860 33 +869 797 36 +845 289 48 +829 644 22 +1019 818 45 +300 678 23 +364 350 32 +501 968 22 +251 148 26 +744 282 21 +110 762 23 +964 961 41 +406 106 34 +783 184 25 +172 338 21 +993 881 29 +888 600 36 +721 526 39 +860 975 27 +643 124 44 +62 824 29 +1074 802 47 +396 372 24 +600 1139 31 +773 1166 38 +841 437 46 +696 965 28 +995 909 20 +907 1122 32 +1107 863 45 +1027 778 28 +645 217 21 +411 619 23 +1101 755 28 +900 1160 34 +521 150 32 +627 541 20 +667 151 27 +903 721 20 +1027 889 36 +952 712 47 +559 126 29 +1056 730 31 +1006 1027 38 +926 646 49 +1033 950 37 +271 232 24 +652 562 35 +260 593 20 +866 1154 26 +404 1062 37 +852 663 22 +1123 799 36 +740 247 34 +800 152 21 +679 196 43 +253 +277 638 +408 823 +192 461 +446 641 +309 145 +637 543 +210 471 +271 827 +562 642 +597 973 +486 501 +357 120 +415 509 +380 937 +594 934 +524 960 +219 280 +266 546 +661 913 +171 485 +854 767 +68 267 +701 439 +322 328 +899 616 +437 92 +484 735 +152 658 +1003 843 +393 501 +63 411 +310 951 +504 888 +540 272 +466 511 +236 678 +144 466 +526 104 +375 50 +1065 865 +980 798 +598 664 +1040 799 +333 901 +134 634 +974 888 +644 374 +825 490 +379 856 +527 156 +883 638 +699 391 +491 205 +785 436 +262 453 +704 633 +642 420 +595 404 +453 447 +709 177 +661 710 +124 854 +309 881 +317 656 +330 154 +814 344 +374 464 +171 94 +484 231 +60 594 +484 285 +1046 963 +394 361 +297 580 +497 919 +228 921 +210 724 +1021 766 +612 217 +885 974 +828 274 +319 707 +61 943 +279 185 +549 673 +505 238 +635 704 +437 390 +106 831 +271 414 +267 904 +200 57 +85 229 +134 174 +863 308 +350 628 +716 503 +459 659 +468 605 +942 699 +97 982 +604 274 +869 852 +249 112 +966 715 +259 605 +447 71 +598 348 +534 826 +690 363 +203 154 +411 382 +725 535 +719 743 +783 507 +861 706 +345 181 +325 442 +504 550 +450 718 +264 161 +783 897 +534 79 +108 185 +615 757 +151 301 +149 218 +1138 793 +63 986 +651 223 +288 325 +78 290 +317 737 +789 149 +84 910 +148 78 +72 357 +140 905 +411 726 +364 401 +923 575 +232 314 +446 154 +273 121 +728 484 +989 916 +309 915 +446 879 +565 913 +622 157 +195 290 +589 713 +260 385 +147 546 +1041 744 +163 762 +673 421 +474 131 +737 386 +319 633 +928 652 +65 922 +366 488 +108 622 +1080 728 +506 486 +551 757 +166 827 +603 457 +381 284 +567 788 +340 247 +301 846 +442 767 +357 836 +336 776 +107 907 +129 811 +87 253 +515 804 +780 582 +288 266 +359 933 +1020 859 +128 943 +377 834 +812 818 +550 559 +188 629 +342 647 +692 942 +119 246 +1134 895 +368 183 +107 930 +359 81 +531 347 +282 216 +931 778 +839 851 +78 853 +207 366 +731 565 +260 350 +211 525 +336 586 +470 309 +328 59 +215 946 +166 927 +546 870 +738 584 +750 232 +135 767 +331 226 +193 338 +776 791 +100 563 +448 552 +345 345 +410 792 +532 900 +586 775 +758 885 +667 243 +1038 888 +586 250 +340 413 +505 52 +608 65 +380 628 +121 117 +464 923 +263 716 +804 180 +772 362 +709 419 +723 649 +112 226 +753 197 +733 761 +735 463 +357 424 +505 858 +142 491 +785 244 +426 905 +652 752 +750 518 +468 249 +133 427 +368 654 +509 367 +200 +44 230 367 6 29 241 87 351 57 172 333 35 95 91 215 73 234 392 12 129 100 385 267 101 390 25 174 175 55 372 253 355 139 191 197 120 395 242 134 203 176 344 161 291 310 59 271 358 328 121 248 38 60 363 17 68 313 297 86 320 379 296 304 294 97 79 393 221 278 326 324 42 27 340 115 117 98 46 133 108 105 155 157 130 227 168 290 279 260 323 183 7 165 281 336 301 370 110 19 338 327 317 10 201 188 272 193 151 341 350 167 211 159 106 352 218 233 396 122 219 311 277 80 136 312 257 235 331 170 247 70 236 212 399 383 332 356 135 198 111 36 123 148 179 96 364 369 303 287 386 378 286 34 119 2 288 181 374 113 184 314 67 104 266 309 330 391 371 275 116 158 85 377 78 190 69 298 107 185 8 270 15 192 166 63 18 400 24 132 225 375 90 162 196 256 13 224 244 268 269 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/input.12 b/2018/republic/10-12_d2/senzori/tests/input.12 new file mode 100644 index 0000000..1505fd3 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/input.12 @@ -0,0 +1,1085 @@ +417 652 30 +600 +460 630 27 +525 603 48 +507 687 48 +372 678 32 +591 712 48 +501 542 20 +463 598 31 +356 653 25 +423 690 22 +568 611 22 +555 538 30 +641 651 48 +391 619 44 +411 716 25 +545 645 43 +657 767 49 +729 736 43 +497 650 26 +707 660 25 +495 515 35 +760 766 33 +499 736 44 +684 610 33 +615 535 47 +317 672 39 +734 687 36 +544 786 33 +557 501 21 +270 692 48 +458 545 31 +811 789 29 +515 822 47 +189 687 36 +781 719 48 +638 816 24 +436 490 39 +331 716 26 +136 686 48 +714 832 47 +166 730 30 +450 826 40 +408 805 30 +833 776 21 +795 832 49 +412 530 40 +541 720 21 +568 766 24 +636 864 49 +617 596 21 +622 571 25 +496 885 29 +852 747 29 +671 504 32 +483 439 34 +713 618 23 +432 567 29 +647 910 41 +355 571 45 +651 707 29 +591 812 29 +761 627 49 +828 890 40 +469 788 23 +629 469 34 +819 638 29 +881 807 40 +198 772 28 +710 937 33 +940 843 39 +704 528 45 +783 515 48 +260 651 25 +128 752 39 +827 945 26 +204 655 26 +306 579 31 +1010 850 48 +978 788 41 +520 476 33 +884 626 46 +766 906 34 +356 488 45 +81 768 23 +600 908 24 +693 483 25 +202 621 23 +701 787 24 +847 502 23 +669 827 39 +876 554 45 +384 759 48 +401 429 42 +747 581 40 +472 392 48 +813 472 35 +416 368 38 +462 696 35 +286 491 31 +667 683 22 +1003 913 48 +905 471 46 +987 978 21 +812 577 31 +771 942 20 +825 435 39 +727 879 34 +955 444 41 +158 622 42 +743 465 37 +943 982 36 +565 858 41 +835 811 34 +893 427 25 +515 912 23 +608 759 38 +195 731 26 +230 690 20 +1067 917 26 +600 654 32 +107 802 20 +683 969 32 +1069 959 24 +657 569 44 +388 306 43 +117 598 35 +325 247 47 +399 888 49 +405 247 28 +709 1005 28 +358 734 21 +329 534 31 +68 729 46 +856 665 39 +1001 426 27 +394 853 20 +653 525 20 +933 1032 38 +823 377 30 +1048 818 35 +860 717 24 +167 570 24 +1027 734 40 +300 324 45 +486 567 26 +748 503 24 +350 868 22 +1041 769 27 +84 840 38 +693 572 21 +1084 801 22 +882 681 21 +739 951 23 +878 346 41 +935 361 39 +838 556 30 +430 224 30 +1005 326 47 +1024 262 37 +435 950 38 +270 384 31 +754 1005 27 +150 797 32 +95 889 32 +919 520 43 +338 917 48 +769 381 40 +755 829 23 +314 462 40 +384 207 31 +325 403 34 +456 306 40 +325 636 23 +211 413 48 +853 837 29 +345 822 32 +903 1087 49 +463 194 44 +380 153 34 +1014 947 20 +353 442 23 +484 617 20 +99 933 38 +533 208 36 +953 562 28 +227 507 46 +978 939 22 +513 353 46 +945 603 43 +471 254 46 +927 779 21 +247 570 38 +1107 897 42 +1033 453 25 +990 248 36 +1176 913 37 +408 136 22 +645 989 48 +975 517 24 +375 521 20 +615 626 22 +473 996 40 +599 1036 47 +1056 293 49 +685 719 27 +700 1063 39 +885 860 45 +1033 498 26 +316 128 37 +949 726 31 +87 562 38 +1028 206 23 +119 636 30 +1018 686 44 +999 489 28 +573 1082 28 +253 307 36 +328 63 33 +578 237 40 +830 316 25 +944 484 35 +718 1123 41 +556 309 35 +935 401 30 +1067 213 39 +358 957 21 +757 330 48 +274 420 29 +783 1089 40 +332 214 20 +872 939 33 +882 294 41 +146 434 43 +1137 807 43 +1070 711 24 +1021 983 35 +983 374 33 +179 464 44 +994 580 37 +1004 548 22 +421 97 24 +1024 567 26 +698 1187 45 +440 413 28 +592 386 47 +1011 650 29 +144 537 30 +1110 260 20 +521 418 36 +383 117 28 +188 343 30 +842 1036 33 +373 1011 44 +1190 949 32 +346 1058 25 +606 347 20 +609 1136 40 +350 376 27 +822 1056 20 +938 1124 45 +269 115 38 +987 737 20 +591 965 23 +802 410 26 +740 1080 25 +376 1080 46 +603 1086 32 +300 1040 44 +1059 874 39 +468 1068 38 +593 1170 21 +820 1109 33 +265 162 32 +825 1150 36 +361 256 20 +655 235 43 +1066 628 35 +419 330 23 +1226 894 27 +1190 840 38 +959 1184 49 +632 277 28 +540 1162 49 +539 750 23 +1021 612 31 +305 945 24 +857 1087 33 +827 527 23 +1100 595 49 +286 653 22 +744 535 33 +1052 159 42 +858 999 42 +890 1139 49 +1258 814 48 +798 1041 21 +1191 774 27 +1098 211 23 +631 946 34 +176 529 30 +1079 370 45 +97 394 39 +587 468 41 +360 1147 37 +481 765 22 +526 965 31 +113 469 32 +697 246 26 +1259 944 49 +413 1139 33 +1305 773 45 +589 299 20 +144 311 44 +1015 1115 40 +1359 730 46 +847 1186 30 +954 900 20 +533 151 28 +981 202 26 +290 1128 41 +951 682 34 +931 807 25 +743 1159 27 +225 1145 33 +1123 677 42 +78 979 34 +987 459 27 +293 524 31 +122 350 30 +1101 782 25 +1096 457 48 +453 1150 36 +152 963 31 +1252 853 24 +298 810 31 +222 332 30 +213 291 30 +933 225 38 +1003 1154 21 +54 586 39 +266 203 48 +780 564 23 +418 1089 31 +412 191 23 +1230 779 22 +134 986 20 +293 756 39 +270 892 43 +1090 145 23 +216 1110 22 +1360 787 43 +1169 734 32 +667 1060 25 +1164 695 44 +1236 998 26 +1114 938 28 +436 1043 36 +184 936 24 +162 274 28 +123 234 45 +233 240 39 +170 198 30 +868 453 25 +55 227 49 +271 988 25 +722 192 39 +949 310 37 +486 152 47 +1019 131 43 +384 86 31 +894 979 33 +984 876 21 +532 1101 40 +218 458 21 +106 160 40 +1021 1020 30 +562 686 29 +1089 411 22 +1107 516 31 +800 1187 45 +882 203 47 +678 432 38 +144 867 34 +813 275 49 +930 153 31 +1166 611 23 +61 93 47 +1183 577 49 +92 284 38 +637 382 34 +180 1063 46 +231 63 48 +88 616 27 +194 1178 32 +433 73 24 +821 721 30 +646 1152 35 +324 1176 25 +1171 986 27 +1150 488 35 +1270 1027 44 +454 128 27 +185 823 25 +195 865 21 +148 924 46 +1307 1101 45 +1153 871 38 +298 79 34 +289 255 25 +327 1082 20 +232 856 42 +180 71 20 +76 346 41 +1202 799 27 +143 104 33 +321 358 25 +1210 623 42 +267 940 26 +915 917 39 +111 78 36 +567 141 21 +1249 617 21 +154 1017 49 +432 447 26 +127 1094 35 +265 604 33 +1331 1160 49 +1332 684 27 +659 354 27 +773 1150 28 +182 970 28 +1089 336 24 +1220 936 28 +297 970 25 +1057 1157 28 +971 1029 30 +1065 1002 24 +51 449 39 +255 772 41 +1187 458 21 +1144 332 45 +1135 216 27 +691 381 21 +156 388 31 +245 1061 39 +1396 1167 24 +260 732 34 +1068 753 35 +251 1171 39 +870 241 22 +868 517 27 +828 174 47 +1127 544 27 +189 591 20 +518 1024 42 +545 104 34 +1191 331 29 +1248 550 32 +185 903 29 +111 1007 24 +1217 279 32 +1088 252 22 +153 161 38 +215 975 36 +509 276 30 +495 942 46 +842 598 24 +1326 941 23 +61 872 25 +1052 567 23 +547 73 21 +901 1038 25 +414 841 20 +1357 1111 42 +123 1143 41 +1266 502 23 +1287 872 24 +446 761 21 +963 114 36 +726 399 41 +1309 557 49 +1167 658 26 +1071 676 35 +1111 1183 47 +439 1007 28 +74 1131 37 +1394 1073 38 +237 925 30 +606 262 31 +866 902 30 +1054 116 20 +174 133 22 +559 170 20 +453 1184 31 +1069 517 44 +88 425 20 +967 158 35 +1348 1045 33 +60 1176 30 +879 387 24 +1329 863 23 +1382 543 41 +1181 1017 30 +60 1080 49 +1136 1154 25 +1424 616 47 +1381 868 39 +1263 748 46 +1505 590 44 +786 181 23 +410 1187 45 +1076 75 43 +1133 1053 46 +54 403 41 +1310 834 33 +1241 1171 49 +881 760 25 +1219 1067 46 +1221 522 32 +716 355 48 +1199 1151 40 +584 590 27 +236 1010 32 +449 103 21 +887 103 45 +754 972 20 +1246 1114 44 +1424 879 20 +597 992 30 +57 482 27 +934 279 25 +621 429 47 +1398 694 41 +711 160 27 +828 53 48 +1236 581 33 +251 271 24 +907 63 21 +1203 488 39 +1186 234 27 +552 443 23 +1204 427 40 +1554 560 31 +1352 632 35 +972 59 40 +78 186 29 +612 157 36 +138 573 22 +51 905 31 +631 93 49 +1369 594 36 +1142 1106 42 +97 655 27 +79 525 27 +913 688 41 +1532 626 35 +818 680 34 +908 582 30 +1124 185 38 +111 980 24 +1319 992 48 +1127 628 34 +1379 480 33 +226 365 31 +1353 897 29 +1453 570 29 +1302 920 22 +1354 949 35 +1174 148 32 +1532 694 42 +553 264 27 +1431 1135 48 +1178 195 46 +1311 625 31 +601 60 34 +1424 912 40 +1455 846 42 +1452 649 25 +65 1044 22 +1546 764 33 +1078 1123 32 +1442 1087 23 +700 693 30 +968 756 20 +905 259 41 +495 1160 31 +688 127 26 +1414 962 46 +1337 1079 25 +332 1002 26 +1437 700 24 +1154 453 28 +398 934 28 +1237 455 44 +1454 779 30 +1369 1151 21 +1424 427 41 +1503 945 48 +1264 297 44 +1429 725 28 +1003 100 25 +480 +1156 128 +360 909 +1191 897 +267 1029 +1062 350 +166 665 +1255 840 +1050 800 +990 1102 +1177 562 +917 159 +463 431 +1520 925 +487 865 +100 413 +1451 1154 +1221 1050 +1417 1126 +1313 809 +1112 493 +1344 1089 +1181 320 +384 208 +849 535 +147 339 +1086 382 +1398 516 +956 425 +155 742 +472 776 +1270 1177 +1103 1061 +1118 298 +86 660 +710 890 +1169 1170 +420 918 +490 550 +435 891 +610 656 +196 794 +1110 819 +376 288 +897 132 +888 698 +132 857 +431 337 +253 673 +1036 937 +864 156 +302 526 +489 1168 +633 969 +1000 289 +934 868 +315 933 +958 908 +51 1141 +1063 403 +1142 794 +338 1132 +1172 859 +835 72 +744 724 +1352 951 +203 933 +1043 124 +955 1179 +521 329 +1158 665 +1388 547 +1393 473 +79 720 +509 243 +252 561 +579 1150 +1213 1110 +1288 930 +1163 476 +1525 713 +1034 1145 +724 411 +208 673 +833 296 +241 856 +279 939 +1111 515 +790 172 +96 845 +1031 836 +1139 487 +1357 1037 +254 1167 +376 429 +427 716 +644 468 +928 425 +1181 1101 +637 507 +521 602 +1142 837 +233 1145 +1010 654 +237 400 +660 1016 +407 392 +122 329 +146 1080 +358 763 +218 500 +1004 327 +1027 265 +1185 1032 +1127 1182 +1007 921 +811 389 +645 999 +721 227 +1061 666 +404 216 +812 62 +849 622 +77 807 +1195 708 +914 389 +1422 981 +684 231 +1469 800 +1064 969 +1544 650 +62 550 +386 978 +654 1046 +801 532 +405 549 +1132 621 +592 908 +852 990 +286 975 +344 795 +308 1028 +1259 428 +500 1005 +1033 181 +918 483 +67 458 +663 900 +985 1052 +1183 690 +233 701 +801 448 +641 91 +1141 1048 +152 1013 +845 1065 +225 351 +81 304 +270 390 +96 147 +1277 271 +413 476 +79 527 +815 805 +1212 575 +278 213 +554 300 +833 489 +924 902 +731 793 +1097 362 +836 1039 +1506 564 +1101 760 +236 159 +873 284 +331 462 +187 1155 +395 759 +155 817 +740 845 +434 696 +501 700 +458 482 +462 641 +962 1126 +815 567 +78 1114 +1365 783 +988 205 +1522 960 +642 786 +1168 167 +590 512 +94 935 +784 870 +567 857 +1114 561 +106 470 +356 371 +1222 740 +1288 717 +979 72 +56 329 +286 1172 +1319 1124 +96 1158 +106 553 +1415 625 +703 1184 +389 1020 +759 1092 +789 71 +499 356 +778 1055 +1419 578 +582 292 +968 368 +1464 600 +1109 1149 +178 942 +865 890 +1186 252 +1283 739 +643 166 +771 292 +930 1148 +510 547 +1239 962 +1206 253 +1052 559 +430 636 +1394 585 +705 1007 +101 1133 +1179 498 +1020 220 +1145 539 +1076 846 +61 209 +871 620 +1134 210 +507 669 +652 423 +802 265 +1275 968 +975 768 +624 443 +1085 645 +321 554 +394 1146 +698 1036 +1037 509 +529 687 +1522 580 +617 778 +363 529 +1427 405 +1248 549 +68 1185 +437 812 +1185 1122 +843 360 +138 881 +614 607 +315 388 +338 680 +477 1131 +155 138 +811 1111 +59 500 +147 90 +115 932 +1012 543 +737 822 +355 1162 +1149 322 +616 739 +1177 219 +451 63 +323 54 +443 675 +125 786 +675 842 +126 376 +124 1042 +236 1044 +453 850 +1264 319 +50 375 +574 645 +181 1076 +796 1030 +539 963 +614 1040 +874 1066 +205 853 +888 1156 +606 691 +283 349 +923 989 +908 439 +484 1067 +959 522 +216 224 +1065 932 +876 993 +688 330 +1479 962 +216 1074 +193 344 +1293 887 +1350 604 +393 861 +691 197 +633 245 +1189 446 +1061 609 +1229 762 +806 212 +505 761 +355 1010 +1293 1004 +590 101 +614 561 +1151 973 +237 578 +234 1086 +963 707 +1038 996 +696 831 +1430 701 +1123 661 +629 119 +63 701 +542 1188 +290 446 +737 903 +114 257 +792 354 +675 632 +856 319 +708 653 +347 85 +477 976 +227 262 +370 682 +609 236 +253 308 +137 731 +838 202 +515 422 +1338 1154 +886 566 +1540 600 +772 996 +756 409 +218 976 +328 590 +52 913 +1393 663 +1269 915 +140 537 +1040 655 +1268 466 +1382 1046 +550 728 +633 1181 +1419 745 +159 464 +1186 843 +392 151 +496 126 +357 565 +718 1028 +369 70 +682 491 +1468 869 +179 740 +544 832 +786 1158 +179 312 +475 281 +123 276 +462 687 +574 748 +1448 763 +980 595 +837 820 +614 886 +1406 1059 +774 1131 +711 554 +782 572 +451 830 +360 456 +172 1001 +393 655 +60 982 +80 403 +555 196 +1367 1185 +225 68 +528 1074 +306 261 +1003 268 +114 64 +711 497 +587 847 +329 713 +602 171 +569 380 +130 959 +1060 519 +206 426 +867 131 +590 1114 +913 940 +992 540 +1061 1145 +1115 393 +597 947 +603 1068 +961 181 +987 965 +850 694 +1314 990 +1268 1041 +823 925 +848 224 +548 520 +639 869 +339 871 +1166 515 +647 681 +1099 148 +1447 622 +1441 960 +1170 721 +1459 660 +172 567 +1192 808 +1442 438 +554 1159 +902 369 +598 427 +1194 930 +224 442 +251 135 +478 845 +519 779 +533 1138 +681 744 +177 213 +858 942 +811 411 +1497 699 +684 388 +1303 562 +1006 1146 +1006 107 +559 66 +1090 478 +791 623 +1141 692 +1041 1123 +1337 865 +718 1137 +1381 763 +1338 674 +996 847 +1061 1108 +563 712 +579 445 +111 906 +878 518 +1022 970 +611 366 +704 261 +888 914 +981 264 +250 +327 199 259 185 214 377 344 405 333 249 325 371 94 50 409 451 92 338 307 22 4 538 34 184 570 418 588 143 545 90 101 145 521 104 228 591 555 427 369 455 124 447 258 501 558 586 219 72 594 354 80 269 112 390 167 76 247 244 560 19 417 192 305 237 271 550 129 225 102 384 481 253 149 415 187 527 39 14 432 110 518 11 433 133 153 345 312 467 352 533 144 231 9 458 513 448 494 200 17 563 575 580 210 232 130 510 500 44 114 227 439 517 597 73 357 74 15 502 111 483 45 507 6 574 197 256 222 412 71 158 5 137 81 339 443 140 490 31 396 392 93 462 376 138 498 186 116 454 537 243 402 156 314 429 389 492 416 23 441 70 593 276 61 571 113 18 54 297 119 303 218 66 362 336 453 131 370 246 308 505 511 56 100 524 132 385 315 261 134 169 190 321 230 391 486 142 531 493 476 248 590 203 420 317 567 99 551 470 179 51 543 600 32 365 419 126 223 207 48 540 69 350 474 75 495 410 293 78 536 3 552 62 84 63 342 379 173 499 361 414 36 364 577 123 437 251 523 96 363 65 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/input.13 b/2018/republic/10-12_d2/senzori/tests/input.13 new file mode 100644 index 0000000..c4e5a99 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/input.13 @@ -0,0 +1,1085 @@ +654 1148 22 +600 +681 1181 41 +619 1154 32 +575 1182 27 +732 1162 49 +760 1116 46 +634 1092 34 +613 1063 28 +579 1153 31 +695 1143 27 +732 1071 44 +789 1172 44 +773 1058 34 +684 1029 46 +532 1185 32 +497 1124 45 +579 1097 27 +471 1189 42 +450 1102 26 +451 1068 37 +429 1124 27 +378 1097 38 +734 1032 22 +836 1183 23 +486 995 46 +707 972 45 +874 1167 27 +503 939 25 +816 1119 35 +432 1000 49 +620 998 41 +671 1085 41 +527 1040 49 +494 902 48 +566 1125 23 +386 950 29 +375 910 44 +333 1092 36 +668 922 24 +426 878 30 +376 1056 23 +843 1060 35 +880 1087 37 +692 877 32 +439 837 34 +530 840 28 +444 925 48 +402 1053 25 +753 946 37 +578 885 42 +760 896 22 +741 859 32 +753 985 28 +498 850 23 +571 799 38 +700 925 24 +882 1054 20 +927 1058 46 +970 1107 44 +970 1053 29 +388 843 35 +629 876 44 +625 779 23 +793 1003 20 +736 811 28 +1001 996 43 +730 753 45 +673 745 44 +776 728 29 +393 1157 40 +562 974 39 +770 666 49 +639 929 22 +1012 1137 43 +950 987 38 +813 690 41 +534 778 24 +787 826 48 +366 798 39 +357 1136 38 +1052 1157 20 +655 995 26 +915 1122 28 +813 757 43 +315 1176 38 +1053 967 37 +433 790 36 +813 872 34 +1052 1100 22 +806 976 25 +1091 1145 39 +1028 1054 29 +319 788 37 +744 624 32 +817 926 33 +510 739 40 +850 715 28 +640 695 39 +564 935 29 +938 1173 44 +398 1020 24 +710 789 29 +375 718 49 +916 743 46 +952 761 29 +751 701 26 +446 749 23 +347 1040 43 +857 939 47 +1092 933 47 +808 598 45 +363 984 35 +1169 911 49 +875 776 43 +913 942 39 +807 723 22 +409 1081 24 +426 1175 26 +661 830 47 +1220 921 49 +1144 1135 38 +883 1016 24 +287 1155 21 +855 868 39 +475 701 28 +1011 1096 37 +801 1048 23 +1120 1186 46 +1108 878 24 +925 1011 30 +633 738 30 +777 536 37 +598 749 31 +831 490 45 +947 883 40 +975 697 47 +820 801 34 +1207 1154 45 +714 902 27 +592 633 44 +1059 721 45 +266 807 38 +462 652 38 +1016 900 37 +1247 1143 32 +1178 827 46 +528 572 48 +341 849 39 +1272 885 37 +872 591 33 +1300 867 20 +1238 997 34 +834 543 43 +966 938 42 +826 960 20 +756 586 28 +1141 1065 40 +866 901 27 +732 520 43 +250 1169 32 +881 817 24 +680 502 20 +1182 1075 30 +1334 921 48 +318 1127 27 +476 614 22 +182 1154 43 +569 543 44 +852 663 43 +687 632 38 +1346 973 43 +1405 942 44 +1098 774 45 +696 813 23 +995 615 42 +469 866 26 +347 934 29 +1020 542 46 +249 1118 43 +1288 931 43 +1104 557 48 +309 909 42 +414 597 45 +241 925 40 +480 1038 38 +1187 988 28 +324 708 35 +404 551 41 +956 640 30 +1113 509 24 +698 580 43 +547 1095 32 +506 806 37 +1111 721 30 +567 492 41 +1109 1085 28 +629 512 38 +1078 835 42 +282 1038 37 +433 690 36 +1402 870 33 +1324 820 36 +1043 494 27 +627 597 28 +147 1106 38 +1150 565 32 +1095 1061 27 +358 625 48 +1071 458 34 +1369 837 24 +706 463 43 +989 650 29 +289 606 43 +186 948 23 +259 984 31 +207 921 27 +1080 405 46 +1074 1004 41 +1067 603 41 +527 940 21 +329 652 22 +120 1177 34 +1279 802 44 +1133 1011 40 +270 864 20 +687 393 48 +725 341 40 +588 433 44 +785 322 33 +180 1072 32 +1204 570 31 +567 758 23 +462 728 26 +628 553 33 +1144 374 32 +504 770 20 +626 477 21 +722 934 23 +662 488 22 +513 678 35 +217 744 49 +992 1164 21 +873 994 20 +955 848 23 +1138 661 41 +628 406 43 +891 506 20 +1143 494 20 +175 904 30 +1320 752 26 +134 880 20 +1178 467 47 +600 470 28 +1411 838 25 +520 398 40 +497 454 31 +699 696 31 +534 910 33 +463 394 29 +1110 324 47 +1003 399 44 +428 1038 23 +1275 1033 27 +787 452 20 +1114 836 28 +300 968 33 +1274 749 33 +373 661 22 +1213 625 28 +1098 261 23 +402 978 23 +203 1126 26 +412 653 29 +1236 759 41 +396 502 30 +496 487 29 +1220 672 28 +1379 1042 45 +1050 236 39 +548 329 40 +1136 775 25 +1061 358 33 +1480 986 49 +231 1055 24 +1112 222 40 +998 204 42 +823 1163 20 +247 870 20 +710 290 42 +363 547 22 +1336 1089 26 +427 467 35 +1007 448 31 +833 341 30 +1221 523 24 +1533 1041 32 +1233 868 33 +298 673 42 +764 228 49 +1465 1053 36 +1035 466 21 +881 542 43 +724 183 42 +129 950 41 +559 832 22 +916 678 38 +1271 593 49 +1200 411 23 +110 828 41 +1203 879 24 +1326 558 45 +892 350 37 +416 373 26 +670 899 20 +960 445 46 +74 822 22 +132 779 45 +756 309 27 +948 172 33 +911 579 20 +758 474 24 +371 397 38 +1267 669 40 +966 812 48 +1017 267 27 +1554 1070 27 +167 818 40 +94 1061 41 +834 417 44 +194 1100 29 +1445 919 22 +241 629 22 +307 365 41 +864 452 32 +1603 1120 48 +703 127 34 +940 339 45 +601 351 40 +414 322 45 +995 146 30 +1418 994 31 +325 320 36 +1250 443 45 +302 447 46 +729 1002 21 +658 300 46 +257 299 46 +1177 187 49 +448 602 22 +667 438 28 +820 290 37 +731 81 25 +769 55 45 +1649 1166 24 +1397 584 38 +1129 188 36 +1064 275 26 +612 249 45 +360 455 49 +831 171 48 +1326 621 41 +195 354 48 +763 504 23 +1171 654 20 +1363 565 24 +878 182 25 +1187 1187 27 +543 660 26 +1133 434 25 +1315 784 33 +328 996 38 +1667 1084 36 +1047 801 37 +1348 505 33 +1245 643 22 +1732 1097 46 +817 1078 27 +268 746 34 +1329 681 45 +1400 723 42 +1380 666 38 +1718 1147 48 +200 987 25 +1392 481 45 +119 997 27 +1178 622 41 +1095 688 41 +986 93 38 +1598 1044 29 +1211 439 28 +228 684 20 +930 127 36 +367 759 29 +1054 859 24 +50 1050 39 +89 704 45 +848 249 45 +1379 1112 47 +220 846 38 +1059 164 39 +264 520 46 +1432 662 48 +1447 443 29 +962 74 22 +216 639 25 +163 661 38 +577 1019 25 +947 579 21 +1136 805 22 +1236 479 25 +830 65 29 +1330 1119 22 +604 202 49 +425 723 30 +462 545 46 +1138 104 45 +532 291 26 +768 184 26 +1210 486 27 +120 674 41 +200 675 34 +825 838 21 +648 652 31 +353 516 35 +1275 500 30 +1226 390 42 +1435 588 22 +1247 558 24 +1518 974 22 +179 704 26 +891 267 47 +1263 1115 21 +1453 404 31 +1387 614 20 +250 472 36 +1268 361 43 +932 485 44 +413 818 27 +652 959 39 +704 82 22 +1297 319 28 +722 221 27 +1415 446 28 +1271 314 20 +1281 525 21 +1332 1150 27 +1340 284 48 +1352 853 22 +859 61 27 +1288 1000 21 +1223 819 22 +1446 487 34 +841 120 47 +1337 1021 20 +1029 169 21 +359 285 24 +478 306 28 +1259 1078 39 +153 618 30 +1019 842 31 +219 782 25 +195 1036 25 +1488 716 41 +1142 740 31 +517 256 24 +313 876 22 +1226 293 35 +501 348 21 +1567 712 45 +616 147 20 +405 423 35 +1514 758 48 +1442 877 27 +1539 1148 39 +157 293 33 +883 106 31 +1365 246 20 +202 392 21 +1157 272 40 +1681 1046 36 +247 243 31 +1024 1178 30 +1419 1094 24 +1556 996 44 +1245 196 31 +1325 1054 28 +1636 1052 37 +69 659 41 +250 421 25 +1247 715 20 +123 375 38 +1491 644 39 +1492 420 48 +1296 1134 20 +1326 473 25 +1032 130 38 +1376 200 36 +915 854 26 +67 1092 37 +922 226 48 +79 339 33 +566 251 29 +1300 179 42 +1663 991 26 +261 668 25 +594 96 38 +530 185 34 +569 715 22 +1363 742 26 +1604 1005 47 +218 258 33 +1015 583 21 +665 54 29 +757 139 37 +736 427 43 +711 852 20 +1190 269 26 +1594 1186 36 +1411 210 34 +67 978 38 +1501 1189 32 +394 253 38 +1516 928 29 +1504 1083 21 +1188 343 21 +1292 703 32 +1530 393 41 +572 371 30 +1314 235 21 +333 567 36 +211 497 45 +647 198 34 +681 347 44 +1451 254 28 +315 541 23 +66 737 22 +248 205 20 +556 173 21 +1000 1052 26 +87 1019 35 +535 101 42 +890 394 30 +474 131 48 +1578 808 39 +1187 728 49 +945 381 28 +992 876 26 +1392 1151 34 +1181 1117 22 +958 264 24 +275 225 28 +1508 1018 31 +1001 314 24 +949 539 27 +88 589 48 +909 65 46 +1614 721 20 +1475 579 39 +911 161 27 +332 962 29 +1321 105 38 +659 606 36 +1387 904 20 +269 837 21 +1110 145 34 +253 172 45 +504 220 36 +1284 110 20 +1196 151 32 +60 391 38 +1449 179 38 +1244 128 39 +1355 1141 21 +656 564 22 +883 701 22 +644 1177 32 +313 1061 24 +161 984 39 +1343 380 38 +1498 299 47 +207 439 39 +1465 364 36 +1448 820 35 +805 357 33 +531 496 31 +1426 294 49 +1218 90 41 +1606 692 26 +1172 233 23 +117 312 28 +1377 1002 21 +326 256 40 +1403 399 24 +205 179 44 +785 380 24 +1706 997 24 +1542 571 34 +785 627 21 +1499 534 45 +1174 62 35 +671 687 20 +480 +345 373 +85 343 +1143 850 +397 933 +943 108 +1171 985 +554 705 +867 132 +1632 1150 +541 640 +1148 311 +387 546 +763 908 +727 1158 +1271 1131 +239 1124 +1574 681 +1721 1128 +659 740 +1061 1124 +1466 587 +544 85 +827 489 +378 380 +955 1045 +397 1000 +193 313 +1102 357 +1643 1124 +223 905 +1327 769 +1253 832 +1384 910 +631 520 +863 597 +1081 380 +826 574 +383 246 +294 521 +1626 1008 +409 533 +1369 1144 +790 321 +243 426 +605 914 +822 110 +1181 1168 +1116 764 +990 390 +1256 1084 +1015 543 +1224 1184 +1603 701 +518 1078 +1349 748 +251 956 +908 200 +772 815 +456 736 +1395 433 +782 652 +863 896 +419 304 +796 714 +643 866 +382 984 +411 647 +433 1009 +506 705 +1036 263 +762 950 +132 278 +1297 905 +402 364 +1158 561 +922 447 +756 62 +775 385 +681 1100 +570 1145 +1200 1159 +1557 1173 +1458 233 +400 1176 +345 1143 +1429 873 +1374 500 +959 266 +1353 996 +1364 379 +325 977 +259 726 +471 543 +1133 227 +923 592 +121 1111 +1304 760 +1340 955 +290 568 +69 697 +1224 749 +1241 308 +729 603 +57 335 +483 782 +577 644 +727 290 +1092 287 +714 919 +870 713 +1227 1132 +1150 749 +825 75 +1064 736 +1244 433 +197 438 +326 325 +287 377 +1624 1083 +1480 959 +599 632 +1293 1132 +213 1082 +615 893 +1530 433 +1002 178 +1383 878 +1067 840 +396 1057 +266 694 +1407 1177 +523 508 +1371 196 +937 789 +327 507 +653 889 +938 1157 +249 158 +1141 378 +1147 75 +1382 472 +1197 573 +482 463 +206 748 +1118 936 +1010 636 +1079 133 +611 219 +727 819 +395 498 +658 802 +580 225 +211 1025 +811 930 +650 484 +60 1020 +1047 158 +1159 183 +207 1125 +1326 1095 +595 995 +708 717 +151 937 +957 179 +1037 509 +921 546 +1321 364 +251 597 +1453 151 +1156 830 +343 929 +164 710 +176 1143 +1155 919 +886 371 +345 418 +1285 584 +983 591 +1270 361 +217 166 +807 528 +804 861 +1307 72 +683 399 +724 517 +463 506 +583 447 +1040 361 +613 715 +772 590 +1345 870 +1279 200 +141 380 +488 594 +181 752 +1005 77 +331 601 +543 182 +1752 1150 +1465 839 +1162 282 +448 298 +893 765 +1172 485 +687 427 +311 679 +831 454 +1320 995 +748 302 +1555 577 +548 1128 +704 764 +386 406 +535 276 +623 928 +239 928 +379 849 +842 729 +1043 953 +301 777 +844 708 +1170 88 +693 1063 +713 1063 +914 737 +468 892 +857 449 +449 675 +790 981 +1293 172 +583 860 +185 171 +1549 408 +752 123 +400 975 +1459 642 +1482 501 +688 1030 +429 916 +1660 1077 +780 1002 +764 699 +225 387 +765 1052 +1558 1090 +281 735 +442 1038 +114 924 +1407 974 +201 820 +78 1078 +1349 1101 +931 694 +1528 327 +1138 1095 +1206 490 +184 334 +505 581 +459 649 +1450 311 +698 570 +535 233 +1044 1064 +313 820 +683 127 +1292 319 +1013 378 +1645 1027 +315 1085 +739 1184 +985 829 +744 341 +1207 727 +1192 161 +257 486 +69 1048 +98 603 +1511 988 +683 1150 +959 455 +1057 634 +1186 889 +1351 690 +524 904 +1210 855 +930 284 +1060 599 +73 623 +279 167 +718 194 +1362 972 +185 361 +713 675 +899 795 +766 187 +725 117 +1393 1148 +1021 144 +1249 697 +471 121 +191 949 +507 888 +849 968 +463 577 +695 961 +1340 837 +1519 751 +541 310 +945 413 +164 1075 +471 1175 +510 1115 +973 484 +860 771 +383 691 +1305 1060 +617 1012 +684 61 +509 433 +1056 220 +1112 594 +579 191 +1272 113 +1352 247 +338 254 +509 1003 +1270 957 +155 1167 +1225 657 +147 960 +230 320 +68 956 +922 646 +1294 1008 +866 842 +1108 1004 +1001 475 +787 506 +1579 787 +626 317 +399 580 +1093 787 +587 511 +979 710 +204 967 +1598 1100 +669 932 +1535 1118 +877 265 +288 487 +374 1113 +881 934 +1347 530 +1268 437 +454 322 +1099 950 +1047 781 +1122 1178 +1045 690 +836 1049 +505 167 +506 1051 +965 98 +173 777 +189 1159 +1557 787 +916 255 +566 605 +932 67 +1513 494 +1126 717 +243 138 +1307 603 +1323 112 +1237 528 +88 1040 +1289 557 +972 1176 +1521 579 +1091 889 +1559 822 +441 611 +141 696 +669 260 +1355 1050 +321 713 +559 414 +471 1093 +971 1087 +420 1040 +1384 390 +853 211 +292 459 +127 988 +148 1148 +1465 1035 +758 725 +1078 1142 +269 615 +196 842 +1341 596 +1123 95 +652 72 +1661 1040 +978 199 +1279 932 +322 1061 +617 1082 +1364 458 +903 840 +469 1126 +1416 634 +285 938 +583 123 +929 668 +342 701 +984 669 +925 1031 +1435 350 +110 709 +1239 373 +1118 397 +642 206 +1099 191 +1165 884 +1085 1042 +1248 81 +1517 451 +367 710 +1452 995 +222 233 +187 1101 +325 277 +1191 276 +351 786 +679 1130 +617 980 +1517 291 +813 1106 +1001 1158 +1190 1080 +296 802 +566 794 +1029 1047 +646 983 +584 759 +326 770 +1433 795 +679 365 +368 1138 +868 795 +1170 815 +354 1109 +315 552 +1234 984 +394 1035 +1213 831 +1361 318 +1101 431 +858 239 +560 942 +515 68 +201 876 +1001 224 +1151 444 +890 714 +133 625 +1584 713 +538 156 +1485 358 +1002 984 +755 679 +883 961 +1293 1077 +299 643 +613 345 +1007 594 +1177 575 +552 965 +1617 732 +450 +121 506 330 310 461 177 448 530 102 99 88 441 50 249 372 434 394 555 574 486 445 282 491 6 385 562 371 369 178 478 325 503 58 319 194 270 428 245 184 122 440 312 262 283 128 108 298 33 588 203 509 600 515 17 526 499 406 81 353 225 374 185 332 57 104 8 150 453 47 134 21 209 479 278 265 271 463 147 490 124 595 404 355 254 320 286 316 361 560 39 543 324 567 46 26 431 382 420 408 446 250 235 137 219 208 335 251 191 329 528 303 450 504 139 287 175 583 301 537 226 60 52 294 539 103 24 535 259 71 180 143 354 304 41 344 123 10 345 519 437 109 296 538 512 161 87 284 558 253 227 368 5 247 38 559 145 422 281 43 186 482 105 44 549 415 100 338 350 376 114 269 268 22 302 101 370 136 577 551 476 308 126 387 158 68 336 280 31 242 233 92 267 497 585 524 292 162 155 261 341 86 192 125 395 62 309 29 272 27 435 239 181 381 293 468 576 45 285 579 565 234 498 327 240 146 502 564 447 173 64 596 472 545 91 54 575 481 216 198 470 132 458 393 396 388 496 116 218 534 525 581 289 217 18 279 78 527 34 419 317 511 343 53 51 413 358 547 523 326 182 163 13 30 367 566 202 189 594 400 15 149 314 238 25 484 501 72 206 313 349 331 131 213 352 215 111 9 179 386 514 16 488 223 142 20 315 311 418 452 306 342 28 195 399 508 443 494 295 275 591 74 540 299 362 465 95 571 578 70 79 554 197 4 291 356 256 460 438 328 200 593 401 63 337 201 474 563 398 513 517 56 520 69 37 135 573 598 318 480 82 425 3 510 89 277 423 433 544 556 322 522 454 451 229 359 436 205 592 154 417 572 532 243 580 264 167 346 467 85 220 568 207 495 421 120 384 115 98 333 351 204 133 248 599 75 288 12 164 80 2 462 348 11 19 36 363 321 507 546 187 397 541 94 244 557 457 237 473 97 323 402 364 536 493 73 405 456 230 429 96 383 193 196 165 138 49 548 426 263 307 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/input.14 b/2018/republic/10-12_d2/senzori/tests/input.14 new file mode 100644 index 0000000..c712830 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/input.14 @@ -0,0 +1,1994 @@ +1797 805 21 +990 +1820 843 40 +1794 899 24 +1861 894 32 +1757 781 35 +1748 841 30 +1870 841 29 +1905 797 37 +1842 758 44 +1798 702 43 +1754 666 45 +1776 617 44 +1892 751 39 +1704 605 37 +1671 574 35 +1848 688 28 +1913 825 20 +1622 626 41 +1720 742 32 +1776 856 31 +1791 947 46 +1600 557 48 +1794 584 26 +1551 523 33 +1581 602 32 +1868 792 30 +1568 483 21 +1838 647 29 +1670 703 44 +1828 1019 41 +1764 575 30 +1899 663 40 +1910 903 46 +1970 888 23 +1681 505 42 +1767 516 42 +1882 622 32 +1649 603 29 +1872 1061 38 +1529 459 28 +1939 605 32 +1757 981 28 +1983 641 35 +1494 564 47 +1711 981 25 +1960 836 44 +1563 412 40 +1731 890 28 +1894 1107 27 +1604 745 44 +1701 903 31 +1506 404 26 +1839 596 31 +1795 453 32 +1620 383 42 +1567 654 46 +1932 1133 44 +1841 514 48 +1784 1052 26 +1774 416 33 +1972 934 46 +1944 1065 46 +1524 702 32 +1965 757 46 +1607 478 42 +1461 412 37 +1701 846 49 +1987 1183 49 +1427 555 30 +1462 622 37 +1673 1004 29 +1516 516 33 +1896 1005 47 +1596 818 38 +1451 449 24 +1394 511 42 +1961 1019 27 +1511 739 31 +1850 964 42 +1425 645 25 +1658 963 33 +1423 584 24 +1781 746 31 +1888 507 23 +1900 953 40 +1706 946 21 +1672 416 40 +1634 1058 41 +1666 778 47 +1456 556 24 +1713 699 24 +1480 799 42 +1894 471 43 +1985 1118 43 +1666 1114 27 +1494 608 29 +1612 994 49 +1724 409 28 +1579 864 38 +1621 702 23 +1686 1060 21 +1572 1040 37 +1361 664 46 +1813 412 43 +1396 611 24 +1484 725 28 +1617 884 34 +1621 669 37 +1807 546 44 +1651 1133 20 +1981 559 44 +1720 354 38 +1928 522 46 +1845 565 30 +1860 406 33 +1826 1067 40 +1629 821 27 +1396 375 45 +1738 1073 36 +1695 1028 24 +1873 378 22 +1909 565 39 +1719 640 36 +1929 1167 23 +1887 1152 36 +1754 1148 44 +1816 351 38 +1941 637 21 +1536 1028 34 +1440 765 32 +1384 707 27 +1480 345 37 +1490 680 20 +1571 344 39 +1435 391 21 +1388 770 41 +1509 990 36 +1500 453 28 +1557 738 33 +1856 463 29 +1931 870 29 +1469 935 46 +1500 1035 30 +1765 318 32 +1461 267 49 +1385 551 25 +1530 935 25 +1893 356 30 +1621 288 48 +1327 780 25 +1463 977 29 +1360 310 49 +1434 908 27 +1373 259 45 +1984 472 46 +1460 883 21 +1364 746 26 +1840 915 27 +1417 681 31 +1786 1170 32 +1915 373 23 +1689 304 40 +1553 995 31 +1292 818 30 +1905 311 29 +1455 185 48 +1531 258 25 +1341 183 44 +1278 167 41 +1417 950 48 +1563 212 47 +1609 1112 45 +1527 368 42 +1333 237 45 +1369 110 48 +1946 276 40 +1904 264 37 +1485 857 38 +1762 267 38 +1821 280 26 +1287 121 37 +1956 425 35 +1691 1146 34 +1649 853 21 +1561 141 27 +1967 330 49 +1462 143 33 +1228 114 41 +1321 663 32 +1356 472 47 +1589 255 32 +1310 294 20 +1370 825 48 +1534 590 40 +1316 853 25 +1604 439 31 +1336 882 37 +1678 1173 24 +1979 676 23 +1259 319 48 +1556 1090 25 +1849 1163 20 +1387 918 37 +1331 90 35 +1624 937 48 +1260 855 38 +1416 78 41 +1167 115 49 +1447 684 26 +1263 634 40 +1275 362 26 +1690 460 39 +1240 184 24 +1219 847 45 +1457 478 22 +1611 119 39 +1177 308 38 +1276 553 48 +1691 341 25 +1363 1001 37 +1360 421 38 +1197 213 34 +1298 446 45 +1609 52 35 +1267 792 25 +1286 266 20 +1262 697 45 +1232 920 49 +1954 192 48 +1209 382 40 +1933 233 31 +1202 171 44 +1573 1141 36 +1873 1189 32 +1881 230 33 +1833 230 31 +1949 105 48 +1426 728 43 +1301 880 23 +1703 795 32 +1164 899 40 +1425 126 40 +1985 243 46 +1609 188 28 +1814 878 24 +1807 242 22 +1384 1050 41 +1796 1102 47 +1146 260 22 +1944 56 27 +1208 993 30 +1176 1010 26 +1253 226 36 +1462 519 26 +1227 283 36 +1543 1167 41 +1274 402 33 +1260 80 26 +1986 371 22 +1491 1111 42 +1371 590 35 +1681 1090 20 +1663 477 24 +1615 245 21 +1480 220 22 +1443 337 26 +1664 247 30 +1863 277 45 +1259 975 30 +1823 186 33 +1209 1045 40 +1323 500 35 +1720 494 38 +1445 831 32 +1889 87 29 +1871 53 35 +1199 553 33 +1127 972 49 +1236 454 43 +1266 751 28 +1536 236 20 +1578 66 31 +1413 249 29 +1216 700 20 +1158 830 39 +1412 878 28 +1936 1004 26 +1493 1148 21 +1865 128 40 +1297 688 20 +1745 926 32 +1125 340 28 +1470 378 27 +1709 261 40 +1525 121 23 +1485 71 37 +1216 759 27 +1841 321 20 +1085 373 27 +1170 598 32 +1355 353 22 +1499 1076 27 +1299 603 35 +1072 995 38 +1510 288 24 +1133 90 33 +1100 151 37 +1634 520 27 +1389 206 31 +1234 1085 21 +1164 1059 41 +1174 412 39 +1285 1005 31 +1859 349 28 +1098 412 43 +1518 171 27 +1855 1104 45 +1091 207 23 +1548 898 35 +1212 594 21 +1321 323 27 +1275 52 27 +1972 603 22 +1372 60 36 +1811 304 21 +1738 604 25 +1055 204 46 +1023 390 44 +1686 376 39 +1415 279 20 +1429 1012 36 +1529 778 33 +1086 856 42 +1181 774 38 +1730 311 25 +1126 608 30 +1336 1078 48 +1367 1155 45 +1061 1050 37 +1011 197 22 +1152 174 22 +1179 270 28 +1047 263 36 +985 216 39 +1113 753 44 +1164 461 40 +1097 237 33 +1754 197 47 +1172 57 45 +1618 1181 29 +1109 914 43 +1091 777 21 +1148 1028 21 +1161 657 39 +1750 366 24 +985 346 36 +1127 1105 40 +1739 1023 42 +1709 545 43 +1174 506 41 +1524 856 28 +1062 328 26 +1894 424 34 +1436 1083 22 +1401 989 20 +1219 231 22 +1771 809 20 +1281 938 48 +908 209 45 +1526 1135 20 +923 286 41 +1140 780 25 +1336 1181 30 +1025 434 20 +1834 101 28 +1877 932 20 +1582 166 27 +1134 719 21 +962 305 20 +1262 1105 28 +1492 117 41 +1017 477 37 +1071 802 42 +1777 89 37 +1023 552 48 +1921 846 22 +1120 1148 34 +1329 394 38 +874 256 30 +1883 719 21 +1224 1148 41 +1935 315 21 +1626 216 22 +1692 194 28 +1082 592 47 +1176 1140 49 +1007 774 36 +889 168 37 +1319 135 25 +1671 114 37 +1729 771 23 +1032 311 24 +1066 699 45 +1466 1090 21 +1173 697 30 +1213 322 39 +962 551 47 +1011 971 35 +1345 927 46 +1009 648 42 +1076 53 46 +1854 197 22 +1014 1020 26 +980 157 28 +1142 408 24 +1128 53 29 +1916 719 36 +1353 540 39 +1451 589 30 +1028 900 38 +989 881 37 +1114 668 47 +937 518 25 +950 129 29 +1585 707 38 +1122 445 34 +1036 163 39 +1513 652 34 +1085 517 47 +986 411 38 +1837 808 37 +920 343 23 +1074 632 22 +1485 895 25 +959 889 21 +1120 551 29 +1693 64 44 +1782 1009 47 +1016 1087 26 +1088 1178 23 +1000 249 31 +908 384 27 +1734 105 44 +1068 117 28 +1056 448 48 +1888 186 44 +1855 79 22 +1893 858 21 +1034 98 47 +1252 502 40 +1062 935 41 +938 844 44 +886 335 26 +1339 1032 28 +972 970 30 +1133 293 24 +1675 739 24 +1838 157 29 +1396 1091 33 +978 72 33 +1664 642 23 +1067 145 24 +1068 901 21 +973 507 32 +917 447 39 +1045 1135 42 +1529 825 29 +1638 183 26 +999 822 26 +1146 532 33 +1220 57 36 +1058 748 32 +1831 61 34 +887 589 46 +955 1111 45 +989 701 43 +1796 150 26 +1378 872 26 +1755 725 31 +901 885 27 +1307 1129 33 +1108 473 22 +1316 759 22 +943 56 35 +960 1011 35 +879 926 44 +970 672 24 +1724 1189 48 +1562 111 29 +1640 356 22 +1098 1028 42 +915 130 37 +852 995 40 +1633 792 20 +821 879 33 +1763 236 24 +850 433 35 +1254 1028 24 +1455 1059 32 +1205 657 38 +857 482 35 +1516 54 20 +1328 582 30 +790 409 45 +767 998 49 +873 658 38 +871 386 35 +817 638 41 +777 699 45 +1579 294 29 +1335 963 20 +1688 141 21 +779 888 27 +1288 668 21 +1153 737 20 +1348 624 24 +800 458 23 +1426 1162 30 +1609 322 23 +1210 423 27 +761 487 28 +951 1157 21 +946 670 20 +995 1054 23 +836 843 34 +732 697 28 +1579 454 23 +887 1122 26 +958 458 31 +1911 134 20 +1706 1090 28 +1586 898 29 +1644 92 20 +836 562 44 +834 724 32 +1567 796 25 +797 789 49 +966 816 35 +1143 367 34 +895 1050 46 +862 793 34 +742 839 44 +1039 826 25 +1809 86 22 +716 490 23 +1948 554 21 +810 227 46 +806 915 37 +835 266 20 +842 331 35 +710 958 34 +796 517 43 +752 762 23 +825 164 45 +750 522 43 +761 637 26 +769 599 35 +706 618 49 +809 361 49 +1542 964 28 +1328 738 20 +1392 167 42 +1135 474 23 +1440 801 23 +841 1139 46 +865 129 23 +792 307 43 +1172 230 25 +937 611 48 +725 416 26 +1048 639 25 +969 752 39 +1052 360 21 +721 750 22 +917 966 30 +688 430 40 +833 1085 34 +922 760 47 +768 185 22 +1482 484 27 +896 1160 27 +921 810 26 +655 933 34 +921 932 32 +920 702 46 +1179 867 29 +1427 470 30 +840 606 30 +782 1109 45 +875 61 43 +826 473 24 +1657 891 35 +703 1007 23 +666 584 47 +952 380 40 +774 741 36 +859 214 32 +674 892 39 +829 1047 25 +1863 642 20 +1572 766 30 +1002 1160 30 +1167 962 25 +1403 322 36 +1432 1126 25 +600 914 29 +1277 892 29 +732 274 30 +687 767 42 +803 590 28 +1078 1103 42 +1545 67 20 +1921 402 34 +741 213 43 +1327 703 37 +1346 147 28 +561 882 28 +1892 390 20 +698 361 35 +638 438 21 +1276 204 24 +727 986 31 +880 695 23 +667 736 22 +602 942 27 +1185 932 36 +973 273 27 +579 968 32 +990 120 37 +792 102 38 +1110 308 28 +710 870 29 +1658 320 22 +652 632 34 +680 844 45 +1988 419 21 +1500 953 25 +695 190 41 +756 380 43 +1125 1184 22 +654 196 30 +872 102 31 +1720 166 34 +773 257 33 +727 1157 39 +723 1089 21 +804 1043 20 +536 1014 45 +910 553 23 +596 852 45 +1225 1188 38 +727 563 23 +588 568 36 +1086 318 23 +1393 457 23 +822 690 22 +1411 1189 31 +550 797 34 +879 734 21 +825 1175 27 +687 692 46 +645 993 42 +776 1063 20 +1781 380 30 +1410 847 29 +594 807 20 +545 843 35 +1178 739 27 +1366 220 22 +687 1137 33 +639 1161 45 +713 1049 48 +1010 609 33 +1918 339 26 +590 733 46 +571 1131 36 +1141 577 25 +1113 819 29 +526 1148 21 +677 514 38 +611 1045 45 +544 726 37 +1018 57 22 +487 818 37 +583 668 49 +1186 346 29 +1264 1079 23 +653 1045 24 +794 859 31 +637 154 39 +515 685 44 +681 115 27 +550 631 43 +988 847 21 +674 1189 38 +473 1055 41 +539 563 33 +619 608 29 +1649 150 26 +620 93 42 +648 551 26 +748 125 43 +661 313 31 +476 562 37 +1040 1189 29 +962 1070 38 +489 639 32 +463 854 31 +1317 632 21 +1716 1047 22 +616 470 28 +1281 1178 46 +648 803 39 +627 881 26 +512 596 37 +756 81 24 +545 1180 23 +425 573 34 +600 120 21 +426 841 41 +1248 372 25 +545 1071 45 +476 1105 36 +1036 513 20 +561 924 20 +482 709 30 +918 482 23 +484 1015 34 +411 527 44 +1576 940 43 +616 200 22 +1160 1175 26 +1545 625 23 +724 927 24 +370 862 43 +771 559 35 +877 860 20 +580 451 37 +301 904 40 +385 589 34 +438 924 48 +716 315 48 +417 984 26 +254 933 41 +1459 1151 20 +467 777 40 +1004 1114 28 +655 59 45 +734 589 21 +992 584 24 +357 824 35 +474 1153 25 +743 888 24 +325 814 30 +936 1185 23 +931 896 26 +568 127 21 +738 180 22 +486 743 20 +391 497 26 +1746 443 37 +661 387 30 +576 68 20 +547 1109 29 +1468 1179 20 +202 940 24 +1307 906 22 +708 238 30 +193 881 39 +356 513 29 +456 1182 41 +1124 243 21 +1435 308 31 +811 125 20 +867 1109 20 +1934 930 23 +317 517 37 +1711 223 25 +991 303 35 +1043 593 28 +474 892 24 +166 950 42 +1747 399 21 +291 771 40 +764 1178 36 +306 698 49 +503 527 24 +267 655 27 +1584 1073 24 +632 366 31 +711 71 45 +1462 311 23 +408 1155 33 +345 950 42 +519 458 34 +161 827 44 +429 644 31 +1203 798 24 +151 869 30 +509 768 36 +1145 863 27 +642 845 29 +372 733 36 +346 669 30 +416 612 33 +811 58 29 +544 954 27 +579 503 35 +554 156 30 +206 777 46 +737 348 25 +882 446 27 +900 991 27 +637 497 30 +926 662 20 +232 871 35 +532 922 24 +330 599 34 +110 796 37 +460 685 34 +666 170 25 +1316 57 37 +250 722 29 +557 397 28 +566 206 33 +399 1098 46 +209 826 26 +630 779 20 +430 740 45 +229 981 28 +597 176 23 +274 558 42 +361 1116 24 +1365 961 30 +337 1182 48 +264 487 43 +773 228 23 +1100 107 33 +1281 1053 23 +316 436 34 +1192 967 24 +149 755 32 +411 1047 31 +620 1108 35 +320 464 22 +279 1150 27 +523 187 27 +1667 1033 26 +217 1188 49 +454 982 24 +107 941 44 +364 987 26 +1290 730 30 +577 1023 32 +1658 1161 20 +1522 435 21 +892 417 32 +326 1136 44 +151 986 32 +860 523 39 +515 877 49 +1094 950 20 +352 1069 23 +86 977 21 +469 447 24 +681 649 22 +189 1012 21 +850 756 20 +624 236 34 +356 577 24 +332 396 24 +205 522 48 +843 948 30 +1949 970 33 +143 500 28 +490 401 44 +709 1108 21 +1256 145 20 +577 369 21 +249 1022 44 +631 909 21 +291 630 30 +784 656 24 +549 260 40 +1816 1188 26 +1231 534 32 +519 104 37 +348 772 31 +215 455 29 +745 450 26 +77 762 23 +748 1077 22 +712 532 25 +190 568 38 +751 956 27 +377 626 41 +310 1060 49 +1171 191 22 +640 717 30 +1025 937 24 +236 1080 32 +446 611 20 +434 794 32 +486 337 30 +285 599 29 +173 648 48 +1411 797 22 +107 487 21 +1316 1159 23 +196 1101 33 +164 418 48 +185 448 25 +607 402 42 +189 738 34 +180 1156 46 +64 1034 47 +645 118 23 +114 732 35 +225 606 28 +286 833 26 +78 1098 29 +214 381 38 +229 1141 43 +502 956 33 +622 958 24 +328 871 39 +282 378 44 +274 440 37 +493 244 23 +446 81 43 +1504 1175 22 +529 311 39 +108 1064 27 +537 370 25 +403 96 30 +1973 151 20 +577 104 27 +468 116 39 +1947 699 28 +939 253 31 +586 611 29 +655 1125 28 +809 968 47 +323 363 39 +221 339 38 +296 1096 27 +343 905 24 +611 299 48 +383 790 31 +492 213 23 +1250 599 25 +144 688 27 +382 158 41 +1097 270 21 +370 400 37 +62 486 43 +842 123 23 +420 488 26 +604 1138 29 +467 176 47 +457 271 40 +1803 660 35 +414 378 25 +251 357 25 +380 358 33 +1512 913 20 +99 554 47 +177 702 41 +1332 998 22 +138 1075 32 +342 119 47 +559 594 21 +686 268 20 +680 1102 38 +1299 1034 27 +247 816 22 +1988 1039 34 +115 849 43 +243 311 22 +69 871 39 +924 1089 28 +428 1010 21 +340 223 45 +274 301 33 +1134 193 28 +344 1014 36 +305 170 46 +677 983 24 +1229 1114 25 +289 993 36 +1620 86 27 +999 +1925 1119 +1908 123 +997 743 +1562 767 +1769 1055 +548 1187 +243 953 +299 1053 +844 56 +999 296 +767 588 +460 782 +1462 805 +843 1112 +1886 794 +1701 807 +593 542 +917 148 +1370 222 +920 1029 +366 178 +1259 154 +1895 750 +572 547 +1412 684 +1207 685 +572 1122 +1359 479 +1762 64 +477 1098 +271 299 +1245 334 +426 1040 +410 800 +1113 1138 +649 1024 +323 109 +1433 808 +794 191 +1119 736 +1194 662 +1517 787 +908 221 +1946 384 +405 849 +865 506 +536 100 +559 392 +1600 760 +1336 297 +1698 288 +1089 1178 +1345 66 +1767 395 +1799 1077 +1042 1009 +834 739 +1752 1016 +525 919 +1524 437 +273 1081 +1297 250 +1480 201 +1958 306 +375 1175 +1264 242 +1633 184 +285 736 +325 172 +310 530 +1788 783 +922 273 +1747 919 +1358 985 +1329 167 +1817 926 +1829 376 +1098 872 +898 1064 +480 847 +428 194 +1293 230 +432 58 +1545 1096 +1290 945 +785 428 +540 293 +268 1034 +1009 1185 +938 71 +1390 475 +1758 248 +936 1013 +916 382 +1988 1038 +805 717 +997 581 +447 276 +956 989 +1634 1102 +158 420 +1747 514 +1537 1123 +1936 329 +1741 891 +718 959 +1126 694 +1958 740 +1380 893 +1735 473 +1697 344 +1730 586 +1427 763 +1136 673 +1007 656 +1707 1042 +180 1078 +260 601 +649 111 +291 830 +971 753 +498 1124 +276 958 +428 966 +87 833 +1858 146 +1012 1097 +1786 265 +1977 207 +527 433 +1766 486 +1519 1101 +700 1006 +1912 318 +721 488 +815 754 +884 844 +704 828 +918 240 +1871 1170 +1000 244 +1617 948 +945 456 +1482 176 +688 964 +1988 280 +1863 319 +1052 522 +1063 95 +1496 253 +1185 616 +1756 585 +890 318 +1678 807 +1657 983 +523 386 +1198 636 +293 180 +946 344 +1579 731 +356 1164 +1364 103 +1667 965 +1069 998 +1839 419 +658 70 +753 358 +1079 302 +1824 769 +1543 1176 +708 1078 +1132 264 +336 91 +1265 811 +1542 916 +1883 927 +505 1061 +1155 60 +486 990 +1774 513 +912 471 +846 663 +1005 73 +1823 193 +1739 422 +1298 893 +1689 582 +927 120 +859 178 +1602 1189 +1510 565 +1918 417 +1317 313 +569 701 +805 338 +522 995 +841 934 +1886 868 +1154 517 +1383 631 +1552 975 +365 675 +397 532 +1627 301 +1590 1014 +1454 284 +1313 1168 +245 1012 +1823 473 +581 625 +916 308 +978 350 +1324 449 +1464 985 +657 793 +1211 941 +766 690 +150 894 +179 720 +650 1122 +1665 260 +1547 98 +1280 970 +1501 699 +1916 1012 +1461 492 +678 905 +273 491 +418 147 +308 411 +884 451 +670 657 +900 249 +257 546 +1118 385 +1439 1100 +1352 393 +1804 82 +1214 286 +1651 557 +1980 833 +1814 501 +1859 371 +1161 703 +1285 355 +387 349 +1673 84 +401 168 +649 766 +1509 178 +1058 915 +1370 1130 +1070 226 +750 545 +892 113 +1463 427 +810 893 +1268 434 +961 872 +1683 317 +1068 770 +1031 968 +218 397 +1078 477 +236 977 +1335 349 +1189 307 +1535 827 +1348 733 +359 1019 +1431 699 +50 523 +1830 820 +1697 105 +473 730 +1823 871 +1910 1093 +1346 197 +345 508 +1559 223 +1904 232 +1146 1105 +1742 128 +640 180 +1469 389 +1398 848 +1410 328 +859 731 +1286 609 +1685 914 +1311 344 +1267 678 +1508 950 +684 804 +496 246 +763 851 +244 855 +976 325 +931 207 +1747 608 +752 1028 +654 214 +859 121 +1720 1082 +773 95 +486 620 +1487 1112 +1395 55 +1572 183 +655 147 +452 1054 +538 662 +1007 601 +1599 424 +976 1160 +1300 388 +1027 798 +1846 866 +1595 457 +197 465 +1202 377 +1664 441 +1395 779 +1120 808 +899 880 +449 567 +966 225 +1185 830 +1903 153 +527 270 +1740 362 +1467 633 +1012 202 +1494 1005 +1305 537 +344 759 +1785 675 +1411 218 +446 252 +1775 329 +1288 841 +1078 583 +844 851 +662 301 +1214 913 +525 844 +757 521 +1989 953 +1621 447 +1496 822 +971 1007 +1580 571 +1340 686 +85 460 +143 701 +1257 598 +1111 768 +1858 269 +1757 555 +1765 744 +1358 417 +1496 917 +463 375 +1366 55 +379 424 +1604 181 +1053 716 +496 372 +1911 1073 +164 1124 +1162 113 +1927 238 +1025 584 +1476 946 +464 699 +1980 767 +1046 1047 +1362 683 +1616 592 +701 152 +340 963 +1841 577 +1604 641 +1079 359 +1431 183 +1444 635 +1200 67 +1798 1129 +194 1172 +1541 146 +1640 839 +565 70 +531 611 +1659 729 +1168 849 +1960 841 +126 875 +1829 136 +1071 50 +1128 549 +906 1162 +1917 953 +1164 492 +1460 1119 +1406 1005 +60 841 +352 415 +1811 1036 +939 926 +157 569 +1830 553 +235 1156 +1172 355 +1444 304 +451 391 +663 999 +777 298 +1640 781 +1527 469 +982 773 +980 1104 +1189 865 +1289 520 +649 326 +459 855 +1586 231 +927 843 +961 521 +1914 575 +1971 330 +296 794 +202 823 +1240 53 +1183 955 +1971 134 +1928 358 +1795 1188 +354 931 +995 707 +1865 415 +967 612 +651 681 +1443 915 +596 240 +868 151 +1377 657 +1638 1187 +376 481 +1002 876 +812 263 +1938 521 +652 969 +399 717 +764 117 +1587 93 +398 1150 +1696 974 +1369 441 +345 157 +999 102 +1430 75 +760 157 +424 835 +1392 751 +1812 162 +368 88 +799 574 +1186 566 +1107 163 +730 850 +788 926 +1033 768 +1322 475 +1306 110 +1728 846 +1688 609 +580 315 +942 787 +1906 389 +1036 675 +127 494 +1915 987 +1048 483 +949 819 +1626 1041 +1230 111 +1355 458 +1170 89 +847 355 +266 371 +938 1137 +576 141 +1411 140 +405 371 +991 215 +609 878 +1776 819 +1915 646 +939 966 +1555 422 +1206 1043 +1691 869 +947 311 +1742 292 +623 1140 +234 914 +1245 548 +882 1114 +1951 488 +810 942 +1975 903 +1257 405 +1469 608 +145 618 +1606 904 +796 1051 +1494 648 +1647 495 +1862 976 +1755 161 +1541 689 +1068 1139 +766 1103 +1418 1120 +1833 1099 +1061 673 +1674 693 +1150 235 +1051 567 +1367 706 +578 360 +1465 324 +393 1079 +1038 897 +1052 967 +1224 1078 +1663 774 +1168 433 +831 303 +1107 470 +1978 463 +902 799 +696 215 +367 893 +822 777 +1460 461 +529 1031 +1663 642 +1277 557 +965 575 +1245 422 +375 114 +1612 991 +1550 732 +860 1019 +1710 548 +612 159 +1137 882 +637 1079 +1344 846 +887 515 +1382 797 +1212 572 +438 104 +955 1022 +833 502 +774 373 +1525 1042 +248 519 +1194 1072 +1351 229 +61 1054 +1643 262 +569 109 +191 445 +1096 513 +1072 890 +631 919 +716 359 +1220 807 +1664 1028 +1095 1111 +1497 419 +1329 654 +1783 538 +1572 63 +141 935 +1848 111 +1380 134 +1656 854 +1985 442 +662 496 +1425 159 +1756 678 +1919 611 +462 216 +1406 409 +355 203 +1561 1143 +1281 636 +1028 83 +1778 653 +679 628 +788 832 +438 481 +901 733 +1962 1115 +545 244 +1700 433 +1696 945 +1171 1131 +261 688 +485 1040 +982 67 +278 646 +462 670 +405 491 +1348 144 +289 356 +730 100 +714 1153 +1299 162 +1540 884 +885 643 +1689 1114 +209 867 +177 512 +1107 496 +652 553 +338 353 +362 1103 +1696 525 +620 290 +1270 474 +1135 950 +691 752 +1733 443 +319 1016 +1012 980 +1167 910 +1745 1178 +1979 96 +1214 840 +770 341 +883 782 +414 549 +1033 203 +1939 1056 +1076 339 +1606 59 +769 441 +448 1104 +1831 1074 +1703 703 +147 437 +1636 224 +196 533 +889 81 +313 573 +1942 265 +491 90 +1662 354 +1212 1178 +432 733 +1880 1113 +740 985 +831 974 +295 996 +1870 1091 +881 751 +1388 281 +778 666 +1474 525 +736 138 +128 583 +1979 244 +1090 718 +724 1041 +1615 138 +1945 558 +1046 1129 +1272 312 +78 1092 +254 833 +1666 503 +1231 465 +318 1150 +1236 630 +1144 314 +496 511 +468 1185 +464 174 +632 508 +422 991 +1110 897 +250 727 +1576 857 +734 915 +1607 1129 +1403 174 +1965 1054 +277 620 +175 888 +1782 171 +1870 568 +644 452 +784 537 +1340 586 +1264 737 +559 207 +857 307 +1673 292 +317 805 +426 861 +1889 491 +1169 1022 +724 419 +71 531 +1731 1142 +1800 228 +207 961 +787 1105 +1727 977 +962 79 +1029 493 +155 1055 +1229 702 +218 514 +1032 1169 +1318 496 +1006 486 +1579 933 +387 186 +190 1151 +1940 617 +136 671 +1156 817 +449 1074 +347 536 +606 112 +805 617 +831 999 +821 1152 +876 262 +1594 1092 +657 727 +1489 493 +996 186 +306 860 +1378 728 +574 474 +1078 253 +480 956 +869 97 +1023 279 +1299 1122 +231 589 +927 505 +1662 402 +470 406 +1005 1039 +588 1157 +314 208 +1721 351 +1559 133 +356 595 +458 91 +1577 624 +733 190 +1714 211 +821 654 +106 523 +703 407 +1093 381 +1547 792 +324 662 +111 941 +1332 559 +1820 105 +1128 926 +698 1114 +763 996 +524 579 +1089 1039 +966 843 +1403 524 +1441 432 +819 1101 +783 874 +687 181 +1954 349 +1346 1127 +1964 573 +1503 615 +151 1188 +1092 557 +1625 556 +498 938 +571 289 +531 1092 +1107 832 +321 756 +527 189 +492 411 +1827 1133 +1441 1001 +1306 968 +1250 213 +1595 367 +1347 877 +716 223 +1238 393 +504 484 +1711 724 +1567 1110 +1600 786 +1027 328 +284 1016 +1364 354 +1618 505 +352 728 +400 583 +319 916 +1664 127 +1516 499 +1081 648 +969 951 +826 1054 +1830 213 +1406 463 +1841 62 +588 894 +543 119 +1013 629 +566 993 +1338 378 +813 797 +1240 684 +1780 583 +575 521 +621 72 +1556 520 +1752 1043 +1248 847 +1793 135 +1932 114 +917 1121 +1463 775 +387 779 +1429 1154 +654 1151 +1963 871 +1714 454 +936 293 +1923 453 +661 1101 +1479 853 +1452 661 +1353 802 +1428 596 +984 144 +1177 197 +109 476 +1750 97 +1506 96 +1861 547 +1945 286 +577 434 +1532 637 +958 709 +790 1185 +1943 767 +290 1136 +308 447 +1329 767 +1476 1088 +730 393 +879 475 +782 1079 +1473 832 +175 397 +216 980 +903 988 +445 523 +1517 586 +1302 1010 +1569 1036 +278 1107 +1788 303 +1651 659 +379 391 +951 664 +696 365 +805 492 +594 938 +807 113 +113 705 +269 170 +627 1108 +1299 421 +1275 720 +1304 183 +1022 376 +1878 180 +131 645 +1001 948 +1879 437 +819 697 +596 991 +582 390 +603 1048 +1287 760 +1239 83 +1844 840 +628 541 +675 1128 +195 790 +590 863 +715 737 +1431 975 +544 927 +1971 803 +365 576 +1767 1150 +1506 762 +1956 73 +1410 254 +1552 1051 +695 689 +1934 669 +1529 745 +1764 798 +1328 796 +1162 328 +413 1098 +87 1061 +1034 357 +1535 1023 +1480 440 +1691 1084 +979 431 +958 1104 +1569 481 +920 338 +1973 998 +829 415 +1360 583 +1906 292 +1884 706 +1021 551 +1064 191 +296 389 +1328 960 +1267 376 +868 1170 +1463 549 +914 582 +1598 678 +1953 1133 +1837 502 +1337 1073 +1704 1009 +589 168 +1191 785 +1244 935 +1381 330 +95 1080 +1141 476 +423 1077 +1909 83 +1856 892 +551 437 +1753 824 +1600 959 +1597 709 +993 829 +1215 997 +775 250 +790 642 +535 1148 +857 391 +1898 818 +1186 518 +133 1008 +815 399 +1500 861 +1519 1075 +493 1155 +310 620 +617 372 +546 412 +422 902 +1566 299 +1491 77 +1197 1109 +1365 551 +1422 1055 +394 915 +1407 631 +495 +868 421 447 115 579 835 181 74 479 205 95 878 251 760 6 459 952 216 597 461 127 164 336 947 339 473 970 891 42 832 81 664 551 545 316 569 535 242 814 514 444 590 221 785 187 931 869 709 792 213 925 234 381 705 87 491 767 108 856 280 33 438 363 16 215 690 217 681 880 494 672 357 638 604 711 736 727 287 40 24 324 241 620 146 432 172 830 231 79 683 429 376 536 482 7 228 207 571 488 715 190 819 299 532 586 984 341 755 224 811 818 258 700 199 733 860 774 519 377 451 802 245 971 104 123 509 521 964 790 315 824 495 932 90 567 836 395 837 460 608 549 279 773 799 486 338 788 959 340 729 18 289 589 484 646 823 235 250 22 504 424 206 257 645 294 928 125 531 562 489 343 627 815 897 25 185 178 821 966 97 478 446 791 969 354 740 558 59 82 212 587 46 846 568 544 831 45 850 168 520 652 166 660 307 374 52 73 191 529 329 718 801 844 576 375 505 408 132 41 379 763 141 319 976 919 948 302 805 684 435 32 398 507 840 977 721 276 462 826 654 114 15 613 777 691 534 21 615 901 745 362 400 761 501 882 780 256 378 982 634 862 442 913 612 198 411 44 516 333 266 288 518 29 983 626 121 387 194 147 120 273 384 47 905 418 702 680 30 135 915 214 188 474 889 621 596 717 323 833 651 985 857 111 539 734 281 756 209 675 118 157 86 738 485 481 423 769 470 53 686 268 806 939 640 361 752 414 628 912 929 601 678 359 167 506 855 631 838 12 503 706 320 624 808 342 437 330 720 564 497 591 580 582 92 653 848 877 180 176 102 629 699 309 122 67 827 293 724 789 337 225 412 84 54 463 496 530 961 978 471 450 648 525 953 367 260 783 51 578 750 219 101 829 647 541 722 91 317 834 77 265 974 263 658 707 784 670 689 909 781 581 861 633 3 679 659 622 863 574 665 202 89 372 113 616 854 843 804 8 106 283 417 75 577 467 944 353 390 85 703 304 716 17 103 140 512 195 936 223 415 318 526 151 325 458 88 649 735 356 630 296 694 557 66 881 712 452 625 267 723 406 145 951 550 445 396 561 483 956 812 261 211 4 364 490 110 923 927 284 523 371 772 559 72 405 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/input.15 b/2018/republic/10-12_d2/senzori/tests/input.15 new file mode 100644 index 0000000..f256894 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/input.15 @@ -0,0 +1,1605 @@ +1956 221 47 +800 +1913 169 44 +1975 267 31 +1885 236 44 +1836 214 38 +1889 284 27 +1792 242 32 +1824 286 39 +1922 115 22 +1938 54 46 +1985 131 47 +1756 216 34 +1736 238 20 +1940 144 28 +1965 168 25 +1873 104 39 +1778 312 33 +1731 177 28 +1841 142 21 +1701 174 26 +1983 51 22 +1926 292 38 +1766 352 38 +1697 134 29 +1699 339 38 +1751 424 47 +1847 364 46 +1675 314 25 +1736 151 21 +1808 155 25 +1668 196 29 +1865 70 21 +1886 351 25 +1627 181 41 +1680 416 41 +1804 357 38 +1657 337 25 +1836 54 27 +1625 137 37 +1705 391 20 +1695 90 30 +1610 336 41 +1798 439 26 +1565 376 32 +1947 367 45 +1620 96 21 +1814 121 29 +1522 379 47 +1739 117 35 +1474 372 47 +1522 442 40 +1985 92 27 +1700 481 44 +1572 197 34 +1966 313 38 +1528 331 37 +1549 422 20 +1550 277 47 +1441 324 20 +1570 137 41 +1911 216 21 +1900 59 22 +1480 444 27 +1636 230 23 +1620 53 41 +1530 180 26 +1786 126 20 +1527 226 25 +1688 380 20 +1885 433 36 +1581 458 25 +1421 309 21 +1797 408 28 +1939 258 27 +1824 180 32 +1734 535 41 +1549 239 24 +1588 55 22 +1968 414 26 +1592 494 25 +1870 142 22 +1706 262 22 +1980 464 48 +1574 232 23 +1912 491 43 +1766 176 32 +1749 305 24 +1412 365 28 +1656 506 34 +1744 583 49 +1499 197 25 +1813 87 23 +1616 282 27 +1431 416 35 +1520 298 21 +1728 500 23 +1812 620 39 +1611 448 37 +1624 494 28 +1401 282 38 +1560 487 26 +1916 407 27 +1367 274 27 +1719 210 29 +1476 307 44 +1849 564 39 +1756 461 27 +1795 543 20 +1406 244 26 +1716 608 23 +1437 502 48 +1521 99 31 +1462 260 23 +1366 526 30 +1315 304 43 +1278 267 27 +1552 64 31 +1493 542 32 +1792 667 30 +1363 340 21 +1363 554 26 +1496 246 37 +1269 297 20 +1770 724 36 +1375 390 47 +1647 300 20 +1789 502 48 +1387 351 24 +1864 481 38 +1503 593 33 +1470 118 41 +1312 517 42 +1537 641 31 +1865 307 27 +1596 544 41 +1314 556 36 +1681 52 47 +1401 505 22 +1767 762 30 +1221 255 40 +1490 645 28 +1254 350 36 +1510 159 21 +1813 709 29 +1326 461 49 +1846 725 25 +1177 231 39 +1422 138 23 +1851 654 49 +1153 171 45 +1345 617 47 +1170 112 28 +1506 74 27 +1108 133 40 +1071 116 28 +1685 229 39 +1280 648 47 +1291 352 35 +1143 252 30 +1162 309 35 +1729 734 48 +1306 412 25 +1763 86 32 +1261 406 32 +1706 297 25 +1210 98 37 +1395 663 32 +1313 603 22 +1373 497 25 +1369 469 30 +1221 449 29 +1193 126 22 +1980 193 21 +1824 249 31 +1264 450 40 +1274 582 37 +1708 641 27 +1280 706 34 +1905 568 22 +1475 213 31 +1875 701 37 +1935 577 39 +1255 136 34 +1109 191 26 +1734 783 43 +1238 581 25 +1316 250 33 +1829 334 22 +1109 322 26 +1920 654 30 +1476 514 29 +1229 194 45 +1414 620 20 +1443 52 34 +1713 671 24 +1890 538 25 +1613 404 35 +1690 845 41 +1059 210 42 +1364 226 37 +1156 85 23 +1249 67 26 +1650 750 44 +1074 344 20 +1572 742 47 +1045 119 20 +1789 802 24 +1759 628 28 +1028 280 46 +1550 783 20 +986 242 45 +1309 204 29 +1102 60 39 +1615 369 22 +1649 876 49 +990 320 21 +1660 545 23 +1477 697 33 +1544 602 38 +1654 124 21 +1588 88 23 +1596 900 30 +1176 406 44 +1591 665 48 +1805 740 20 +1483 162 32 +1837 800 45 +927 213 45 +1390 696 23 +1891 773 34 +1861 859 37 +1046 89 20 +940 273 48 +1883 605 46 +1234 632 36 +1186 639 33 +1176 349 26 +1635 794 37 +1422 86 42 +1391 600 37 +1318 121 43 +1058 160 22 +1673 161 21 +1432 651 26 +1121 282 24 +1148 363 27 +1648 654 45 +1733 826 43 +1146 390 22 +1330 357 21 +1443 191 40 +1779 560 26 +1194 586 32 +1957 543 23 +1196 544 23 +1613 603 37 +983 356 46 +1085 387 47 +1273 505 28 +1846 451 29 +916 166 38 +1615 849 36 +1193 446 22 +1845 405 30 +1458 605 24 +1172 554 21 +861 130 34 +968 387 21 +1361 309 20 +1014 417 30 +1749 696 33 +1227 157 26 +1749 272 34 +1220 324 48 +991 439 25 +1512 733 41 +1361 679 21 +1231 50 21 +1882 394 36 +1411 458 49 +1706 899 33 +1770 826 25 +1399 194 46 +1240 682 25 +873 225 39 +1764 869 37 +1797 916 35 +1758 929 23 +1129 561 46 +1630 560 23 +1310 675 28 +1829 530 39 +892 74 42 +1049 318 21 +1010 336 20 +1128 646 38 +1342 568 22 +972 65 49 +921 404 35 +1941 735 39 +990 134 41 +1847 602 22 +1982 721 36 +1582 955 45 +1696 761 37 +956 109 24 +1179 698 44 +1967 771 27 +1542 820 36 +1343 164 24 +1550 551 29 +1139 684 33 +849 260 45 +1122 486 39 +861 300 31 +1178 269 22 +1619 715 35 +1650 381 20 +1277 89 21 +1069 464 29 +1295 747 47 +1931 458 31 +1971 816 27 +1399 546 31 +1593 1002 47 +1124 740 28 +1232 523 32 +1026 216 24 +1349 93 23 +1554 903 27 +1093 601 48 +1402 327 21 +1033 623 38 +940 328 41 +1026 673 20 +1918 331 35 +987 623 43 +1364 125 39 +988 188 25 +1019 190 29 +952 417 28 +1148 453 40 +1439 749 42 +920 362 24 +1067 643 38 +1932 830 34 +1519 510 47 +832 209 23 +1902 729 33 +880 344 42 +985 668 35 +812 229 21 +1080 746 36 +1452 449 25 +1835 954 42 +1781 273 20 +1854 997 22 +1037 54 48 +770 244 36 +1561 318 29 +1010 581 48 +727 251 28 +1215 720 31 +1889 992 20 +1988 586 34 +700 216 29 +1788 1007 46 +1215 773 49 +1586 297 32 +675 190 25 +1360 780 34 +1653 1001 23 +1024 739 32 +1344 404 20 +1919 1027 38 +863 172 28 +989 279 27 +1943 963 44 +1107 232 30 +1680 718 22 +647 240 35 +970 521 39 +762 312 41 +612 254 37 +1886 944 35 +1908 905 25 +839 81 36 +1745 1036 32 +796 50 38 +1293 786 20 +1884 1059 20 +1019 485 38 +1475 742 25 +1119 359 23 +826 326 48 +1582 871 28 +1905 853 33 +756 67 40 +1365 815 32 +948 482 43 +1695 938 30 +681 141 30 +930 560 22 +1265 202 27 +1872 898 40 +1751 1076 20 +1929 785 29 +1345 735 47 +758 125 49 +1500 771 28 +1167 511 36 +1866 1087 31 +1951 91 29 +1819 1040 21 +961 596 31 +1284 68 22 +1504 924 31 +1331 868 39 +963 301 23 +1431 230 22 +1556 704 31 +1101 678 24 +1212 813 27 +1212 387 26 +1131 795 30 +1421 792 44 +1936 1067 41 +1970 998 20 +1794 182 22 +1201 859 26 +898 430 29 +632 143 22 +1661 927 36 +1439 876 46 +913 461 27 +1604 1051 28 +655 115 27 +1007 793 34 +1444 965 49 +1062 684 29 +882 391 22 +1675 981 27 +718 190 21 +880 462 39 +1442 1049 40 +1899 1100 35 +869 512 48 +1600 1086 25 +1187 905 42 +913 495 28 +1126 417 41 +1979 849 20 +1629 998 20 +708 60 33 +729 291 37 +1689 567 49 +1295 908 42 +803 148 26 +1342 54 36 +1648 597 23 +967 559 37 +1550 999 31 +1927 1132 43 +1460 918 47 +1532 882 21 +1231 863 33 +1421 1024 20 +1987 1030 47 +1131 834 39 +1774 1115 34 +1162 958 25 +1464 792 39 +1323 785 32 +1203 963 41 +1856 260 29 +1064 795 22 +802 292 20 +1219 562 25 +1226 900 28 +1437 590 22 +544 246 49 +456 255 49 +712 326 20 +901 546 35 +1512 1067 39 +746 361 45 +1105 812 21 +1506 622 23 +519 301 23 +1093 535 37 +1134 947 35 +1377 863 25 +1334 951 43 +683 400 39 +1801 1165 45 +639 92 23 +1958 884 25 +1870 1121 35 +1143 885 35 +1273 164 20 +793 545 41 +1628 1121 39 +596 311 25 +1043 833 41 +680 345 35 +1989 947 36 +1759 962 40 +1164 851 23 +1690 1135 32 +1137 1002 44 +919 119 25 +1698 1093 48 +1170 764 25 +644 384 41 +690 462 48 +1615 1185 30 +1158 926 21 +1487 1122 33 +1815 844 29 +962 732 42 +1078 969 45 +597 158 44 +1413 1075 30 +579 373 30 +654 303 37 +1554 1117 29 +1793 1056 22 +474 330 47 +1747 1166 36 +1291 873 28 +1813 765 28 +632 427 31 +913 685 46 +1708 1189 48 +1604 780 22 +1092 294 34 +1187 159 23 +1061 573 37 +855 713 30 +1198 1015 20 +1072 1048 44 +1071 262 34 +732 417 24 +1844 755 24 +1094 1134 48 +1452 1009 35 +1384 1089 23 +1303 990 30 +586 101 23 +1513 980 22 +613 472 35 +1095 716 30 +992 824 20 +1980 1167 46 +685 503 34 +1151 1087 33 +1642 414 26 +1039 1140 49 +1446 568 24 +1030 1003 29 +705 552 35 +509 371 40 +1704 1035 36 +651 162 31 +601 500 25 +489 229 29 +1049 1186 33 +613 560 47 +1649 1168 33 +1158 614 25 +1453 1154 44 +1412 1141 25 +1254 926 34 +430 299 49 +1788 698 25 +1200 58 37 +1493 880 46 +1572 1175 42 +1379 1135 32 +541 556 37 +1086 1090 38 +831 462 38 +1857 1169 27 +986 1006 36 +827 375 47 +1534 937 24 +1976 1116 31 +767 597 48 +507 169 43 +947 842 45 +1823 993 21 +409 357 41 +1760 144 21 +364 319 48 +935 1014 34 +392 400 22 +692 306 21 +927 757 20 +574 444 29 +499 518 23 +1185 836 22 +1925 612 31 +1652 1074 42 +1097 454 21 +886 1034 39 +603 59 43 +316 369 40 +1848 1035 21 +1004 708 31 +1492 1011 23 +795 740 42 +1818 1111 23 +589 335 21 +722 512 20 +1516 1171 22 +734 647 31 +960 1046 46 +1748 654 20 +744 763 22 +752 451 48 +617 206 26 +990 1115 30 +1734 1103 26 +474 478 34 +1024 1037 32 +913 989 28 +1387 794 21 +921 1104 37 +1224 1061 41 +443 440 33 +1012 1081 22 +569 638 48 +456 519 39 +858 752 35 +534 483 38 +890 1147 47 +887 588 31 +966 1147 46 +735 174 22 +1250 1105 35 +1626 905 25 +866 1001 38 +847 423 43 +830 961 42 +800 1016 46 +873 1102 28 +1228 1122 20 +527 62 39 +420 187 39 +1719 369 32 +931 799 42 +1094 1019 21 +780 187 42 +910 607 23 +1084 429 22 +674 582 39 +234 354 46 +567 591 28 +1774 54 25 +1419 721 25 +1668 694 20 +1552 353 20 +1375 437 26 +758 969 29 +1366 1037 35 +936 586 21 +811 775 31 +731 811 39 +622 518 26 +1344 1186 38 +1385 1174 42 +486 611 42 +983 487 22 +711 761 31 +946 951 41 +764 692 30 +726 1011 49 +1293 1187 39 +380 161 49 +928 95 23 +1333 1101 38 +728 581 34 +1064 1005 26 +680 92 27 +248 302 22 +679 1006 22 +891 1073 36 +1318 1142 31 +319 197 40 +1884 1178 20 +631 1039 47 +994 765 24 +580 1036 32 +684 1079 49 +1456 835 40 +281 193 32 +865 920 35 +461 142 31 +1717 999 30 +782 647 35 +1390 951 27 +832 1144 32 +1946 657 21 +527 1082 46 +251 223 38 +277 155 32 +832 624 23 +927 876 29 +1322 705 25 +333 450 48 +760 1061 26 +385 225 21 +1055 930 44 +447 602 35 +1385 96 20 +549 353 39 +1406 910 25 +558 1127 33 +574 318 20 +1153 1121 28 +878 838 35 +769 499 44 +597 405 30 +809 112 39 +634 650 34 +857 1184 21 +477 1064 44 +701 619 44 +1482 981 29 +888 194 28 +1254 1023 32 +262 409 21 +231 423 22 +716 145 32 +1097 876 35 +385 597 47 +181 301 39 +739 722 29 +126 312 49 +368 639 40 +1261 1185 24 +269 464 44 +1273 828 25 +935 1070 21 +176 237 37 +679 744 20 +370 509 31 +214 180 45 +318 154 40 +822 916 26 +771 401 43 +799 1090 48 +467 1008 30 +299 642 32 +564 527 20 +1886 821 23 +1290 147 24 +632 1125 26 +1435 277 20 +416 991 47 +1286 1123 23 +1267 1069 37 +130 389 47 +290 425 22 +1209 290 23 +1287 428 21 +1725 54 28 +1251 797 24 +789 807 36 +1382 983 20 +1496 464 23 +369 90 44 +774 1160 39 +74 397 42 +911 644 27 +726 685 46 +129 201 45 +1056 441 23 +1286 219 21 +484 196 26 +802 622 28 +330 495 42 +473 928 41 +1318 1057 45 +1499 841 31 +161 339 29 +1302 825 20 +842 590 22 +383 677 32 +370 1047 40 +180 123 49 +1211 1188 43 +438 877 35 +675 1124 32 +329 1019 45 +403 838 31 +133 163 28 +435 1119 38 +1561 1050 47 +1679 797 34 +443 797 42 +800 +179 324 +1143 466 +894 240 +722 518 +613 288 +901 1082 +1933 827 +1207 114 +1132 812 +1458 591 +1057 127 +805 228 +1798 714 +345 279 +1533 663 +802 1081 +1541 913 +911 1028 +1847 313 +938 703 +1942 481 +1469 901 +1930 578 +1413 467 +1036 202 +95 320 +697 817 +1347 307 +1609 1100 +1657 848 +1213 435 +1113 378 +1233 980 +401 646 +1111 481 +961 70 +1902 1103 +442 509 +1117 598 +757 835 +515 395 +1426 972 +1932 973 +1831 437 +1826 523 +1516 839 +1898 944 +1863 729 +1443 899 +1355 640 +340 185 +1938 1029 +1628 890 +243 230 +1305 684 +903 870 +1837 1153 +1574 699 +316 506 +1326 114 +473 244 +275 134 +1934 396 +509 172 +1733 500 +1478 319 +1512 182 +1366 339 +1869 310 +1011 1112 +619 1017 +1896 1005 +1064 847 +1927 1003 +1341 1135 +1153 593 +1590 205 +986 977 +1883 406 +1556 266 +1632 73 +1359 259 +1564 189 +1184 418 +1464 943 +1344 365 +1362 1050 +1195 668 +600 257 +352 168 +1254 508 +1260 347 +1604 342 +1024 815 +1570 146 +1027 899 +943 556 +718 462 +1278 1183 +1419 611 +1023 1132 +779 144 +1725 787 +840 583 +1893 150 +973 528 +778 1097 +1786 804 +1365 517 +1297 251 +1058 601 +1268 1006 +1744 401 +379 1000 +1424 216 +1963 388 +1817 1129 +1630 754 +115 420 +884 1066 +1844 922 +1679 176 +1947 903 +1803 985 +1375 876 +866 316 +1008 745 +1585 1013 +355 1058 +346 486 +1175 1071 +1469 547 +1112 1174 +1929 449 +963 838 +846 230 +770 489 +1355 713 +1521 1079 +1060 233 +1074 1088 +1337 263 +332 648 +1431 493 +1387 620 +445 847 +720 653 +969 1183 +481 220 +1365 784 +953 970 +1646 311 +690 458 +1768 438 +1134 1127 +1888 453 +916 1170 +1055 449 +1407 986 +1632 1188 +1157 683 +611 1133 +637 451 +1985 571 +1196 1081 +380 854 +1062 1034 +1112 82 +1017 107 +1274 423 +1883 784 +1974 989 +1300 486 +1296 1005 +1950 608 +1657 1003 +1329 286 +818 727 +1903 347 +927 338 +1448 814 +1044 1129 +1820 896 +1605 502 +169 208 +1625 656 +793 814 +740 56 +1237 349 +1018 173 +1918 707 +368 563 +783 107 +277 402 +1270 818 +96 219 +1324 230 +1648 877 +447 1077 +382 510 +1957 432 +1430 75 +779 469 +1395 664 +780 1119 +1658 554 +1834 56 +1265 793 +1624 595 +408 296 +1667 384 +1188 892 +1946 52 +1549 379 +1665 461 +669 242 +857 702 +1456 467 +437 315 +1758 516 +1418 144 +1683 901 +1709 426 +1253 178 +1806 541 +1227 531 +1752 647 +743 301 +1095 898 +284 464 +1629 1088 +1978 608 +1734 749 +1810 622 +1076 319 +712 1017 +685 562 +1606 917 +1732 96 +448 412 +805 773 +1069 761 +1048 1054 +530 69 +1090 155 +970 564 +858 815 +1139 442 +1644 796 +484 360 +582 563 +1575 92 +1929 1089 +1771 972 +528 1080 +1818 1019 +313 1053 +361 436 +1542 326 +378 968 +1490 147 +1664 579 +986 625 +1570 908 +1491 270 +919 244 +853 441 +1546 1171 +700 139 +1826 481 +773 965 +1563 1047 +1475 170 +1033 463 +1339 587 +1441 1145 +1506 909 +1115 442 +1776 896 +1051 740 +975 1158 +1435 1077 +1746 1118 +1310 1179 +1408 81 +595 538 +1522 639 +474 330 +752 463 +1253 474 +1465 437 +1499 529 +775 202 +1540 739 +405 616 +1921 677 +1547 567 +945 789 +505 1039 +559 508 +410 1125 +1304 274 +1456 146 +1203 67 +416 315 +1520 769 +1824 929 +190 93 +892 65 +1699 489 +1728 664 +1367 937 +995 829 +1061 401 +1444 938 +290 187 +101 299 +1918 1045 +1102 56 +547 235 +1885 672 +1774 299 +1654 441 +556 339 +1458 741 +1454 1180 +1983 1159 +818 973 +777 420 +1481 1162 +625 87 +879 405 +896 436 +1386 1093 +833 494 +1887 873 +775 1020 +467 168 +913 205 +636 145 +1774 504 +1439 385 +1355 755 +864 1164 +1882 927 +767 603 +1883 285 +1591 1034 +753 662 +1709 335 +886 86 +1570 240 +539 1045 +951 463 +1896 1124 +1203 527 +1795 841 +1640 281 +607 435 +1412 738 +1260 131 +1817 142 +1160 1012 +708 1107 +1274 376 +804 552 +865 758 +898 465 +1338 425 +1151 78 +1537 127 +1792 635 +674 371 +1027 629 +1844 812 +642 482 +1568 808 +926 86 +840 520 +1108 355 +1561 121 +1358 451 +1054 1170 +1652 117 +244 476 +881 1098 +610 600 +1345 982 +792 453 +1261 111 +1024 553 +782 646 +1417 540 +1878 1163 +1529 78 +1188 966 +844 763 +815 406 +921 631 +1865 872 +466 1028 +1097 837 +1987 823 +1537 506 +1212 1188 +194 284 +140 123 +570 250 +1003 487 +597 314 +1463 833 +847 187 +1124 902 +988 778 +705 753 +1167 401 +1150 800 +589 70 +1660 659 +1500 1063 +824 906 +1726 625 +1796 1153 +1107 560 +1097 763 +1295 731 +1137 363 +843 51 +1609 192 +1962 1008 +694 506 +1948 298 +683 1029 +1174 624 +1771 352 +702 269 +725 555 +1560 304 +420 895 +1861 1101 +1237 231 +1944 367 +1878 1063 +1674 90 +1005 997 +312 1001 +1576 729 +1579 609 +1165 139 +1709 292 +529 528 +739 174 +1138 635 +706 1046 +1900 555 +1226 743 +719 111 +1208 583 +346 323 +783 625 +469 438 +1616 528 +501 1083 +1877 1083 +639 416 +105 362 +647 1055 +1643 194 +1503 86 +1124 194 +1848 510 +809 1142 +644 670 +1211 250 +1687 394 +277 435 +917 377 +811 252 +1850 223 +1085 1033 +1090 1153 +1950 220 +1584 1066 +713 1079 +1021 780 +869 589 +947 1122 +840 88 +1299 841 +955 934 +1293 113 +388 329 +1396 574 +1966 101 +1704 725 +1703 595 +627 545 +1800 162 +1903 251 +1938 513 +962 291 +374 234 +463 953 +1729 596 +1947 721 +1468 261 +751 131 +1740 1002 +190 175 +1193 1060 +1345 467 +661 154 +486 260 +223 154 +1989 94 +1768 57 +1772 831 +375 202 +1544 1004 +681 301 +1382 366 +981 147 +1038 421 +761 378 +1760 812 +531 182 +349 98 +456 231 +1782 1173 +1269 596 +1364 957 +1340 958 +991 799 +290 614 +731 670 +815 929 +1866 361 +1135 531 +997 209 +1731 469 +811 1027 +1189 1155 +1620 408 +1859 405 +961 189 +241 287 +1613 785 +221 184 +1154 913 +1916 758 +1643 332 +1522 386 +423 820 +1470 1114 +1661 237 +392 178 +1122 836 +1278 308 +1748 442 +1034 843 +1070 369 +1848 959 +1294 57 +441 374 +1334 934 +1080 76 +1246 252 +1851 558 +1765 1071 +996 1095 +254 452 +423 145 +1577 671 +514 86 +1144 163 +1027 307 +1397 1055 +1080 674 +566 447 +372 622 +940 899 +1357 851 +1929 912 +1396 919 +417 589 +1623 1050 +145 392 +841 924 +1776 594 +729 794 +1146 827 +361 528 +1618 269 +766 809 +336 391 +1318 420 +1256 1136 +695 407 +500 196 +1967 334 +1813 58 +1219 895 +1178 311 +910 1142 +1221 1073 +855 857 +1622 125 +1252 776 +296 634 +196 245 +1282 651 +737 842 +1921 1160 +828 706 +1852 112 +1325 1087 +1828 230 +1104 1106 +970 723 +164 350 +1220 203 +1025 997 +1447 538 +204 340 +824 996 +1821 951 +658 102 +202 379 +1052 895 +796 382 +904 150 +1431 519 +1249 1033 +397 696 +99 188 +1021 726 +343 514 +723 248 +893 916 +1110 213 +1711 1189 +1961 958 +1062 101 +1481 1079 +1110 141 +1866 264 +1711 1075 +672 1104 +879 256 +587 90 +1081 948 +1495 1108 +1177 376 +1691 948 +1793 265 +327 147 +972 598 +909 1107 +1210 778 +315 440 +1541 434 +1762 108 +968 691 +1550 351 +1106 175 +434 428 +1822 260 +718 432 +634 1125 +1970 891 +114 280 +748 691 +574 379 +1834 773 +1682 115 +1005 567 +859 102 +1176 781 +1599 680 +1264 907 +1851 665 +502 477 +1424 306 +943 207 +780 697 +1303 614 +454 551 +1577 1116 +547 544 +714 596 +941 161 +667 433 +1052 187 +590 590 +899 600 +1041 648 +1072 1001 +835 355 +109 239 +549 1138 +596 1040 +758 111 +1066 879 +80 385 +1323 747 +988 1130 +378 452 +585 1135 +1199 759 +1476 813 +1135 1147 +460 296 +1037 1101 +227 377 +1219 164 +938 181 +1443 242 +811 750 +344 410 +1095 704 +1430 773 +749 1136 +1512 438 +1032 602 +1184 701 +541 279 +815 627 +527 551 +1280 692 +1383 209 +1265 401 +1764 876 +513 568 +1582 260 +216 427 +1868 836 +1705 374 +411 375 +1522 411 +826 149 +1125 1029 +1359 159 +337 456 +1987 435 +1115 696 +679 222 +1797 1111 +979 107 +1013 408 +1499 508 +1566 1136 +1434 190 +218 320 +1362 675 +968 1012 +879 1130 +1682 755 +1202 849 +1279 989 +518 1062 +1010 669 +908 980 +950 764 +1182 206 +405 107 +1278 88 +1961 737 +1044 1076 +845 729 +654 605 +1717 916 +866 349 +1874 599 +478 495 +576 132 +1064 1152 +1520 457 +953 618 +1923 418 +1919 84 +1543 1062 +1464 716 +691 603 +1145 736 +444 258 +1897 1026 +253 188 +282 664 +1686 641 +715 385 +621 1072 +1974 1186 +1558 591 +296 351 +1910 795 +1401 359 +1627 558 +1554 88 +1171 62 +1836 611 +400 +96 669 600 447 458 148 502 480 376 12 111 273 132 27 773 479 776 436 230 593 266 398 220 392 556 261 596 95 334 242 756 588 310 2 79 176 113 560 78 173 782 574 350 697 175 785 35 368 583 146 248 630 272 381 56 703 687 706 386 43 570 155 486 622 695 304 664 676 154 92 284 425 44 659 88 118 301 674 174 443 63 608 58 658 191 587 740 204 420 665 77 149 585 483 171 492 430 55 347 647 734 13 45 601 590 277 543 561 655 89 509 20 764 297 344 223 29 180 584 739 333 428 131 184 544 389 591 626 761 662 46 614 391 8 311 198 308 438 316 295 498 775 364 474 467 559 83 4 426 634 262 258 650 414 515 239 455 771 30 128 563 206 375 290 680 147 715 359 269 446 636 453 567 510 631 624 336 757 213 354 529 550 462 594 201 168 346 267 371 130 602 270 93 657 512 793 218 422 648 6 161 625 264 207 592 691 352 653 646 541 363 122 192 724 325 766 786 362 307 767 442 736 313 737 589 42 61 580 240 252 418 530 126 87 70 39 158 673 683 565 768 251 416 292 413 754 427 151 642 120 487 540 633 323 473 235 317 651 293 276 772 393 26 667 82 621 612 790 637 127 714 119 32 59 228 719 471 169 741 431 568 534 800 60 441 372 309 285 517 300 675 98 679 499 516 604 178 342 67 358 302 606 85 233 452 491 80 57 73 656 470 298 551 493 511 421 597 244 610 716 394 153 503 140 557 485 225 53 117 28 246 373 770 38 623 649 356 506 399 423 536 91 523 463 721 194 340 613 327 357 484 450 672 640 324 731 545 212 380 566 434 384 382 156 75 617 709 494 101 210 562 717 24 433 718 615 707 274 527 744 11 3 21 728 72 25 182 415 765 632 627 507 5 172 525 460 524 283 179 366 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/input.16 b/2018/republic/10-12_d2/senzori/tests/input.16 new file mode 100644 index 0000000..095f95a --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/input.16 @@ -0,0 +1,1795 @@ +168 621 42 +990 +101 625 46 +235 593 41 +218 656 38 +91 686 49 +124 660 28 +183 685 47 +192 764 35 +277 567 29 +183 807 28 +237 783 48 +192 728 29 +310 594 32 +142 595 27 +50 673 20 +230 556 33 +124 571 23 +199 854 28 +250 488 47 +234 879 24 +112 769 47 +269 666 22 +146 535 28 +50 780 28 +319 514 29 +233 438 21 +57 821 26 +50 861 49 +175 546 33 +303 670 34 +88 904 41 +229 911 22 +292 749 22 +351 573 49 +299 429 45 +257 407 44 +70 746 37 +289 805 27 +161 656 25 +350 631 44 +314 561 22 +306 375 22 +414 628 39 +442 603 23 +357 356 46 +263 892 32 +153 843 37 +342 432 29 +285 923 32 +420 369 42 +144 712 31 +450 417 27 +89 550 29 +339 695 21 +434 315 41 +390 396 20 +261 834 21 +314 813 25 +268 623 35 +220 964 42 +388 276 31 +296 878 21 +98 524 22 +167 882 24 +463 557 37 +433 260 32 +134 476 40 +371 606 20 +118 428 20 +184 401 41 +142 999 47 +112 396 36 +379 465 29 +250 1046 48 +442 450 33 +263 529 30 +458 215 36 +462 150 44 +66 509 20 +502 128 28 +536 194 45 +159 952 44 +224 741 29 +430 126 29 +459 518 31 +159 336 40 +352 776 31 +264 970 37 +294 959 23 +83 438 38 +230 1101 33 +123 881 28 +255 341 33 +402 538 22 +488 496 30 +524 245 41 +391 129 35 +333 994 46 +441 486 28 +358 73 45 +386 231 42 +73 996 41 +539 311 29 +128 816 28 +582 143 26 +618 123 21 +331 921 40 +198 1002 30 +479 598 40 +397 761 48 +262 716 42 +462 629 27 +311 1103 47 +368 411 23 +345 1161 39 +355 141 28 +413 570 36 +424 512 30 +415 1122 44 +437 814 42 +305 1162 22 +585 217 44 +371 728 29 +330 866 42 +358 806 21 +523 368 48 +379 983 34 +662 137 31 +242 283 48 +203 887 34 +711 113 26 +82 1051 33 +405 58 38 +164 1047 38 +475 275 27 +106 804 21 +462 355 22 +637 88 31 +592 274 31 +443 1167 41 +589 399 32 +527 592 24 +321 1142 20 +541 470 38 +369 859 21 +272 1082 23 +338 1074 28 +387 943 33 +522 412 37 +135 1076 33 +363 897 32 +300 56 39 +484 441 44 +230 374 38 +671 78 38 +407 1054 40 +550 557 46 +366 500 23 +429 886 36 +683 174 48 +331 163 31 +481 888 28 +185 439 25 +436 722 46 +264 117 36 +218 110 27 +577 107 37 +375 184 32 +510 691 39 +482 1185 35 +411 163 25 +274 1177 30 +200 1135 30 +339 316 41 +656 229 43 +175 291 40 +264 52 25 +377 528 28 +453 920 21 +610 435 22 +579 365 37 +92 946 24 +412 662 27 +573 494 36 +759 203 41 +209 267 25 +475 1028 37 +226 74 29 +476 972 48 +526 977 32 +189 66 32 +148 407 28 +589 68 33 +477 94 47 +315 742 24 +500 53 45 +607 620 47 +737 131 29 +486 1126 49 +59 552 25 +64 592 35 +97 350 32 +559 266 28 +445 993 23 +232 1009 32 +209 505 32 +581 447 25 +86 483 33 +314 1060 20 +685 663 49 +474 769 21 +767 87 46 +458 691 24 +637 185 21 +74 1099 21 +61 1154 46 +814 239 34 +213 306 22 +485 826 42 +528 856 48 +239 1163 37 +564 1163 43 +746 624 32 +407 922 20 +709 599 40 +291 325 44 +565 1123 26 +682 720 20 +419 215 24 +293 483 34 +615 375 27 +445 52 36 +627 287 42 +217 163 36 +316 118 29 +603 688 37 +613 545 42 +733 705 39 +358 1115 22 +580 889 47 +250 180 22 +870 250 44 +622 339 36 +765 585 27 +358 1056 21 +862 321 47 +921 216 30 +805 190 33 +512 947 23 +57 635 39 +392 1091 29 +834 118 48 +841 182 39 +652 454 32 +510 914 43 +176 174 34 +137 507 20 +124 1142 40 +800 341 30 +333 203 34 +347 231 22 +198 926 37 +721 552 28 +514 756 38 +151 58 41 +172 1176 43 +724 466 43 +568 943 26 +670 598 24 +225 698 37 +477 651 20 +149 271 21 +127 1038 24 +638 745 45 +787 154 37 +781 757 43 +156 125 48 +902 280 41 +698 426 28 +111 227 40 +512 291 27 +664 541 36 +888 170 22 +608 175 32 +518 1073 30 +583 976 39 +212 215 38 +807 560 38 +884 370 31 +186 362 33 +720 61 36 +316 278 39 +740 503 30 +889 70 46 +655 362 27 +542 65 42 +822 602 22 +200 1052 20 +289 148 21 +489 526 24 +427 1021 21 +561 741 48 +880 203 31 +649 954 36 +658 493 29 +776 511 28 +349 464 25 +800 400 43 +935 88 33 +114 175 33 +764 722 23 +759 653 27 +858 537 33 +787 687 25 +734 770 42 +583 1067 37 +718 254 38 +152 233 21 +802 442 25 +845 435 31 +698 300 36 +303 231 25 +609 866 20 +888 433 49 +691 350 23 +456 1070 30 +105 309 41 +791 643 27 +692 510 23 +516 1011 24 +699 812 47 +667 385 23 +167 1101 36 +620 657 20 +120 1181 22 +952 310 24 +735 304 28 +796 595 20 +648 801 21 +823 783 49 +930 474 22 +824 51 33 +946 183 27 +859 616 35 +884 635 27 +714 886 39 +742 930 41 +643 858 44 +603 1179 20 +59 367 30 +847 396 45 +949 275 20 +858 579 23 +313 777 37 +882 497 22 +549 134 22 +663 825 21 +91 846 32 +881 137 39 +912 600 35 +54 221 45 +505 155 23 +773 870 43 +483 330 39 +726 1008 45 +424 411 21 +100 93 39 +548 1046 25 +518 649 21 +654 898 30 +926 147 46 +879 756 48 +819 694 27 +268 215 35 +618 1089 40 +825 923 36 +396 506 21 +535 1180 24 +614 945 34 +677 566 20 +134 905 22 +414 987 29 +922 504 28 +948 572 43 +547 673 36 +598 306 26 +392 692 28 +892 556 34 +768 472 39 +364 1189 25 +737 386 29 +629 1005 29 +1024 561 43 +856 940 22 +943 432 48 +364 1019 29 +140 361 20 +309 713 28 +458 292 21 +902 900 48 +968 349 46 +835 972 35 +565 833 27 +943 913 34 +956 126 23 +621 409 31 +242 933 26 +620 1137 38 +569 606 29 +881 959 34 +379 1146 22 +859 1012 34 +860 673 36 +963 644 39 +917 358 31 +747 341 27 +634 1051 27 +1041 525 21 +1005 252 44 +873 704 26 +1024 305 27 +98 133 20 +754 418 22 +803 838 35 +812 1007 40 +193 1083 24 +912 682 49 +856 1067 35 +843 223 31 +793 954 33 +983 914 23 +975 872 21 +1010 918 27 +1015 405 35 +1077 549 39 +793 109 21 +771 298 23 +886 853 26 +1075 239 40 +487 235 33 +892 804 38 +1012 455 42 +523 1140 30 +69 145 24 +516 1045 25 +997 96 37 +957 468 25 +950 817 38 +1061 631 47 +58 92 45 +672 1030 49 +548 631 33 +671 1109 33 +912 1070 49 +674 1161 24 +923 1011 25 +1012 341 29 +962 500 32 +1051 275 45 +1027 154 42 +1084 337 31 +709 953 27 +448 1118 22 +466 377 21 +59 709 24 +386 159 21 +954 675 24 +901 1130 28 +928 391 26 +640 564 20 +820 1068 37 +1043 476 21 +767 549 26 +1114 305 24 +311 182 20 +1000 805 20 +1126 273 35 +1088 587 35 +829 649 35 +808 308 24 +702 1173 23 +349 953 32 +923 970 43 +723 222 21 +809 506 37 +852 849 37 +51 922 31 +154 755 41 +519 800 37 +292 642 25 +253 749 24 +1116 625 26 +741 1165 25 +204 594 21 +299 94 27 +845 1115 21 +683 111 28 +934 746 49 +991 499 22 +699 1079 44 +587 796 32 +433 946 23 +1038 196 24 +51 408 48 +923 50 21 +1127 235 32 +578 532 23 +698 984 28 +661 280 24 +81 52 27 +1162 633 45 +1031 825 26 +397 432 30 +776 616 20 +1227 681 42 +120 854 25 +769 806 32 +1052 700 28 +147 194 35 +735 846 33 +653 1078 29 +1273 670 43 +639 1188 43 +834 1153 36 +77 286 24 +544 1101 23 +268 1132 22 +1139 684 41 +1087 821 34 +1173 273 32 +776 1039 26 +158 572 29 +932 847 23 +888 1164 25 +960 1065 27 +1107 724 24 +340 718 22 +998 1057 32 +1011 187 29 +816 1113 22 +441 846 21 +1034 1087 35 +1093 1077 28 +950 534 22 +1034 759 45 +1066 450 26 +1114 471 32 +292 847 33 +1039 863 49 +1164 502 42 +1130 426 48 +895 992 25 +1111 364 42 +1189 337 45 +1209 748 38 +749 1111 46 +1072 404 34 +576 1029 22 +680 445 21 +1210 264 33 +680 1187 24 +200 472 21 +1042 1044 25 +1257 261 44 +1228 381 42 +957 64 27 +1253 322 37 +1186 552 45 +485 398 34 +740 1047 23 +952 1122 47 +1320 645 48 +1266 190 46 +1180 440 48 +1276 395 30 +1321 384 46 +713 1141 25 +1076 514 29 +841 747 26 +1005 1126 21 +994 530 33 +1135 1088 38 +1084 139 28 +1391 430 43 +1327 589 20 +1339 339 32 +1369 685 38 +792 1136 30 +1380 340 33 +1291 348 36 +1270 112 45 +1018 957 29 +651 637 34 +729 172 28 +1398 285 48 +840 711 25 +968 787 27 +1420 392 41 +1338 716 27 +1017 1186 49 +1201 787 33 +1150 536 21 +1201 179 48 +1219 584 31 +728 361 21 +973 225 24 +1254 793 30 +207 1182 25 +1444 443 42 +1084 876 37 +626 452 20 +963 955 37 +979 163 27 +1263 601 48 +1324 768 45 +1002 835 31 +664 412 29 +847 812 21 +765 987 34 +1075 909 27 +1388 638 25 +402 1181 25 +1139 900 27 +1065 940 30 +385 634 20 +1436 713 46 +1370 499 32 +1384 236 36 +1176 706 36 +1473 368 24 +1443 612 39 +1027 508 20 +51 173 24 +389 843 25 +1521 328 46 +1419 648 31 +969 711 36 +1182 887 48 +980 1170 20 +1451 258 25 +1220 446 28 +1454 338 45 +71 258 29 +1306 696 29 +90 1123 27 +1120 817 27 +292 530 21 +1104 794 29 +1341 196 30 +1303 848 43 +1324 554 29 +1539 409 48 +1334 292 21 +1352 821 42 +1318 484 36 +1046 94 28 +1044 330 37 +1573 453 29 +975 1022 41 +1151 775 43 +1197 219 26 +1148 1038 42 +1325 424 26 +1360 465 29 +1008 698 45 +1206 1028 32 +1289 898 24 +1483 661 42 +1154 1143 38 +1415 861 40 +1207 1123 29 +433 774 28 +1248 1144 20 +1436 909 34 +1195 992 23 +225 832 38 +1346 879 22 +1307 247 25 +1301 296 28 +1097 1008 30 +1607 361 41 +1629 405 20 +1384 719 21 +1503 899 42 +1036 1009 42 +1541 936 41 +1122 1177 30 +1174 828 37 +1285 511 31 +1530 685 44 +1152 923 24 +596 657 21 +1478 265 26 +1295 1153 49 +1671 446 47 +1281 61 37 +1448 944 29 +1341 1184 27 +1576 880 31 +184 250 34 +85 812 21 +1128 143 38 +70 340 25 +1251 874 27 +1436 807 21 +1712 394 35 +104 268 20 +1651 324 45 +1566 739 38 +1223 976 32 +1495 967 46 +1597 633 45 +838 1185 21 +1624 868 38 +1486 768 45 +1529 237 42 +1413 778 29 +1087 175 44 +1766 369 39 +1401 941 20 +559 405 22 +1240 1165 24 +1755 423 42 +1426 966 28 +1645 276 24 +920 1186 25 +1065 1143 41 +1181 1086 24 +988 604 49 +1596 830 37 +943 243 24 +1163 95 34 +1492 1027 42 +1552 1062 37 +1227 78 22 +1289 460 34 +1228 201 20 +845 897 23 +1506 617 41 +1572 321 31 +1404 598 33 +1289 938 48 +1644 653 35 +1249 825 20 +1602 1053 29 +1650 692 41 +1219 1080 24 +533 518 31 +1166 381 48 +1712 314 24 +485 733 30 +773 375 22 +1614 577 48 +1565 569 20 +1482 1102 38 +1484 849 35 +1757 302 47 +1235 1060 22 +1490 730 28 +1614 740 46 +1138 332 32 +1321 901 35 +1513 816 21 +1572 383 23 +1619 1077 22 +1556 211 24 +838 289 26 +353 673 25 +294 1000 29 +1301 147 23 +1165 224 33 +1553 781 46 +1581 1012 33 +1602 213 46 +1703 678 39 +1187 670 35 +1690 216 47 +1399 184 47 +1556 538 25 +56 305 32 +241 245 24 +899 316 21 +1275 435 20 +1585 950 41 +1723 200 26 +1634 191 21 +1683 855 41 +1421 490 41 +1805 312 47 +1567 507 32 +1122 651 24 +1736 719 33 +1078 78 31 +1733 632 23 +1658 177 31 +449 656 30 +1116 534 43 +1672 812 35 +1626 818 21 +1659 612 25 +999 52 39 +825 469 35 +1771 218 48 +388 375 21 +1358 548 26 +681 960 25 +1384 974 46 +1334 1012 43 +1603 983 30 +1294 1041 44 +1032 664 31 +1543 593 28 +1698 588 40 +1764 265 27 +795 716 34 +1476 1147 34 +1836 383 41 +1296 216 30 +1679 504 28 +1462 237 21 +1842 448 30 +1613 531 30 +1765 147 35 +1267 1117 28 +1442 554 40 +1731 507 44 +1376 1160 26 +1285 774 24 +1684 302 33 +1651 503 20 +1506 1145 23 +1730 912 49 +618 495 21 +1646 1014 27 +1305 590 23 +1232 1006 21 +1247 764 25 +1540 1142 23 +1775 85 34 +1857 480 24 +1423 229 28 +1442 1041 35 +1086 309 24 +766 269 33 +1434 1116 34 +1387 893 31 +1909 421 47 +1160 307 29 +1913 488 33 +1625 913 24 +1587 477 25 +1578 167 31 +152 792 22 +1357 365 24 +1711 776 46 +1808 180 36 +1666 481 20 +1632 783 23 +1812 258 24 +1467 525 34 +1646 979 40 +1071 982 36 +1115 74 39 +1564 1105 49 +1691 1012 44 +1175 151 22 +1825 145 29 +1683 909 41 +1516 137 45 +1142 807 20 +1479 179 25 +1865 118 32 +1863 318 34 +1899 120 21 +1362 1127 30 +1785 744 40 +1513 495 25 +1104 962 28 +1661 136 27 +1344 264 35 +1526 72 24 +1296 984 21 +396 724 21 +1538 1176 42 +1735 578 26 +1611 687 23 +1528 849 36 +174 496 31 +730 429 23 +1888 526 20 +1437 1176 35 +1329 66 33 +1354 927 27 +652 1133 26 +1323 801 20 +1852 174 20 +1247 221 23 +1643 895 26 +1360 1041 23 +1558 986 20 +1218 617 22 +1548 889 21 +1798 126 30 +1432 158 24 +1698 144 32 +1716 59 49 +1488 422 32 +1766 783 23 +1832 753 34 +1262 985 30 +1334 1103 21 +1427 125 39 +1361 109 33 +1861 735 27 +90 200 26 +1449 784 23 +1821 219 23 +565 697 20 +1272 734 41 +1144 190 38 +1799 384 32 +1395 1136 29 +1875 287 29 +1417 1071 20 +921 538 34 +989 299 42 +1513 558 41 +811 885 22 +1662 1040 30 +1805 427 29 +636 512 24 +1768 687 45 +1085 661 28 +1232 1108 27 +1811 669 37 +1923 349 32 +1733 369 24 +1757 970 21 +1787 528 41 +1372 387 22 +1460 163 20 +1190 955 34 +900 338 20 +1789 906 47 +1730 982 29 +1556 85 23 +1978 316 48 +489 1072 28 +1616 1130 27 +1912 730 36 +1804 842 24 +398 885 26 +1378 78 20 +1665 58 33 +1215 487 37 +1121 985 29 +1523 746 23 +1312 730 20 +1135 609 23 +1623 148 49 +1420 80 44 +1455 86 25 +1728 229 30 +1821 800 21 +1881 378 43 +765 1066 23 +1730 129 38 +1720 455 39 +1075 1103 24 +1556 357 20 +1654 778 22 +1886 163 34 +1159 127 28 +1325 146 21 +1742 1075 48 +1956 519 44 +1593 1159 44 +790 1187 31 +1729 819 40 +1680 393 24 +1651 844 24 +1187 50 39 +1110 924 23 +1677 745 43 +1589 67 43 +1739 165 25 +1837 936 26 +1815 1119 45 +1086 704 31 +1263 1080 26 +1377 795 24 +800 +1639 446 +1682 755 +179 1036 +849 126 +1423 763 +1204 173 +869 1061 +374 909 +1166 502 +556 878 +1240 335 +103 1032 +1204 1143 +921 817 +1114 1164 +51 335 +1487 1112 +400 710 +404 806 +693 787 +132 521 +1614 1168 +73 442 +205 526 +641 1090 +818 701 +611 890 +186 560 +1368 407 +682 1104 +1730 696 +1922 331 +1441 714 +1549 1112 +636 834 +1289 1158 +582 357 +749 419 +136 352 +580 586 +291 129 +582 770 +1815 1144 +1460 469 +140 889 +131 455 +168 977 +893 389 +133 161 +386 517 +470 118 +1314 557 +1158 774 +1913 359 +482 761 +446 574 +1353 924 +1281 845 +606 251 +939 424 +457 469 +1491 809 +1438 1015 +743 334 +794 1162 +700 155 +704 930 +859 241 +412 425 +553 652 +1550 214 +365 1046 +725 957 +1265 638 +823 795 +1213 385 +941 1047 +641 310 +888 668 +748 636 +1522 381 +324 1053 +260 294 +1622 646 +192 293 +163 719 +1584 826 +1005 99 +470 715 +1058 293 +1738 487 +1410 382 +1046 1000 +121 433 +777 640 +1107 489 +988 86 +1525 545 +1769 242 +1634 867 +1755 93 +1390 906 +628 249 +70 875 +1023 582 +1557 306 +1118 65 +200 361 +314 172 +1135 260 +684 849 +1150 627 +1156 274 +1088 1032 +1147 559 +816 392 +457 1165 +1520 179 +732 831 +354 601 +894 231 +1789 711 +1387 835 +918 768 +1534 410 +1431 345 +345 1084 +710 1055 +1410 258 +721 765 +901 530 +1691 276 +1336 1088 +1064 975 +861 427 +1316 390 +496 618 +319 627 +1084 840 +328 680 +938 1187 +427 356 +324 355 +1570 695 +1316 962 +141 916 +948 472 +1078 104 +598 54 +1198 961 +1350 773 +631 1019 +1303 539 +650 620 +259 370 +224 149 +957 217 +1741 279 +694 332 +1141 198 +1142 748 +1647 556 +829 1153 +1669 127 +1106 704 +1685 847 +775 605 +694 107 +1309 192 +1272 1093 +1447 591 +819 76 +1762 291 +457 254 +1355 812 +562 76 +1495 1080 +761 1095 +1272 787 +1595 671 +1719 993 +1582 549 +1453 1106 +101 854 +1542 898 +516 401 +642 595 +247 883 +1009 1170 +1366 1020 +365 113 +1753 368 +1009 456 +632 983 +695 682 +1471 389 +599 192 +1555 182 +1188 741 +450 357 +549 116 +1565 814 +530 870 +119 808 +500 862 +1654 608 +534 1058 +66 605 +1987 274 +1407 52 +195 102 +958 836 +1003 234 +702 614 +1807 737 +557 754 +1782 1107 +561 376 +1731 851 +1210 870 +165 900 +631 938 +550 802 +1300 736 +1332 444 +387 129 +1323 58 +346 909 +649 481 +1826 656 +1293 501 +1864 143 +260 602 +678 949 +398 922 +227 929 +1524 723 +1928 395 +813 300 +1609 724 +184 807 +1622 297 +701 1025 +111 404 +530 691 +63 55 +1143 434 +929 72 +1289 375 +771 1044 +586 159 +1562 1165 +293 732 +1165 178 +1585 1145 +65 700 +1124 1054 +462 960 +103 884 +1136 355 +439 455 +892 716 +116 223 +801 515 +884 564 +936 513 +745 731 +1007 337 +166 146 +1046 609 +1329 242 +863 670 +826 893 +1227 285 +1006 966 +765 707 +584 966 +889 1168 +1779 400 +453 182 +1683 86 +1452 352 +567 955 +767 189 +1763 141 +682 282 +1602 1010 +571 142 +1696 883 +243 956 +891 330 +1836 451 +1640 394 +478 262 +512 917 +1599 778 +531 497 +1241 395 +1497 223 +360 282 +1504 158 +1942 484 +935 834 +468 509 +1515 87 +141 956 +483 383 +235 652 +746 155 +806 639 +914 1087 +1053 387 +101 88 +1541 1038 +1545 651 +1356 290 +1111 863 +253 764 +691 635 +1659 769 +781 147 +1767 799 +1419 572 +1649 704 +519 1152 +440 1098 +780 872 +1408 612 +1808 387 +1174 54 +954 500 +1324 331 +1348 313 +480 404 +1669 991 +75 747 +123 491 +1046 111 +930 1168 +1648 819 +409 314 +814 925 +1030 808 +716 213 +1659 238 +1472 751 +1644 119 +857 196 +1527 688 +1578 101 +857 968 +345 769 +679 1011 +1260 956 +1374 482 +808 191 +733 479 +790 356 +782 110 +1181 319 +919 678 +585 1176 +180 527 +1813 1114 +1693 703 +798 383 +812 245 +453 840 +541 359 +554 1129 +1056 884 +1735 1092 +777 938 +886 798 +556 522 +881 959 +1700 227 +851 625 +1204 1070 +458 982 +1046 79 +1369 706 +657 1188 +1151 228 +900 161 +818 749 +1486 678 +931 568 +1177 344 +236 1174 +315 329 +154 108 +826 265 +954 543 +611 481 +261 1168 +350 801 +1015 545 +188 1061 +1178 203 +1810 792 +1805 226 +225 499 +1340 545 +1611 518 +1078 627 +1226 656 +724 239 +646 267 +1325 634 +1668 1015 +429 116 +794 548 +300 57 +217 261 +249 790 +573 645 +1585 888 +1559 1140 +1448 106 +1576 1109 +904 438 +845 866 +1978 496 +435 742 +149 255 +1663 916 +1448 162 +183 322 +1312 277 +1147 900 +1703 207 +924 492 +1186 152 +846 543 +1729 668 +1423 892 +1592 1029 +389 1144 +502 710 +1154 1045 +116 283 +214 997 +655 879 +270 478 +698 76 +366 1182 +955 362 +1377 609 +279 1039 +1524 998 +480 803 +233 579 +1319 1148 +1085 664 +885 204 +1427 1091 +1060 1140 +293 296 +789 277 +917 646 +1299 305 +356 677 +613 427 +1574 577 +321 207 +707 549 +1391 685 +1538 1173 +595 1152 +344 631 +86 478 +1561 1016 +669 258 +665 859 +1085 951 +505 1125 +1035 1064 +1113 122 +944 809 +571 418 +397 86 +910 921 +1328 1012 +1458 685 +266 421 +1341 492 +1471 287 +532 812 +338 326 +1039 512 +567 926 +601 806 +1976 351 +1423 937 +107 158 +1186 606 +1536 244 +416 1178 +938 689 +1753 739 +1067 1115 +57 1128 +1333 1172 +480 641 +139 837 +250 94 +282 578 +411 880 +307 974 +1512 1099 +1210 135 +274 1185 +1019 668 +1010 1101 +1426 66 +689 524 +1014 692 +1722 577 +1225 443 +678 237 +1841 302 +1516 285 +653 290 +758 1123 +67 1032 +672 989 +1251 784 +1387 1124 +422 613 +245 425 +1135 375 +1034 185 +328 257 +1223 1162 +1198 518 +988 1043 +1035 343 +379 799 +1116 300 +1558 376 +824 418 +729 1096 +1303 579 +605 543 +1395 159 +177 395 +1099 370 +1148 457 +434 397 +674 119 +455 233 +1274 99 +229 194 +946 952 +954 635 +1519 1182 +1552 55 +231 375 +1310 940 +562 998 +720 158 +1660 318 +1420 850 +1685 654 +601 1119 +734 199 +1708 119 +1692 825 +1096 1087 +1464 195 +444 642 +1319 829 +1107 328 +1761 117 +1014 492 +1047 688 +980 294 +789 786 +176 1095 +1305 757 +358 173 +546 957 +1737 182 +213 632 +1657 486 +397 611 +516 268 +679 1062 +1749 1038 +1088 719 +296 400 +1193 655 +1539 365 +195 679 +1540 776 +913 280 +614 768 +1273 614 +89 777 +135 762 +905 351 +1184 698 +147 794 +337 929 +774 892 +1168 1081 +1028 1134 +994 213 +123 627 +1508 875 +1541 870 +1145 534 +1055 1030 +537 850 +1416 703 +85 619 +204 869 +195 144 +1749 781 +572 56 +889 764 +1779 203 +1047 456 +101 109 +1803 338 +1299 107 +1300 599 +1116 779 +533 744 +758 234 +1724 919 +1440 903 +298 1090 +1244 120 +454 147 +1199 716 +586 1098 +1110 899 +316 476 +724 1142 +416 211 +411 268 +482 852 +1534 962 +1844 937 +1335 415 +1732 939 +377 953 +1743 980 +1723 1063 +1639 269 +1399 501 +275 823 +651 955 +1024 387 +167 1165 +505 365 +546 475 +157 593 +362 554 +1172 79 +56 962 +362 481 +1774 779 +1806 500 +917 462 +1518 481 +1937 545 +62 792 +1558 536 +734 444 +1620 548 +1854 339 +1182 426 +1684 908 +270 913 +1631 466 +727 979 +1432 1037 +103 834 +883 60 +1488 918 +774 1138 +347 449 +1243 206 +387 693 +137 1132 +704 498 +945 1072 +805 437 +1829 916 +611 288 +1378 731 +1432 821 +616 584 +1501 116 +1815 429 +290 84 +779 1025 +1094 572 +509 803 +1795 160 +1832 174 +560 229 +1468 249 +340 199 +1856 281 +1933 354 +60 1065 +470 868 +1796 913 +1315 1071 +399 491 +1104 200 +1619 160 +1819 289 +497 476 +218 754 +225 218 +997 865 +1254 162 +218 731 +834 1177 +525 156 +125 335 +1483 641 +1063 853 +63 902 +1390 187 +404 228 +1510 763 +1491 605 +464 98 +940 668 +783 69 +531 205 +627 191 +1816 899 +528 444 +1785 679 +1690 61 +728 538 +1618 219 +145 695 +683 1173 +1736 138 +1604 843 +1307 991 +1596 159 +486 1146 +1509 309 +1477 175 +789 842 +234 170 +216 710 +1915 699 +749 536 +202 1183 +1234 183 +356 868 +1438 957 +370 344 +227 300 +1347 136 +1779 533 +1359 175 +459 806 +1391 322 +229 461 +428 1042 +1642 1059 +425 474 +54 201 +372 882 +98 960 +1338 262 +1463 528 +1333 686 +877 1082 +565 1164 +1812 768 +493 895 +959 764 +166 1059 +998 410 +404 383 +1125 478 +1207 430 +951 104 +1490 258 +588 615 +1174 1131 +222 962 +1691 483 +728 803 +197 1021 +817 573 +1861 375 +727 692 +330 +897 498 730 233 221 672 47 571 977 606 244 693 411 85 554 838 630 448 826 611 417 128 834 75 548 452 894 502 881 53 796 281 470 978 82 445 70 666 610 496 858 530 259 690 46 905 734 621 857 479 449 726 143 771 655 657 675 605 71 97 438 247 132 567 757 186 379 161 2 912 260 305 806 849 562 538 872 25 565 348 712 139 324 416 760 455 446 469 426 762 966 812 301 169 854 673 101 290 725 513 351 842 817 45 674 972 190 74 980 92 525 983 906 343 915 705 524 487 488 330 985 406 648 238 19 342 465 60 908 179 964 564 934 412 763 976 721 910 385 916 177 575 202 724 26 23 848 413 387 437 172 722 516 33 76 729 270 769 472 504 933 39 251 789 344 265 486 844 68 497 476 777 185 154 943 707 523 327 959 461 374 647 663 632 165 475 228 670 584 918 652 914 638 752 576 318 63 940 608 533 821 873 113 878 198 753 299 617 613 701 917 275 125 595 365 733 574 392 322 235 144 948 72 331 827 623 292 397 787 21 764 503 904 341 601 704 140 182 649 929 346 116 865 949 783 501 639 423 491 921 81 462 434 809 981 410 522 478 105 780 592 971 625 430 474 767 414 287 482 151 664 499 887 150 588 316 833 261 824 870 886 149 129 558 825 557 514 519 879 306 520 16 984 155 785 338 970 364 659 901 329 508 466 749 88 640 644 102 457 535 326 7 286 720 900 776 195 369 136 679 547 628 890 822 852 495 230 319 93 755 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/input.17 b/2018/republic/10-12_d2/senzori/tests/input.17 new file mode 100644 index 0000000..ea7886d --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/input.17 @@ -0,0 +1,1795 @@ +1749 219 25 +990 +1709 238 28 +1717 269 35 +1690 296 27 +1758 280 46 +1789 242 35 +1737 323 41 +1777 322 39 +1678 246 29 +1684 358 29 +1800 188 29 +1648 263 20 +1693 183 35 +1757 161 26 +1785 144 34 +1810 123 25 +1772 383 49 +1777 71 40 +1612 272 32 +1562 251 29 +1827 267 24 +1669 110 46 +1645 371 21 +1855 301 48 +1564 204 43 +1530 165 37 +1825 67 38 +1609 315 42 +1539 111 32 +1571 166 29 +1874 68 24 +1651 341 38 +1757 426 26 +1736 370 23 +1852 262 25 +1842 183 47 +1715 98 25 +1510 220 28 +1584 358 46 +1510 347 44 +1666 420 47 +1903 171 26 +1694 461 29 +1524 429 46 +1731 422 20 +1443 406 49 +1630 225 39 +1604 68 47 +1419 343 43 +1575 417 31 +1796 443 32 +1417 464 47 +1815 363 20 +1681 325 27 +1840 449 43 +1637 147 43 +1495 296 27 +1519 250 23 +1908 412 40 +1852 496 24 +1641 484 32 +1958 411 35 +1870 367 43 +1910 63 32 +1923 112 26 +1370 306 27 +1907 295 22 +1346 271 27 +1394 417 26 +1890 252 39 +1467 530 43 +1885 513 31 +1548 536 48 +1504 603 37 +1967 292 44 +1720 138 38 +1554 312 37 +1371 384 30 +1493 400 30 +1511 507 28 +1731 189 37 +1336 237 28 +1852 554 48 +1908 569 43 +1856 608 49 +1669 522 39 +1353 475 36 +1900 325 28 +1933 347 28 +1932 194 29 +1579 106 38 +1335 415 30 +1618 191 22 +1974 336 37 +1915 494 29 +1704 571 32 +1402 551 32 +1563 592 25 +1837 143 24 +1606 448 36 +1304 390 37 +1316 333 49 +1476 113 49 +1976 124 37 +1774 198 23 +1285 190 46 +1460 228 32 +1798 96 20 +1392 234 47 +1291 486 37 +1429 138 31 +1399 189 26 +1481 489 38 +1386 122 37 +1686 50 30 +1592 537 22 +1381 59 30 +1601 640 47 +1367 560 22 +1397 589 30 +1790 505 38 +1289 285 40 +1879 106 44 +1805 626 38 +1723 613 37 +1730 488 37 +1425 62 28 +1449 274 27 +1232 242 31 +1541 386 28 +1628 427 22 +1953 589 20 +1948 246 40 +1312 568 42 +1962 532 29 +1725 653 20 +1694 650 24 +1767 611 27 +1637 620 32 +1750 696 38 +1647 662 37 +1396 280 25 +1546 64 33 +1454 651 38 +1199 277 43 +1689 609 30 +1471 350 32 +1328 82 31 +1740 768 40 +1671 272 24 +1487 191 33 +1370 193 23 +1269 135 34 +1593 149 26 +1657 298 25 +1867 653 28 +1704 732 20 +1644 702 37 +1682 683 41 +1257 563 46 +1274 630 46 +1212 629 41 +1625 753 29 +1780 475 25 +1322 647 33 +1775 557 43 +1553 644 41 +1563 710 48 +1243 386 42 +1663 784 44 +1189 589 28 +1296 529 35 +1833 107 29 +1715 404 20 +1567 486 44 +1803 289 24 +1239 332 34 +1388 639 38 +1728 733 22 +1424 100 33 +1260 502 20 +1703 849 36 +1640 581 20 +1605 395 32 +1604 706 29 +1916 636 45 +1900 201 29 +1292 687 33 +1216 527 46 +1283 433 43 +1269 256 20 +1834 678 39 +1200 350 45 +1343 542 34 +1435 201 26 +1785 836 45 +1161 212 40 +1130 293 37 +1211 421 24 +1582 804 47 +1808 740 47 +1516 722 42 +1113 356 46 +1512 564 24 +1511 800 46 +1140 628 42 +1373 344 42 +1480 817 24 +1160 387 49 +1633 849 26 +1053 334 35 +1225 721 45 +1463 58 42 +1734 889 36 +1382 514 42 +1680 731 28 +1452 727 42 +1307 124 40 +1202 142 40 +1460 859 45 +1843 863 39 +1404 698 21 +1128 125 43 +1517 872 38 +1242 100 46 +1945 483 28 +1340 150 31 +1876 842 28 +1150 566 25 +1137 457 32 +1453 908 44 +1776 656 22 +1139 71 47 +1510 678 30 +1199 86 36 +1122 172 23 +1155 161 37 +1059 271 44 +1116 202 26 +1534 576 25 +1499 149 29 +1180 746 22 +1934 838 39 +1571 929 47 +1078 51 35 +1240 199 45 +1636 910 39 +1904 873 36 +1622 952 25 +1259 304 28 +1088 386 29 +1463 592 27 +1938 679 47 +1860 782 46 +1319 746 45 +1279 76 28 +1157 490 34 +1223 670 28 +1969 721 34 +1756 950 43 +1324 794 23 +1778 1026 43 +1416 767 32 +1104 452 34 +1424 826 25 +1731 818 40 +1383 771 24 +1414 874 33 +1011 53 48 +1700 786 24 +1070 101 32 +1092 190 20 +1828 412 32 +1007 367 49 +1637 550 35 +957 321 40 +1929 728 38 +1402 84 20 +1015 230 34 +1901 767 35 +1806 914 34 +1538 948 20 +1983 153 20 +1114 660 28 +1020 97 22 +1191 696 39 +1043 471 37 +925 305 24 +1164 775 38 +1157 660 29 +1099 244 38 +1358 738 32 +1103 484 20 +1982 448 27 +1202 466 34 +1638 993 25 +1710 1015 37 +939 361 37 +1916 940 39 +1077 616 34 +1142 711 48 +1503 964 42 +1822 1066 46 +1099 85 21 +951 79 22 +1891 960 25 +1035 578 44 +1247 464 33 +1431 515 30 +1949 902 28 +1571 873 41 +1067 425 41 +890 295 29 +1455 457 24 +1315 838 37 +922 86 23 +1877 730 33 +1583 748 25 +1130 828 32 +1898 666 20 +1662 970 29 +1005 190 48 +919 126 25 +1454 955 25 +1418 973 22 +890 341 37 +1374 92 24 +1696 919 31 +1873 991 43 +862 276 34 +1468 780 27 +1362 834 33 +1093 587 30 +1281 811 21 +1626 1044 34 +998 640 38 +1882 1037 36 +1946 788 20 +1676 491 23 +1834 966 32 +1095 709 42 +1944 95 23 +952 647 37 +1753 1073 29 +876 394 37 +1688 1040 21 +1869 920 40 +1139 246 35 +1984 74 28 +959 111 33 +1178 859 29 +932 243 41 +893 172 47 +1023 667 33 +1745 448 22 +1601 578 35 +1025 312 27 +862 79 47 +917 705 48 +1591 1035 23 +1975 618 39 +1246 767 37 +1177 439 27 +937 601 33 +1238 869 47 +1834 934 21 +996 142 31 +1844 1119 45 +1975 945 42 +1632 800 21 +1285 933 44 +1891 468 34 +1111 868 34 +1156 918 39 +846 202 49 +1000 451 26 +863 143 29 +904 212 24 +1791 683 30 +840 321 21 +1543 765 40 +1202 564 24 +1810 794 44 +1745 576 21 +1934 311 27 +1692 153 23 +1340 610 47 +1425 587 20 +1023 721 37 +1405 923 34 +873 612 40 +1695 808 20 +1041 773 46 +975 532 34 +1926 465 23 +1101 913 39 +964 394 44 +1071 972 46 +1082 160 42 +811 79 42 +1302 884 36 +1820 332 32 +1019 1009 32 +1612 991 22 +1989 202 24 +1066 526 37 +756 82 24 +1368 924 21 +991 298 37 +1380 972 36 +1950 52 44 +956 994 37 +1690 1080 31 +1327 951 41 +1186 941 20 +759 121 38 +941 950 24 +838 561 30 +1802 879 24 +938 886 49 +949 558 34 +876 790 49 +943 212 21 +842 641 22 +1839 377 22 +1575 995 30 +1393 806 40 +1186 919 20 +1032 910 49 +1037 542 26 +963 493 26 +1095 1034 47 +1989 877 40 +891 652 42 +1895 1156 37 +782 245 45 +925 488 21 +967 150 25 +1591 1078 49 +1718 967 38 +1844 722 30 +1720 1054 43 +887 465 45 +762 194 23 +989 924 40 +890 926 31 +1369 1021 31 +935 527 30 +1915 998 22 +785 631 43 +1384 897 22 +1072 484 25 +1657 835 26 +930 757 38 +861 699 20 +901 742 27 +1380 163 27 +719 193 23 +861 519 37 +829 459 31 +917 830 24 +1061 836 42 +1310 1016 37 +1364 690 44 +1773 106 21 +1557 1054 32 +769 701 34 +740 595 43 +1548 820 25 +814 605 31 +1002 868 27 +1272 730 24 +1118 983 27 +1285 592 27 +1556 1154 40 +1205 844 24 +1974 756 30 +854 482 21 +1363 1096 48 +1102 1097 25 +1511 1059 45 +1476 1165 49 +1859 1188 46 +797 185 28 +1443 1087 38 +1119 575 20 +1815 1010 20 +784 428 45 +1677 1128 48 +1948 997 33 +1589 249 23 +782 379 44 +1446 312 36 +665 191 37 +1127 1067 39 +628 160 34 +1733 1185 46 +838 678 22 +1198 789 31 +700 221 21 +1982 511 21 +1790 1077 21 +688 636 46 +1321 985 21 +836 497 24 +1119 544 26 +1041 168 31 +1035 625 38 +1768 1169 27 +1078 1131 47 +1637 1100 38 +1279 1007 26 +1984 1036 38 +727 555 40 +1987 1003 25 +646 538 46 +1015 1090 40 +843 724 21 +1429 1021 45 +1377 454 26 +952 276 36 +740 684 25 +1574 839 24 +996 94 24 +1982 481 37 +647 580 36 +1310 51 27 +786 596 20 +578 174 45 +1938 1106 37 +1801 983 36 +707 69 46 +1311 1089 28 +1915 1073 42 +753 341 40 +1359 1142 29 +638 214 33 +1022 1136 22 +1410 385 22 +805 808 30 +1346 1046 26 +878 828 21 +1784 769 26 +1770 1113 43 +595 503 27 +724 457 46 +1107 1181 41 +1182 1034 40 +551 144 33 +1482 1015 45 +1094 293 31 +1024 846 21 +1120 796 25 +934 812 24 +989 579 23 +817 313 26 +903 1013 24 +1893 817 20 +1427 1139 31 +594 207 25 +716 307 42 +659 106 21 +1027 124 24 +665 366 47 +1514 468 22 +1323 456 23 +865 315 29 +1671 1178 34 +792 854 49 +895 885 29 +1221 1000 45 +1218 1044 20 +1094 778 25 +669 695 33 +1539 609 24 +765 920 33 +998 979 32 +835 403 42 +1191 822 28 +691 496 22 +741 508 42 +634 700 31 +1326 1062 23 +1823 834 24 +1005 405 26 +1073 933 26 +1936 1171 35 +859 957 43 +596 238 37 +1425 1179 46 +1631 1176 34 +806 981 27 +1128 1128 23 +790 470 39 +1250 1067 39 +1239 423 23 +1209 959 29 +1117 405 27 +616 119 46 +1343 891 33 +1025 1045 20 +1296 1151 37 +1512 1138 36 +1880 140 21 +1267 703 23 +1209 1098 49 +931 1057 36 +1261 835 30 +1177 1072 25 +1915 273 24 +733 253 38 +1794 1171 21 +1193 884 26 +703 419 38 +1979 788 25 +977 777 38 +1154 540 22 +882 1045 26 +983 693 20 +605 353 37 +633 657 35 +721 711 32 +714 761 43 +762 973 35 +965 1039 28 +929 1112 36 +590 461 40 +625 756 43 +651 824 46 +971 730 35 +831 858 28 +702 990 49 +889 131 28 +981 856 21 +1489 262 37 +1962 564 29 +707 148 34 +1257 1133 30 +855 1138 49 +1538 844 20 +624 884 32 +639 1011 47 +1162 1124 29 +1441 556 29 +1673 875 43 +682 887 27 +912 1178 43 +546 496 47 +1061 1034 20 +803 1160 37 +790 744 43 +688 568 40 +617 57 30 +1511 120 22 +733 1184 45 +527 346 47 +651 932 48 +848 881 29 +859 1093 38 +1008 509 30 +1161 326 39 +944 446 36 +1959 173 24 +1860 1055 20 +656 436 21 +550 574 42 +462 395 44 +857 1025 32 +942 925 20 +587 874 22 +1007 474 21 +521 605 23 +559 233 28 +807 684 28 +613 969 33 +1496 931 21 +506 397 34 +1773 914 20 +1124 428 21 +520 457 38 +895 428 25 +956 181 33 +586 1009 31 +1201 175 22 +1855 228 33 +1642 187 25 +727 1024 31 +1525 921 28 +567 62 26 +1068 1092 22 +630 264 23 +639 481 44 +898 74 24 +703 1147 41 +1951 374 31 +624 420 30 +780 1189 27 +464 477 48 +832 248 35 +811 138 22 +797 567 40 +1650 452 24 +762 1136 35 +699 817 35 +1161 1175 22 +709 343 28 +839 159 22 +477 359 21 +878 239 46 +1667 72 23 +539 1051 38 +566 908 36 +666 752 36 +1728 65 40 +751 172 25 +1628 102 35 +1239 1171 49 +974 1133 34 +741 997 21 +445 549 38 +426 341 45 +378 578 41 +1077 803 25 +324 595 45 +557 763 40 +643 1145 26 +592 1066 24 +594 299 45 +555 971 23 +1012 1188 40 +1242 915 24 +530 185 49 +677 1038 31 +871 561 23 +1150 1007 38 +811 949 21 +1481 1082 21 +772 786 25 +1142 958 26 +978 818 26 +827 1103 20 +790 1018 39 +1215 308 25 +1958 1062 20 +487 1059 37 +633 853 22 +527 845 49 +1817 587 22 +745 50 32 +591 790 24 +1298 968 22 +714 669 28 +543 997 24 +441 1001 46 +807 1118 23 +1664 944 22 +929 391 21 +370 330 28 +515 240 31 +502 668 48 +480 323 45 +665 160 21 +708 1068 35 +394 1008 36 +461 198 42 +951 1155 26 +450 926 46 +1491 758 24 +1417 657 24 +397 222 38 +392 278 42 +981 1016 20 +787 1084 41 +547 688 32 +334 273 44 +1461 150 26 +527 50 36 +598 633 22 +519 103 44 +731 945 46 +1737 548 22 +820 660 25 +493 961 44 +813 344 34 +355 161 47 +587 1127 38 +896 849 20 +502 778 27 +363 1009 20 +288 260 36 +450 69 41 +304 670 38 +905 574 38 +391 907 20 +1056 372 22 +558 400 47 +337 986 47 +1359 222 22 +971 1187 39 +734 824 30 +773 302 27 +311 1027 36 +477 757 35 +1615 515 39 +1714 523 22 +443 639 31 +629 1061 28 +368 525 38 +355 685 30 +1066 680 22 +274 633 44 +1179 57 23 +504 148 22 +459 1112 35 +306 942 33 +285 301 30 +303 564 25 +425 751 35 +640 310 49 +1075 746 29 +1263 354 22 +346 98 38 +444 853 47 +490 1108 27 +557 940 26 +466 124 39 +230 930 49 +1725 1145 33 +224 981 39 +1746 989 28 +221 1043 42 +697 114 27 +621 1184 40 +226 593 30 +1268 233 20 +326 213 41 +270 522 49 +242 320 23 +480 281 32 +406 833 33 +1316 922 20 +570 96 22 +399 884 22 +1049 869 21 +287 138 39 +1820 1183 22 +457 1158 30 +1288 850 20 +284 1079 36 +389 1040 24 +335 453 49 +494 533 32 +520 916 40 +999 1038 33 +209 865 25 +649 973 28 +501 1014 44 +1444 802 30 +1506 66 35 +409 91 49 +340 1092 32 +1286 1069 28 +1081 658 23 +549 310 36 +1486 891 24 +614 1105 30 +665 1176 21 +380 949 26 +273 430 48 +539 1099 31 +541 1141 26 +1058 1175 31 +199 815 41 +1321 1187 45 +223 351 42 +703 385 27 +166 1000 41 +1929 600 23 +190 428 40 +1353 69 22 +362 1068 25 +145 1037 21 +376 844 28 +937 59 24 +416 1186 43 +408 178 37 +340 835 27 +896 1078 21 +248 864 32 +1601 772 25 +745 1053 30 +438 267 26 +147 808 22 +107 1004 45 +567 723 33 +412 1082 48 +499 567 36 +277 700 22 +745 630 22 +1330 508 36 +1405 1085 30 +375 1130 32 +377 1158 24 +225 260 44 +183 928 39 +1837 1017 23 +1967 848 21 +1017 433 20 +364 1182 20 +278 804 42 +327 504 49 +1926 527 26 +238 78 48 +252 773 35 +195 85 39 +822 1022 21 +191 318 22 +397 148 22 +1644 731 20 +188 257 25 +682 282 41 +977 1077 20 +184 197 44 +1331 187 40 +139 148 35 +1472 1056 31 +1377 1054 32 +1985 248 31 +134 205 23 +414 388 47 +264 672 22 +280 373 21 +622 608 29 +407 618 32 +1479 431 29 +599 582 30 +1197 215 21 +676 457 22 +876 727 30 +104 116 27 +1157 279 21 +1570 1124 21 +69 1062 36 +690 932 21 +810 778 29 +451 157 21 +1003 1154 25 +131 838 36 +1760 638 22 +315 375 21 +187 765 33 +143 879 49 +61 954 43 +1256 663 21 +373 870 23 +1769 742 24 +1977 1145 32 +175 344 30 +1550 980 28 +229 647 40 +562 1177 37 +263 173 28 +165 593 42 +1275 980 27 +74 841 36 +166 705 39 +472 874 21 +668 859 27 +168 540 44 +119 747 41 +570 1098 23 +1517 1105 29 +1292 236 24 +158 62 22 +309 344 23 +124 323 37 +259 246 28 +344 637 32 +149 635 46 +410 495 40 +372 791 41 +457 1056 20 +354 719 29 +109 1082 31 +724 1111 20 +63 314 48 +131 292 21 +264 1040 32 +302 707 21 +683 955 23 +742 890 33 +800 +911 567 +1519 1063 +1284 1169 +1130 660 +552 916 +932 403 +794 401 +544 1187 +1875 628 +880 1116 +426 1023 +1731 334 +567 1144 +787 986 +267 557 +1364 997 +1821 647 +1386 542 +1280 461 +1671 322 +1206 666 +400 558 +1045 568 +1701 986 +1398 1101 +1311 479 +323 821 +221 568 +1824 132 +786 772 +434 1120 +1272 532 +634 999 +85 765 +1317 878 +1963 579 +1837 248 +1357 1104 +793 64 +716 254 +915 920 +1716 1147 +714 89 +1600 913 +1285 1025 +1059 1032 +1804 75 +1453 522 +1388 761 +1084 894 +822 567 +1337 1085 +415 1047 +520 676 +114 968 +1315 188 +795 1135 +1340 237 +1628 708 +609 180 +1700 231 +1626 1154 +675 870 +1304 854 +758 511 +630 545 +1691 1103 +1049 975 +173 997 +444 504 +971 790 +542 87 +108 891 +1910 470 +1848 986 +371 676 +318 392 +1479 122 +988 1112 +971 826 +1775 464 +254 895 +1309 52 +1816 472 +851 278 +1805 938 +1871 715 +1525 366 +1560 670 +514 904 +723 359 +1842 955 +1294 141 +1277 297 +1446 1104 +646 857 +1288 925 +396 1141 +292 1075 +383 274 +1801 443 +290 781 +1317 687 +1684 298 +1849 636 +264 779 +916 755 +904 66 +1895 669 +1132 1023 +509 655 +265 652 +1328 135 +540 183 +1747 560 +242 878 +1779 523 +877 133 +777 622 +1984 953 +1208 1188 +672 355 +794 237 +1639 353 +1890 766 +1289 105 +1078 192 +1921 973 +1290 806 +1098 870 +1461 78 +530 208 +887 1050 +376 113 +1711 556 +1861 177 +1391 151 +628 744 +1017 586 +220 1010 +1092 263 +347 1114 +940 735 +1098 458 +1668 130 +942 714 +1328 526 +197 1048 +1043 84 +1275 1058 +1442 134 +1417 689 +1055 813 +613 1189 +1317 740 +1699 429 +384 754 +1552 537 +1311 782 +1047 108 +794 806 +1081 804 +1358 190 +1543 493 +1931 797 +71 852 +760 1075 +175 646 +1533 405 +1327 897 +1414 1070 +546 889 +164 194 +505 135 +1136 754 +1497 96 +106 1026 +1980 240 +496 351 +1284 272 +1226 130 +903 194 +571 1024 +60 948 +1910 938 +1731 88 +691 1010 +865 695 +596 498 +1907 421 +1739 287 +1074 285 +883 620 +1360 578 +609 261 +1358 1130 +1614 854 +692 818 +118 324 +1791 295 +632 274 +1552 193 +515 314 +874 946 +1479 718 +746 485 +1523 706 +612 768 +652 406 +1807 315 +1149 1055 +1423 568 +1036 898 +1027 405 +1454 755 +1675 678 +1286 576 +760 588 +341 996 +1836 376 +476 635 +559 523 +1233 529 +1358 848 +1609 67 +624 640 +1192 377 +1844 325 +1003 161 +1086 303 +1190 150 +680 921 +1751 1117 +1650 791 +1402 1040 +1596 283 +571 762 +538 519 +1001 469 +1851 707 +373 712 +878 287 +424 324 +349 543 +1893 370 +1154 287 +1357 383 +859 1009 +1240 748 +1068 870 +1010 68 +906 776 +997 392 +1544 137 +1842 1154 +903 715 +1012 107 +1193 983 +1894 149 +159 857 +1496 207 +1974 406 +949 777 +1000 1005 +1093 611 +720 691 +1293 174 +301 588 +155 659 +1912 503 +1795 755 +1387 506 +705 296 +89 296 +1675 457 +164 800 +1897 1134 +688 310 +1523 86 +721 184 +1489 505 +1821 1129 +1171 557 +966 127 +1317 602 +1027 1170 +353 253 +265 502 +579 701 +1327 1119 +637 133 +1287 742 +728 764 +398 579 +53 323 +1462 165 +225 837 +785 1032 +1787 1110 +245 940 +885 102 +312 470 +1618 94 +392 1079 +240 60 +644 1129 +997 518 +921 1080 +597 321 +642 229 +1070 503 +1037 846 +1089 761 +1621 238 +555 429 +1459 908 +1885 1026 +423 895 +482 504 +971 60 +1058 787 +277 269 +1487 1164 +1685 517 +1078 94 +1045 679 +1848 751 +1382 227 +1378 843 +1909 262 +79 1083 +174 545 +1400 373 +1303 547 +493 814 +973 314 +1151 430 +994 84 +823 207 +606 609 +130 755 +1144 1116 +1573 531 +654 442 +394 892 +1792 579 +1439 405 +1930 1186 +1671 622 +1514 152 +1630 616 +1637 851 +705 666 +916 215 +969 552 +564 999 +504 61 +515 496 +243 372 +775 693 +576 302 +1077 168 +106 730 +525 590 +828 458 +1676 652 +1064 991 +909 158 +833 1075 +1941 654 +904 236 +1545 1087 +638 198 +395 481 +551 1055 +776 644 +656 815 +601 362 +1832 903 +1407 197 +913 587 +1602 1108 +1512 497 +917 123 +1673 1153 +143 1055 +528 239 +525 75 +1580 1181 +1352 274 +885 1021 +235 855 +1921 644 +1449 286 +1829 1066 +884 157 +760 375 +69 272 +1260 906 +1478 221 +1450 884 +992 973 +1531 293 +1227 460 +1853 548 +1740 1065 +828 655 +1324 974 +157 514 +1437 904 +863 447 +1033 1096 +1378 949 +995 349 +874 390 +1572 233 +1720 918 +1730 741 +1905 819 +1746 613 +435 568 +1773 803 +1052 471 +450 748 +1829 551 +677 613 +1688 866 +1355 1069 +1109 1137 +1763 976 +810 998 +1728 642 +1434 474 +763 434 +1126 339 +1388 638 +1939 196 +416 162 +266 615 +1564 699 +1404 50 +725 433 +535 112 +823 767 +287 1048 +1870 660 +1431 184 +823 1140 +1513 787 +1502 664 +499 1112 +834 1025 +812 790 +310 557 +1251 364 +786 936 +1571 805 +721 140 +1179 737 +644 1030 +964 761 +1076 1106 +1938 1112 +1892 439 +171 411 +188 181 +1679 792 +1511 434 +1885 980 +1682 1183 +175 718 +1876 560 +412 199 +1488 183 +1586 55 +80 922 +1597 142 +1123 522 +217 610 +1188 1096 +183 563 +1795 716 +1019 797 +1469 568 +974 593 +778 169 +904 1121 +774 874 +1716 390 +1096 1036 +395 1186 +906 428 +139 703 +1988 76 +499 229 +1028 932 +610 415 +1277 377 +1458 852 +1424 296 +1591 1021 +360 784 +615 828 +1874 861 +267 923 +1136 1158 +344 489 +1805 989 +1006 551 +462 992 +210 404 +1255 798 +1015 953 +616 523 +848 406 +1674 1067 +1840 582 +116 629 +473 381 +336 787 +229 248 +1727 535 +337 627 +731 1075 +926 364 +1392 567 +1112 426 +1037 786 +595 983 +565 171 +1117 1173 +1775 388 +197 832 +1163 639 +506 1076 +437 948 +1078 114 +1756 84 +418 760 +538 1098 +136 877 +382 1015 +1797 901 +1379 1110 +431 822 +452 197 +1108 796 +694 479 +464 932 +844 233 +1825 706 +1259 768 +270 153 +805 648 +1491 966 +1767 101 +403 528 +1752 400 +1312 119 +200 906 +1977 1047 +1659 353 +945 357 +664 61 +1857 420 +1634 170 +798 895 +600 742 +1284 321 +173 589 +995 1047 +1184 194 +1954 856 +1902 1044 +1459 419 +1677 754 +1251 1090 +385 949 +1125 580 +1192 1140 +1686 895 +1592 232 +338 950 +1091 1151 +1424 77 +1849 1023 +726 919 +1086 239 +1873 812 +1874 294 +1463 607 +622 569 +673 1050 +1517 463 +1229 208 +816 183 +921 249 +1938 713 +476 1114 +1082 586 +711 221 +1804 660 +1176 519 +1007 1070 +945 328 +1175 955 +294 677 +954 489 +1643 435 +1658 1098 +951 1018 +846 314 +668 291 +847 144 +1155 488 +1566 1113 +870 814 +1922 283 +1402 945 +1693 365 +1637 570 +905 950 +1037 1032 +1740 1166 +661 655 +331 284 +1410 319 +1379 1076 +1313 421 +549 409 +655 612 +1072 567 +1725 359 +1211 477 +1949 67 +1852 523 +1248 675 +1694 846 +464 1155 +1620 894 +1818 1048 +1699 450 +729 275 +946 830 +1168 416 +1653 1010 +1404 394 +118 834 +1959 787 +994 946 +1573 766 +465 890 +1721 50 +813 264 +555 129 +452 1083 +496 427 +815 151 +250 488 +1889 957 +1254 1139 +1050 380 +1105 174 +1736 773 +1922 677 +445 665 +1908 842 +1755 504 +1042 518 +379 89 +1547 1041 +1908 779 +1135 79 +1657 584 +864 1077 +1413 515 +519 442 +439 122 +1820 851 +854 574 +1948 972 +645 167 +1161 460 +547 789 +1907 340 +396 51 +1519 1126 +850 984 +698 1171 +1884 404 +1798 245 +740 71 +608 930 +1778 413 +1528 1152 +437 271 +949 235 +1632 760 +1407 784 +588 800 +1641 127 +564 1119 +1229 353 +129 1098 +236 921 +1622 259 +1017 504 +146 603 +941 378 +1219 1108 +772 292 +1140 114 +1632 63 +1380 429 +1706 941 +749 668 +941 971 +1597 314 +417 997 +1827 272 +459 71 +1367 93 +1602 194 +1966 877 +729 111 +587 105 +230 322 +595 1011 +962 993 +776 748 +1521 901 +1427 934 +1300 453 +1211 627 +1820 197 +619 694 +711 634 +1442 995 +826 431 +212 222 +803 532 +1258 732 +720 522 +591 635 +322 1077 +1161 227 +156 933 +869 542 +633 920 +1270 959 +583 282 +1318 929 +1759 1005 +1099 1084 +1962 733 +886 1154 +1628 479 +577 393 +368 1155 +1690 538 +1464 1152 +709 1089 +671 559 +685 119 +289 424 +1806 163 +1446 98 +1210 326 +626 948 +1776 679 +572 563 +1916 901 +57 968 +911 1051 +423 366 +1470 201 +1141 399 +778 417 +1188 484 +1639 656 +343 218 +773 550 +679 754 +265 446 +934 913 +1969 1147 +902 286 +1333 778 +1881 468 +474 121 +1182 1061 +1376 327 +299 324 +1764 304 +573 587 +1053 264 +1424 249 +245 403 +1550 91 +291 399 +247 +74 740 31 860 871 896 507 697 480 986 786 583 579 723 362 393 178 412 774 785 596 142 618 192 658 263 808 262 20 446 233 344 763 320 764 158 833 295 387 912 926 593 105 513 784 80 756 940 577 680 356 254 331 788 468 599 404 669 214 635 689 437 462 542 555 240 807 405 588 236 336 119 389 863 572 5 39 106 399 497 859 675 330 91 969 15 965 842 167 745 166 82 742 225 490 133 554 949 545 264 352 353 343 346 239 856 458 218 465 562 299 271 625 139 820 753 134 452 576 226 832 423 482 171 38 637 640 83 862 476 148 845 317 147 508 333 974 843 115 548 749 378 447 885 448 605 395 727 990 103 374 422 789 921 852 177 202 220 809 137 594 87 153 417 309 983 314 150 600 85 817 36 276 580 33 246 765 526 348 471 799 642 729 614 775 510 296 470 140 613 307 841 494 902 641 339 891 188 564 781 722 704 379 881 414 636 941 342 948 568 931 461 731 797 442 411 164 40 22 853 876 725 474 645 898 699 823 54 908 716 967 347 357 501 536 701 868 222 787 88 96 173 768 402 516 7 857 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/input.18 b/2018/republic/10-12_d2/senzori/tests/input.18 new file mode 100644 index 0000000..5ec7c42 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/input.18 @@ -0,0 +1,1405 @@ +542 775 65 +800 +572 690 69 +497 720 73 +650 683 51 +666 815 82 +693 631 21 +541 915 79 +461 853 76 +493 581 73 +601 902 34 +479 506 37 +750 550 82 +497 1031 72 +621 1006 87 +784 810 58 +800 671 67 +381 549 66 +343 589 22 +673 950 20 +813 743 78 +714 957 54 +576 1056 34 +879 598 45 +798 476 44 +667 579 67 +865 701 45 +458 625 21 +946 540 50 +639 1114 68 +740 858 52 +715 733 50 +912 732 44 +669 641 25 +828 881 81 +957 784 28 +547 850 41 +504 642 20 +722 430 81 +898 550 24 +876 989 61 +790 386 44 +726 1014 30 +394 698 86 +302 465 54 +764 967 20 +729 1106 75 +700 513 40 +640 1180 35 +948 1012 53 +1040 831 79 +480 393 89 +1052 923 65 +355 462 27 +400 988 80 +877 498 82 +444 1116 76 +446 933 49 +320 587 24 +584 625 33 +866 815 47 +884 338 66 +906 934 31 +285 768 54 +496 1188 48 +1028 469 76 +238 428 39 +967 451 28 +1088 439 20 +786 1171 38 +1013 380 31 +1146 909 87 +1034 721 51 +772 1066 41 +926 601 40 +1282 981 69 +275 1009 61 +540 981 50 +980 610 40 +225 1055 36 +612 448 82 +1197 1014 70 +824 958 49 +325 1145 82 +434 796 20 +521 457 40 +323 942 69 +290 1077 53 +582 506 35 +986 1038 24 +1272 862 72 +853 215 88 +337 1058 24 +203 767 87 +911 895 31 +185 883 68 +250 1103 31 +751 271 53 +297 404 32 +810 1003 20 +92 848 78 +1368 880 83 +1274 1093 63 +934 137 42 +539 374 27 +365 330 55 +197 960 57 +1400 823 30 +982 313 70 +206 485 43 +615 532 46 +943 66 59 +271 853 27 +1167 1094 27 +136 1030 80 +854 83 58 +1066 535 34 +184 389 62 +753 663 26 +961 682 70 +1100 1020 42 +321 250 67 +353 656 29 +434 1185 58 +393 1093 27 +1186 784 84 +580 1166 63 +1113 560 39 +870 742 24 +837 1056 28 +1402 756 73 +189 645 62 +841 1114 46 +359 175 60 +1062 129 84 +334 883 29 +554 528 35 +1512 921 77 +290 344 36 +1227 1061 41 +1554 986 39 +1289 714 74 +1343 643 84 +335 844 28 +1454 551 88 +52 1165 86 +112 560 86 +1541 839 89 +1403 417 89 +773 113 80 +252 609 43 +1365 327 37 +808 534 20 +1362 217 78 +959 220 44 +431 1034 28 +1257 771 23 +1141 1137 31 +981 890 82 +1393 491 23 +400 400 44 +1131 490 54 +1512 372 52 +1036 592 48 +412 94 41 +1230 586 58 +1614 849 36 +659 490 26 +389 624 55 +727 327 47 +648 333 84 +1426 267 61 +1299 138 57 +363 1095 21 +1274 434 72 +1339 943 25 +1595 1029 40 +1329 795 75 +1512 310 22 +1034 654 60 +880 148 23 +143 333 29 +338 135 22 +139 508 31 +1556 705 50 +315 685 36 +1632 1006 26 +1207 701 53 +1562 449 79 +1184 154 53 +250 308 39 +1066 251 88 +720 170 32 +1184 217 29 +1477 1065 83 +1131 662 61 +684 122 80 +1442 948 40 +1542 343 25 +1115 169 35 +1388 1023 30 +1090 500 24 +1438 834 43 +1098 381 52 +1314 317 47 +589 269 82 +1131 428 21 +103 406 75 +1219 1146 27 +522 1097 49 +489 108 40 +1626 390 89 +1204 436 45 +74 284 73 +1090 1115 59 +912 401 26 +70 200 79 +57 770 69 +198 1174 63 +885 641 24 +1480 730 70 +1644 225 89 +546 79 57 +1709 1058 82 +1693 991 24 +132 691 37 +1329 1124 20 +1657 305 38 +684 216 38 +113 765 20 +1713 289 23 +1690 896 63 +1238 482 22 +371 65 53 +165 192 86 +1814 1120 78 +390 1156 29 +451 157 67 +1378 120 42 +585 180 39 +691 883 35 +1359 51 89 +1418 176 26 +1216 367 40 +349 746 29 +1743 194 47 +608 202 22 +1792 1032 28 +911 448 30 +1486 620 53 +1926 1121 75 +1382 1129 68 +595 869 24 +1638 540 64 +1092 598 29 +1145 1064 37 +687 1188 31 +1535 520 40 +1728 421 21 +1221 201 37 +1250 1182 47 +761 724 21 +1765 809 57 +811 346 46 +1885 1027 52 +942 808 21 +121 1143 31 +1733 570 47 +1648 615 23 +1636 677 70 +1623 946 73 +125 729 34 +1743 979 34 +1346 460 38 +409 884 32 +1261 315 28 +1828 517 83 +1735 1161 89 +1689 726 57 +1386 299 25 +1146 259 46 +1977 1061 28 +1291 480 22 +921 1120 72 +1962 1184 40 +1771 249 20 +327 761 23 +295 72 80 +1889 909 84 +1912 835 66 +976 493 30 +1553 223 37 +309 137 36 +1301 1144 23 +403 245 27 +998 1001 26 +483 459 33 +233 559 60 +950 392 31 +179 70 84 +1895 572 20 +454 664 21 +1942 760 48 +1264 92 56 +1801 922 58 +254 897 48 +528 203 82 +1831 411 64 +1334 1014 20 +1842 612 35 +1085 877 47 +1331 572 23 +1537 1113 31 +1180 629 56 +1173 354 26 +1250 131 21 +1895 490 36 +426 461 29 +135 938 57 +1505 180 46 +1813 217 54 +1415 976 36 +1561 592 51 +1981 817 59 +1428 53 41 +382 862 24 +1984 672 87 +1882 365 30 +1655 88 73 +1585 1161 85 +1908 712 22 +1284 215 50 +1945 323 88 +1613 1083 28 +1748 509 77 +81 691 38 +57 1022 42 +370 123 26 +570 145 24 +1818 667 74 +588 829 48 +344 419 23 +1480 1144 30 +1326 1091 22 +1138 612 21 +1189 1129 39 +1929 627 53 +1982 1001 77 +1727 342 54 +1968 893 73 +737 626 38 +1745 653 31 +1127 808 43 +1059 58 26 +426 299 42 +429 759 26 +782 231 47 +1025 977 20 +1640 787 40 +1465 426 34 +1683 816 32 +1967 240 63 +83 483 61 +1365 957 20 +1790 129 67 +1779 977 23 +1598 770 36 +741 367 26 +202 329 57 +1911 1062 30 +992 548 38 +566 578 66 +721 781 38 +530 328 38 +749 204 25 +1128 221 34 +766 942 30 +1627 146 47 +1535 112 66 +630 749 48 +1502 491 24 +1952 429 35 +1376 1070 22 +1306 525 52 +1595 278 20 +286 515 20 +938 931 32 +118 121 68 +691 51 22 +1717 53 56 +880 914 34 +1872 780 56 +425 509 41 +1844 1060 34 +1734 771 23 +1200 99 27 +1637 1135 26 +1792 440 26 +834 416 37 +1433 879 33 +694 1059 37 +148 459 28 +913 784 23 +990 951 30 +1813 343 63 +246 724 30 +254 207 84 +1476 467 39 +1320 907 27 +1446 333 30 +1682 494 51 +1478 120 22 +861 660 36 +862 1188 58 +668 923 29 +1588 50 56 +695 376 39 +1082 683 34 +289 616 31 +611 54 31 +1909 68 78 +1873 252 61 +914 242 43 +1586 899 33 +1814 795 40 +1166 550 39 +53 952 88 +1699 949 31 +1479 222 20 +1610 727 26 +220 272 49 +1821 52 44 +457 227 23 +266 941 30 +1451 1177 43 +998 251 26 +217 113 30 +158 1125 29 +1039 1067 70 +1228 932 24 +65 611 42 +1150 115 44 +1024 1157 59 +1950 189 28 +1868 156 25 +1760 689 22 +930 1071 26 +1586 313 27 +1505 985 20 +483 783 27 +1673 142 24 +1219 535 29 +1443 116 34 +53 96 25 +649 268 25 +1229 164 26 +1510 1133 29 +1989 410 45 +1568 151 27 +1718 836 38 +1108 324 47 +1717 670 22 +1866 105 32 +1020 78 42 +1960 488 47 +344 1032 22 +613 383 27 +1472 666 27 +612 124 22 +1202 254 22 +1005 208 45 +1103 743 43 +631 875 29 +1426 690 52 +260 481 27 +328 804 47 +1522 1179 38 +1540 306 30 +1868 1094 22 +1486 73 31 +1691 776 42 +1972 171 24 +1263 629 21 +1353 1046 43 +110 1184 33 +1934 456 23 +1826 576 27 +858 558 32 +528 1146 32 +987 168 30 +1163 1180 38 +171 700 42 +1539 266 21 +1739 737 32 +1282 658 25 +270 130 32 +1971 566 72 +1855 1182 66 +1641 1104 28 +245 820 43 +1893 175 24 +1794 286 24 +368 385 22 +180 581 46 +1838 980 55 +1311 184 20 +1639 736 29 +1826 741 27 +769 894 21 +127 303 21 +1129 50 23 +283 582 38 +1131 992 30 +1029 1004 20 +458 75 39 +1339 495 20 +1496 256 26 +1754 858 35 +881 436 24 +1205 329 29 +877 123 20 +990 737 36 +754 989 25 +314 559 33 +66 1076 61 +1275 922 38 +519 262 30 +1892 433 31 +1271 494 21 +1883 655 42 +1923 212 25 +1692 409 46 +1212 872 28 +1511 283 22 +317 367 20 +178 253 27 +1786 598 52 +293 649 24 +1063 984 23 +397 758 33 +1486 329 28 +1378 568 56 +185 441 23 +1345 527 26 +672 1081 22 +690 295 27 +1266 1149 24 +1668 1187 43 +403 345 24 +796 181 36 +1386 162 28 +480 301 44 +1769 413 35 +588 742 34 +247 372 30 +1826 844 47 +1973 1094 20 +1337 385 36 +1841 146 32 +1556 1083 34 +983 406 28 +1067 339 37 +1187 505 58 +1480 795 54 +267 671 20 +1551 642 24 +250 1179 33 +1697 174 35 +198 1111 30 +602 91 35 +1981 735 22 +523 142 26 +320 317 28 +814 624 24 +696 677 20 +1619 481 21 +1311 1174 37 +1847 179 21 +1729 928 28 +1558 778 32 +629 190 20 +1058 564 22 +172 280 23 +1027 535 26 +850 307 26 +1080 648 27 +207 697 28 +390 494 21 +277 384 21 +786 609 25 +482 235 24 +586 345 36 +284 1189 33 +402 135 26 +1164 302 27 +404 834 37 +1494 409 29 +813 284 27 +938 477 30 +1719 458 37 +914 683 24 +167 826 33 +1456 188 40 +1157 723 48 +1002 127 30 +379 920 27 +1093 1183 23 +528 495 23 +1375 700 46 +323 500 24 +55 143 22 +493 1133 26 +1685 641 36 +934 192 24 +478 953 26 +1862 317 43 +478 982 23 +1586 96 35 +1409 643 47 +578 1092 22 +1703 123 30 +1538 1034 51 +756 1155 22 +1584 525 34 +829 458 22 +103 1101 22 +901 1073 27 +1920 586 26 +1928 962 31 +1110 86 26 +243 648 35 +1792 884 20 +553 1017 24 +141 250 28 +630 937 26 +105 629 41 +947 623 20 +1636 455 22 +1944 127 55 +294 900 32 +675 749 21 +753 171 23 +417 209 26 +310 182 23 +1421 494 33 +1163 401 53 +1233 656 34 +1396 1178 21 +96 901 25 +967 970 26 +1249 508 29 +1765 1093 29 +971 1187 30 +1131 1101 23 +1284 265 40 +722 232 41 +1587 619 20 +441 555 29 +1441 1118 37 +1730 153 33 +492 73 27 +1430 1004 25 +1519 677 30 +823 575 35 +432 240 28 +1754 295 41 +1111 438 22 +1989 113 39 +1481 151 28 +57 356 57 +1761 1024 28 +1945 1054 25 +1412 1056 45 +1702 269 22 +1151 72 37 +57 71 20 +1930 539 22 +1229 112 23 +1687 575 45 +1892 740 28 +764 50 21 +1781 725 35 +985 810 21 +706 650 22 +1400 347 35 +924 848 25 +1988 1164 21 +637 89 30 +756 749 29 +724 1171 29 +366 285 20 +1978 1143 23 +1038 192 25 +1891 405 22 +978 1076 26 +373 232 31 +1294 378 29 +1246 388 30 +1422 91 30 +608 1069 34 +327 527 29 +625 644 23 +683 1026 22 +1278 586 28 +1124 1174 31 +1557 185 32 +851 391 20 +61 648 20 +1472 841 21 +892 103 20 +1398 949 20 +1209 51 57 +189 1013 25 +659 530 30 +1562 550 25 +557 402 28 +783 1137 25 +1585 660 26 +1801 757 29 +996 1097 20 +976 258 20 +391 469 20 +142 653 31 +1882 977 26 +278 274 29 +1558 380 27 +306 858 30 +1366 500 33 +1272 178 23 +1902 1188 24 +1069 1183 23 +807 1057 31 +1193 282 34 +801 985 20 +867 1075 26 +918 293 40 +275 547 24 +385 804 31 +1342 723 21 +761 1013 23 +894 864 39 +1473 867 31 +328 636 21 +1828 261 23 +728 908 23 +823 148 30 +1095 956 26 +1728 703 21 +433 615 29 +1759 443 21 +1931 391 29 +1258 547 22 +621 601 29 +1818 167 23 +1871 1127 30 +320 1038 24 +1284 1040 37 +103 335 44 +574 964 22 +776 443 26 +1209 1176 20 +555 624 20 +1320 281 22 +1232 296 40 +1069 621 31 +702 919 24 +1879 613 32 +1760 381 25 +672 397 20 +53 454 22 +803 1123 23 +956 1056 32 +1158 325 20 +1159 194 30 +816 1189 25 +801 440 21 +806 55 35 +1145 447 23 +1270 796 25 +424 63 25 +1960 392 22 +1433 218 22 +944 427 27 +788 1034 24 +670 454 29 +1923 684 24 +1646 833 32 +1590 801 25 +1669 450 31 +1466 363 39 +659 59 34 +1558 281 26 +1085 802 24 +330 1012 20 +532 643 20 +1809 1187 26 +1205 1096 25 +1531 736 27 +1626 302 20 +1671 1006 25 +1975 446 20 +1877 711 34 +600 +180 1136 +651 226 +1350 119 +177 630 +1248 624 +1653 849 +1039 232 +566 920 +477 819 +1388 802 +1376 324 +1278 106 +373 140 +997 162 +498 186 +1465 145 +1022 58 +1437 331 +208 449 +328 984 +1315 335 +760 1122 +1015 694 +1453 97 +913 414 +539 1099 +1058 992 +1784 1174 +578 856 +1935 536 +143 1160 +1200 436 +1051 1035 +1190 639 +1121 735 +741 559 +1317 1089 +1732 972 +1142 819 +1644 466 +1455 575 +935 229 +1599 202 +1946 801 +1929 130 +1809 579 +1458 1090 +833 797 +512 811 +1516 995 +183 383 +1271 703 +1729 461 +1679 235 +1724 1172 +896 828 +533 201 +1763 459 +176 568 +1097 1115 +1454 598 +1397 1066 +410 1137 +896 225 +1232 1071 +810 236 +1073 306 +569 753 +1639 968 +452 1101 +104 404 +481 726 +108 101 +1195 943 +298 986 +253 719 +1210 891 +388 1059 +1113 372 +1486 869 +1662 1007 +412 1101 +273 1096 +1724 212 +1842 460 +665 793 +99 948 +1583 967 +1147 949 +908 1114 +144 337 +776 900 +511 1040 +1705 404 +1208 284 +1419 263 +657 992 +1747 1164 +1453 714 +1915 502 +1288 1071 +548 374 +1141 1116 +348 98 +1475 736 +981 257 +1736 75 +820 183 +1804 153 +334 696 +156 984 +210 738 +1003 892 +1823 194 +1719 1030 +1240 595 +998 1137 +643 1096 +354 245 +79 1183 +1457 647 +666 382 +882 913 +193 771 +1686 447 +536 131 +1681 547 +441 1143 +911 522 +298 742 +1489 757 +457 298 +842 1097 +1268 1133 +1573 986 +935 1161 +1120 119 +604 278 +153 309 +81 760 +827 667 +1509 445 +968 896 +134 514 +539 170 +659 163 +1762 632 +301 190 +1693 75 +1780 364 +1058 939 +714 782 +1356 328 +253 1157 +1125 635 +1221 718 +594 706 +434 549 +724 863 +1857 214 +1617 1177 +524 262 +665 960 +102 1110 +788 1182 +1469 192 +93 1027 +1286 131 +1704 891 +1022 879 +598 68 +495 680 +1844 516 +1359 253 +717 478 +1936 452 +822 605 +1847 398 +1882 761 +1708 838 +1730 151 +1534 184 +614 129 +996 639 +1802 393 +1153 589 +59 1157 +668 680 +1565 786 +638 427 +1742 723 +383 969 +1383 1003 +1298 685 +247 601 +214 1078 +1728 1054 +1182 762 +1479 587 +1252 234 +615 393 +1094 630 +783 709 +951 730 +1301 405 +300 919 +1575 242 +686 917 +1140 1170 +1003 996 +1219 822 +1203 797 +1230 555 +1212 700 +1370 1160 +570 252 +938 124 +1491 457 +1508 74 +899 355 +507 359 +1012 1160 +1379 564 +1666 654 +1699 748 +84 674 +1943 205 +341 137 +931 73 +1985 134 +1274 226 +1009 743 +1428 350 +85 157 +1108 665 +1107 304 +402 756 +1933 229 +1234 128 +1447 127 +360 1087 +450 819 +1151 525 +1292 438 +1485 699 +180 159 +70 956 +1900 785 +1902 654 +255 387 +1635 941 +919 962 +388 519 +1771 1042 +1897 542 +322 1068 +860 96 +1130 1149 +50 326 +1411 466 +1314 820 +1153 359 +63 440 +1617 137 +1066 845 +1734 274 +288 1056 +1684 644 +1901 179 +770 493 +1142 705 +205 144 +635 849 +664 554 +236 966 +1063 545 +999 663 +604 456 +811 776 +1046 1131 +1248 672 +233 807 +1786 530 +1527 314 +1790 438 +1595 1130 +1888 506 +934 347 +518 303 +1845 1127 +649 601 +1290 283 +1649 869 +277 550 +1812 845 +161 380 +1091 219 +1487 435 +844 1180 +1820 113 +1006 457 +1961 829 +871 183 +1469 1133 +268 366 +515 538 +82 898 +1596 1023 +1700 914 +443 358 +1089 411 +1746 583 +1473 847 +1130 1189 +1422 1142 +1402 1013 +1802 887 +348 864 +1622 427 +1419 60 +1125 797 +1009 411 +413 959 +1161 82 +405 243 +771 454 +714 509 +909 209 +658 71 +1775 307 +756 691 +1105 950 +194 834 +499 67 +1520 688 +1952 575 +294 62 +1139 883 +324 940 +336 581 +1549 118 +928 394 +1377 968 +712 591 +879 1146 +890 715 +726 1058 +1596 241 +849 975 +1345 830 +870 1034 +1371 542 +1171 714 +1752 173 +1582 601 +704 930 +57 535 +1145 441 +1335 253 +1959 1167 +810 925 +1756 985 +1673 915 +1209 414 +1764 659 +1201 570 +930 510 +1671 208 +1542 505 +438 757 +289 161 +1687 994 +228 698 +1781 259 +633 672 +1033 573 +1502 959 +778 749 +533 548 +430 945 +1390 1149 +1548 594 +1377 845 +186 115 +1684 668 +570 441 +806 1157 +567 499 +525 631 +1449 1028 +543 524 +436 408 +1797 776 +1437 448 +1606 943 +99 796 +871 316 +229 930 +1206 366 +380 237 +174 998 +482 355 +1016 911 +1526 611 +503 284 +1655 1097 +1099 740 +894 309 +174 599 +454 686 +1443 71 +1807 83 +602 1155 +594 517 +888 1023 +1989 1061 +1882 379 +244 1179 +694 686 +1779 237 +1443 804 +820 364 +1120 894 +122 895 +1200 616 +631 959 +681 661 +801 255 +1687 624 +491 251 +1382 438 +653 760 +1161 55 +1591 323 +705 623 +1189 217 +1321 653 +1340 957 +785 588 +1557 663 +1636 1068 +445 209 +984 403 +995 62 +1366 606 +371 876 +1193 495 +562 1109 +171 1065 +1915 473 +1922 931 +1612 825 +1906 600 +994 796 +1521 551 +1526 147 +1329 784 +1080 442 +1461 418 +1748 679 +528 237 +614 370 +1199 864 +755 273 +568 141 +1467 756 +822 868 +1342 67 +1591 699 +1953 1100 +518 181 +1063 787 +919 308 +210 341 +349 652 +1519 343 +758 881 +287 945 +1479 1021 +232 677 +410 586 +150 807 +1625 254 +1791 333 +1389 117 +664 1021 +750 212 +195 1155 +122 179 +1104 83 +1480 808 +952 860 +883 758 +1899 89 +503 780 +1881 99 +760 384 +920 143 +1743 809 +1093 845 +81 506 +1424 498 +1646 78 +1852 258 +1308 234 +844 213 +1278 399 +262 523 +560 113 +273 619 +1335 556 +470 104 +557 960 +1846 605 +786 674 +1557 91 +1599 1108 +255 108 +815 283 +1764 397 +921 695 +315 615 +1355 287 +1467 481 +1616 1054 +1836 720 +975 1022 +506 1100 +1076 133 +1245 314 +94 291 +1605 986 +254 572 +1136 1089 +1211 842 +519 108 +551 93 +642 528 +302 809 +1635 667 +1929 1146 +1098 465 +122 600 +1031 397 +1728 1104 +597 307 +720 535 +1157 1054 +1540 273 +265 959 +208 203 +58 692 +771 317 +1326 915 +1107 1136 +416 77 +952 87 +1216 306 +1878 1080 +1886 929 +808 801 +1436 402 +426 126 +1568 301 +1066 104 +1759 781 +1392 261 +1204 1059 +1709 252 +1247 868 +451 862 +203 712 +135 318 +392 1105 +535 484 +1500 330 +1838 124 +1929 1174 +1760 1096 +1140 121 +990 294 +1683 140 +1495 175 +1785 1096 +1764 1125 +57 260 +762 1064 +422 1035 +871 995 +1376 1080 +1912 61 +1009 620 +290 335 +1646 808 +234 109 +178 1028 +1961 594 +397 125 +1692 385 +1773 210 +266 +223 673 122 793 457 18 263 516 78 176 651 317 73 253 660 55 292 572 593 795 645 33 581 716 356 157 523 664 173 265 623 713 578 764 621 181 567 796 727 84 83 305 440 769 204 139 170 426 377 776 105 140 401 717 269 191 94 206 439 302 295 399 345 613 354 738 540 109 433 480 288 297 646 510 342 394 513 219 787 99 289 197 161 484 314 661 497 431 89 362 359 427 589 485 760 627 417 266 62 794 697 490 609 691 5 598 282 494 221 315 198 112 149 453 670 679 413 3 393 726 721 230 382 249 620 392 508 353 190 423 658 570 634 608 669 114 374 612 547 640 521 450 792 306 564 671 76 771 575 347 32 86 246 388 95 520 442 102 481 23 643 586 58 601 330 656 409 101 279 113 88 744 483 116 225 603 425 539 526 299 655 172 75 68 637 500 607 624 72 768 443 719 577 437 111 782 498 420 367 739 64 434 383 400 319 384 402 472 290 368 238 412 148 12 165 448 588 416 318 475 456 501 286 561 188 258 458 10 386 718 179 54 66 701 493 67 261 9 343 576 772 203 777 626 767 515 580 663 684 641 34 710 164 404 562 248 271 45 35 338 778 158 215 449 786 217 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/input.19 b/2018/republic/10-12_d2/senzori/tests/input.19 new file mode 100644 index 0000000..8585552 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/input.19 @@ -0,0 +1,955 @@ +144 548 47 +850 +217 566 40 +163 432 84 +65 407 81 +254 620 32 +330 604 52 +254 486 87 +396 667 75 +260 672 38 +349 410 45 +156 607 34 +243 731 57 +419 540 64 +88 267 64 +457 432 63 +166 717 35 +61 558 53 +528 407 77 +235 291 80 +325 242 86 +367 311 26 +501 627 48 +118 762 75 +107 877 86 +593 345 69 +296 548 45 +140 360 37 +231 781 21 +70 478 24 +158 665 30 +553 534 70 +292 363 83 +343 120 86 +487 323 20 +190 766 44 +133 306 54 +50 954 40 +123 988 44 +298 61 22 +676 556 74 +675 356 34 +216 673 42 +607 667 71 +589 733 25 +242 58 70 +105 597 56 +80 795 23 +410 64 77 +541 353 22 +181 922 66 +558 263 24 +291 295 22 +496 698 53 +64 608 21 +250 1016 68 +708 327 49 +816 600 88 +381 963 78 +72 678 83 +163 166 86 +633 421 52 +506 750 30 +807 503 88 +591 455 31 +495 961 61 +876 410 38 +922 523 50 +224 197 21 +985 484 27 +68 341 41 +612 515 45 +324 737 32 +516 1093 75 +456 270 44 +430 184 29 +363 801 81 +460 874 82 +932 407 73 +416 363 66 +62 202 54 +563 729 25 +867 639 34 +142 252 21 +908 651 41 +378 1067 74 +867 747 80 +89 81 32 +233 1101 44 +966 658 53 +409 413 25 +746 667 56 +955 744 28 +249 853 51 +804 389 76 +1024 709 30 +868 335 88 +593 886 68 +461 1179 51 +344 1162 56 +315 891 38 +684 624 31 +858 265 50 +271 145 60 +571 771 52 +673 776 74 +343 504 46 +200 1005 27 +78 1044 77 +441 225 47 +559 1150 30 +262 795 38 +560 597 47 +1025 446 67 +156 1135 67 +139 1063 29 +455 743 48 +527 860 44 +700 844 35 +63 1156 64 +766 840 44 +302 956 49 +503 801 20 +727 492 64 +303 1093 71 +394 204 44 +543 150 83 +554 62 87 +947 839 75 +1049 756 61 +802 893 36 +749 937 40 +936 936 76 +865 939 56 +824 847 42 +653 151 58 +211 639 26 +320 439 35 +662 707 53 +639 242 72 +753 263 41 +322 669 45 +543 686 32 +932 1088 82 +765 1047 86 +659 53 54 +1007 1076 68 +770 191 70 +479 518 55 +732 564 27 +672 934 70 +1097 685 85 +916 284 27 +700 411 31 +750 1162 66 +1114 495 83 +405 291 23 +828 55 83 +857 1127 56 +275 1173 44 +461 1042 60 +567 837 39 +585 1189 62 +833 119 40 +888 223 36 +1150 787 60 +732 61 87 +800 281 44 +1250 667 74 +723 441 35 +609 962 63 +843 1055 54 +1338 588 86 +1167 437 36 +605 103 30 +919 157 66 +58 1106 23 +390 437 33 +1187 853 49 +1353 687 42 +1102 1015 67 +1093 823 40 +212 967 28 +1226 1006 70 +902 592 40 +1185 641 58 +764 748 87 +1229 932 68 +630 1125 62 +1015 526 48 +1186 709 62 +966 302 25 +690 282 28 +177 516 32 +1078 1109 80 +182 67 43 +1113 920 86 +1450 500 80 +1104 1187 62 +680 1008 25 +1314 436 79 +1373 766 63 +1100 399 31 +1220 773 38 +312 1035 26 +950 89 58 +382 900 48 +1050 569 23 +977 1003 71 +1028 214 77 +562 1043 30 +1366 866 64 +1086 213 30 +1374 947 34 +1291 371 53 +1067 339 76 +778 319 21 +1286 984 27 +1465 951 79 +985 601 46 +996 1136 36 +1231 561 49 +705 173 22 +1334 1071 89 +746 139 44 +1075 155 61 +212 824 25 +1305 803 27 +1410 1140 62 +1151 203 36 +1239 129 88 +1519 883 35 +1195 1145 76 +1036 944 39 +1492 833 69 +406 166 30 +148 835 26 +1391 480 28 +1467 1125 52 +949 244 65 +1168 265 77 +951 1150 21 +594 275 32 +897 478 51 +1115 66 46 +1229 456 48 +1525 552 56 +996 145 70 +1266 1126 70 +415 129 37 +641 840 60 +1456 640 71 +1542 1040 51 +980 387 22 +51 910 39 +921 1174 32 +886 94 27 +549 945 25 +640 466 22 +1213 202 46 +425 921 25 +1412 876 30 +1526 455 60 +1321 731 35 +1484 386 76 +1209 332 24 +1125 593 38 +1633 426 80 +1329 236 85 +294 643 25 +728 1095 26 +1410 336 57 +132 637 25 +1577 528 52 +1160 1050 60 +1182 58 23 +1700 397 30 +1137 404 38 +1311 149 53 +624 1081 26 +1358 51 75 +217 1139 33 +934 720 23 +1553 946 59 +1650 491 47 +1556 374 66 +1450 231 44 +1301 525 44 +1514 743 56 +867 684 42 +1574 1013 22 +1411 417 80 +1207 379 59 +1790 421 86 +1044 897 32 +1268 722 37 +1704 568 67 +1463 1188 34 +1630 1029 77 +1077 437 34 +1770 559 44 +399 480 23 +254 931 35 +440 1114 76 +1145 346 57 +1562 1109 71 +381 732 38 +1846 330 36 +1601 488 25 +1044 634 49 +1762 613 57 +1233 337 22 +1540 326 24 +1334 828 25 +1387 1005 67 +1858 485 88 +1003 284 46 +1792 322 29 +1009 828 25 +1773 262 60 +1650 934 49 +1677 1130 45 +1028 55 60 +1889 196 77 +521 246 34 +1818 170 64 +1707 879 55 +471 164 54 +1849 242 24 +1460 880 34 +807 808 30 +1940 258 37 +208 873 35 +1826 654 71 +1919 513 29 +1571 251 65 +662 656 28 +1565 803 45 +1549 132 82 +1641 236 44 +1443 53 56 +604 1039 40 +1403 548 36 +356 568 22 +1786 707 36 +1713 165 46 +1753 101 56 +1323 927 73 +1742 494 22 +1473 1028 26 +1833 889 75 +1635 338 23 +1860 143 20 +849 1004 44 +1714 352 64 +313 312 26 +1932 577 54 +1378 144 60 +957 580 21 +1706 956 51 +483 50 38 +999 359 39 +795 978 35 +1244 291 29 +1895 915 42 +1914 702 53 +1662 349 27 +56 837 22 +1738 777 72 +748 875 20 +830 1183 44 +1351 1176 60 +1670 100 45 +1848 804 79 +1831 52 45 +1781 826 41 +1438 576 53 +1282 782 34 +919 1025 24 +1508 1172 45 +1649 838 49 +1450 751 23 +828 665 24 +1006 881 39 +1511 666 30 +1942 297 41 +1440 1054 23 +695 1068 55 +1786 1115 74 +969 511 25 +451 584 29 +1560 672 58 +1234 1062 32 +767 296 26 +1882 314 38 +1002 922 35 +1779 910 22 +483 349 22 +1919 101 83 +53 771 25 +1829 984 34 +1027 1189 49 +1470 302 54 +1667 278 22 +1812 954 25 +1330 1003 27 +1649 736 51 +122 73 27 +640 314 20 +1179 527 45 +1335 978 20 +1081 286 23 +1874 1155 43 +1975 173 88 +858 886 42 +1540 50 77 +1604 205 23 +1623 684 25 +1553 612 40 +1683 668 46 +1942 409 50 +1845 946 20 +1422 688 37 +630 600 52 +443 990 39 +688 1157 21 +1968 864 63 +1017 678 23 +1609 313 36 +1660 1188 59 +360 459 31 +429 310 23 +539 648 26 +1952 646 59 +191 1045 38 +1304 306 22 +1826 575 71 +1630 558 42 +100 128 43 +715 618 28 +1748 685 40 +1474 711 31 +852 160 42 +1887 855 26 +1258 419 21 +1124 293 24 +1809 1014 25 +1390 637 22 +1165 999 24 +1153 159 35 +1982 702 59 +1701 714 30 +1862 693 25 +1751 946 33 +697 237 32 +1707 503 25 +1927 970 58 +921 999 20 +1464 155 35 +1054 497 27 +1520 220 27 +1599 819 24 +225 934 20 +728 996 32 +1421 761 20 +1741 454 28 +1894 1067 63 +218 362 61 +1560 897 36 +1850 733 21 +299 781 32 +889 51 30 +1795 981 28 +1955 1044 35 +1700 824 45 +874 543 36 +1938 1136 86 +1710 294 35 +1096 745 29 +292 704 37 +1698 254 43 +1185 161 27 +755 338 38 +869 1186 20 +857 818 32 +1277 582 32 +1276 822 24 +1718 1029 40 +1987 451 27 +1639 1116 21 +503 1188 25 +1210 56 20 +124 500 35 +1766 1003 39 +1241 880 23 +665 1188 24 +1872 963 21 +1981 758 22 +1142 555 40 +680 186 22 +1272 888 36 +781 112 26 +797 672 22 +1503 1080 54 +997 764 42 +792 1137 24 +1726 61 30 +1843 1096 21 +1601 599 21 +1256 768 24 +739 383 32 +1946 348 51 +846 220 21 +1291 1020 41 +1526 792 33 +1743 197 41 +555 1003 20 +893 1047 29 +1447 123 21 +1111 106 30 +805 243 24 +53 88 22 +1255 599 21 +1402 1076 29 +430 493 23 +1548 995 26 +1929 799 20 +1435 194 21 +132 675 24 +1345 303 42 +1985 997 52 +220 107 34 +1610 153 24 +164 1080 30 +175 975 30 +1262 1183 22 +605 141 32 +1840 107 33 +179 578 24 +1263 55 31 +624 384 21 +350 887 20 +888 802 35 +1246 500 30 +1254 222 31 +1945 449 27 +1859 1126 21 +1727 1082 31 +1109 427 21 +661 1090 23 +500 105 32 +345 334 33 +1412 836 35 +1637 622 27 +1861 1014 29 +1812 284 28 +1512 1009 35 +301 821 41 +1603 63 26 +945 350 27 +1398 203 53 +797 698 28 +1142 735 33 +1611 905 29 +1838 376 37 +1774 508 34 +1283 853 27 +1275 182 25 +1969 57 34 +1446 1017 23 +737 813 33 +1147 1094 30 +1644 884 41 +585 425 28 +135 226 30 +280 885 24 +941 617 43 +91 940 39 +888 1163 23 +1897 769 39 +435 806 50 +1605 741 37 +1350 511 47 +1738 1182 66 +651 103 35 +1101 256 25 +1153 50 25 +1231 262 30 +972 1169 26 +606 797 27 +1067 966 36 +1629 71 26 +547 461 32 +1205 492 34 +1120 213 27 +1412 292 28 +1447 802 20 +457 94 28 +705 891 36 +1975 930 58 +1022 381 24 +1767 51 38 +347 642 22 +461 656 48 +1442 1086 35 +1182 969 34 +1523 297 39 +794 1102 35 +628 1010 30 +1406 1049 23 +1044 1030 42 +804 937 26 +1570 1185 49 +1051 271 28 +1518 597 29 +1396 919 27 +1906 265 22 +430 622 33 +1301 61 20 +1799 352 32 +1985 1070 37 +1312 1156 20 +1884 607 52 +1231 721 26 +815 154 24 +1437 270 34 +1652 791 44 +529 219 22 +385 604 39 +1824 724 34 +1582 628 22 +1511 496 27 +334 547 22 +1565 721 29 +1903 1188 24 +684 479 20 +943 319 28 +493 558 27 +544 976 35 +1825 1075 31 +522 294 28 +1760 171 20 +1401 593 21 +489 210 35 +81 514 31 +1366 333 31 +1570 865 30 +529 809 22 +1325 656 22 +866 116 20 +1071 78 21 +1082 870 26 +1981 604 25 +413 1017 37 +550 309 34 +1938 902 27 +1601 1146 22 +397 1146 28 +1650 154 26 +1835 1148 29 +1664 191 51 +256 560 24 +1903 827 21 +1782 1037 35 +586 1099 32 +1970 533 55 +1693 76 20 +1987 408 31 +1989 323 30 +1238 844 23 +1975 271 31 +1943 766 29 +182 640 29 +92 1111 38 +1671 526 25 +1675 309 23 +178 267 33 +1233 415 29 +1736 1128 29 +1900 739 20 +364 863 26 +1582 767 25 +948 493 23 +977 792 26 +1028 996 21 +1373 279 24 +1311 768 30 +475 117 21 +885 1017 24 +1183 467 30 +1541 505 29 +1263 1043 28 +1608 641 30 +576 225 53 +1116 184 29 +1665 1084 27 +535 895 23 +1401 725 22 +1869 417 41 +127 711 24 +1391 668 24 +299 993 21 +174 863 32 +1662 607 26 +1626 962 24 +1760 306 22 +1616 1107 20 +736 303 20 +714 704 25 +263 587 25 +1684 772 24 +1241 807 39 +655 1033 35 +188 329 25 +1601 1074 27 +1271 250 27 +920 1147 21 +1762 884 27 +461 363 22 +1227 615 34 +1912 848 20 +353 1116 32 +619 768 21 +1342 173 22 +958 189 29 +934 689 28 +1392 261 26 +847 441 45 +97 819 28 +1870 272 45 +1880 346 20 +159 1006 22 +221 1176 33 +1617 108 45 +828 187 25 +236 590 21 +1371 454 27 +457 312 33 +532 1020 29 +122 1184 51 +483 250 20 +1488 216 27 +1666 972 31 +442 958 20 +1084 588 30 +1714 647 24 +1276 299 25 +1511 179 31 +1335 375 30 +1423 156 33 +1318 857 23 +1473 444 21 +1802 757 37 +494 1156 28 +1868 51 20 +586 569 26 +693 109 36 +745 587 25 +1372 822 21 +360 709 21 +1105 621 20 +929 779 43 +1954 1073 22 +1704 440 28 +337 1002 33 +1752 1061 23 +232 235 24 +891 890 23 +1984 811 26 +1578 444 21 +83 51 23 +261 203 21 +1205 1055 22 +1646 690 20 +769 554 26 +102 539 29 +1799 218 22 +1211 1092 24 +1179 909 33 +1986 108 43 +729 215 23 +450 932 28 +1141 1130 24 +1492 585 23 +1192 593 31 +1861 931 23 +1720 616 27 +888 859 28 +1040 812 33 +985 558 30 +1803 122 28 +1793 1181 33 +411 1187 20 +1083 619 21 +1096 779 27 +1475 548 27 +698 982 22 +968 718 24 +1738 228 21 +767 429 24 +1909 370 27 +1776 217 23 +816 217 29 +1640 282 27 +980 54 21 +696 654 23 +326 52 28 +1569 420 26 +1884 550 30 +1124 134 29 +502 477 21 +661 889 22 +524 926 28 +1568 310 30 +823 707 21 +137 1024 27 +1496 899 20 +1717 473 32 +1904 448 29 +475 796 30 +189 828 21 +766 460 29 +239 902 28 +1939 489 23 +252 423 38 +1391 91 22 +876 837 20 +911 700 21 +1478 121 36 +109 352 20 +1310 89 34 +205 225 32 +1924 1034 23 +910 81 21 +683 1119 23 +1147 1176 26 +803 325 26 +971 456 26 +615 725 26 +500 1010 37 +55 130 23 +1266 472 31 +116 384 30 +201 599 30 +263 235 24 +710 373 20 +1117 847 25 +489 824 25 +1261 326 24 +1754 151 20 +1171 96 34 +1748 836 24 +100 +632 1186 +719 957 +495 320 +1729 965 +1901 985 +509 488 +559 646 +1768 757 +222 356 +590 829 +577 1041 +68 533 +113 1159 +1559 999 +1824 562 +1979 1025 +905 333 +825 597 +654 124 +560 246 +882 741 +1218 234 +1451 1121 +626 766 +691 213 +1581 1048 +1207 57 +1587 541 +1965 1099 +1531 342 +941 87 +1773 626 +1652 484 +1881 65 +289 512 +650 76 +60 170 +543 808 +1410 156 +1361 219 +1024 929 +1329 185 +552 545 +934 1154 +1005 495 +635 57 +1433 501 +1443 160 +702 439 +1982 373 +1030 1104 +1668 923 +1737 609 +1508 195 +367 209 +475 814 +1078 183 +1690 855 +1132 226 +1821 1097 +812 1028 +1888 243 +1041 460 +238 497 +1298 708 +1868 1068 +533 925 +1373 424 +1611 451 +382 770 +877 508 +1730 735 +537 767 +476 604 +1457 449 +73 1093 +136 1043 +239 1068 +1270 1029 +1162 264 +1343 1136 +398 1135 +938 453 +728 689 +1500 152 +1160 1179 +321 746 +1344 384 +1146 75 +1351 949 +339 974 +1452 405 +1477 1090 +867 391 +382 1037 +1328 615 +52 564 +374 1138 +630 172 +195 902 +425 +612 819 444 319 331 135 89 70 581 34 69 458 713 372 28 285 218 787 527 604 234 809 146 249 98 727 761 68 480 755 270 627 830 504 83 611 309 447 225 168 79 157 529 355 394 522 622 785 821 725 699 772 388 33 380 11 299 71 259 179 3 103 130 650 682 733 718 796 525 759 472 563 361 78 282 642 705 426 106 826 97 605 57 348 240 798 126 73 314 215 817 840 77 56 400 555 640 298 229 210 29 357 303 580 507 216 658 154 204 756 74 304 786 593 212 521 258 597 371 451 24 732 88 144 637 202 836 639 679 139 442 674 344 657 26 408 664 638 172 559 327 253 121 704 163 116 87 464 508 280 698 420 22 803 108 246 166 233 345 770 383 406 496 700 783 584 281 316 686 25 784 40 722 564 343 708 537 395 497 238 711 422 65 850 739 360 244 532 652 123 531 775 477 815 293 585 50 765 347 389 492 528 659 376 737 170 544 164 325 599 137 425 646 542 587 845 630 61 430 205 503 301 797 76 633 545 552 364 109 459 613 261 500 818 763 514 120 209 362 653 749 533 517 15 128 547 534 631 776 724 779 292 434 778 19 651 780 518 842 678 160 742 800 313 321 333 188 684 838 641 192 767 692 94 111 731 799 18 297 647 228 300 221 427 9 673 115 134 814 51 685 6 847 488 802 318 16 691 433 720 524 305 177 392 481 375 184 20 829 55 247 643 232 663 413 104 825 565 41 762 423 602 162 37 277 636 46 145 702 474 189 222 107 429 118 81 384 45 30 349 482 812 105 359 110 377 446 578 624 634 560 174 176 628 256 498 196 828 573 570 86 714 777 335 454 833 390 181 601 680 39 323 332 368 729 199 824 32 656 571 841 789 549 846 397 669 596 54 546 158 575 635 417 66 648 795 689 213 267 671 49 133 588 62 90 151 723 136 483 568 245 85 473 385 843 143 515 183 816 827 227 645 44 526 540 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/input.20 b/2018/republic/10-12_d2/senzori/tests/input.20 new file mode 100644 index 0000000..ee1863d --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/input.20 @@ -0,0 +1,225 @@ +384 832 89 +120 +315 909 36 +319 821 42 +393 700 71 +252 831 50 +463 840 25 +433 602 66 +353 941 59 +285 995 32 +528 851 58 +480 782 26 +190 1008 81 +316 1044 33 +82 976 39 +209 928 53 +269 617 82 +268 769 28 +531 657 58 +202 809 43 +385 1026 42 +575 755 89 +94 904 37 +302 517 28 +529 947 45 +619 603 55 +245 1008 25 +605 858 60 +324 700 59 +459 873 35 +366 1088 36 +161 886 24 +109 833 85 +276 483 30 +85 1038 68 +305 421 89 +279 534 22 +613 538 53 +442 1089 47 +227 1144 63 +187 576 73 +341 570 73 +459 965 63 +708 659 75 +145 963 40 +664 953 72 +333 309 44 +423 433 72 +434 758 38 +230 321 76 +238 492 30 +306 1130 62 +109 631 63 +144 769 20 +383 615 29 +738 794 82 +652 782 29 +677 767 26 +161 380 27 +322 215 78 +462 328 45 +173 266 45 +51 576 56 +636 1050 69 +168 219 23 +171 487 53 +492 474 87 +509 306 37 +544 1101 80 +236 408 25 +239 1042 38 +524 556 37 +613 460 51 +294 121 78 +381 1185 63 +588 295 68 +847 755 56 +141 723 29 +447 1043 30 +170 679 22 +582 436 25 +767 593 46 +682 391 50 +806 560 40 +194 864 48 +762 1042 78 +576 938 38 +151 1067 25 +758 337 60 +99 1162 64 +874 714 21 +625 221 75 +627 820 26 +824 460 76 +503 187 64 +797 1161 86 +197 159 74 +113 159 36 +629 163 25 +581 371 26 +123 395 37 +664 486 56 +472 1059 23 +798 249 57 +99 476 75 +449 378 32 +122 117 22 +566 888 38 +674 333 21 +446 530 30 +421 152 87 +615 393 36 +867 659 73 +758 873 78 +785 969 41 +936 411 63 +292 729 24 +390 68 55 +993 719 76 +198 65 38 +1081 777 76 +446 243 69 +100 +585 920 +94 828 +774 430 +649 273 +650 1018 +670 795 +140 151 +516 196 +175 594 +668 1052 +268 228 +529 1096 +774 902 +450 1047 +785 217 +412 619 +833 871 +171 95 +587 205 +470 828 +276 1125 +963 384 +101 799 +493 138 +688 680 +277 426 +766 1057 +930 665 +353 1073 +65 788 +495 692 +278 282 +808 1153 +258 305 +580 459 +505 1061 +506 651 +697 420 +229 259 +715 624 +601 608 +447 225 +261 1150 +149 455 +1043 740 +816 596 +161 687 +742 984 +415 98 +225 306 +612 266 +217 1087 +615 704 +764 732 +848 636 +643 985 +297 559 +727 1072 +766 357 +556 742 +255 943 +271 102 +598 780 +701 919 +885 489 +320 429 +845 780 +734 694 +157 1063 +1077 747 +527 869 +418 175 +1149 790 +159 610 +680 916 +984 384 +613 1030 +60 1071 +240 971 +159 1154 +449 73 +101 1075 +860 443 +202 788 +857 499 +635 203 +98 929 +281 83 +805 1087 +189 83 +329 346 +829 1130 +227 1148 +734 889 +467 598 +286 153 +424 668 +1110 794 +377 1099 +239 155 +80 +111 102 82 95 63 70 89 23 33 66 19 46 112 8 88 62 39 103 38 86 61 71 20 116 5 35 68 14 94 45 119 75 84 87 12 40 96 92 32 30 99 60 105 47 72 41 36 22 10 6 9 107 76 18 27 48 85 100 108 51 77 90 74 59 93 79 109 55 29 97 25 53 118 50 49 120 64 11 65 91 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/output.01 b/2018/republic/10-12_d2/senzori/tests/output.01 new file mode 100644 index 0000000..c227083 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/output.01 @@ -0,0 +1 @@ +0 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/output.02 b/2018/republic/10-12_d2/senzori/tests/output.02 new file mode 100644 index 0000000..56a6051 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/output.02 @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/output.03 b/2018/republic/10-12_d2/senzori/tests/output.03 new file mode 100644 index 0000000..1758ddd --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/output.03 @@ -0,0 +1 @@ +32 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/output.04 b/2018/republic/10-12_d2/senzori/tests/output.04 new file mode 100644 index 0000000..dc7b54a --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/output.04 @@ -0,0 +1 @@ +33 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/output.05 b/2018/republic/10-12_d2/senzori/tests/output.05 new file mode 100644 index 0000000..6139554 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/output.05 @@ -0,0 +1 @@ +52 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/output.06 b/2018/republic/10-12_d2/senzori/tests/output.06 new file mode 100644 index 0000000..2b82dfe --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/output.06 @@ -0,0 +1 @@ +60 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/output.07 b/2018/republic/10-12_d2/senzori/tests/output.07 new file mode 100644 index 0000000..25bf17f --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/output.07 @@ -0,0 +1 @@ +18 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/output.08 b/2018/republic/10-12_d2/senzori/tests/output.08 new file mode 100644 index 0000000..aaa6442 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/output.08 @@ -0,0 +1 @@ +41 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/output.09 b/2018/republic/10-12_d2/senzori/tests/output.09 new file mode 100644 index 0000000..90be1cd --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/output.09 @@ -0,0 +1 @@ +95 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/output.10 b/2018/republic/10-12_d2/senzori/tests/output.10 new file mode 100644 index 0000000..f123c4f --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/output.10 @@ -0,0 +1 @@ +251 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/output.11 b/2018/republic/10-12_d2/senzori/tests/output.11 new file mode 100644 index 0000000..e3e1916 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/output.11 @@ -0,0 +1 @@ +187 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/output.12 b/2018/republic/10-12_d2/senzori/tests/output.12 new file mode 100644 index 0000000..b8e817d --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/output.12 @@ -0,0 +1 @@ +255 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/output.13 b/2018/republic/10-12_d2/senzori/tests/output.13 new file mode 100644 index 0000000..941d0e5 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/output.13 @@ -0,0 +1 @@ +479 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/output.14 b/2018/republic/10-12_d2/senzori/tests/output.14 new file mode 100644 index 0000000..0272c1e --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/output.14 @@ -0,0 +1 @@ +987 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/output.15 b/2018/republic/10-12_d2/senzori/tests/output.15 new file mode 100644 index 0000000..c04091d --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/output.15 @@ -0,0 +1 @@ +790 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/output.16 b/2018/republic/10-12_d2/senzori/tests/output.16 new file mode 100644 index 0000000..946b551 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/output.16 @@ -0,0 +1 @@ +191 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/output.17 b/2018/republic/10-12_d2/senzori/tests/output.17 new file mode 100644 index 0000000..dc9414b --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/output.17 @@ -0,0 +1 @@ +154 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/output.18 b/2018/republic/10-12_d2/senzori/tests/output.18 new file mode 100644 index 0000000..97e3504 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/output.18 @@ -0,0 +1 @@ +110 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/output.19 b/2018/republic/10-12_d2/senzori/tests/output.19 new file mode 100644 index 0000000..0aeb548 --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/output.19 @@ -0,0 +1 @@ +74 \ No newline at end of file diff --git a/2018/republic/10-12_d2/senzori/tests/output.20 b/2018/republic/10-12_d2/senzori/tests/output.20 new file mode 100644 index 0000000..27a37eb --- /dev/null +++ b/2018/republic/10-12_d2/senzori/tests/output.20 @@ -0,0 +1 @@ +93 \ No newline at end of file diff --git a/2018/republic/7-9_d1/arta/tests/input.01 b/2018/republic/7-9_d1/arta/tests/input.01 new file mode 100644 index 0000000..3b3e5f0 --- /dev/null +++ b/2018/republic/7-9_d1/arta/tests/input.01 @@ -0,0 +1,69 @@ +24 91 +67 +21 8 22 35 +2 60 15 61 +1 50 19 67 +8 44 17 86 +15 64 16 84 +3 76 16 90 +17 49 19 78 +22 66 22 84 +21 84 23 88 +8 69 15 84 +18 12 20 22 +21 52 21 85 +15 61 19 87 +3 25 15 58 +21 7 22 78 +14 16 23 18 +9 72 11 86 +20 72 22 73 +19 58 20 72 +17 40 17 70 +1 23 13 29 +5 13 23 41 +12 9 12 56 +17 30 23 41 +10 54 14 61 +6 58 15 73 +10 10 17 68 +22 62 22 64 +11 29 14 59 +8 0 22 75 +22 20 23 85 +0 35 22 40 +7 90 10 90 +21 32 23 77 +16 54 21 71 +2 23 2 90 +14 65 17 74 +21 39 22 42 +2 22 15 75 +3 83 15 85 +18 51 18 67 +18 29 20 89 +21 66 22 77 +21 15 21 15 +10 75 19 90 +12 43 15 85 +10 34 18 58 +10 54 19 69 +9 12 11 31 +5 81 21 86 +1 11 3 63 +1 80 20 85 +23 16 23 85 +5 21 9 34 +20 76 23 82 +12 47 20 83 +13 86 14 86 +6 15 12 76 +20 77 22 87 +21 0 22 53 +13 52 22 72 +8 15 9 83 +1 24 8 26 +3 71 18 88 +22 39 22 84 +13 0 13 90 +13 85 14 89 diff --git a/2018/republic/7-9_d1/arta/tests/input.02 b/2018/republic/7-9_d1/arta/tests/input.02 new file mode 100644 index 0000000..4cd865d --- /dev/null +++ b/2018/republic/7-9_d1/arta/tests/input.02 @@ -0,0 +1,2254 @@ +18 34 +2252 +5 31 11 33 +5 24 10 24 +10 23 12 28 +5 18 7 29 +14 17 16 27 +4 25 15 27 +0 24 2 33 +11 3 12 12 +10 20 15 31 +9 32 12 32 +6 27 12 32 +3 31 14 32 +13 29 17 31 +16 31 17 32 +3 19 10 31 +5 18 6 31 +10 31 16 33 +17 31 17 32 +2 25 4 28 +11 1 16 2 +7 18 12 19 +17 21 17 32 +14 22 15 27 +6 17 15 32 +15 25 16 31 +17 9 17 23 +13 23 17 26 +9 28 12 29 +4 27 10 27 +5 9 8 28 +1 7 11 19 +12 7 12 12 +5 29 14 32 +15 2 17 18 +17 21 17 21 +1 24 9 29 +12 16 12 30 +8 28 16 30 +3 17 5 20 +7 10 11 11 +16 20 17 26 +7 19 14 26 +15 22 17 33 +13 10 17 30 +3 22 15 23 +14 24 15 31 +12 23 14 33 +15 30 17 31 +10 25 12 32 +12 12 14 15 +14 15 16 17 +15 8 17 31 +3 13 13 22 +0 9 11 16 +5 18 15 22 +2 27 7 29 +17 13 17 15 +15 3 16 15 +10 11 15 19 +6 0 9 25 +14 15 16 22 +16 11 17 27 +13 26 14 33 +13 27 16 31 +16 11 17 14 +8 7 10 18 +7 27 16 29 +0 31 13 32 +17 17 17 32 +11 21 15 22 +2 19 2 25 +4 29 5 32 +9 13 9 19 +6 4 6 9 +17 30 17 32 +17 30 17 32 +4 27 5 32 +4 24 13 29 +14 23 17 25 +11 24 12 26 +14 7 17 25 +9 13 17 30 +8 11 12 28 +7 31 17 31 +11 31 17 31 +13 26 15 30 +8 22 10 27 +0 26 6 28 +5 27 5 29 +5 12 16 31 +5 33 7 33 +8 12 16 25 +12 16 16 16 +14 33 14 33 +14 6 14 23 +17 5 17 16 +10 24 15 30 +4 1 16 33 +7 1 17 22 +8 2 12 16 +1 9 4 10 +7 14 11 20 +1 15 13 33 +0 14 16 15 +13 21 17 30 +4 13 11 29 +8 1 11 13 +9 13 15 30 +14 31 16 32 +12 17 17 18 +3 9 8 14 +15 31 15 31 +16 10 17 10 +0 30 13 32 +7 29 17 31 +9 19 13 25 +9 0 9 16 +16 16 17 29 +7 4 16 21 +3 12 10 12 +3 19 4 19 +4 13 4 33 +6 14 10 28 +11 4 14 15 +14 2 14 27 +17 20 17 29 +17 33 17 33 +8 8 15 33 +12 4 15 10 +3 20 6 23 +15 2 16 25 +11 15 11 31 +16 33 17 33 +5 29 16 33 +3 21 12 31 +0 25 11 30 +10 6 12 33 +14 25 16 27 +8 21 15 32 +14 17 17 19 +15 21 16 27 +14 15 17 24 +9 9 11 27 +7 24 8 27 +17 5 17 14 +3 5 6 30 +5 2 12 15 +1 22 8 28 +6 28 10 29 +6 7 14 15 +6 23 16 33 +17 19 17 27 +10 5 14 9 +14 28 16 33 +1 7 12 9 +10 24 13 30 +2 4 12 20 +1 19 17 21 +16 31 17 32 +12 2 15 22 +12 25 17 27 +15 16 16 27 +4 5 5 19 +15 17 16 31 +16 15 17 17 +13 17 15 30 +2 22 11 23 +8 8 11 12 +6 8 14 10 +16 8 16 21 +11 14 15 27 +11 16 17 29 +5 13 8 13 +0 12 3 21 +9 31 16 31 +17 29 17 32 +15 30 16 33 +2 2 13 20 +5 0 16 32 +5 5 12 27 +1 8 9 25 +12 19 16 27 +15 3 17 3 +9 11 15 15 +9 5 12 10 +8 16 17 22 +8 28 15 28 +3 14 6 16 +1 8 2 24 +9 30 10 30 +4 2 14 23 +15 27 15 27 +17 7 17 8 +14 27 16 28 +6 4 17 29 +16 6 16 32 +16 5 17 8 +6 31 11 32 +0 2 13 9 +3 14 10 27 +1 24 2 26 +11 26 16 33 +1 24 9 30 +2 8 16 14 +8 28 11 28 +15 19 17 25 +3 27 17 33 +6 1 14 24 +0 14 1 24 +5 23 9 28 +9 23 14 23 +9 8 11 12 +10 32 17 33 +0 30 5 32 +3 13 3 19 +5 4 12 7 +12 9 12 11 +14 22 15 27 +15 28 16 31 +5 30 7 33 +16 13 16 33 +17 32 17 33 +12 22 12 25 +13 15 16 33 +16 31 17 33 +0 21 7 30 +5 8 14 32 +10 31 16 31 +16 31 16 33 +4 25 10 29 +9 14 12 28 +17 0 17 2 +1 32 8 32 +1 14 2 26 +10 8 14 19 +4 27 17 28 +16 19 16 20 +0 32 11 33 +14 21 14 27 +17 23 17 27 +15 32 16 32 +6 4 17 23 +2 5 6 21 +8 14 15 27 +13 29 16 30 +14 27 16 32 +1 21 13 22 +10 13 14 26 +3 30 5 33 +15 8 17 18 +4 26 17 31 +10 30 11 30 +13 31 13 31 +6 4 12 7 +6 25 13 26 +1 32 16 32 +9 19 12 33 +1 2 3 14 +2 8 9 12 +11 0 15 29 +15 33 17 33 +5 9 6 22 +5 14 8 25 +2 14 2 30 +4 13 12 26 +13 8 16 10 +4 20 15 24 +14 12 15 33 +7 2 15 11 +15 28 15 30 +8 33 17 33 +16 11 17 15 +12 10 12 20 +3 15 11 25 +7 22 10 33 +17 22 17 33 +8 11 8 31 +10 28 11 32 +17 10 17 13 +9 4 14 12 +6 21 9 30 +11 11 17 32 +7 12 8 13 +6 2 13 21 +6 26 16 27 +6 6 17 8 +9 3 9 22 +15 27 17 33 +3 0 11 29 +9 32 12 32 +13 24 15 30 +7 12 12 15 +1 31 1 33 +3 21 7 21 +10 13 14 17 +17 6 17 24 +2 23 11 25 +11 11 16 32 +4 9 16 18 +6 3 6 32 +10 32 15 32 +9 19 15 24 +7 11 16 18 +11 14 17 26 +10 31 16 32 +8 17 9 32 +6 1 17 33 +6 12 16 15 +4 10 16 13 +17 20 17 27 +13 32 14 33 +10 10 13 28 +11 32 14 32 +3 33 9 33 +8 32 8 33 +7 16 8 25 +13 28 13 29 +15 17 15 31 +12 8 16 13 +12 14 17 16 +14 6 14 15 +16 29 17 30 +11 4 17 22 +12 15 14 15 +0 15 8 27 +16 22 16 29 +8 11 16 22 +2 32 3 32 +8 16 16 26 +6 1 9 28 +4 27 12 30 +7 17 7 27 +1 20 3 24 +9 7 11 11 +5 1 15 25 +14 21 16 23 +15 8 17 11 +11 31 14 33 +12 8 13 31 +5 27 11 33 +8 22 14 29 +6 31 15 33 +17 28 17 29 +16 29 16 31 +6 23 15 28 +1 9 15 28 +11 8 17 12 +8 0 13 26 +13 26 14 31 +17 32 17 33 +11 24 14 29 +16 18 17 32 +3 7 3 10 +12 5 17 9 +0 2 11 3 +5 25 15 30 +10 31 14 33 +9 13 10 32 +3 11 7 29 +10 16 16 19 +6 14 6 26 +16 25 17 29 +15 24 15 25 +4 10 4 14 +7 32 12 32 +7 4 17 12 +5 9 6 28 +5 24 5 27 +8 11 9 16 +6 33 17 33 +12 2 13 26 +4 31 12 31 +8 27 17 30 +17 31 17 32 +5 26 7 31 +6 9 13 23 +1 2 1 28 +14 3 17 9 +9 19 11 30 +17 14 17 32 +5 24 10 27 +4 27 14 29 +9 9 15 19 +15 21 15 33 +16 16 16 29 +17 22 17 23 +10 9 11 23 +16 23 17 27 +3 8 11 25 +8 16 13 28 +5 3 5 24 +17 32 17 32 +1 31 6 33 +6 15 15 31 +13 18 14 24 +9 6 9 6 +10 5 13 13 +3 22 14 30 +17 31 17 32 +6 30 13 32 +13 5 15 18 +17 11 17 13 +14 19 14 22 +15 33 16 33 +13 13 16 30 +13 14 13 32 +7 9 10 31 +4 0 14 15 +10 31 13 31 +8 0 11 1 +5 32 9 32 +11 31 16 31 +7 19 15 28 +12 23 12 25 +7 7 12 30 +13 5 13 27 +6 15 9 18 +5 32 11 33 +6 0 10 1 +6 1 9 32 +12 21 13 32 +6 33 13 33 +10 14 17 29 +3 3 9 25 +1 21 12 32 +12 2 15 33 +12 1 17 14 +1 21 11 31 +16 3 16 23 +7 20 13 20 +10 31 10 33 +5 2 9 16 +13 21 13 29 +4 25 8 25 +15 17 15 26 +8 29 13 31 +12 2 12 33 +3 26 13 27 +16 3 17 29 +5 26 6 26 +7 24 12 27 +9 12 12 32 +3 21 9 21 +4 6 6 22 +5 33 5 33 +15 15 16 25 +11 2 13 19 +16 2 17 24 +15 25 17 30 +12 4 17 20 +12 3 16 7 +17 16 17 18 +11 30 11 30 +13 0 15 28 +9 20 14 29 +1 22 15 25 +6 32 11 32 +17 30 17 33 +4 25 10 31 +5 29 12 33 +5 5 15 9 +2 20 13 31 +4 21 5 22 +6 18 14 29 +4 3 10 30 +9 21 10 23 +17 14 17 15 +16 28 17 31 +3 8 17 15 +7 27 8 29 +11 17 11 28 +15 1 15 4 +14 1 14 4 +0 32 13 33 +3 5 6 5 +2 33 12 33 +1 4 15 22 +4 5 9 25 +4 20 4 31 +2 13 15 17 +6 26 15 28 +12 10 13 23 +11 27 17 32 +17 8 17 18 +15 17 16 31 +3 22 7 22 +0 6 3 31 +13 27 15 33 +12 18 13 31 +14 27 17 28 +11 6 16 13 +15 2 17 5 +13 27 15 29 +7 25 9 27 +11 33 17 33 +6 33 6 33 +5 8 14 24 +0 25 6 31 +15 2 15 32 +6 21 8 29 +3 19 10 23 +8 29 16 33 +0 11 1 27 +1 17 17 30 +15 20 17 20 +1 6 13 26 +3 3 12 10 +17 16 17 29 +2 31 17 32 +17 22 17 26 +15 11 17 24 +3 0 8 14 +5 14 14 30 +15 27 15 28 +17 3 17 29 +4 9 17 16 +4 28 7 29 +2 24 4 30 +2 30 4 31 +10 18 12 31 +1 1 4 22 +11 30 16 32 +17 21 17 21 +10 8 14 10 +2 30 7 33 +4 11 17 33 +7 3 12 32 +12 2 15 6 +2 24 9 25 +11 9 16 19 +1 25 8 28 +4 30 14 33 +11 23 16 32 +13 26 16 33 +17 28 17 31 +17 22 17 28 +14 18 16 28 +3 21 10 23 +3 5 11 25 +2 15 16 28 +3 24 9 27 +9 19 12 24 +4 27 11 27 +15 14 15 21 +11 3 15 18 +3 33 17 33 +12 3 17 17 +8 18 10 18 +14 27 15 27 +4 2 5 18 +17 9 17 24 +6 1 16 24 +7 29 9 33 +17 15 17 33 +16 4 17 27 +5 11 13 33 +6 27 6 27 +3 8 16 32 +15 23 15 24 +16 3 17 12 +14 32 17 33 +8 33 8 33 +6 0 6 14 +12 30 13 31 +15 0 16 13 +8 30 14 32 +8 26 12 27 +12 32 15 33 +13 24 17 33 +16 2 17 24 +17 31 17 33 +7 18 13 19 +16 32 17 32 +8 14 14 17 +10 26 14 33 +8 3 17 16 +11 14 11 14 +14 30 16 33 +9 25 17 33 +9 9 13 17 +15 26 16 28 +7 18 7 19 +5 21 14 33 +7 9 12 14 +2 30 17 32 +8 3 14 4 +4 32 5 32 +12 19 17 22 +6 0 10 22 +4 18 13 19 +17 19 17 22 +10 25 12 32 +3 18 3 32 +9 17 10 33 +7 27 16 30 +12 11 16 21 +6 32 9 32 +9 20 12 32 +12 30 17 31 +9 28 13 31 +16 20 17 21 +3 23 16 25 +9 21 14 22 +1 9 14 13 +17 25 17 29 +6 20 9 30 +6 10 14 19 +4 33 11 33 +15 29 15 32 +2 22 14 28 +4 13 12 16 +3 23 6 25 +14 7 16 32 +6 8 9 16 +12 33 12 33 +0 9 15 24 +10 10 12 11 +3 14 3 32 +17 21 17 25 +2 22 10 32 +0 12 15 17 +8 10 12 23 +16 33 16 33 +4 15 12 23 +13 5 15 8 +16 5 16 26 +14 15 16 26 +7 24 16 32 +9 13 14 27 +2 30 11 33 +16 10 16 33 +14 10 15 18 +7 0 17 30 +12 9 12 19 +13 10 17 10 +16 2 17 10 +0 1 17 7 +3 32 8 32 +16 13 17 32 +1 2 8 31 +12 27 16 28 +13 3 13 17 +16 26 16 27 +12 16 12 18 +3 32 10 33 +17 25 17 32 +6 19 7 22 +7 5 16 25 +13 25 14 28 +0 1 17 23 +15 31 17 33 +8 10 10 29 +13 8 15 25 +0 14 17 19 +8 17 11 29 +6 7 13 24 +15 8 16 10 +9 27 15 28 +12 8 13 11 +10 31 15 33 +12 25 13 32 +12 5 12 14 +12 33 16 33 +4 19 12 31 +8 32 15 32 +16 14 17 14 +1 1 16 25 +4 23 6 32 +6 25 15 28 +17 26 17 32 +7 11 9 29 +3 11 15 28 +0 4 16 23 +13 19 13 25 +3 5 9 20 +16 3 16 3 +15 14 17 29 +5 12 10 28 +17 32 17 33 +7 7 7 17 +9 29 11 29 +10 16 16 25 +0 4 12 33 +6 33 6 33 +17 4 17 21 +4 23 10 24 +13 29 16 32 +2 7 11 26 +15 5 16 9 +2 33 14 33 +15 6 15 12 +1 7 16 24 +6 21 6 30 +12 25 15 31 +4 33 5 33 +12 11 17 31 +3 16 13 25 +15 23 16 30 +15 26 15 30 +14 18 15 21 +14 7 15 18 +6 23 16 32 +6 30 16 31 +6 6 15 15 +12 16 12 33 +10 22 14 26 +12 12 17 22 +9 2 15 9 +2 2 6 10 +8 25 9 30 +11 30 13 33 +14 29 14 32 +14 11 14 16 +7 4 8 5 +2 8 17 32 +3 5 10 27 +10 29 16 29 +5 33 13 33 +15 13 16 31 +16 33 16 33 +4 27 4 28 +9 29 12 31 +16 19 17 19 +12 3 12 22 +16 17 16 25 +6 16 14 17 +4 17 14 21 +0 2 12 26 +14 2 17 17 +10 16 12 26 +11 28 13 29 +16 5 16 31 +8 12 17 32 +4 10 11 29 +11 20 14 23 +6 4 15 7 +14 0 16 14 +6 6 8 21 +13 30 14 32 +17 2 17 3 +10 16 12 26 +16 14 16 21 +10 24 11 33 +16 28 16 31 +0 17 0 24 +10 19 15 30 +7 11 8 24 +12 18 15 20 +10 20 17 28 +4 20 16 31 +11 1 15 16 +16 14 16 14 +16 21 16 26 +8 15 14 21 +7 31 14 33 +3 7 12 18 +14 0 15 25 +1 24 2 24 +6 23 9 27 +15 16 16 31 +15 11 15 23 +11 12 17 18 +11 0 16 28 +15 14 16 27 +2 12 16 32 +4 5 17 10 +13 33 13 33 +1 29 10 30 +1 14 3 21 +11 17 15 29 +15 8 15 18 +6 19 10 28 +9 12 16 25 +5 1 6 18 +8 12 10 19 +0 29 15 32 +1 2 11 23 +1 21 17 25 +7 4 9 17 +3 20 16 22 +13 9 16 13 +17 14 17 32 +9 5 16 26 +7 25 13 26 +6 7 17 15 +5 5 16 24 +3 8 7 10 +6 10 6 13 +16 18 17 18 +16 9 16 25 +2 8 9 17 +11 1 17 23 +2 22 10 25 +1 4 14 24 +0 18 10 21 +17 13 17 31 +4 29 17 33 +16 29 16 33 +15 19 17 21 +3 3 8 11 +1 19 14 26 +15 7 17 32 +14 0 14 3 +3 9 9 20 +15 10 17 11 +9 5 10 15 +7 31 11 33 +14 4 14 5 +7 14 10 16 +7 31 17 32 +16 15 16 18 +7 1 7 20 +11 9 17 24 +4 17 16 18 +14 33 14 33 +6 16 17 31 +6 8 17 17 +12 25 15 33 +15 21 15 25 +9 28 14 32 +2 33 17 33 +17 17 17 29 +15 24 16 33 +17 15 17 26 +13 17 16 19 +8 14 14 16 +7 8 12 15 +8 6 9 30 +13 26 14 26 +5 1 7 14 +13 30 16 30 +0 28 4 31 +9 21 9 23 +2 30 4 31 +12 30 12 30 +0 21 11 28 +9 26 16 32 +5 3 7 12 +10 5 11 24 +3 13 7 31 +16 7 17 7 +12 17 16 21 +0 19 16 27 +13 3 13 18 +10 7 17 7 +15 14 16 32 +2 27 17 29 +15 18 17 30 +15 31 15 31 +11 12 12 24 +17 18 17 31 +7 10 12 23 +15 25 16 29 +4 8 7 29 +12 20 15 22 +5 32 7 33 +6 24 12 30 +3 11 6 17 +0 20 5 21 +12 29 13 29 +8 7 13 30 +7 33 16 33 +8 24 8 28 +15 8 16 16 +1 16 10 30 +0 4 12 16 +2 8 15 15 +14 13 15 20 +17 4 17 20 +9 33 12 33 +3 21 17 32 +7 10 17 28 +0 3 5 3 +9 16 13 26 +7 0 17 5 +7 16 12 23 +8 19 8 26 +9 11 14 31 +3 13 10 25 +14 12 16 22 +5 2 15 10 +12 21 13 26 +14 0 17 20 +15 4 15 12 +2 16 6 22 +5 20 7 24 +13 24 17 29 +16 8 17 24 +10 25 16 31 +8 23 14 29 +17 5 17 33 +14 11 17 29 +17 29 17 31 +4 18 5 33 +3 11 6 13 +10 20 16 21 +8 9 15 20 +17 17 17 31 +16 19 17 33 +13 26 13 32 +2 9 5 13 +4 29 5 29 +15 27 15 30 +4 12 12 17 +1 24 2 33 +4 32 8 33 +3 18 17 30 +2 4 3 17 +6 32 12 33 +13 9 17 30 +1 27 5 27 +17 8 17 33 +2 12 11 21 +5 18 11 33 +0 11 15 17 +11 9 14 15 +13 12 17 18 +11 22 13 30 +14 3 14 11 +17 1 17 20 +14 6 14 19 +4 1 10 16 +8 16 12 29 +14 27 15 32 +8 12 11 23 +16 11 16 18 +12 9 17 9 +6 10 9 12 +3 6 16 23 +11 13 14 24 +11 28 12 29 +11 16 12 30 +14 22 14 29 +0 13 8 29 +14 16 17 21 +1 2 9 4 +1 8 14 32 +0 26 12 32 +2 23 13 29 +6 1 6 6 +8 0 11 8 +9 12 15 24 +1 17 10 28 +10 3 15 18 +13 0 15 31 +12 9 15 9 +14 9 15 31 +9 25 10 29 +1 17 9 24 +13 16 14 29 +5 33 9 33 +6 26 17 29 +14 17 16 29 +1 1 8 7 +11 9 15 33 +15 9 15 25 +9 12 13 15 +17 22 17 25 +10 18 16 28 +9 11 10 26 +2 4 3 26 +9 20 9 28 +7 5 9 30 +6 7 9 22 +9 29 17 33 +7 4 13 26 +2 6 10 20 +10 2 12 20 +8 27 12 30 +7 16 10 26 +6 33 12 33 +6 31 14 33 +15 4 17 24 +7 14 7 24 +3 3 15 31 +9 12 13 12 +0 28 8 32 +13 12 16 21 +12 4 12 4 +15 25 15 33 +13 3 14 9 +5 31 5 31 +1 13 6 26 +16 33 16 33 +12 10 17 30 +8 8 17 22 +2 29 8 33 +13 5 17 32 +1 1 15 29 +15 5 16 15 +6 14 16 14 +7 31 11 32 +4 7 16 24 +1 16 4 27 +0 9 5 14 +10 14 12 19 +11 4 16 11 +17 29 17 31 +1 8 3 19 +0 22 16 32 +0 11 16 30 +8 23 12 29 +17 24 17 31 +4 24 6 32 +5 0 6 10 +17 27 17 29 +12 1 12 10 +0 19 4 21 +16 9 17 30 +10 23 11 32 +17 14 17 15 +15 15 17 17 +17 26 17 28 +14 11 17 15 +5 31 10 31 +14 19 16 25 +12 9 15 12 +1 33 4 33 +3 1 9 21 +14 25 16 31 +7 18 17 25 +11 12 14 12 +8 7 15 24 +12 26 14 27 +7 21 12 27 +16 21 16 21 +17 31 17 32 +3 21 8 28 +10 17 14 33 +12 0 12 0 +13 12 15 19 +5 32 5 32 +13 32 13 32 +11 25 11 32 +3 29 11 31 +17 14 17 14 +6 9 6 18 +12 18 16 29 +12 31 17 32 +15 13 16 19 +13 0 16 16 +3 18 16 32 +4 31 16 33 +15 12 17 14 +12 6 13 18 +11 26 11 31 +9 18 12 27 +16 18 16 19 +16 27 17 28 +15 30 15 30 +16 1 17 1 +13 31 16 32 +9 33 9 33 +17 30 17 31 +15 31 15 31 +14 20 17 26 +8 0 8 25 +10 29 12 29 +10 7 11 13 +7 17 14 24 +13 16 17 32 +2 29 15 29 +14 11 16 23 +11 33 12 33 +1 28 17 30 +17 16 17 28 +13 0 15 4 +14 7 15 9 +16 10 17 13 +3 19 7 23 +7 7 10 16 +6 1 17 8 +2 21 6 33 +2 19 3 28 +3 6 9 8 +12 7 16 31 +7 25 7 26 +10 4 12 14 +1 18 12 31 +17 28 17 28 +10 17 15 30 +6 26 8 32 +17 31 17 33 +8 7 8 21 +13 1 13 9 +4 12 4 31 +14 28 14 32 +7 22 16 26 +17 33 17 33 +1 18 3 28 +8 11 17 13 +10 18 10 27 +10 5 16 22 +16 18 17 33 +6 7 17 10 +7 16 7 16 +6 29 10 29 +0 1 15 27 +3 14 11 17 +17 3 17 26 +5 27 15 30 +16 31 16 33 +17 25 17 33 +5 17 14 26 +13 11 16 28 +7 10 10 30 +9 23 13 29 +9 22 15 28 +8 11 14 28 +0 15 9 28 +7 14 10 32 +4 31 7 33 +4 29 16 31 +9 33 9 33 +0 23 6 31 +4 1 16 18 +3 12 12 20 +10 10 17 16 +7 24 14 30 +15 20 16 26 +5 0 15 18 +17 0 17 14 +13 5 16 25 +8 13 17 15 +8 24 17 29 +16 4 16 14 +13 1 16 17 +5 3 7 25 +10 7 17 18 +17 14 17 27 +12 21 15 27 +5 26 8 33 +17 5 17 5 +8 6 10 13 +11 25 14 31 +7 8 7 25 +3 8 3 27 +12 13 15 19 +15 7 16 28 +4 32 7 32 +14 4 15 20 +8 3 12 18 +6 26 12 29 +11 9 11 16 +12 23 15 23 +10 10 17 10 +13 12 15 20 +13 31 17 32 +10 12 16 22 +9 3 13 24 +7 3 7 18 +8 31 12 32 +14 32 15 33 +4 11 10 30 +11 30 17 30 +5 12 16 32 +15 9 17 23 +5 14 5 31 +17 1 17 25 +10 12 14 25 +1 26 2 32 +2 0 7 27 +8 13 13 24 +11 6 15 26 +6 7 8 11 +16 16 16 19 +15 9 17 25 +11 15 17 24 +4 19 14 31 +5 12 7 19 +5 28 11 31 +1 1 8 9 +6 26 12 26 +2 22 5 25 +1 11 15 32 +15 20 15 29 +8 15 8 31 +16 31 17 31 +6 9 14 32 +7 17 16 28 +15 24 17 31 +9 20 12 25 +15 9 17 23 +16 11 17 32 +7 33 12 33 +0 21 0 30 +13 19 13 24 +17 12 17 25 +11 17 14 18 +9 2 10 3 +3 0 16 0 +2 31 14 32 +15 33 15 33 +2 13 13 23 +11 16 16 19 +3 11 8 17 +16 7 17 8 +12 29 15 29 +8 3 10 9 +1 4 7 26 +7 30 13 31 +0 21 10 33 +2 18 8 27 +16 32 17 32 +8 5 9 30 +6 24 17 27 +10 21 13 22 +4 12 7 24 +16 17 16 23 +3 21 15 23 +8 4 14 22 +16 19 16 28 +8 26 15 28 +4 11 12 11 +9 0 15 4 +11 18 15 30 +10 33 11 33 +15 24 17 27 +5 8 13 22 +4 29 8 30 +4 3 13 18 +12 12 12 31 +3 8 11 20 +3 2 15 5 +4 14 5 26 +9 6 12 24 +7 32 9 32 +12 6 17 29 +0 0 7 30 +16 14 16 21 +10 17 17 33 +3 32 7 33 +10 30 17 30 +3 32 4 33 +16 29 17 33 +15 27 17 31 +2 14 15 31 +14 3 17 17 +13 31 13 32 +17 1 17 12 +8 19 14 22 +5 0 14 2 +12 8 17 27 +1 17 14 17 +5 15 10 19 +2 15 7 18 +10 28 16 28 +5 26 6 29 +4 11 13 32 +3 32 15 33 +16 32 16 33 +7 11 12 23 +10 21 15 27 +14 32 15 33 +10 18 15 33 +1 23 1 26 +12 18 15 25 +8 31 13 31 +16 19 16 25 +11 5 16 11 +10 33 15 33 +10 1 15 12 +7 33 7 33 +11 30 14 33 +2 0 11 4 +8 33 16 33 +16 3 16 29 +16 29 16 32 +12 9 14 16 +9 24 11 26 +0 1 7 3 +8 19 14 20 +0 8 14 26 +15 21 15 30 +14 14 15 16 +12 21 14 31 +6 5 11 7 +5 1 11 3 +9 17 14 30 +4 26 10 26 +12 25 17 27 +2 5 12 17 +14 22 16 26 +12 7 17 25 +8 11 15 30 +7 21 12 30 +8 20 12 27 +11 1 11 32 +1 33 3 33 +13 33 17 33 +6 2 6 15 +10 33 16 33 +17 28 17 30 +5 9 16 28 +9 21 10 33 +5 32 17 32 +9 28 17 33 +5 0 15 18 +4 8 13 30 +14 29 16 31 +1 11 1 22 +16 27 16 30 +13 24 13 31 +16 31 16 33 +0 31 17 31 +17 30 17 30 +6 4 16 21 +2 27 6 27 +0 18 16 26 +2 21 15 21 +4 11 15 31 +14 6 17 7 +8 20 17 31 +12 23 15 32 +10 32 16 33 +6 9 13 14 +8 1 8 2 +2 16 13 23 +11 17 17 26 +17 29 17 30 +15 13 15 27 +1 6 2 6 +15 27 16 33 +8 30 16 30 +11 32 16 33 +10 16 17 23 +3 13 6 19 +15 19 16 26 +11 1 12 25 +14 23 16 31 +9 13 16 16 +12 7 17 28 +14 8 15 10 +3 17 6 19 +8 0 10 1 +2 11 6 25 +6 18 10 33 +10 20 11 20 +10 32 14 32 +1 19 11 24 +10 27 13 27 +15 12 17 32 +4 28 14 30 +11 9 15 28 +17 10 17 10 +15 4 16 8 +16 3 16 25 +15 32 15 32 +17 15 17 16 +5 21 7 27 +11 9 17 27 +0 19 4 30 +8 14 16 30 +9 30 12 30 +1 17 10 28 +10 20 14 32 +8 33 10 33 +15 16 15 26 +17 21 17 23 +13 14 14 33 +17 2 17 16 +0 18 4 20 +0 8 7 9 +0 14 1 28 +11 14 12 19 +5 14 6 17 +16 30 17 30 +8 26 11 31 +8 7 13 13 +4 2 15 2 +10 12 17 33 +15 20 17 27 +10 0 14 14 +17 3 17 30 +4 26 8 32 +3 25 3 25 +9 33 14 33 +5 2 9 6 +9 20 14 25 +5 32 9 32 +5 31 6 31 +11 12 15 27 +12 7 16 21 +0 5 9 21 +14 8 16 23 +17 32 17 33 +4 24 16 26 +10 19 11 22 +16 18 17 20 +6 21 11 24 +2 1 6 20 +11 27 11 32 +5 17 10 31 +16 14 16 26 +13 20 16 28 +8 6 10 33 +1 17 15 24 +13 12 13 30 +4 32 12 32 +11 6 14 27 +12 30 13 30 +0 32 12 32 +12 5 15 31 +4 3 17 26 +7 12 12 32 +16 12 16 27 +16 23 17 25 +2 10 8 14 +1 18 3 25 +8 3 17 23 +9 17 15 26 +10 24 17 25 +8 31 10 31 +2 3 8 22 +8 1 15 16 +5 19 9 33 +13 25 14 29 +10 14 14 25 +16 32 16 33 +15 25 16 31 +7 3 10 31 +17 17 17 19 +4 7 7 33 +14 21 14 30 +2 27 4 32 +2 16 12 21 +17 25 17 28 +16 8 17 26 +1 31 8 32 +11 23 15 25 +10 15 14 20 +8 1 15 16 +10 23 14 27 +8 1 10 25 +14 14 17 15 +17 28 17 28 +16 17 17 32 +6 18 17 30 +7 3 16 17 +14 14 14 31 +11 5 15 6 +16 27 17 33 +10 28 14 33 +0 26 16 33 +14 1 16 13 +14 20 15 32 +1 2 13 6 +12 26 14 31 +3 19 13 26 +14 13 16 16 +15 17 15 25 +4 12 16 33 +15 9 15 20 +13 31 13 31 +9 21 9 23 +3 11 17 32 +6 29 8 29 +10 16 16 21 +6 15 17 26 +10 26 12 33 +7 10 13 16 +0 33 12 33 +2 5 15 7 +13 27 13 29 +16 18 17 31 +1 15 16 33 +6 11 7 13 +8 7 11 23 +11 3 11 9 +3 24 6 32 +16 10 16 28 +8 19 8 22 +10 33 12 33 +11 26 15 27 +15 21 16 32 +5 1 17 18 +5 6 15 13 +13 9 14 30 +13 10 14 16 +15 9 17 22 +2 30 5 31 +6 7 7 25 +3 13 13 29 +7 30 8 32 +2 23 10 23 +15 1 17 25 +1 29 10 30 +16 7 17 7 +16 27 17 28 +16 2 16 27 +11 0 16 6 +6 17 6 33 +10 10 12 11 +15 28 17 30 +10 19 16 32 +13 32 17 32 +12 2 14 15 +7 7 14 28 +14 0 14 19 +16 8 17 13 +6 19 9 33 +1 24 2 27 +9 10 9 18 +8 16 16 19 +4 22 7 30 +5 20 14 31 +0 5 17 19 +13 17 13 31 +4 19 13 30 +7 31 11 31 +10 28 13 29 +11 16 12 19 +8 20 13 27 +0 9 14 22 +2 30 9 33 +3 9 8 22 +13 19 16 21 +3 30 6 30 +13 21 14 30 +7 6 8 28 +2 26 15 33 +10 18 13 25 +14 14 15 29 +7 32 17 33 +9 11 10 15 +14 28 17 31 +17 1 17 27 +14 14 17 17 +4 14 16 32 +9 17 13 33 +16 5 16 25 +3 3 11 3 +1 17 5 30 +0 21 4 24 +9 21 11 30 +1 19 10 26 +0 28 14 29 +14 20 17 26 +14 31 17 31 +12 4 14 19 +13 26 14 30 +17 29 17 33 +14 12 16 33 +14 5 17 32 +9 3 17 17 +9 19 9 30 +4 17 13 20 +17 25 17 31 +8 0 17 27 +14 20 16 22 +17 9 17 13 +14 23 16 31 +9 25 12 27 +12 26 12 28 +2 25 10 25 +0 33 11 33 +2 9 4 19 +13 19 13 33 +2 18 15 31 +1 15 3 31 +10 18 14 31 +7 4 10 6 +15 19 15 26 +17 10 17 17 +3 20 8 23 +10 2 11 13 +7 11 12 24 +9 19 14 33 +8 5 13 17 +4 14 11 29 +13 25 13 29 +16 11 17 11 +1 17 5 20 +5 33 8 33 +8 23 16 30 +12 24 15 25 +5 1 16 9 +5 8 12 32 +13 10 15 20 +7 0 12 0 +14 5 16 27 +15 33 16 33 +0 9 10 32 +9 0 16 7 +17 18 17 23 +4 2 5 4 +14 26 17 30 +11 21 17 21 +4 10 13 11 +6 14 7 24 +11 20 12 23 +0 25 14 33 +0 18 12 30 +12 21 12 33 +4 11 5 27 +1 17 12 23 +1 16 3 21 +2 3 5 24 +9 22 16 30 +12 24 16 27 +7 0 17 14 +3 29 8 32 +11 4 16 22 +11 22 17 28 +12 4 17 33 +0 11 1 18 +16 3 17 23 +2 22 6 31 +4 2 10 7 +9 30 17 30 +5 10 5 19 +14 18 14 27 +11 32 16 33 +4 21 5 31 +10 15 17 20 +4 10 17 24 +7 20 9 30 +14 2 14 17 +6 7 10 30 +6 28 8 33 +16 2 17 27 +2 5 4 15 +2 16 17 30 +6 26 13 29 +9 20 15 22 +14 14 14 30 +5 13 11 18 +7 16 14 24 +3 11 6 29 +8 19 14 26 +7 22 14 28 +4 32 4 33 +5 29 8 30 +11 9 13 18 +17 11 17 24 +13 0 16 10 +8 19 12 25 +12 1 14 4 +3 13 14 14 +14 32 16 32 +2 20 6 24 +11 11 11 11 +10 1 16 12 +1 27 8 31 +15 18 16 18 +11 29 17 33 +13 9 14 17 +7 18 7 22 +3 27 6 33 +6 18 13 20 +1 13 14 22 +11 3 15 33 +8 7 16 15 +0 13 10 29 +5 26 11 26 +14 33 16 33 +2 28 12 33 +14 2 14 18 +10 2 16 23 +2 21 14 31 +7 1 16 8 +9 11 13 12 +5 3 6 6 +1 25 6 26 +17 19 17 33 +2 8 16 9 +1 14 10 32 +8 13 15 29 +7 32 17 33 +5 6 10 21 +17 27 17 32 +9 26 16 29 +9 1 15 21 +2 6 4 25 +4 17 15 29 +6 25 16 26 +8 18 9 26 +16 11 17 31 +3 11 3 32 +2 24 14 29 +14 12 17 27 +10 22 12 23 +1 2 14 14 +2 28 4 29 +5 13 6 26 +4 8 6 14 +16 7 16 16 +14 12 15 28 +9 6 9 9 +6 13 12 27 +15 31 17 33 +10 16 17 26 +3 1 8 6 +5 15 9 16 +14 17 17 27 +17 12 17 18 +7 10 13 31 +4 12 8 16 +10 21 11 32 +11 25 11 25 +5 6 14 31 +7 27 15 29 +8 4 9 20 +11 22 15 28 +13 10 15 18 +10 17 11 33 +7 0 10 2 +0 20 9 22 +14 30 14 31 +4 28 15 29 +3 3 11 10 +14 9 16 14 +10 29 17 33 +6 14 17 27 +11 18 15 21 +13 26 16 33 +16 0 16 33 +3 26 8 33 +7 19 11 25 +9 4 13 7 +4 26 15 28 +15 24 16 30 +4 30 16 30 +9 15 10 27 +8 31 14 31 +6 26 11 27 +1 22 11 32 +12 23 12 33 +10 6 12 32 +17 7 17 9 +2 10 11 30 +8 17 11 19 +11 24 14 30 +10 2 13 6 +4 30 4 30 +6 8 7 18 +4 25 12 31 +12 13 16 23 +15 2 17 16 +6 2 7 6 +13 25 13 28 +12 24 17 25 +5 5 16 15 +4 22 5 26 +17 7 17 8 +14 0 15 26 +13 19 17 32 +3 22 15 33 +11 24 12 33 +8 11 11 32 +11 29 12 32 +12 33 13 33 +3 10 5 20 +7 15 16 33 +17 3 17 18 +5 18 10 27 +1 4 16 14 +12 23 14 26 +16 20 16 22 +0 7 14 14 +13 4 17 29 +15 13 16 17 +15 22 17 29 +14 7 16 13 +15 30 15 30 +14 17 15 18 +1 30 8 33 +1 9 16 11 +16 1 16 27 +4 32 6 33 +2 15 8 32 +10 21 12 33 +15 32 15 33 +2 11 7 29 +12 7 17 31 +2 13 3 14 +8 21 8 30 +16 6 17 7 +2 23 12 28 +3 22 8 33 +8 4 9 33 +1 25 15 32 +13 31 14 31 +5 5 7 14 +6 21 11 33 +17 21 17 24 +10 16 17 22 +1 31 17 32 +8 18 14 30 +17 32 17 32 +6 11 17 12 +13 14 15 25 +16 10 16 27 +8 16 16 32 +16 24 16 33 +7 18 15 19 +14 22 14 25 +4 0 7 18 +1 4 3 20 +0 8 17 14 +10 20 16 20 +15 9 15 21 +16 14 16 25 +1 33 13 33 +16 25 16 31 +14 25 15 25 +0 21 9 26 +16 5 16 20 +15 23 17 24 +4 20 11 30 +9 22 12 32 +13 9 16 11 +3 16 4 17 +11 4 13 26 +5 16 7 30 +9 28 12 31 +17 30 17 31 +13 20 16 30 +7 4 8 22 +5 4 10 12 +9 11 15 13 +1 7 1 12 +0 13 1 17 +11 0 17 18 +0 29 14 31 +14 28 14 31 +1 2 7 25 +11 32 16 32 +8 12 15 25 +14 30 16 33 +16 21 16 21 +16 19 17 23 +6 2 14 30 +3 14 15 26 +0 27 16 33 +10 20 17 33 +7 33 13 33 +10 10 17 17 +17 3 17 8 +12 21 12 32 +1 2 1 26 +6 18 9 26 +8 19 16 22 +7 15 15 22 +5 29 15 32 +9 2 13 7 +1 28 8 33 +2 0 2 24 +2 27 10 27 +2 23 8 25 +16 2 16 6 +12 2 14 31 +14 14 16 21 +11 18 11 30 +12 10 12 22 +0 15 0 20 +17 15 17 23 +17 1 17 23 +7 23 12 26 +12 4 13 5 +13 16 17 26 +9 32 12 32 +4 31 15 33 +11 26 11 32 +1 29 4 32 +3 8 4 8 +6 3 8 29 +7 32 11 33 +4 10 9 28 +9 11 15 25 +13 33 16 33 +16 3 17 15 +2 15 8 23 +14 30 15 31 +12 12 17 30 +11 23 12 33 +5 15 14 24 +17 21 17 24 +1 24 12 24 +7 21 12 26 +1 6 11 26 +12 26 12 26 +17 18 17 31 +0 6 4 32 +0 5 1 28 +3 0 4 29 +9 12 9 32 +12 8 12 22 +10 32 10 32 +17 31 17 33 +2 20 3 33 +6 12 16 17 +17 28 17 32 +17 20 17 28 +3 11 7 24 +17 25 17 27 +11 29 15 32 +15 11 17 15 +5 28 9 30 +5 25 10 32 +4 29 6 32 +14 24 15 31 +9 7 12 33 +4 15 7 33 +7 6 16 9 +10 32 10 32 +16 20 17 21 +11 13 11 15 +7 22 9 27 +15 31 15 32 +2 16 10 32 +12 31 16 33 +16 9 16 31 +8 14 17 17 +0 11 2 33 +11 26 16 30 +12 7 16 32 +4 0 16 25 +0 19 1 25 +17 1 17 4 +15 10 16 22 +14 28 16 31 +6 21 13 29 +9 19 12 26 +1 30 6 31 +4 4 4 20 +9 19 16 25 +3 26 11 31 +16 16 16 32 +14 27 15 27 +15 18 17 27 +10 15 16 32 +7 20 7 32 +5 0 12 12 +15 5 17 14 +10 25 10 31 +4 24 17 26 +4 11 7 21 +12 19 15 26 +13 2 15 15 +12 20 14 32 +15 27 15 33 +7 3 10 3 +14 28 17 29 +7 22 16 22 +10 32 11 32 +17 0 17 7 +13 16 16 17 +4 0 16 0 +16 2 17 8 +1 33 15 33 +9 11 11 14 +13 20 17 26 +0 12 0 22 +4 16 12 32 +15 33 17 33 +1 0 2 3 +14 22 15 32 +5 6 9 6 +1 17 4 18 +6 4 15 24 +0 33 11 33 +6 25 17 31 +1 18 11 18 +11 30 15 33 +11 11 17 12 +8 10 15 11 +10 4 16 24 +10 6 13 15 +6 22 6 29 +13 1 16 19 +4 15 6 19 +1 15 8 25 +16 19 16 29 +16 21 16 31 +16 20 16 21 +10 1 14 19 +17 0 17 27 +5 27 11 27 +1 10 15 25 +8 6 12 9 +11 19 16 29 +13 20 15 22 +4 28 10 32 +10 10 13 26 +13 3 13 17 +0 17 0 19 +4 18 12 23 +6 29 13 29 +3 9 6 12 +13 24 15 30 +16 15 17 20 +7 23 15 26 +10 23 17 23 +14 7 16 7 +0 24 10 24 +6 12 9 33 +7 25 14 32 +0 5 9 19 +11 27 14 31 +15 16 16 16 +16 15 17 33 +13 18 13 22 +15 6 15 29 +14 29 15 29 +1 28 6 30 +9 1 9 6 +16 22 17 25 +3 1 17 21 +13 5 15 29 +3 18 10 23 +11 6 12 29 +0 14 4 18 +17 12 17 27 +11 24 16 24 +6 0 8 10 +5 27 9 32 +7 21 11 24 +15 15 15 32 +8 15 17 25 +4 4 12 30 +10 0 16 20 +0 24 14 33 +8 3 13 14 +7 11 12 25 +0 0 1 19 +17 8 17 21 +12 23 15 23 +8 24 14 24 +9 28 15 30 +3 18 16 23 +10 18 15 19 +17 17 17 28 +8 12 10 29 +7 20 13 23 +8 18 15 22 +16 16 16 33 +8 6 14 13 +12 23 17 26 +9 0 14 0 +6 27 9 27 +5 33 5 33 +7 31 7 31 +10 4 13 27 +1 2 11 16 +0 33 4 33 +9 3 14 12 +13 11 13 29 +14 25 17 32 +10 10 11 28 +5 19 17 21 +13 16 13 28 +13 13 14 13 +15 27 16 32 +14 30 16 32 +1 11 11 24 +6 32 15 32 +15 2 17 19 +17 27 17 30 +8 23 13 23 +15 3 16 15 +11 23 17 24 +11 31 13 32 +9 26 13 26 +7 24 7 25 +10 23 14 25 +13 25 14 33 +13 7 17 16 +16 16 17 32 +0 7 7 11 +3 2 5 4 +10 3 16 14 +5 17 5 28 +7 9 13 20 +17 9 17 21 +12 18 14 30 +2 27 4 33 +14 1 15 1 +0 9 3 33 +0 17 10 22 +10 26 16 29 +6 6 15 13 +1 23 11 28 +7 2 9 28 +13 30 16 33 +1 22 15 23 +13 19 14 28 +10 15 13 30 +2 32 13 33 +12 32 17 32 +0 26 1 26 +0 22 2 33 +17 20 17 22 +3 6 4 26 +1 22 9 31 +8 32 14 32 +17 31 17 33 +4 10 6 32 +0 26 5 33 +2 32 5 32 +8 33 10 33 +4 25 11 33 +12 32 15 32 +15 13 17 19 +10 9 17 14 +16 7 17 22 +13 5 13 9 +5 32 15 32 +3 9 8 28 +5 31 14 31 +3 26 4 26 +3 1 13 16 +16 9 17 29 +13 13 14 16 +7 10 15 32 +4 31 13 32 +2 15 14 19 +14 7 14 14 +17 17 17 22 +11 29 12 32 +11 25 16 31 +7 24 13 24 +12 12 15 23 +3 28 17 29 +4 7 15 14 +4 30 13 32 +1 15 1 28 +9 28 13 31 +2 11 5 31 +10 25 16 33 +17 31 17 31 +13 31 13 31 +3 5 13 14 +6 30 15 33 +14 28 17 30 +3 12 11 24 +9 27 17 29 +8 20 9 24 +3 9 3 22 +2 0 3 11 +0 22 8 27 +0 5 1 11 +16 30 16 32 +7 11 12 12 +6 32 10 33 +13 17 17 23 +8 31 16 31 +11 16 12 29 +13 26 15 28 +10 27 15 31 +12 1 17 22 +11 18 12 18 +13 7 13 22 +3 7 10 25 +13 29 16 30 +14 31 17 31 +1 1 10 7 +7 13 13 17 +6 4 13 15 +2 3 17 27 +14 21 15 33 +8 14 8 31 +2 33 14 33 +10 3 10 11 +8 30 15 31 +5 8 10 10 +4 10 4 22 +13 24 17 29 +2 23 8 33 +1 25 17 29 +1 32 8 33 +9 8 12 30 +11 2 11 9 +3 12 8 24 +12 21 17 24 +0 12 5 14 +5 14 11 25 +16 12 17 32 +14 12 14 22 +12 9 17 21 +12 7 12 11 +17 33 17 33 +0 3 1 7 +4 25 9 32 +8 27 12 29 +0 1 12 26 +5 1 16 21 +1 13 5 20 +6 15 13 22 +2 9 7 24 +10 23 11 32 +17 32 17 32 +16 13 16 27 +12 3 14 11 +12 16 12 30 +4 25 14 27 +3 12 16 24 +0 29 10 30 +2 21 12 28 +17 5 17 26 +3 13 16 25 +12 18 12 30 +1 7 6 18 +5 10 11 19 +17 24 17 31 +3 5 7 10 +12 9 17 9 +14 12 14 17 +1 3 12 14 +14 10 17 18 +11 29 11 32 +14 33 14 33 +14 7 17 26 +17 13 17 17 +3 0 17 24 +16 4 16 27 +12 3 14 13 +9 18 15 20 +0 32 0 32 +15 33 16 33 +8 23 10 30 +9 22 10 26 +15 6 15 11 +16 5 16 26 +6 10 6 30 +10 32 10 33 +5 32 13 33 +10 25 11 32 +3 15 12 18 +3 29 13 31 +4 27 14 30 +0 31 12 33 +4 17 14 29 +17 18 17 31 +5 2 10 33 +12 16 17 33 +5 6 12 15 +10 2 14 5 +12 20 14 22 +9 27 14 29 +1 21 11 26 +17 31 17 32 +2 0 5 27 +13 2 16 19 +7 23 16 30 +2 19 9 27 +5 2 15 26 +6 15 7 25 +13 18 14 33 +2 11 7 21 +0 28 16 31 +17 29 17 32 diff --git a/2018/republic/7-9_d1/arta/tests/input.03 b/2018/republic/7-9_d1/arta/tests/input.03 new file mode 100644 index 0000000..bb13ccd --- /dev/null +++ b/2018/republic/7-9_d1/arta/tests/input.03 @@ -0,0 +1,4805 @@ +52 37 +4803 +51 16 51 35 +7 36 9 36 +45 15 49 16 +19 34 49 35 +35 12 51 33 +30 26 37 31 +37 16 45 32 +32 0 39 18 +12 34 37 34 +49 23 49 27 +7 17 14 36 +16 18 31 32 +27 14 32 17 +32 33 45 34 +32 9 48 30 +30 31 41 31 +50 23 50 30 +48 5 50 19 +24 20 41 20 +17 34 36 36 +40 1 41 31 +11 9 20 29 +25 5 30 29 +11 28 25 31 +24 17 51 21 +49 17 50 33 +28 6 44 32 +13 35 23 35 +37 6 37 34 +23 6 39 14 +33 12 38 28 +36 1 50 8 +46 18 50 29 +31 23 50 26 +29 15 38 18 +37 5 45 16 +27 7 43 14 +24 15 33 31 +26 2 40 31 +4 28 11 34 +36 18 45 24 +22 17 51 20 +5 32 45 33 +11 29 17 31 +16 30 38 30 +27 16 38 36 +30 18 48 34 +28 28 47 36 +39 16 50 35 +10 22 37 32 +27 23 43 26 +21 21 44 36 +14 34 38 36 +23 34 51 36 +17 22 36 32 +6 26 43 26 +11 8 51 13 +16 25 22 29 +4 2 6 13 +43 12 48 26 +29 19 45 34 +17 23 49 25 +46 3 48 5 +28 33 44 34 +10 28 26 32 +3 14 49 30 +7 13 23 15 +40 13 48 35 +43 36 48 36 +0 9 31 28 +13 34 19 35 +2 16 7 26 +30 27 48 32 +0 25 36 28 +40 8 44 30 +32 21 45 36 +6 28 29 30 +20 18 24 33 +46 19 51 36 +6 34 12 35 +2 22 30 29 +21 3 47 12 +3 9 10 29 +43 31 51 36 +22 30 36 36 +9 34 34 36 +41 15 49 25 +30 14 35 19 +39 35 46 36 +20 3 21 7 +5 2 19 18 +18 9 51 26 +29 29 49 30 +8 10 47 18 +51 21 51 26 +22 16 34 20 +3 10 46 23 +21 28 50 29 +49 6 49 12 +31 30 47 34 +49 17 49 30 +0 32 5 35 +24 9 44 17 +48 24 48 32 +8 17 40 23 +18 12 50 22 +28 9 30 10 +29 20 29 33 +22 13 35 25 +9 5 27 29 +46 1 48 13 +50 36 51 36 +14 35 25 35 +13 16 18 29 +32 2 50 21 +9 0 16 6 +34 29 51 35 +12 36 31 36 +15 17 16 19 +35 25 38 34 +3 36 31 36 +18 8 47 31 +51 16 51 18 +37 23 45 35 +3 14 21 34 +40 13 47 17 +26 18 51 24 +48 35 49 35 +6 19 45 28 +15 32 51 34 +29 14 48 29 +44 31 44 36 +8 15 51 33 +9 21 11 32 +4 8 13 27 +44 13 48 18 +40 16 43 32 +10 35 38 36 +40 35 45 35 +27 1 29 18 +26 24 41 34 +32 11 48 12 +44 19 49 24 +51 30 51 34 +22 7 28 14 +39 4 49 9 +22 7 50 7 +29 15 43 28 +7 6 27 17 +32 20 40 26 +10 10 21 12 +17 26 37 28 +33 28 37 31 +36 34 51 34 +51 4 51 10 +38 19 44 27 +34 1 41 6 +9 22 49 26 +34 33 38 35 +7 32 11 34 +17 31 35 31 +47 7 47 16 +45 22 47 22 +22 4 25 12 +48 17 50 30 +27 23 44 36 +41 17 44 34 +36 9 49 26 +44 12 47 17 +35 36 36 36 +38 19 41 33 +38 24 42 35 +27 13 50 26 +43 1 44 7 +6 9 8 31 +49 6 51 25 +16 0 31 17 +37 10 49 21 +45 11 45 16 +37 26 47 36 +18 29 28 33 +0 34 39 35 +29 18 44 30 +0 13 25 33 +40 0 42 28 +31 11 40 26 +15 11 47 24 +8 8 43 28 +17 30 47 36 +3 18 43 24 +43 12 51 13 +43 28 50 35 +9 24 32 28 +40 22 43 23 +31 28 33 35 +21 34 34 34 +29 28 50 34 +47 5 47 28 +43 8 50 13 +6 35 27 36 +30 7 44 27 +17 35 33 35 +49 21 50 33 +34 14 51 27 +5 33 38 35 +20 32 28 35 +49 4 51 35 +48 10 51 22 +47 33 51 35 +0 14 11 28 +9 10 48 29 +23 6 49 10 +21 36 39 36 +14 30 18 33 +6 23 47 34 +48 25 49 33 +40 29 42 29 +40 31 44 34 +32 6 37 18 +46 24 51 28 +38 17 46 26 +14 10 19 23 +21 0 36 32 +41 23 44 35 +6 26 8 28 +37 22 40 25 +49 12 50 14 +13 36 22 36 +19 26 50 26 +51 23 51 30 +30 25 37 28 +8 15 22 29 +28 6 38 29 +16 25 19 25 +25 22 33 36 +27 22 30 27 +20 24 42 24 +13 9 36 26 +46 36 50 36 +35 9 47 14 +35 6 35 13 +16 10 16 20 +46 23 51 34 +33 33 33 33 +49 30 49 32 +13 3 25 3 +48 35 50 35 +38 22 40 23 +13 8 33 9 +45 1 49 33 +46 13 50 20 +46 9 48 18 +51 14 51 16 +34 25 47 32 +24 17 41 20 +47 15 48 23 +24 24 26 26 +48 32 49 32 +17 23 27 27 +2 5 45 34 +41 25 49 36 +48 19 50 36 +22 2 24 14 +24 3 46 15 +48 10 49 28 +16 34 17 35 +45 34 50 35 +42 19 50 31 +36 2 46 15 +8 26 32 28 +7 15 30 17 +0 13 1 26 +3 10 4 18 +33 4 45 32 +12 23 39 33 +12 15 46 28 +15 14 48 28 +41 31 51 32 +26 36 38 36 +16 6 17 19 +11 35 15 35 +4 13 26 23 +34 28 49 29 +47 20 48 36 +30 34 46 34 +3 21 21 24 +36 0 48 1 +6 6 35 20 +28 13 31 25 +47 25 50 36 +49 18 49 32 +28 18 28 20 +1 26 13 36 +6 12 42 35 +24 11 35 31 +4 17 23 20 +8 33 25 35 +1 35 39 36 +27 15 51 36 +37 33 45 33 +33 30 47 33 +3 25 18 33 +6 15 42 35 +34 18 39 21 +21 11 33 24 +43 13 45 28 +23 6 32 18 +45 28 50 31 +29 28 36 30 +45 34 47 34 +50 13 51 26 +31 11 40 11 +6 3 8 29 +47 11 50 17 +22 11 44 31 +36 36 37 36 +41 20 43 27 +25 2 48 24 +17 17 42 27 +3 30 35 35 +24 29 25 29 +36 5 51 6 +19 32 32 34 +27 26 41 27 +18 34 45 36 +46 35 48 35 +18 23 38 27 +42 9 45 13 +22 31 39 33 +30 16 40 30 +26 35 38 36 +37 12 46 22 +11 22 11 23 +44 3 47 30 +9 4 9 25 +29 28 45 33 +44 35 47 35 +38 31 43 34 +3 19 27 35 +30 22 35 36 +12 24 32 24 +3 18 36 24 +51 9 51 30 +19 24 38 36 +22 26 36 36 +27 13 29 31 +7 16 30 35 +19 3 35 12 +50 36 51 36 +24 23 46 34 +31 28 51 36 +32 15 41 33 +1 13 17 19 +6 27 34 28 +33 22 44 31 +3 13 43 19 +20 13 21 35 +38 2 38 13 +9 36 33 36 +13 5 35 18 +8 15 49 25 +29 25 50 30 +26 15 44 18 +2 16 40 22 +2 11 11 12 +9 22 51 35 +29 29 33 36 +32 15 40 21 +43 34 51 36 +2 13 26 33 +25 7 47 20 +9 33 13 33 +33 19 41 28 +26 14 30 27 +32 9 35 32 +20 35 50 36 +15 19 19 36 +25 23 46 34 +26 8 31 29 +19 34 29 34 +28 9 41 16 +8 6 26 18 +1 7 36 11 +46 32 48 34 +11 7 26 19 +44 12 45 19 +17 13 27 17 +40 16 42 26 +15 28 47 31 +27 20 44 26 +25 8 29 15 +24 14 48 25 +43 4 51 21 +49 13 49 36 +31 27 31 31 +8 12 32 32 +14 8 35 8 +4 5 39 34 +35 35 50 35 +33 29 39 30 +36 25 47 34 +39 4 45 31 +47 17 48 20 +20 11 27 20 +2 25 48 26 +46 26 51 35 +15 10 30 30 +30 17 37 26 +9 36 25 36 +39 13 43 18 +37 15 50 31 +47 15 50 23 +34 17 38 21 +13 4 46 11 +37 8 41 24 +26 9 26 33 +18 12 51 12 +48 25 50 28 +33 11 45 15 +38 24 50 31 +19 20 23 35 +13 33 23 35 +26 8 46 8 +21 25 26 31 +32 9 40 20 +30 13 32 35 +8 6 20 13 +7 18 46 25 +27 16 50 31 +11 5 49 30 +45 8 51 20 +27 20 27 32 +46 33 50 34 +30 30 33 30 +30 7 34 22 +1 18 9 24 +48 8 51 30 +46 12 48 28 +19 31 30 34 +45 18 48 26 +20 15 43 34 +10 10 29 12 +9 1 24 6 +33 36 48 36 +42 12 45 29 +31 22 43 32 +10 5 48 12 +10 17 34 27 +3 4 17 18 +0 22 19 25 +7 24 39 26 +29 11 48 20 +11 3 24 30 +41 23 44 31 +32 11 45 32 +34 13 51 23 +49 9 49 22 +16 7 47 7 +39 21 42 31 +48 1 50 14 +41 0 49 3 +32 5 43 35 +29 20 44 30 +2 35 37 36 +37 26 42 30 +25 28 47 29 +2 12 11 27 +6 27 30 36 +32 22 41 30 +36 12 43 13 +19 8 37 23 +45 26 48 36 +20 10 26 30 +35 22 50 22 +6 9 37 18 +24 6 32 15 +22 12 48 20 +46 4 48 33 +44 32 51 34 +3 30 26 34 +32 1 41 27 +6 36 20 36 +45 13 49 16 +9 12 34 35 +45 29 49 31 +41 29 44 33 +3 34 13 36 +9 1 23 32 +0 9 39 10 +51 34 51 35 +23 33 38 35 +5 7 14 20 +37 25 38 33 +49 8 49 15 +49 15 51 16 +50 27 51 27 +24 6 32 10 +17 1 33 31 +27 27 39 30 +24 14 26 19 +20 19 28 21 +51 9 51 22 +13 25 48 33 +34 29 38 36 +17 25 28 31 +0 27 38 31 +49 24 50 27 +15 24 28 28 +28 27 44 32 +14 5 26 27 +47 23 51 33 +45 28 46 29 +10 4 41 29 +5 20 37 28 +21 23 21 31 +17 4 32 34 +40 15 43 32 +14 24 41 34 +20 1 51 31 +44 1 46 31 +19 34 43 34 +23 17 43 29 +40 0 42 16 +31 26 50 31 +21 19 30 35 +12 22 27 22 +22 3 27 14 +10 5 46 10 +25 36 42 36 +42 26 48 29 +21 25 37 36 +44 17 49 27 +29 25 36 29 +30 20 46 36 +35 27 48 35 +0 24 44 27 +35 33 48 36 +46 10 50 25 +0 29 3 32 +40 4 47 16 +47 1 50 12 +23 20 36 33 +31 35 40 36 +21 29 50 31 +5 3 45 15 +32 6 46 20 +49 15 50 25 +51 8 51 27 +20 36 41 36 +48 36 51 36 +41 8 41 27 +25 25 37 30 +12 12 30 15 +19 9 25 28 +49 5 49 7 +18 30 37 30 +10 36 44 36 +15 2 47 10 +21 17 40 30 +36 33 42 35 +3 8 13 28 +48 26 49 34 +4 2 35 23 +8 18 24 34 +32 6 45 6 +19 3 31 3 +47 10 50 12 +35 35 38 35 +30 15 43 33 +26 35 42 35 +36 20 37 33 +50 31 50 31 +26 34 36 34 +13 2 45 28 +32 28 36 32 +21 36 32 36 +49 2 49 8 +37 12 41 26 +3 6 29 23 +2 3 11 32 +45 23 47 31 +39 7 50 36 +35 2 35 30 +50 36 50 36 +1 8 10 8 +49 16 49 23 +20 9 23 34 +6 32 10 32 +36 36 41 36 +44 1 46 21 +4 16 45 22 +3 10 43 19 +33 36 47 36 +19 18 22 24 +40 14 51 26 +10 35 47 35 +43 16 48 19 +9 21 43 24 +16 35 31 36 +23 15 49 25 +34 11 47 12 +18 9 25 17 +13 21 29 23 +24 19 42 19 +43 5 43 12 +28 34 33 35 +2 10 45 13 +50 9 51 20 +47 25 51 31 +3 20 25 23 +42 8 48 19 +14 9 38 28 +43 0 51 16 +24 21 51 25 +14 29 40 31 +5 33 7 35 +4 23 45 25 +36 31 46 32 +24 30 45 36 +36 18 45 30 +3 29 10 30 +37 16 47 19 +1 9 24 16 +19 20 50 36 +29 35 49 35 +7 19 13 23 +45 11 46 14 +36 13 51 29 +19 30 32 33 +44 11 49 20 +5 33 33 33 +28 11 50 23 +11 33 50 34 +24 1 45 22 +4 1 33 28 +20 30 47 33 +16 17 27 31 +8 9 49 15 +13 29 30 29 +37 24 47 25 +21 3 25 15 +33 32 39 36 +37 29 40 29 +23 29 45 29 +13 9 22 17 +1 18 12 25 +6 33 30 33 +33 25 46 25 +27 2 46 12 +32 22 48 23 +21 4 21 9 +6 1 26 3 +31 12 31 24 +48 26 50 30 +22 17 43 20 +20 16 21 34 +6 22 49 22 +48 12 48 18 +39 12 42 32 +40 5 46 23 +45 28 46 28 +3 36 48 36 +36 28 41 33 +22 11 40 30 +21 24 26 35 +34 29 37 32 +27 5 51 26 +17 10 37 20 +7 9 39 31 +41 19 51 32 +32 16 38 27 +36 4 45 8 +32 25 51 28 +9 21 11 24 +2 15 21 35 +33 21 33 27 +41 14 45 36 +7 19 11 27 +23 26 27 36 +25 15 46 35 +0 30 25 30 +21 22 49 35 +30 14 40 33 +1 4 25 24 +40 25 47 35 +15 0 15 34 +28 26 47 27 +1 21 42 31 +39 9 41 18 +38 0 47 0 +42 27 44 34 +8 30 26 36 +23 22 23 27 +0 31 17 36 +24 2 42 22 +1 26 48 31 +36 24 51 25 +33 23 47 34 +43 7 44 26 +18 12 48 31 +38 22 50 25 +31 31 43 33 +21 10 48 17 +28 11 28 23 +8 30 13 30 +33 0 46 29 +7 14 41 35 +16 25 44 30 +30 6 49 20 +42 1 47 14 +25 2 36 36 +31 15 47 15 +41 35 42 36 +11 33 22 33 +29 7 48 25 +17 17 23 24 +46 11 49 11 +19 5 38 14 +48 4 49 5 +48 11 50 21 +34 35 35 35 +14 14 47 17 +14 1 28 22 +25 18 45 32 +30 6 35 32 +18 0 44 22 +40 25 48 32 +13 7 44 10 +28 23 51 29 +30 1 46 36 +28 26 28 27 +13 33 38 36 +23 6 34 33 +14 17 35 32 +7 0 17 36 +18 33 40 34 +9 36 47 36 +47 29 47 36 +14 20 17 32 +36 15 36 34 +4 24 49 29 +39 24 39 25 +41 33 51 34 +37 34 37 36 +11 36 23 36 +30 15 45 27 +21 15 24 33 +50 35 51 36 +21 9 51 28 +17 10 44 21 +40 35 41 35 +8 33 28 33 +14 8 16 29 +26 0 38 16 +35 32 47 34 +0 30 4 36 +31 29 31 35 +41 20 50 35 +46 11 51 28 +46 24 49 26 +5 22 27 27 +43 32 49 34 +47 12 48 36 +41 1 47 19 +29 16 42 26 +26 18 31 36 +2 25 7 34 +36 21 40 34 +0 16 16 19 +26 24 27 25 +5 31 30 33 +21 17 46 35 +39 10 39 28 +40 28 40 32 +29 2 30 6 +41 10 47 27 +23 7 46 24 +18 30 29 30 +26 24 43 27 +28 25 41 30 +17 33 38 35 +51 31 51 35 +25 31 32 36 +17 23 35 25 +47 27 47 33 +15 35 21 35 +5 28 29 29 +7 12 27 34 +48 20 48 34 +24 14 39 31 +17 0 39 36 +0 7 44 27 +35 25 41 30 +37 9 39 27 +14 8 26 12 +45 10 50 29 +27 4 40 4 +23 1 35 14 +18 31 32 35 +27 32 37 36 +3 3 7 16 +37 4 42 26 +30 4 51 28 +19 26 34 28 +31 1 40 36 +46 20 48 31 +18 32 31 36 +21 20 36 28 +3 1 9 10 +34 14 43 27 +20 18 25 28 +8 19 9 28 +14 11 46 28 +3 28 43 28 +24 22 39 23 +27 22 33 35 +0 21 16 35 +9 25 50 28 +4 22 48 25 +0 16 11 33 +30 19 45 28 +49 36 49 36 +8 17 51 20 +3 26 6 36 +38 7 50 30 +41 24 47 34 +46 22 50 25 +15 2 24 10 +35 11 40 16 +33 35 40 36 +31 12 49 12 +39 9 46 13 +27 7 31 15 +50 36 51 36 +11 11 22 36 +18 31 20 36 +11 3 49 11 +41 5 44 19 +12 7 26 29 +35 22 40 30 +13 9 43 9 +4 23 46 28 +6 29 30 36 +28 6 47 27 +28 34 34 34 +19 3 43 30 +47 8 48 14 +25 3 44 31 +39 2 41 16 +16 4 29 36 +44 10 45 17 +17 18 41 19 +10 29 29 36 +11 30 18 33 +49 7 51 29 +7 9 26 13 +37 36 39 36 +1 20 50 31 +16 28 24 34 +42 11 42 11 +7 1 11 6 +4 27 4 31 +9 2 16 30 +9 21 31 24 +0 32 1 36 +27 28 50 31 +22 0 50 1 +14 20 45 31 +49 16 49 24 +18 2 18 20 +31 33 44 33 +17 19 19 31 +23 33 37 36 +31 8 39 28 +22 15 32 18 +33 35 45 36 +23 2 25 5 +49 13 51 21 +12 8 41 21 +1 13 15 28 +23 1 24 34 +28 12 46 22 +41 16 48 34 +3 14 22 23 +10 2 34 27 +6 14 44 26 +47 3 48 14 +1 4 31 32 +42 27 50 28 +14 17 31 32 +30 8 44 29 +25 11 31 30 +29 1 31 34 +32 32 36 36 +8 12 23 33 +35 20 35 29 +42 8 49 32 +42 7 51 20 +29 15 40 25 +47 4 47 9 +4 4 34 25 +27 4 28 23 +51 34 51 35 +9 9 21 27 +51 24 51 31 +47 3 49 34 +11 25 17 26 +11 32 49 32 +16 8 51 32 +23 1 26 16 +41 18 44 26 +2 28 42 32 +35 7 36 29 +29 6 41 10 +15 8 42 17 +51 28 51 28 +31 15 48 34 +25 28 33 28 +21 29 24 29 +31 22 36 24 +16 6 26 18 +13 9 32 26 +13 9 17 12 +6 4 34 14 +3 0 32 29 +5 17 46 29 +12 13 23 29 +46 17 49 32 +6 10 18 29 +50 19 50 22 +38 27 50 31 +8 32 17 35 +48 0 49 2 +1 2 14 11 +32 18 50 27 +5 1 22 6 +7 1 51 27 +8 1 34 27 +9 31 51 32 +46 33 51 33 +29 17 43 30 +39 35 47 36 +51 34 51 34 +24 11 43 36 +33 9 39 21 +11 29 35 34 +30 10 47 15 +43 13 47 34 +46 34 49 36 +10 32 16 32 +45 30 47 31 +34 0 35 18 +35 14 46 14 +48 23 51 36 +37 28 40 33 +16 24 49 31 +7 30 32 34 +11 14 30 33 +17 11 42 19 +47 0 51 3 +18 28 30 29 +34 8 47 28 +31 10 39 32 +51 30 51 31 +49 0 49 22 +44 5 44 7 +39 6 39 7 +3 12 38 31 +21 11 43 22 +38 31 41 33 +19 0 19 1 +46 24 49 29 +27 4 34 12 +43 33 50 33 +3 28 49 33 +47 35 48 35 +40 10 40 20 +26 24 39 26 +10 4 41 10 +37 30 42 35 +33 11 37 21 +4 29 13 36 +25 25 49 29 +6 13 26 26 +19 15 37 16 +8 31 42 34 +11 36 20 36 +14 36 33 36 +48 13 49 14 +6 27 48 29 +6 17 32 30 +32 31 45 35 +43 15 43 26 +48 2 50 22 +14 21 48 24 +51 33 51 34 +15 23 32 36 +37 18 47 25 +38 20 50 26 +42 26 49 27 +47 36 49 36 +49 26 50 34 +19 18 32 28 +0 18 10 33 +26 36 35 36 +21 2 50 28 +19 35 26 36 +14 13 46 20 +12 12 33 12 +7 8 22 11 +19 0 22 3 +3 2 8 36 +45 0 48 25 +43 14 45 24 +43 15 46 23 +39 23 39 25 +20 13 40 19 +34 23 34 29 +5 2 8 25 +26 0 46 28 +1 18 18 35 +17 14 45 26 +45 2 48 35 +26 33 48 33 +45 0 47 31 +22 8 51 11 +5 31 47 31 +4 29 19 32 +29 19 31 30 +22 6 43 25 +6 30 35 36 +5 29 47 30 +7 4 30 32 +8 14 39 17 +20 20 25 29 +42 1 45 4 +42 2 42 2 +15 8 37 19 +17 13 42 23 +27 29 49 33 +32 20 51 24 +48 15 50 19 +17 16 36 32 +7 4 39 24 +3 13 4 26 +22 28 42 32 +6 28 21 30 +25 31 44 32 +18 20 40 21 +20 8 20 17 +32 1 33 13 +11 14 24 15 +32 34 35 36 +46 16 51 22 +41 0 51 15 +42 31 42 32 +48 34 51 34 +2 31 6 36 +34 24 36 27 +18 30 46 36 +41 7 41 16 +44 16 49 22 +7 8 16 21 +38 10 38 13 +27 14 38 29 +37 28 48 36 +42 2 47 15 +13 0 33 23 +39 6 50 28 +27 7 32 10 +15 9 29 16 +29 13 38 30 +50 22 51 23 +46 34 49 34 +32 4 50 10 +35 35 37 36 +25 30 33 30 +39 28 49 36 +29 28 35 28 +48 20 51 32 +29 30 34 32 +4 13 18 32 +16 1 31 36 +44 31 51 34 +7 14 37 22 +24 28 49 36 +22 31 23 36 +6 13 26 32 +17 7 25 10 +39 15 44 16 +51 22 51 35 +13 36 35 36 +30 11 36 16 +51 2 51 21 +1 0 21 0 +47 18 48 34 +4 20 29 28 +7 10 12 24 +0 33 42 34 +21 10 37 23 +41 23 50 23 +31 33 38 35 +26 5 46 35 +0 20 46 24 +45 21 51 32 +37 36 41 36 +24 5 50 22 +16 8 50 8 +32 3 47 9 +25 20 31 31 +38 34 45 36 +16 6 39 29 +17 18 38 28 +36 33 45 33 +22 13 41 19 +27 24 42 27 +48 33 48 33 +11 17 39 34 +8 6 18 8 +19 28 51 29 +18 34 22 34 +12 15 46 20 +34 9 35 34 +45 31 47 33 +12 22 37 22 +19 8 21 20 +16 4 37 34 +6 2 40 5 +31 1 37 18 +22 17 42 20 +20 23 27 23 +38 21 40 36 +12 32 48 36 +37 0 49 17 +11 34 14 35 +40 31 45 34 +32 6 44 22 +13 27 41 31 +13 6 14 34 +7 22 10 24 +41 9 49 30 +31 21 39 22 +0 5 26 8 +5 23 22 28 +50 1 51 13 +49 35 50 36 +8 31 27 34 +43 4 49 14 +6 21 27 28 +35 2 38 33 +3 19 9 35 +25 11 28 21 +16 8 28 33 +19 35 35 36 +45 30 48 31 +6 31 48 32 +47 4 49 11 +9 25 18 28 +4 0 6 6 +13 26 51 31 +2 33 10 35 +14 28 20 30 +1 32 49 35 +24 19 49 21 +28 1 41 16 +27 2 46 33 +4 8 34 12 +40 28 40 31 +21 31 25 31 +26 10 28 11 +19 3 51 16 +46 36 51 36 +6 14 36 16 +51 26 51 26 +22 25 46 30 +19 22 19 35 +48 5 50 7 +44 28 51 28 +11 29 26 30 +51 19 51 20 +16 18 42 33 +44 13 44 28 +27 30 36 33 +5 25 47 28 +35 27 41 30 +51 11 51 12 +2 32 11 36 +32 20 47 23 +11 13 38 17 +3 11 29 13 +2 0 15 9 +14 34 27 34 +47 19 47 33 +27 11 43 11 +31 18 38 32 +12 17 18 20 +37 15 47 34 +3 9 23 27 +11 22 17 27 +42 12 44 20 +43 11 48 23 +8 30 19 30 +2 29 30 29 +19 17 30 26 +12 30 47 33 +24 24 35 26 +22 3 25 32 +46 13 49 14 +19 20 22 22 +3 2 29 3 +28 3 31 35 +25 11 50 25 +44 14 46 20 +22 18 24 25 +4 10 47 18 +13 21 44 34 +31 8 31 18 +3 19 46 34 +27 0 40 33 +15 35 43 35 +7 22 39 30 +2 8 31 15 +12 12 32 16 +47 6 47 16 +32 12 51 13 +9 36 21 36 +10 2 25 17 +40 24 40 36 +27 17 35 30 +43 13 47 28 +50 20 50 36 +41 10 47 10 +1 23 11 26 +3 5 41 8 +34 29 34 30 +24 12 39 26 +24 28 29 32 +38 26 49 31 +35 21 45 31 +22 23 27 23 +39 24 39 33 +31 11 35 30 +41 9 43 28 +28 23 37 35 +44 10 47 18 +29 21 32 22 +50 7 50 17 +38 33 49 33 +37 17 42 22 +17 4 42 21 +38 15 41 20 +3 28 35 31 +25 36 42 36 +34 9 39 32 +3 20 30 34 +14 14 24 28 +19 0 34 15 +3 31 34 35 +17 7 42 20 +9 7 16 29 +50 32 51 32 +1 8 7 25 +46 3 49 34 +25 17 51 24 +25 18 50 20 +3 17 3 27 +31 27 49 35 +51 31 51 32 +48 29 48 29 +40 12 47 12 +4 2 31 23 +3 2 29 6 +28 7 33 36 +17 15 32 25 +3 20 28 33 +31 34 35 34 +42 33 51 36 +33 8 42 14 +28 27 46 31 +17 26 26 36 +51 16 51 17 +31 7 33 10 +45 25 50 35 +36 33 41 36 +12 33 18 35 +4 33 34 36 +47 33 48 34 +41 7 50 13 +30 25 42 36 +47 30 47 30 +14 0 32 1 +11 21 11 27 +27 28 44 28 +7 11 17 15 +4 13 22 30 +34 23 37 36 +18 15 48 31 +1 18 23 36 +5 5 50 36 +50 27 50 36 +5 4 29 35 +24 9 45 26 +11 16 21 28 +21 21 33 23 +38 9 47 25 +39 31 46 33 +46 10 50 29 +32 18 44 23 +8 26 25 31 +50 29 50 36 +4 4 49 12 +48 11 49 36 +10 0 36 20 +39 23 49 26 +10 13 36 35 +50 24 50 33 +0 4 29 31 +50 11 50 16 +8 9 40 22 +30 11 31 30 +31 0 43 2 +36 12 45 22 +20 7 32 27 +26 10 36 10 +32 7 35 30 +19 28 44 32 +46 22 49 30 +19 15 26 17 +12 25 34 35 +47 28 49 32 +36 10 43 28 +46 24 46 36 +16 25 21 34 +25 12 27 18 +23 36 37 36 +20 31 50 33 +5 33 23 36 +2 26 34 36 +35 33 42 34 +34 23 49 35 +4 16 41 35 +4 5 44 16 +5 23 18 33 +24 36 24 36 +10 30 22 30 +40 33 43 34 +19 27 37 34 +48 18 49 25 +41 10 48 31 +9 10 29 19 +10 20 29 28 +28 24 31 35 +36 32 42 33 +50 6 50 15 +47 9 47 21 +15 6 45 11 +22 32 34 35 +19 1 31 26 +38 5 40 26 +14 26 18 28 +14 28 42 31 +22 18 29 18 +32 1 47 26 +0 19 21 36 +51 35 51 36 +43 1 50 3 +51 21 51 27 +40 6 47 36 +33 31 44 35 +3 32 28 34 +24 12 38 30 +16 23 23 34 +1 4 15 8 +51 28 51 30 +43 7 47 22 +30 1 51 2 +40 8 47 33 +9 18 18 28 +18 24 22 36 +12 33 24 33 +11 19 21 29 +29 12 50 34 +13 23 48 25 +14 9 44 12 +19 7 37 30 +1 33 25 34 +18 16 23 30 +8 36 10 36 +29 8 42 18 +9 1 33 35 +6 3 31 15 +22 23 36 33 +42 13 45 14 +22 14 42 30 +13 11 43 27 +46 36 47 36 +15 0 28 8 +9 33 32 35 +13 27 45 31 +33 22 46 25 +50 29 50 35 +24 16 32 23 +42 8 45 22 +28 20 36 35 +6 17 40 19 +19 5 31 36 +26 24 50 31 +16 19 36 20 +2 3 33 30 +8 20 25 28 +41 2 47 26 +49 35 51 36 +29 32 37 36 +51 8 51 21 +30 16 33 36 +38 1 46 22 +38 15 41 31 +13 33 18 36 +51 23 51 32 +46 35 50 36 +1 23 34 34 +15 7 28 34 +7 3 48 14 +23 15 46 36 +15 34 20 36 +39 13 45 17 +43 36 43 36 +26 28 49 30 +37 20 50 32 +29 28 48 34 +31 4 46 10 +23 1 29 16 +4 22 27 30 +15 33 49 34 +5 26 8 33 +5 34 27 36 +1 35 9 36 +12 28 39 29 +34 34 35 35 +15 14 49 30 +17 2 36 7 +19 18 40 19 +50 6 50 21 +35 21 46 24 +9 17 39 17 +13 19 39 20 +43 21 44 36 +42 3 45 15 +15 24 17 35 +50 16 50 27 +9 28 44 30 +29 30 32 33 +14 19 28 29 +39 11 46 16 +10 1 17 3 +13 15 22 27 +0 29 1 29 +13 18 44 35 +46 35 46 35 +30 28 35 34 +27 24 35 25 +42 36 44 36 +23 8 48 14 +22 7 50 30 +39 20 50 23 +2 4 35 17 +22 17 40 19 +46 7 50 28 +44 34 44 35 +14 4 47 4 +27 34 34 36 +31 23 40 29 +5 10 10 26 +36 22 43 26 +11 20 30 21 +10 31 16 31 +18 35 32 35 +12 22 22 24 +49 8 51 8 +16 10 45 30 +24 22 44 34 +27 21 31 26 +8 26 22 31 +41 30 44 33 +40 22 51 23 +19 20 20 20 +41 30 44 32 +31 10 47 28 +23 1 33 18 +48 23 51 32 +26 18 26 36 +48 15 50 24 +10 15 16 18 +32 6 36 25 +0 35 39 36 +10 13 45 21 +51 13 51 26 +46 7 48 32 +23 35 41 35 +45 10 48 23 +5 6 19 13 +25 11 34 13 +33 32 44 36 +45 30 51 34 +34 0 36 26 +50 8 50 8 +34 1 35 25 +38 23 45 35 +28 17 40 22 +40 26 44 32 +32 23 46 32 +6 11 16 30 +22 11 48 15 +6 8 43 20 +23 26 39 30 +34 11 39 34 +43 12 46 21 +9 17 40 25 +1 11 38 23 +31 10 41 10 +39 27 49 36 +16 34 44 36 +19 18 39 21 +30 8 44 13 +47 19 49 19 +50 15 50 16 +25 21 42 25 +35 7 50 36 +12 32 18 36 +36 23 47 23 +13 17 24 31 +41 31 47 34 +2 24 19 29 +37 21 43 23 +48 11 50 22 +7 14 27 34 +17 4 29 20 +8 22 17 22 +50 12 50 19 +39 0 50 1 +47 1 49 27 +46 36 47 36 +4 1 44 4 +2 32 22 32 +26 19 33 25 +22 2 26 12 +8 26 31 30 +41 10 48 10 +39 23 45 26 +35 27 43 32 +23 16 44 26 +44 5 44 7 +12 12 45 21 +29 31 38 31 +21 31 32 32 +17 11 44 34 +4 16 51 36 +30 32 40 36 +32 36 41 36 +42 14 44 21 +41 15 50 17 +6 33 32 33 +20 33 40 33 +22 7 41 18 +1 32 44 36 +34 24 35 28 +11 32 45 36 +2 9 31 25 +20 35 45 35 +44 8 46 33 +18 33 31 36 +17 33 46 35 +46 15 50 30 +4 31 27 31 +29 0 37 19 +42 8 49 9 +14 25 51 35 +23 13 50 16 +50 21 51 31 +4 26 31 32 +44 28 49 34 +3 24 42 28 +13 17 21 35 +14 27 32 33 +25 30 45 30 +12 8 13 31 +16 30 20 31 +50 20 50 28 +2 18 20 20 +23 14 38 27 +24 2 42 11 +9 31 47 31 +8 16 38 25 +1 18 20 19 +5 28 10 28 +27 0 45 14 +17 31 36 34 +8 1 47 35 +24 27 29 35 +35 3 47 23 +16 34 51 36 +0 8 3 12 +4 24 25 35 +12 14 47 21 +51 0 51 2 +19 30 26 31 +31 14 37 28 +28 25 43 36 +48 17 50 18 +37 9 45 19 +41 6 43 21 +24 8 44 19 +30 24 40 25 +43 10 47 21 +45 10 47 31 +33 20 43 22 +36 0 41 1 +23 8 49 21 +16 34 48 35 +19 0 21 12 +6 28 50 36 +13 2 35 35 +20 26 24 30 +45 9 51 9 +32 10 38 22 +14 32 49 36 +30 4 49 26 +18 35 20 35 +21 25 40 35 +11 35 36 36 +18 18 36 21 +32 7 33 22 +21 29 36 33 +34 1 36 8 +34 33 45 35 +20 12 30 19 +9 7 46 26 +39 29 46 29 +22 32 30 36 +43 12 48 31 +38 23 46 36 +20 6 38 19 +24 16 46 17 +37 5 49 33 +5 28 18 28 +1 5 6 14 +33 14 36 20 +0 3 24 33 +8 22 30 28 +47 25 47 25 +41 1 51 9 +18 35 27 35 +38 26 41 36 +43 28 48 29 +50 8 51 30 +26 9 50 15 +25 14 33 26 +43 35 50 36 +20 24 46 31 +18 21 21 28 +31 3 34 22 +35 28 46 29 +49 25 51 33 +50 23 50 34 +43 7 48 34 +17 6 31 29 +18 17 19 34 +21 16 44 24 +12 14 18 18 +40 16 46 21 +15 34 21 35 +38 24 43 24 +2 21 8 30 +16 10 33 30 +49 23 49 36 +31 6 38 11 +45 28 47 32 +31 26 41 35 +50 15 50 31 +1 14 8 23 +16 25 36 36 +16 11 40 11 +51 17 51 25 +41 27 41 35 +3 1 14 2 +11 35 19 35 +5 2 5 11 +8 7 22 34 +47 18 51 31 +21 16 46 17 +48 2 51 8 +22 11 51 11 +9 29 31 30 +12 3 34 12 +33 36 45 36 +18 34 39 36 +11 23 35 33 +8 4 30 36 +18 34 26 34 +19 0 44 7 +8 12 32 29 +23 24 37 30 +36 18 37 31 +47 5 51 10 +22 16 40 16 +0 28 40 32 +39 9 47 15 +10 34 27 36 +19 6 37 32 +7 16 19 27 +49 34 49 35 +31 29 42 29 +26 35 40 36 +42 14 49 26 +14 17 15 33 +25 23 26 33 +38 16 48 36 +12 29 13 35 +32 33 47 36 +31 27 31 29 +34 23 49 36 +45 7 46 21 +20 8 30 11 +28 16 50 29 +25 7 42 22 +38 24 48 34 +42 17 49 24 +42 5 42 25 +43 7 46 24 +37 27 51 30 +12 32 17 33 +2 26 2 27 +21 2 42 32 +30 11 39 24 +2 16 2 17 +4 10 4 12 +48 19 49 29 +34 29 45 36 +6 34 44 36 +7 14 22 26 +29 10 46 25 +31 18 47 33 +12 6 26 32 +26 20 46 20 +1 18 39 23 +5 0 32 32 +2 6 45 23 +11 24 40 34 +45 0 50 14 +29 27 51 27 +25 32 47 34 +31 6 47 31 +38 33 38 35 +9 26 13 27 +1 1 8 33 +31 33 40 34 +42 1 51 34 +9 35 29 36 +0 16 44 34 +51 22 51 31 +44 6 51 28 +7 5 48 28 +10 32 20 32 +10 9 16 32 +22 26 26 30 +2 5 45 22 +21 14 24 36 +27 19 37 26 +6 32 37 35 +49 15 49 33 +22 8 26 12 +16 20 27 24 +12 34 20 36 +45 2 48 6 +49 24 51 26 +34 28 40 30 +8 0 21 5 +45 23 49 31 +27 8 36 30 +1 29 30 35 +41 7 44 10 +4 24 25 32 +19 23 28 31 +48 29 48 36 +31 0 51 5 +47 17 50 25 +19 29 23 34 +10 27 13 27 +39 28 41 36 +13 17 27 22 +15 7 24 23 +41 20 46 24 +38 24 47 34 +49 31 50 34 +34 5 50 36 +38 18 42 31 +21 34 28 35 +35 36 45 36 +25 19 42 27 +34 16 47 23 +10 0 30 15 +45 19 48 21 +10 0 17 11 +34 14 43 30 +20 1 41 30 +39 11 42 33 +30 1 48 24 +50 35 50 35 +21 35 35 36 +14 29 42 31 +13 19 46 33 +29 25 48 33 +51 12 51 19 +40 24 51 32 +17 2 20 2 +34 10 44 34 +29 15 33 19 +9 21 40 27 +43 35 51 35 +15 9 43 9 +18 13 34 18 +50 2 50 5 +3 7 6 36 +9 2 11 4 +49 5 50 23 +9 33 36 36 +50 9 50 20 +24 19 47 21 +41 31 49 33 +18 12 48 33 +10 2 12 22 +31 15 50 25 +38 22 48 33 +50 23 51 34 +28 19 46 20 +41 19 45 34 +25 4 36 9 +7 10 27 18 +20 16 48 28 +4 5 22 12 +3 14 35 18 +0 35 29 36 +24 35 37 35 +37 0 42 26 +29 32 47 33 +17 21 43 22 +41 25 45 29 +29 34 37 35 +48 16 51 18 +36 33 36 34 +23 16 33 18 +41 27 43 27 +1 22 44 25 +0 31 30 32 +35 27 44 30 +45 2 49 18 +26 10 36 24 +41 21 47 22 +28 29 50 29 +23 9 49 22 +46 18 50 33 +45 26 46 26 +12 12 28 13 +4 0 14 13 +39 12 41 26 +20 6 22 25 +43 12 51 19 +41 25 42 25 +51 8 51 13 +43 33 46 35 +40 18 46 31 +3 2 17 4 +14 25 33 35 +40 21 49 34 +28 15 34 21 +23 1 36 15 +8 19 30 29 +38 7 49 19 +5 28 36 31 +21 14 26 34 +8 20 31 34 +25 34 45 35 +40 33 45 34 +31 32 36 35 +14 22 30 33 +11 25 21 27 +29 4 50 31 +42 8 47 30 +7 7 12 33 +19 36 30 36 +22 11 29 25 +7 28 28 35 +8 23 28 23 +49 6 51 32 +44 29 44 33 +3 11 43 14 +38 26 43 27 +35 11 50 26 +23 2 34 7 +22 4 23 23 +10 16 41 24 +28 22 31 29 +48 5 50 32 +27 21 31 34 +33 33 50 33 +36 7 38 17 +37 29 37 29 +25 4 43 35 +5 36 48 36 +37 27 43 31 +43 7 44 31 +50 14 51 27 +29 17 51 31 +2 5 20 20 +10 17 49 35 +19 35 28 36 +19 25 50 33 +31 11 50 36 +48 15 49 21 +33 31 36 31 +45 20 47 22 +46 8 51 35 +10 26 12 28 +40 34 41 35 +31 24 35 24 +38 22 51 26 +20 28 49 33 +6 20 31 28 +5 14 41 21 +51 31 51 36 +47 30 50 35 +33 20 51 35 +14 16 48 19 +23 34 28 35 +22 32 44 34 +28 15 40 19 +26 18 41 34 +17 10 39 11 +27 13 51 21 +40 33 46 33 +26 3 47 20 +5 11 16 20 +2 32 25 33 +16 30 38 32 +23 31 49 36 +20 24 21 29 +42 30 46 35 +0 24 12 25 +34 35 41 35 +36 36 37 36 +16 34 36 35 +28 36 45 36 +16 16 49 26 +9 20 18 36 +18 31 47 34 +42 30 47 36 +50 35 50 35 +41 18 48 18 +5 4 22 15 +19 2 31 17 +2 18 24 34 +51 34 51 35 +17 11 48 13 +0 31 11 35 +35 36 50 36 +2 34 47 34 +24 35 36 35 +45 31 47 34 +0 6 46 36 +35 33 47 34 +10 23 18 23 +5 25 17 36 +44 30 50 31 +38 13 44 32 +5 2 28 32 +3 13 7 19 +14 20 41 24 +28 12 39 24 +14 29 39 35 +21 10 45 23 +22 30 39 32 +42 28 51 34 +49 12 49 23 +0 6 24 24 +32 36 51 36 +6 26 11 28 +44 15 51 15 +25 13 36 16 +23 34 38 34 +4 36 40 36 +19 26 44 31 +21 20 27 33 +7 26 22 29 +37 16 45 16 +4 14 5 15 +32 4 33 6 +37 18 47 32 +19 19 38 23 +23 24 41 24 +16 33 30 34 +38 23 47 23 +30 13 47 28 +50 32 50 36 +10 4 17 9 +16 21 48 26 +31 30 31 30 +22 24 35 30 +15 25 31 35 +10 33 33 33 +8 9 46 22 +35 34 46 34 +20 4 43 4 +50 23 51 29 +17 6 48 15 +3 26 23 31 +6 17 21 19 +6 30 48 35 +27 19 46 28 +18 18 45 18 +21 31 40 32 +9 26 36 32 +24 32 50 33 +30 18 43 19 +15 23 27 25 +30 17 36 20 +36 30 49 30 +28 35 39 36 +13 8 39 32 +44 25 46 25 +12 29 14 35 +40 4 46 31 +40 20 44 31 +38 12 44 22 +46 36 48 36 +19 36 34 36 +1 20 22 35 +32 17 47 19 +22 14 22 21 +20 20 46 30 +32 3 51 7 +27 36 46 36 +5 35 30 35 +29 18 34 19 +44 8 44 32 +40 31 43 34 +21 11 47 11 +10 13 27 22 +32 21 36 35 +20 17 46 27 +6 4 47 11 +50 29 51 32 +18 27 51 31 +48 21 49 25 +33 11 51 29 +6 25 28 34 +43 9 46 35 +33 5 48 21 +48 31 48 31 +4 18 38 33 +35 10 37 32 +20 22 35 26 +27 7 34 20 +25 12 46 14 +1 15 18 34 +31 36 47 36 +23 13 49 19 +33 8 38 24 +24 23 28 27 +33 7 47 35 +2 34 24 34 +10 23 44 23 +50 8 50 21 +45 18 46 25 +12 10 12 22 +9 14 50 14 +20 19 26 19 +50 7 50 26 +38 15 39 26 +30 7 30 23 +15 13 28 20 +23 7 24 15 +2 13 10 20 +10 28 44 29 +20 19 42 23 +36 1 40 23 +32 6 50 16 +11 8 11 11 +47 18 51 36 +34 6 49 10 +21 3 42 24 +6 26 6 28 +43 19 49 26 +34 14 36 21 +46 1 48 6 +16 18 28 20 +43 8 47 12 +33 23 45 36 +49 10 50 31 +8 4 51 7 +17 23 51 26 +8 8 12 12 +23 34 25 36 +22 30 37 32 +13 16 34 26 +20 33 44 33 +19 26 26 29 +45 19 51 22 +14 2 35 25 +10 26 44 27 +16 22 33 36 +31 16 48 27 +3 19 20 30 +47 32 47 34 +42 27 45 28 +16 27 23 31 +7 33 27 34 +41 27 43 35 +19 19 49 33 +14 21 14 21 +9 8 43 18 +11 8 29 13 +35 35 47 35 +37 3 45 19 +23 11 23 28 +48 26 51 35 +19 22 42 24 +23 31 30 31 +13 32 42 33 +7 1 43 15 +28 21 41 22 +16 34 47 36 +18 10 18 20 +15 32 22 34 +16 31 38 36 +7 12 8 35 +13 0 41 19 +28 34 47 35 +19 36 44 36 +46 4 50 16 +49 14 51 19 +31 18 37 30 +35 36 44 36 +33 23 48 24 +45 27 45 31 +48 17 51 25 +24 13 38 16 +42 6 42 22 +35 34 37 36 +42 7 48 35 +15 32 25 33 +33 16 39 23 +27 20 35 35 +26 16 40 34 +46 23 50 32 +29 32 34 33 +24 9 36 14 +27 10 28 10 +40 7 50 14 +7 24 17 25 +5 0 30 14 +23 9 37 9 +41 12 51 26 +17 20 20 27 +24 31 38 34 +11 8 17 21 +27 31 46 32 +0 26 3 33 +46 8 51 20 +25 36 25 36 +5 12 10 29 +41 3 45 5 +24 34 50 36 +32 23 34 29 +51 29 51 33 +47 2 50 16 +23 34 33 34 +7 28 23 35 +42 4 45 30 +42 27 43 32 +40 6 48 9 +5 25 35 33 +36 3 40 32 +29 11 42 19 +3 12 25 15 +41 32 46 33 +37 9 37 30 +46 23 51 29 +42 12 45 17 +47 33 49 34 +43 32 44 35 +41 16 51 24 +6 27 24 28 +44 13 46 20 +34 17 42 17 +32 32 38 36 +24 23 33 29 +37 27 41 33 +47 5 51 7 +51 22 51 30 +41 19 45 35 +35 1 50 25 +19 32 21 35 +40 35 50 35 +41 22 51 26 +31 17 39 24 +48 28 48 32 +43 21 46 21 +30 19 44 22 +26 4 26 9 +30 2 46 26 +34 36 44 36 +1 23 24 30 +41 26 50 26 +7 11 7 11 +30 15 48 16 +11 10 20 30 +21 7 40 15 +46 12 46 28 +47 36 51 36 +5 34 42 36 +20 35 21 35 +34 6 34 22 +47 2 51 35 +4 20 30 32 +41 16 46 27 +44 2 51 32 +35 29 42 29 +20 10 21 24 +39 4 39 33 +16 17 39 21 +39 5 47 35 +8 16 9 33 +22 34 22 35 +3 17 13 27 +12 13 44 22 +19 26 48 27 +34 15 49 29 +18 28 22 29 +40 3 44 3 +11 2 43 28 +26 0 50 29 +39 3 42 11 +48 27 48 27 +28 0 39 24 +10 34 23 34 +30 35 49 36 +48 12 49 20 +13 3 24 29 +51 20 51 22 +28 11 37 26 +2 15 8 32 +13 23 14 29 +22 32 42 35 +35 33 50 36 +31 8 35 26 +3 20 41 20 +32 7 50 33 +27 21 27 24 +23 20 46 20 +46 5 51 8 +42 2 44 4 +37 25 41 36 +27 36 33 36 +24 24 49 27 +9 13 19 35 +51 31 51 36 +21 31 32 35 +21 11 29 19 +23 21 45 23 +13 33 36 34 +50 33 51 34 +4 8 33 33 +31 26 38 28 +8 11 22 30 +42 12 48 15 +12 8 51 33 +48 3 48 36 +38 34 43 34 +51 24 51 31 +32 0 38 34 +25 12 49 21 +11 26 20 29 +34 32 36 36 +19 16 29 35 +1 36 4 36 +8 31 41 34 +11 1 51 14 +34 14 47 29 +32 26 47 35 +11 34 28 35 +40 26 51 30 +44 32 51 35 +11 24 13 32 +44 9 51 13 +37 0 49 25 +41 30 49 35 +14 1 40 23 +0 32 41 32 +44 23 48 34 +29 25 35 34 +4 11 13 13 +9 1 15 32 +49 17 50 21 +14 25 19 34 +5 4 14 32 +35 7 50 25 +38 8 50 22 +37 36 49 36 +15 36 24 36 +39 36 45 36 +51 21 51 35 +27 13 46 17 +29 20 32 27 +3 13 31 35 +7 22 45 32 +45 12 45 36 +41 13 45 16 +35 7 38 13 +16 28 31 30 +51 21 51 30 +4 2 9 19 +48 7 50 9 +30 19 37 27 +4 5 50 26 +20 36 31 36 +28 12 33 35 +19 27 25 34 +39 10 45 24 +44 15 46 30 +51 15 51 35 +31 9 41 28 +46 5 50 14 +3 14 18 17 +14 24 30 29 +49 3 51 18 +13 4 14 36 +9 18 38 35 +51 9 51 12 +46 4 51 35 +47 19 51 26 +14 36 38 36 +9 11 19 26 +17 25 39 34 +32 31 43 36 +17 0 29 8 +32 0 49 10 +36 17 45 26 +0 11 36 17 +2 16 22 20 +10 4 27 27 +51 25 51 28 +33 22 45 35 +26 35 49 36 +18 8 41 28 +21 9 36 10 +24 31 50 36 +26 4 30 12 +32 14 43 15 +11 30 17 35 +30 25 42 29 +27 7 39 25 +38 7 40 24 +19 36 47 36 +43 36 49 36 +43 6 44 13 +4 32 8 33 +18 25 48 36 +14 17 42 25 +21 12 39 14 +11 13 40 29 +36 17 44 25 +38 34 47 35 +35 5 41 32 +45 24 45 31 +27 34 45 34 +33 26 51 35 +15 14 45 15 +2 34 14 35 +39 15 49 33 +12 25 42 26 +4 36 45 36 +31 1 37 17 +46 25 49 27 +28 12 34 34 +1 16 26 19 +25 29 34 34 +33 15 45 15 +41 3 51 6 +10 5 22 9 +50 10 51 14 +24 14 35 35 +38 12 41 27 +15 18 48 18 +6 2 13 16 +12 3 47 14 +34 9 35 16 +19 4 37 17 +39 20 45 25 +20 17 31 31 +47 27 47 28 +6 36 16 36 +41 21 47 32 +35 8 46 15 +50 4 50 6 +25 5 28 32 +41 11 42 18 +34 29 40 36 +36 1 36 17 +37 16 51 21 +44 29 44 30 +35 11 44 18 +33 29 39 36 +19 24 34 25 +28 4 45 25 +50 9 50 34 +32 18 40 25 +13 24 47 32 +9 4 48 10 +26 33 45 34 +0 28 25 30 +22 14 51 33 +21 18 24 33 +17 3 51 34 +15 19 40 33 +48 35 49 36 +0 20 44 21 +31 27 37 31 +50 32 51 32 +17 21 17 22 +51 29 51 32 +31 22 32 34 +49 32 51 34 +16 31 18 31 +51 15 51 33 +38 22 43 33 +19 28 30 32 +16 18 25 30 +42 34 49 35 +6 19 30 22 +19 14 39 29 +5 22 11 32 +4 19 11 32 +44 1 47 15 +7 9 37 24 +3 34 41 34 +47 21 47 26 +48 3 51 16 +32 27 43 32 +17 24 24 26 +15 10 32 13 +20 36 27 36 +51 19 51 36 +43 11 51 30 +41 4 51 21 +20 16 25 29 +45 11 45 30 +22 25 22 31 +2 4 23 11 +42 33 49 33 +34 19 43 31 +43 35 43 36 +32 3 35 3 +2 5 4 32 +25 20 35 21 +39 25 40 34 +19 13 28 32 +39 20 48 28 +1 7 24 10 +24 31 51 36 +32 15 49 26 +23 16 24 20 +32 28 49 36 +21 20 47 21 +29 20 34 20 +25 31 25 33 +19 15 19 16 +32 17 43 18 +34 18 37 19 +50 25 51 32 +18 35 34 35 +31 28 32 28 +25 16 30 19 +27 34 39 36 +20 3 39 28 +30 36 38 36 +5 25 21 26 +44 3 50 12 +28 8 48 12 +21 28 25 30 +21 9 27 9 +14 27 31 32 +36 18 40 19 +19 13 21 24 +26 11 31 17 +23 6 43 28 +13 16 24 36 +32 33 45 35 +40 33 43 33 +32 33 37 35 +28 1 46 1 +5 12 5 25 +12 9 26 9 +45 0 51 0 +25 18 27 20 +23 1 28 16 +7 1 40 14 +0 25 32 32 +11 33 30 33 +19 15 49 36 +35 1 41 15 +18 34 35 36 +37 32 37 33 +34 30 34 36 +40 30 43 33 +31 32 42 32 +13 13 41 32 +5 4 25 16 +47 1 50 33 +48 6 48 28 +4 25 21 26 +45 10 49 27 +34 16 44 20 +11 19 44 19 +35 16 41 32 +19 18 23 36 +33 20 44 35 +37 36 43 36 +2 17 14 34 +17 31 28 34 +17 19 28 28 +47 21 49 33 +44 22 49 24 +34 22 49 31 +16 35 36 36 +32 6 47 33 +24 10 30 18 +9 18 43 31 +34 6 35 17 +40 15 49 27 +32 2 33 31 +30 16 42 36 +32 0 44 3 +30 3 39 10 +33 18 43 22 +25 5 30 6 +44 18 44 20 +28 3 44 12 +12 28 46 35 +45 15 50 36 +18 10 26 17 +10 36 10 36 +13 24 22 36 +30 34 37 36 +39 29 45 31 +2 5 15 32 +34 3 39 24 +1 3 12 11 +29 11 38 11 +28 31 35 33 +41 25 43 30 +47 0 47 8 +32 27 33 35 +50 32 51 35 +37 21 45 34 +25 6 28 32 +45 35 45 35 +13 5 37 9 +31 13 36 22 +12 22 36 26 +50 26 50 32 +9 33 36 34 +18 5 40 35 +38 23 42 34 +27 35 37 36 +39 25 45 26 +46 15 50 33 +30 7 30 13 +37 23 49 33 +2 8 14 16 +19 30 27 30 +47 26 49 34 +50 33 50 35 +45 27 47 29 +7 29 15 31 +28 29 39 34 +30 6 36 23 +5 19 42 32 +23 12 30 33 +32 20 37 27 +14 16 21 22 +8 11 38 14 +12 28 25 30 +6 24 28 29 +23 22 31 23 +11 9 31 16 +11 10 31 28 +45 25 45 25 +31 14 51 33 +42 9 43 36 +36 2 47 8 +41 18 45 18 +39 6 48 9 +15 17 30 36 +17 9 21 35 +51 1 51 27 +10 34 42 36 +30 12 49 34 +19 24 40 27 +20 11 27 19 +3 16 40 16 +9 15 47 32 +15 9 40 21 +49 35 50 35 +46 13 46 13 +24 13 39 29 +10 14 12 25 +11 36 16 36 +49 25 51 28 +41 32 50 36 +41 8 43 16 +39 36 51 36 +32 25 39 35 +41 21 48 23 +16 9 23 29 +7 24 25 36 +44 14 51 26 +36 1 46 25 +49 12 49 33 +22 33 47 36 +27 5 36 33 +0 22 50 35 +34 17 49 18 +6 7 49 9 +0 27 12 27 +41 36 46 36 +17 32 34 33 +41 29 46 29 +11 31 17 34 +5 22 29 26 +38 18 42 24 +10 34 12 36 +46 23 49 30 +17 20 24 22 +5 3 42 30 +0 36 49 36 +36 7 36 18 +5 13 26 25 +34 27 36 35 +47 5 47 31 +37 7 37 36 +27 4 50 5 +31 25 48 31 +24 26 27 34 +23 10 43 30 +51 7 51 24 +41 7 41 26 +12 13 33 16 +34 30 46 34 +51 16 51 19 +45 25 50 35 +8 8 23 31 +15 10 44 31 +47 30 51 34 +4 16 32 30 +45 17 51 20 +31 30 45 31 +49 34 49 34 +7 18 30 22 +32 21 50 28 +44 5 44 26 +38 13 41 29 +2 24 36 34 +10 4 25 22 +2 4 14 13 +2 24 37 27 +19 32 30 32 +29 4 36 14 +19 9 20 12 +7 0 23 31 +51 33 51 33 +4 14 49 14 +31 7 36 26 +17 5 31 29 +35 14 50 30 +17 8 43 8 +31 12 50 25 +50 31 51 36 +32 11 44 18 +46 6 51 9 +28 5 37 35 +22 24 28 27 +38 14 45 28 +27 1 41 14 +48 2 50 33 +3 17 51 23 +12 12 51 23 +0 36 27 36 +19 36 33 36 +50 23 50 23 +33 36 47 36 +32 3 39 30 +27 36 40 36 +43 32 51 35 +3 1 38 1 +51 23 51 25 +11 13 23 29 +28 18 41 22 +11 0 26 26 +46 30 46 32 +47 9 49 17 +5 21 32 30 +21 29 34 35 +46 29 51 33 +37 15 42 30 +40 31 48 35 +48 0 49 8 +28 6 44 32 +4 13 38 14 +6 36 26 36 +27 16 45 19 +13 17 30 30 +20 26 26 28 +7 10 36 33 +32 5 50 31 +50 4 51 24 +6 31 6 33 +28 5 38 22 +28 5 36 32 +9 20 44 32 +8 22 20 26 +12 12 50 26 +40 2 49 20 +13 5 47 5 +26 6 34 29 +41 1 51 27 +29 1 34 26 +37 5 37 7 +22 16 25 19 +3 26 20 34 +11 3 12 5 +16 29 45 32 +43 15 48 19 +5 21 23 21 +28 16 40 19 +49 16 49 29 +32 17 49 23 +12 5 51 18 +5 31 36 36 +28 24 41 25 +22 29 28 30 +42 19 46 27 +23 11 45 20 +49 24 50 33 +8 6 47 31 +40 9 42 12 +7 16 10 25 +35 31 48 33 +46 33 47 34 +2 1 17 26 +6 7 30 36 +26 6 46 16 +34 35 41 36 +6 20 19 33 +16 36 51 36 +35 4 48 24 +11 32 45 36 +45 26 49 32 +23 32 27 33 +35 4 41 18 +17 10 24 23 +7 7 31 31 +16 5 23 9 +23 27 48 32 +9 19 29 20 +33 33 48 34 +8 30 8 32 +13 24 41 25 +9 25 34 31 +50 9 50 14 +8 21 24 28 +32 28 46 30 +33 28 45 32 +8 28 13 33 +1 21 14 29 +51 31 51 32 +38 7 48 28 +31 1 38 6 +3 13 36 14 +5 9 44 17 +46 10 51 16 +34 13 36 32 +36 30 45 35 +25 24 46 36 +45 3 46 29 +2 19 29 19 +9 17 15 34 +26 2 39 27 +40 33 43 36 +29 31 40 31 +35 11 45 30 +27 23 33 34 +41 12 47 19 +0 31 1 34 +23 16 45 16 +16 4 34 20 +40 15 41 25 +7 30 9 35 +17 21 20 34 +30 10 50 33 +26 13 47 13 +16 3 43 16 +0 4 49 9 +14 8 24 17 +21 19 51 24 +43 20 49 32 +23 20 47 26 +49 28 50 35 +41 25 41 27 +42 11 43 25 +24 21 36 31 +28 3 49 29 +7 32 35 32 +38 16 39 26 +4 23 5 24 +28 11 41 16 +33 34 44 35 +11 30 42 30 +8 28 9 33 +46 2 46 2 +3 1 42 19 +7 25 43 29 +44 34 48 35 +20 0 39 21 +42 25 46 27 +46 20 47 32 +18 26 41 36 +25 0 25 12 +31 21 34 32 +34 22 35 34 +43 0 49 5 +40 23 43 24 +8 35 42 35 +35 6 37 34 +12 19 39 32 +32 16 39 32 +46 29 48 29 +3 29 14 33 +10 19 44 22 +8 2 27 7 +8 27 34 30 +43 22 46 22 +6 14 19 36 +24 5 35 9 +9 30 25 33 +35 5 41 29 +16 35 34 35 +37 23 44 24 +33 19 38 29 +1 2 42 32 +51 22 51 26 +15 29 31 34 +30 32 47 36 +41 27 43 33 +2 14 24 30 +29 26 51 36 +12 9 33 36 +25 6 45 28 +51 8 51 20 +7 27 9 34 +4 18 5 36 +45 14 47 17 +23 29 38 32 +31 7 39 14 +8 7 20 10 +15 5 19 7 +42 3 46 17 +0 28 47 33 +40 16 50 29 +4 15 27 21 +27 20 49 23 +48 9 49 18 +45 31 46 31 +8 28 27 31 +49 27 51 32 +1 29 44 33 +16 34 22 36 +45 35 49 35 +2 4 48 28 +30 11 40 24 +3 15 6 23 +43 27 45 30 +31 8 48 33 +46 28 46 30 +35 27 40 33 +4 24 23 24 +45 12 45 25 +20 16 26 19 +31 4 48 20 +37 1 45 16 +4 10 28 14 +31 28 43 33 +26 9 31 25 +46 30 49 31 +47 22 51 29 +11 9 40 33 +8 12 39 33 +37 20 38 29 +33 4 46 26 +0 24 9 27 +39 35 42 35 +22 9 30 26 +44 20 45 28 +29 36 50 36 +39 32 45 36 +47 4 50 13 +29 0 33 10 +34 25 49 26 +49 35 50 36 +28 21 45 22 +8 27 11 28 +24 14 24 20 +14 1 48 10 +3 6 30 36 +40 36 49 36 +13 10 51 27 +36 34 51 34 +5 21 38 28 +20 4 43 18 +16 23 20 24 +11 27 32 34 +14 0 26 8 +23 19 36 33 +23 29 29 31 +29 5 29 25 +4 29 26 32 +16 13 37 18 +48 24 50 29 +10 3 14 36 +7 22 23 31 +24 33 32 36 +34 31 51 35 +43 30 45 36 +9 36 38 36 +14 7 27 21 +28 13 39 30 +17 12 18 27 +22 18 47 27 +46 28 51 36 +29 26 37 34 +10 5 27 18 +4 3 26 28 +24 19 51 28 +36 0 39 29 +30 33 33 36 +48 31 49 31 +22 18 27 22 +29 29 48 30 +43 4 48 15 +26 4 48 11 +21 13 33 16 +41 24 47 36 +24 1 36 36 +12 22 22 22 +6 25 22 35 +36 33 40 33 +48 32 51 36 +50 30 50 30 +22 26 28 34 +1 13 1 23 +4 26 13 28 +42 8 42 25 +13 18 13 34 +37 13 43 16 +0 5 13 21 +1 28 3 33 +21 30 45 35 +51 18 51 24 +41 33 50 36 +15 31 46 33 +0 2 33 25 +17 28 17 31 +40 23 51 24 +1 7 7 19 +45 29 45 30 +28 30 35 31 +27 33 43 34 +42 0 45 23 +25 18 50 29 +6 36 21 36 +38 22 49 30 +21 31 27 36 +35 15 38 32 +42 21 46 27 +26 3 47 7 +7 17 18 18 +38 24 50 31 +51 6 51 24 +41 34 51 34 +34 21 42 22 +45 14 49 26 +8 7 26 23 +27 11 30 35 +14 11 14 36 +39 7 39 18 +8 11 14 33 +42 29 45 29 +46 30 47 36 +26 1 30 2 +19 1 47 2 +49 31 51 31 +28 14 40 17 +19 8 50 34 +14 27 40 29 +35 31 46 31 +24 27 40 30 +14 29 20 30 +18 35 41 35 +5 26 21 33 +4 22 34 22 +38 8 49 16 +28 13 45 33 +23 16 45 36 +16 0 20 9 +6 20 48 23 +1 31 42 32 +10 13 27 19 +11 18 51 34 +12 4 41 24 +30 25 43 32 +35 6 50 26 +35 5 35 15 +45 1 47 21 +16 32 34 36 +28 13 38 29 +40 13 41 36 +46 11 49 20 +17 14 46 18 +5 32 7 32 +24 16 34 19 +51 6 51 7 +0 26 1 32 +27 10 51 32 +39 11 39 36 +2 32 2 35 +28 10 47 20 +32 34 50 35 +39 10 41 10 +17 22 40 29 +28 3 35 7 +0 9 13 23 +8 32 40 35 +47 1 50 33 +43 8 47 16 +24 6 46 15 +24 4 27 12 +26 29 48 32 +37 6 41 18 +10 28 12 32 +44 7 46 22 +18 3 51 36 +34 28 46 35 +30 2 48 33 +12 21 15 33 +46 21 51 35 +5 3 22 10 +49 13 49 19 +34 16 46 30 +21 4 46 25 +42 26 42 29 +1 9 14 9 +50 6 50 15 +49 33 49 33 +10 14 11 28 +18 2 19 29 +6 21 8 33 +51 35 51 35 +31 5 37 27 +21 5 46 15 +23 16 46 18 +4 29 25 33 +24 24 46 30 +12 12 20 27 +13 12 27 30 +49 20 50 22 +23 24 30 30 +50 8 51 13 +6 30 32 34 +38 27 45 32 +9 9 9 33 +19 0 46 27 +22 17 51 26 +10 6 18 23 +44 32 50 32 +9 28 47 31 +39 23 39 27 +0 11 44 18 +35 12 42 31 +23 15 40 33 +9 23 13 34 +14 11 20 33 +41 11 44 33 +6 1 47 36 +42 8 51 36 +9 19 48 26 +22 12 40 21 +13 34 33 34 +11 27 34 31 +41 19 48 21 +46 13 47 26 +47 20 48 29 +32 26 32 31 +17 13 18 20 +20 15 38 31 +24 26 39 36 +39 31 42 35 +40 3 50 8 +0 4 32 27 +42 5 44 5 +40 22 49 36 +32 28 41 29 +39 6 45 21 +29 11 48 33 +9 35 16 36 +18 14 51 21 +14 3 37 15 +26 27 45 31 +31 12 39 30 +51 24 51 28 +34 32 43 33 +3 27 15 28 +46 31 50 33 +4 20 31 27 +36 10 49 25 +20 3 49 15 +11 5 39 30 +29 12 31 32 +50 25 51 34 +14 5 17 21 +4 12 16 19 +28 32 38 32 +23 2 50 5 +6 24 21 28 +42 1 49 14 +42 0 42 26 +34 15 37 20 +38 10 44 34 +46 4 50 6 +0 36 15 36 +18 33 22 34 +26 13 43 14 +44 29 48 36 +3 31 32 32 +38 14 43 36 +40 30 41 32 +33 6 48 33 +40 0 50 5 +13 4 20 36 +28 31 38 32 +51 7 51 18 +39 6 51 19 +2 7 36 35 +23 4 42 20 +51 27 51 27 +46 5 47 15 +45 36 45 36 +35 19 48 22 +29 22 34 29 +38 14 38 26 +7 17 29 32 +3 14 11 15 +15 35 35 36 +44 12 46 27 +1 10 35 27 +39 22 44 30 +21 23 34 29 +25 25 41 34 +36 12 45 21 +45 3 45 24 +17 23 24 26 +29 8 39 21 +13 19 36 23 +12 1 50 16 +20 32 27 33 +43 9 47 11 +37 8 40 13 +36 0 50 14 +46 14 49 31 +10 28 28 36 +14 1 16 12 +35 7 47 16 +25 4 51 21 +4 32 29 35 +15 14 33 29 +32 14 50 18 +45 30 49 34 +34 14 40 21 +31 30 51 33 +35 30 44 35 +12 2 38 16 +41 22 42 32 +13 29 15 30 +34 34 43 34 +2 6 25 13 +41 19 47 33 +32 28 32 32 +32 21 36 27 +25 16 38 20 +12 0 18 18 +44 25 44 33 +29 16 35 23 +2 9 46 34 +28 6 30 23 +45 24 48 31 +34 0 38 5 +49 4 51 15 +44 0 44 15 +38 27 49 29 +9 35 46 36 +24 4 43 16 +37 20 42 25 +31 34 36 36 +10 9 50 19 +7 36 49 36 +38 27 49 28 +45 28 51 29 +15 1 50 12 +48 0 51 33 +51 35 51 36 +9 33 24 34 +20 31 44 32 +32 30 49 32 +16 24 32 30 +40 14 43 30 +30 18 46 35 +39 21 46 27 +51 28 51 28 +36 20 51 20 +30 12 40 16 +39 11 41 27 +37 26 41 31 +20 28 40 34 +34 0 40 34 +28 11 40 26 +27 25 30 31 +26 14 26 30 +34 4 38 19 +48 29 49 29 +45 17 50 33 +12 2 24 3 +3 35 24 35 +31 9 49 30 +42 15 49 16 +29 18 46 30 +35 34 41 35 +27 2 44 26 +41 29 45 34 +48 29 51 30 +22 6 29 29 +13 19 31 28 +40 5 49 11 +5 11 13 24 +34 26 44 34 +49 15 51 21 +28 8 43 21 +45 33 47 34 +50 12 51 33 +40 13 45 32 +18 13 22 31 +36 28 50 28 +25 27 36 28 +5 6 22 27 +43 24 51 35 +41 0 48 1 +8 25 13 28 +11 10 20 13 +15 9 49 25 +32 28 35 30 +2 28 8 34 +27 1 48 4 +36 32 41 36 +27 23 39 36 +18 3 39 17 +43 16 45 23 +35 23 51 25 +33 30 35 34 +5 11 25 32 +0 9 27 24 +45 12 51 12 +4 20 35 22 +38 24 42 29 +26 10 49 17 +43 23 48 25 +25 14 27 17 +17 33 17 33 +31 2 32 22 +49 9 51 28 +50 31 50 35 +28 6 34 6 +19 27 26 32 +42 14 51 14 +50 2 51 31 +18 34 41 34 +12 10 30 35 +33 11 47 28 +12 6 15 8 +47 22 47 30 +22 15 47 33 +48 13 50 27 +28 20 31 31 +44 19 49 36 +51 17 51 31 +20 21 44 23 +2 14 12 33 +39 16 40 35 +12 7 44 16 +50 20 51 30 +5 36 39 36 +16 32 19 33 +33 16 33 17 +46 10 47 32 +17 27 37 28 +12 36 41 36 +48 6 49 13 +3 3 46 36 +43 20 44 21 +5 33 23 36 +50 2 50 31 +24 27 48 34 +28 9 28 26 +14 33 35 35 +3 1 47 9 +7 26 27 32 +33 21 37 28 +43 26 44 32 +20 4 32 6 +33 8 39 28 +51 10 51 13 +30 21 46 35 +15 1 27 33 +2 27 34 34 +28 29 36 34 +30 6 38 25 +1 1 35 32 +29 22 40 34 +7 6 22 33 +4 34 18 34 +18 29 28 30 +29 30 47 31 +6 2 8 23 +51 3 51 12 +8 33 37 33 +32 2 47 7 +15 3 36 23 +30 9 42 15 +39 3 47 17 +19 16 34 27 +30 19 45 26 +49 7 50 27 +13 35 49 35 +7 23 28 27 +39 31 40 31 +38 35 46 36 +3 26 9 31 +13 1 28 22 +9 12 39 15 +41 22 51 31 +49 0 51 32 +45 1 50 18 +36 17 43 35 +3 28 7 32 +25 9 34 15 +37 0 44 8 +49 21 50 23 +22 5 31 8 +35 22 37 32 +15 17 17 21 +5 25 35 32 +18 0 29 23 +29 27 41 36 +22 27 48 36 +9 14 21 24 +8 18 28 18 +32 28 50 28 +7 7 37 19 +14 14 44 21 +42 12 50 24 +28 35 29 35 +29 13 44 16 +45 28 50 35 +31 10 47 10 +2 21 37 33 +23 36 40 36 +3 13 22 18 +3 17 32 21 +33 25 45 26 +48 1 49 21 +46 17 48 26 +4 27 32 32 +15 29 33 31 +15 30 23 31 +25 29 46 34 +17 36 37 36 +4 2 35 30 +38 33 50 36 +11 21 35 29 +2 13 40 25 +19 2 29 26 +9 24 39 25 +19 0 21 1 +5 5 33 9 +49 11 49 20 +7 35 7 36 +36 15 37 22 +26 20 39 35 +20 3 40 33 +3 6 48 30 +30 22 37 33 +30 12 43 33 +17 36 42 36 +28 5 36 34 +10 23 34 25 +2 23 33 29 +28 8 40 23 +33 26 44 26 +41 7 42 25 +48 11 50 34 +15 23 44 36 +4 1 4 13 +12 23 43 27 +28 34 38 36 +26 29 43 33 +25 5 40 19 +36 20 50 35 +12 14 28 27 +23 24 41 27 +35 24 44 32 +34 34 50 34 +16 9 33 35 +23 11 37 13 +9 15 33 25 +7 17 25 31 +25 18 51 25 +2 14 4 22 +33 30 46 36 +0 8 12 29 +0 13 0 27 +2 35 8 35 +16 18 24 35 +19 21 38 33 +39 27 42 30 +35 3 40 30 +47 31 51 31 +43 19 51 29 +6 27 42 29 +51 30 51 30 +15 32 34 32 +11 3 37 26 +11 35 42 35 +7 0 42 25 +16 10 32 11 +26 35 42 35 +2 11 35 32 +7 17 24 19 +21 14 41 23 +39 23 50 32 +16 29 19 36 +8 10 36 23 +41 9 44 22 +30 2 50 7 +2 36 13 36 +8 22 40 35 +10 26 26 34 +36 33 48 34 +10 33 32 36 +12 31 49 32 +1 36 12 36 +22 33 32 35 +28 6 45 18 +33 1 45 9 +34 31 49 32 +13 23 30 36 +18 15 45 22 +51 6 51 32 +40 14 47 16 +6 29 44 29 +27 4 44 18 +47 7 48 33 +10 14 48 31 +34 5 34 29 +39 19 40 26 +43 28 43 29 +38 17 46 32 +2 3 49 21 +20 13 33 14 +36 28 49 28 +49 4 51 8 +8 12 29 25 +37 35 46 36 +14 30 46 32 +28 2 31 19 +15 34 18 34 +6 36 37 36 +3 30 48 30 +44 7 50 29 +34 22 45 36 +4 16 7 28 +39 0 42 9 +37 26 39 35 +4 28 49 32 +41 2 42 28 +36 17 51 33 +2 10 32 28 +28 31 36 34 +9 16 50 28 +23 18 36 19 +46 16 48 22 +17 10 29 23 +13 7 13 11 +28 10 45 17 +23 34 38 36 +30 0 36 21 +19 33 34 33 +33 4 34 11 +5 33 17 35 +7 20 47 20 +23 36 48 36 +6 11 14 26 +47 29 50 33 +45 26 49 28 +15 5 29 10 +17 5 50 25 +0 25 48 27 +13 12 42 17 +18 29 23 31 +18 19 48 19 +19 19 47 35 +8 3 19 13 +51 1 51 31 +51 27 51 32 +51 13 51 34 +31 10 37 29 +39 7 44 19 +25 10 32 17 +18 26 51 34 +20 25 36 31 +41 13 47 25 +24 8 44 25 +0 11 18 27 +50 26 51 27 +0 18 24 31 +22 12 44 32 +40 29 44 32 +15 7 28 31 +49 5 51 36 +31 0 41 21 +17 9 36 15 +5 36 29 36 +11 8 41 17 +5 21 5 31 +9 33 19 34 +28 33 36 34 +29 29 36 35 +37 21 50 30 +6 18 49 21 +32 1 41 21 +40 8 48 15 +23 12 28 33 +10 15 25 29 +36 1 45 25 +39 28 46 30 +16 20 17 28 +21 21 21 22 +16 5 38 7 +5 29 24 29 +18 8 28 35 +19 30 50 35 +13 18 33 33 +19 23 26 31 +14 12 18 17 +4 24 47 36 +16 13 33 32 +40 4 40 26 +33 33 45 33 +50 1 51 36 +6 13 20 34 +23 5 41 11 +23 33 35 33 +2 31 8 34 +20 5 24 29 +13 22 30 23 +37 19 46 19 +29 19 51 32 +15 21 29 31 +45 25 51 25 +25 36 50 36 +24 3 30 9 +0 3 29 11 +46 16 47 30 +28 28 32 34 +23 27 29 31 +21 19 46 20 +13 17 18 18 +50 26 51 34 +41 1 45 20 +17 16 51 31 +45 21 47 22 +37 12 40 17 +45 32 46 35 +31 25 37 29 +29 4 50 28 +22 36 26 36 +45 6 46 24 +34 3 45 28 +13 34 35 35 +29 21 43 26 +49 22 49 32 +17 8 46 30 +31 0 47 17 +19 18 39 35 +24 11 41 12 +16 16 46 25 +35 23 35 34 +26 36 26 36 +50 36 51 36 +31 20 43 27 +30 0 35 5 +11 8 37 8 +51 17 51 17 +29 7 41 28 +38 33 50 35 +10 26 16 35 +45 8 48 27 +38 9 40 16 +23 11 23 15 +17 18 50 34 +9 23 18 23 +7 23 21 24 +38 1 49 17 +41 4 49 31 +40 8 42 35 +30 36 46 36 +20 20 46 25 +6 16 18 31 +14 28 22 34 +26 22 35 29 +23 15 23 21 +29 33 47 36 +26 4 37 5 +21 33 31 33 +4 22 19 33 +33 9 43 26 +3 35 28 35 +16 23 26 35 +2 4 15 19 +44 10 47 36 +51 19 51 23 +49 30 51 34 +44 19 44 23 +14 9 38 24 +31 22 46 36 +31 15 32 30 +6 16 15 18 +34 15 36 35 +12 19 46 35 +1 25 10 29 +46 27 49 31 +41 15 47 18 +10 17 45 18 +11 24 32 28 +36 0 40 15 +5 17 45 18 +44 33 46 33 +34 17 44 22 +29 6 41 8 +39 36 45 36 +13 4 31 20 +50 23 50 26 +10 25 50 32 +11 29 19 31 +27 33 49 33 +26 29 42 31 +1 24 48 32 +39 17 42 28 +39 3 47 29 +22 27 48 36 +18 30 27 34 +0 9 40 10 +46 8 48 19 +15 15 30 21 +19 18 28 25 +38 34 42 36 +48 18 51 23 +31 32 38 36 +48 31 48 36 +6 7 30 12 +24 19 28 34 +37 5 48 7 +30 22 40 29 +38 27 44 29 +49 30 51 30 +35 13 48 29 +22 1 49 4 +39 24 51 26 +1 7 34 35 +6 8 44 22 +46 3 50 4 +29 4 43 9 +21 33 21 35 +20 7 36 25 +2 22 39 26 +30 3 30 15 +33 23 45 25 +12 24 16 24 +0 16 5 26 +43 25 43 35 +32 15 47 36 +13 19 50 35 +32 36 42 36 +8 31 9 36 +5 24 47 30 +23 8 47 32 +51 36 51 36 +14 18 41 31 +10 18 41 19 +35 9 43 31 +6 11 8 33 +8 6 36 36 +24 26 47 34 +49 3 49 6 +27 25 43 28 +28 36 30 36 +0 36 0 36 +0 16 7 23 +42 7 48 17 +22 7 46 12 +3 1 39 33 +16 35 42 36 +21 15 21 30 +5 5 51 20 +41 15 46 17 +19 1 19 28 +15 10 22 14 +2 17 11 20 +5 22 6 23 +40 5 45 29 +7 0 15 19 +27 4 50 35 +14 20 28 32 +13 14 13 21 +18 27 42 29 +45 11 47 27 +38 7 48 26 +19 6 26 12 +36 5 48 12 +8 33 39 36 +46 31 51 36 +24 0 40 5 +14 22 36 29 +6 36 18 36 +2 21 13 24 +19 7 48 30 +13 7 36 35 +15 29 49 31 +17 8 48 32 +27 22 41 22 +51 13 51 27 +1 27 42 30 +46 31 46 33 +35 27 48 30 +32 14 37 17 +29 19 49 27 +11 12 12 35 +2 36 46 36 +17 21 33 26 +7 3 22 32 +25 4 43 12 +20 13 30 21 +8 9 39 33 +49 3 50 14 +33 30 37 31 +22 3 22 33 +29 5 42 26 +19 4 49 30 +27 30 45 33 +29 25 40 28 +1 6 22 10 +31 23 35 27 +2 24 37 31 +14 16 25 23 +18 34 40 34 +5 5 6 30 +49 31 51 35 +50 36 50 36 +48 8 51 28 +35 25 41 28 +50 24 51 30 +26 11 32 33 +17 23 48 34 +14 15 31 33 +22 6 40 17 +19 11 34 11 +36 27 40 35 +18 34 27 36 +14 21 28 22 +47 0 48 19 +24 22 35 36 +49 20 49 36 +30 8 44 32 +37 15 45 27 +38 33 42 36 +23 2 30 17 +25 19 25 27 +12 10 46 24 +5 17 47 17 +2 8 37 34 +14 28 17 34 +23 33 40 36 +8 31 39 35 +51 12 51 13 +23 15 26 18 +13 2 41 24 +12 2 47 15 +34 34 34 35 +49 20 51 29 +18 27 49 29 +4 25 48 26 +40 20 46 26 +20 6 26 36 +14 32 35 34 +51 31 51 32 +20 32 22 33 +15 1 31 19 +44 2 49 7 +18 12 47 26 +36 32 44 34 +9 7 43 22 +12 33 23 35 +4 8 51 14 +0 14 21 24 +25 8 34 35 +39 35 46 35 +0 30 37 33 +23 36 49 36 +38 13 46 25 +6 17 8 26 +43 17 49 30 +14 8 14 33 +1 4 6 17 +11 18 11 35 +48 36 50 36 +35 18 39 30 +1 7 39 33 +45 20 49 31 +30 30 44 30 +51 7 51 28 +14 21 38 26 +34 20 34 36 +37 10 37 10 +50 24 50 30 +36 16 49 21 +24 5 33 22 +35 6 49 9 +30 24 42 25 +21 15 38 26 +30 27 46 27 +28 24 46 24 +0 9 37 9 +30 18 33 27 +11 0 44 29 +17 6 18 30 +28 19 44 26 +40 1 44 20 +51 17 51 17 +36 32 46 34 +15 16 19 20 +15 21 28 35 +22 34 34 36 +29 12 43 15 +23 25 33 26 +22 30 48 33 +15 19 43 29 +45 3 48 3 +49 16 51 19 +20 12 43 26 +22 13 47 13 +30 27 41 30 +34 33 46 35 +19 10 42 27 +20 32 37 36 +44 31 49 33 +41 33 45 35 +32 4 33 5 +2 16 16 21 +20 2 42 3 +22 36 26 36 +36 12 46 24 +29 15 37 21 +43 6 48 17 +40 27 51 34 +12 28 21 35 +22 15 45 21 +47 2 51 5 +5 6 51 20 +20 27 35 30 +43 25 47 29 +24 30 51 36 +13 23 29 32 +42 32 50 34 +23 20 51 23 +8 16 46 33 +42 17 48 34 +19 32 47 35 +1 4 49 29 +7 11 37 13 +16 24 49 26 +32 2 37 11 +12 30 48 31 +46 32 50 34 +37 10 42 29 +10 24 11 34 +43 15 51 29 +51 34 51 34 +17 6 39 15 +50 6 50 13 +25 31 42 33 +42 14 47 15 +51 28 51 34 +4 3 30 8 +29 6 43 36 +20 1 39 30 +5 15 24 22 +10 2 39 22 +3 22 9 26 +42 9 47 27 +39 23 41 30 +13 21 33 33 +24 23 51 27 +26 31 30 36 +35 28 38 31 +18 20 29 21 +33 22 33 25 +24 15 40 16 +29 30 31 31 +34 8 45 24 +35 34 43 36 +22 16 28 33 +8 28 35 29 +26 18 49 25 +39 36 39 36 +12 19 15 33 +37 31 48 35 +42 25 43 30 +22 32 49 33 +7 36 10 36 +6 27 15 35 +40 0 48 35 +14 2 33 8 +48 32 50 35 +48 33 51 33 +9 36 19 36 +30 12 39 12 +45 3 51 19 +28 21 47 32 +6 34 14 35 +29 31 38 32 +38 36 38 36 +45 2 49 33 +8 32 39 36 +26 2 34 27 +17 26 31 35 +7 6 23 9 +27 10 51 20 +0 8 36 30 +10 0 39 29 +21 11 47 23 +10 21 51 28 +30 3 30 24 +22 1 31 19 +29 12 49 29 +40 18 51 27 +15 36 28 36 +30 14 47 19 +3 32 32 35 +35 0 45 29 +19 12 46 36 +8 17 16 20 +20 4 27 4 +36 28 46 34 +27 20 34 32 +16 27 51 34 +19 24 26 28 +47 25 48 35 +4 27 19 29 +7 30 38 35 +15 4 21 20 +3 15 8 35 +3 23 25 33 +27 36 39 36 +1 2 20 28 +43 11 48 20 +49 0 51 3 +48 10 50 30 +27 25 31 36 +21 14 38 18 +16 17 30 17 +16 1 27 8 +22 5 30 8 +46 6 46 9 +11 24 24 32 +22 5 40 6 +46 8 48 33 +27 29 35 35 +8 9 14 22 +50 34 51 35 +41 9 41 27 +1 10 31 16 +5 32 43 34 +46 20 49 30 +28 7 46 31 +40 11 42 27 +37 14 51 26 +5 5 46 32 +42 20 48 29 +10 18 51 29 +27 26 49 30 +3 12 42 29 +39 11 48 29 +32 29 47 34 +11 25 48 28 +9 18 21 32 +22 6 24 27 +19 6 24 8 +22 21 29 21 +9 24 32 27 +37 31 51 31 +40 4 45 12 +28 14 50 25 +35 0 46 33 +0 24 41 34 +28 26 44 36 +0 25 32 30 +44 24 51 31 +37 25 41 34 +11 0 49 4 +34 27 42 34 +38 16 45 23 +33 31 38 31 +23 31 30 36 +48 20 49 27 +9 16 47 21 +48 23 50 30 +33 5 38 11 +9 33 50 35 +6 20 44 20 +19 17 30 36 +42 25 46 35 +3 27 37 29 +23 4 38 31 +8 2 30 23 +47 29 50 32 +15 1 28 10 +20 23 38 26 +16 25 27 32 +21 5 28 7 +11 18 49 31 +47 3 51 26 +31 35 31 35 +20 6 32 22 +18 27 34 27 +7 2 37 3 +19 34 31 35 +46 33 49 33 +51 20 51 32 +35 26 43 33 +13 10 33 17 +4 4 24 17 +5 9 39 27 +12 8 14 17 +33 36 41 36 +39 12 50 23 +7 18 28 33 +37 31 47 32 +41 19 42 29 +4 35 45 35 +17 20 50 35 +49 16 51 32 +29 2 29 11 +35 13 45 25 +8 3 38 9 +9 1 40 10 +3 31 24 35 +27 25 30 31 +25 15 51 18 +0 32 38 36 +11 30 13 30 +43 19 45 29 +25 6 49 8 +49 12 51 24 +47 8 49 12 +1 8 18 28 +45 6 47 18 +28 23 33 31 +11 1 16 16 +46 22 49 25 +38 2 47 9 +39 4 47 7 +46 23 50 33 +38 4 45 35 +6 20 35 27 +50 35 51 35 +10 5 23 5 +0 26 35 33 +4 0 41 27 +34 11 36 18 +27 21 45 22 +15 14 23 19 +18 15 23 30 +37 10 43 30 +39 31 47 36 +21 15 26 27 +6 23 29 32 +11 7 45 29 +34 12 42 20 +19 28 39 29 +3 10 31 32 +45 12 47 16 +19 27 26 29 +30 36 38 36 +44 36 49 36 +1 7 2 18 +35 31 36 32 +39 8 49 29 +29 21 36 21 +31 22 47 28 +33 3 44 7 +14 33 26 34 +23 19 44 28 +4 1 35 35 +43 32 43 34 +6 36 24 36 +35 25 49 27 +6 34 20 34 +37 22 45 23 +42 0 45 27 +18 20 40 36 +28 1 29 15 +34 24 49 24 +40 29 44 35 +37 30 48 35 +6 8 23 21 +11 26 24 28 +12 19 13 19 +13 25 19 30 +6 17 36 36 +18 1 43 30 +21 3 37 11 +35 36 35 36 +51 9 51 36 +8 4 48 10 +15 30 50 35 +16 26 35 34 +13 30 24 34 +17 29 34 35 +18 6 50 33 +30 8 43 24 +14 18 51 28 +51 12 51 30 +0 4 50 6 +36 2 38 33 +10 33 40 35 +26 0 31 25 +50 26 51 36 +21 36 35 36 +10 16 21 36 +28 9 33 25 +13 18 23 31 +48 7 48 27 +20 27 25 29 +14 10 45 23 +29 16 38 24 +36 8 48 36 +7 18 51 21 +16 34 46 35 +33 13 50 32 +1 35 44 36 +3 35 46 36 +27 31 28 34 +20 21 33 25 +32 34 38 34 +2 27 32 34 +50 15 51 26 +0 26 24 27 +34 12 37 18 +11 2 14 32 +11 9 14 21 +30 14 30 24 +28 9 34 21 +22 13 49 23 +34 26 48 33 +50 4 51 34 +27 4 44 26 +13 23 46 34 +22 31 37 33 +11 10 50 27 +24 9 25 16 +4 20 30 33 +4 35 12 36 +4 19 23 27 +16 10 30 18 +0 35 50 36 +47 26 49 30 +24 14 46 27 +32 26 43 29 +18 30 45 31 +13 0 35 34 +42 31 47 32 +30 10 32 21 +28 5 38 17 +22 2 38 17 +3 19 14 36 +45 8 46 17 +46 33 50 36 +1 34 6 35 +26 22 31 29 +44 12 45 32 +46 1 51 23 +39 30 51 31 +11 6 46 13 +30 25 39 27 +47 12 48 12 +46 2 47 27 +42 36 49 36 +26 36 27 36 +41 10 42 14 +35 14 42 20 +33 11 49 13 +8 9 10 16 +46 6 46 22 +30 24 43 33 +49 12 51 19 +49 23 49 35 +13 19 50 28 +33 31 44 33 +11 19 39 31 +50 36 51 36 +46 16 46 25 +32 8 37 35 +12 1 37 4 +28 13 44 35 +38 33 39 36 +21 19 29 36 +28 13 48 24 +12 21 23 25 +19 22 31 36 +36 21 38 30 +37 18 37 26 +19 4 47 23 +5 22 27 29 +16 25 16 36 +17 7 24 29 +10 10 46 24 +22 1 40 9 +11 26 11 26 +31 15 38 27 +43 29 44 29 +49 13 49 32 +40 4 45 9 +16 19 16 33 +5 24 17 34 +9 13 15 27 +20 22 26 34 +47 1 48 15 +50 21 51 29 +43 19 50 25 +8 35 27 35 +39 21 51 32 +0 27 36 28 +23 2 39 29 +40 31 42 36 +43 7 51 26 +47 20 48 30 +10 34 19 36 +45 19 45 35 +22 9 41 25 +43 26 48 36 +25 13 47 24 +21 21 28 28 +14 26 49 29 +35 24 38 28 +30 33 41 33 +5 16 23 27 +35 29 35 32 +35 16 47 30 +49 31 49 31 +37 18 40 21 +48 10 51 16 +48 35 48 36 +15 14 48 30 +51 36 51 36 +37 6 47 11 +23 20 49 21 +42 24 48 30 +40 25 45 33 +46 19 51 20 +1 21 32 26 +38 32 43 32 +28 20 36 36 +1 30 32 35 +47 30 49 36 +44 8 51 30 +40 15 44 35 +35 11 45 15 +15 23 15 27 +2 19 38 23 +2 7 38 25 +32 0 47 31 +0 1 4 17 +48 8 49 8 +27 17 41 27 +11 34 29 34 +48 30 51 30 +23 27 41 28 +20 0 29 21 +47 7 49 28 +17 20 44 26 +17 35 30 35 +4 13 47 23 +47 34 48 35 +14 31 26 33 +50 29 51 33 +27 31 45 36 +46 36 48 36 +26 36 46 36 +47 18 49 29 +20 29 44 32 +26 30 28 35 +5 34 51 35 +42 24 42 36 +17 19 34 25 +31 33 51 36 +16 6 33 28 +7 5 29 28 +2 28 32 28 +20 28 35 34 +0 35 46 35 +43 28 46 29 +25 7 28 34 +4 29 20 33 +2 10 9 18 +20 3 25 12 +14 6 17 13 +9 2 15 21 +23 9 51 9 +6 9 37 27 +43 34 46 34 +4 18 23 20 +24 0 51 13 +14 4 37 32 +21 6 26 35 +14 27 36 30 +46 33 50 36 +26 18 42 18 +4 35 11 35 +40 30 44 32 +38 26 41 32 +2 15 30 32 +9 7 40 8 +34 33 45 33 +42 5 43 31 +39 12 46 18 +39 19 39 27 +31 20 51 34 +17 9 25 35 +43 6 45 6 +13 21 23 25 +2 18 9 32 +18 22 38 36 +38 5 44 23 +20 16 32 31 +29 1 37 1 +20 19 22 31 +1 16 31 31 +2 33 12 36 +13 29 42 35 +42 26 49 28 +46 34 46 34 +28 29 49 30 +6 22 41 24 +20 35 30 36 +41 22 42 23 +2 29 33 36 +35 10 48 10 +18 29 46 30 +3 6 33 6 +38 9 51 20 +51 29 51 36 +15 6 33 15 +9 32 51 33 +36 0 51 1 +16 14 33 19 +15 10 50 13 +37 16 46 20 +2 2 36 36 +39 24 41 33 +15 5 41 10 +4 34 28 34 +16 36 39 36 +13 29 41 33 +24 1 39 4 +13 28 18 31 +0 28 2 34 +42 1 42 14 +28 32 30 33 +27 14 27 22 +3 35 45 36 +9 29 50 29 +10 8 11 15 +14 9 43 21 +45 29 45 31 +33 8 51 28 +36 24 49 36 +36 17 36 32 +20 20 50 35 +16 9 29 12 +0 24 51 36 +9 26 51 28 +44 8 48 25 +23 28 43 34 +41 25 51 32 +2 26 46 30 +15 34 27 34 +11 23 32 33 +2 1 15 36 +4 30 13 32 +38 1 50 17 +45 33 46 35 +43 34 43 36 +29 4 50 15 +41 9 50 34 +41 12 46 18 +8 21 14 31 +22 32 39 33 +46 3 47 18 +41 3 41 28 +24 36 27 36 +46 29 51 33 +1 17 43 17 +38 13 46 16 +47 10 51 16 +16 26 18 26 +12 33 41 33 +29 22 34 24 +22 23 34 34 +36 8 50 9 +43 10 45 23 +35 10 43 10 +6 20 37 23 +44 23 44 26 +36 19 38 33 +4 31 45 36 +20 2 39 14 +31 26 46 31 +12 7 37 28 +15 24 45 29 +18 4 46 36 +9 20 48 27 +11 26 29 26 +43 34 45 36 +3 34 34 35 +0 10 28 21 +2 24 37 26 +38 29 42 35 +13 25 35 36 +11 21 15 31 +20 11 46 19 +13 18 46 18 +42 21 42 28 +34 28 39 34 +44 4 51 31 +45 6 51 21 +21 8 33 29 +42 7 51 33 +51 34 51 36 +34 16 50 27 +9 33 49 35 +33 36 47 36 +31 34 37 36 +50 2 50 21 +2 5 42 9 +3 13 23 19 +49 0 49 32 +43 10 49 26 +29 11 30 29 +30 25 39 30 +45 35 51 36 +8 13 40 21 +34 36 43 36 +26 6 42 35 +29 22 41 32 +22 3 44 34 +16 36 27 36 +28 9 33 32 +17 26 18 30 +0 16 49 35 +27 2 42 21 +9 36 45 36 +31 25 36 27 +14 34 47 35 +36 18 37 27 +43 29 43 31 +12 27 34 30 +24 19 40 35 +1 3 20 14 +26 28 36 29 +28 31 30 32 +0 15 4 30 +5 8 32 9 +36 0 37 14 +12 35 50 35 +35 20 44 29 +2 21 24 23 +20 16 22 33 +35 9 50 35 +14 15 37 34 +22 8 51 30 +49 6 51 30 +39 17 50 29 +45 3 46 29 +8 12 22 21 +4 28 23 34 +16 13 29 23 +31 1 37 8 +3 1 40 13 +45 5 46 10 +1 2 45 4 +3 0 43 9 +6 30 51 34 +17 35 44 35 +3 28 40 35 +23 25 46 35 +40 3 45 23 +21 27 47 29 +12 32 46 33 +8 4 47 19 +45 0 48 1 +19 20 37 36 +49 8 51 34 +11 17 50 17 +34 9 39 18 +19 36 35 36 +42 16 47 16 +44 13 51 15 +40 33 41 33 +42 34 45 35 +5 18 33 21 +18 18 22 33 +32 19 36 35 +30 22 37 29 +43 36 47 36 +20 32 29 35 +7 9 7 18 +31 20 47 28 +44 4 49 17 +4 2 16 32 +22 34 30 34 +42 16 42 32 +17 31 17 36 +7 14 39 32 +18 36 23 36 +25 36 41 36 +1 5 24 33 +38 30 48 34 +1 14 25 31 +48 26 48 31 +22 7 37 32 +45 30 47 33 +38 0 45 10 +12 29 26 36 +40 33 50 35 +11 22 51 33 +8 18 26 32 +27 29 27 32 +46 18 46 20 +23 7 45 10 +10 29 45 29 +1 4 28 17 +49 22 51 35 +51 8 51 10 +15 18 39 29 +7 19 37 26 +39 2 41 14 +8 36 11 36 +10 29 20 36 +11 25 50 30 +21 19 47 19 +43 16 50 19 +2 13 43 26 +13 36 45 36 +51 12 51 29 +36 9 50 12 +27 33 32 34 +18 20 47 31 +51 13 51 18 +46 9 47 24 +2 18 24 21 +28 7 44 13 +1 29 17 30 +28 26 39 27 +32 7 49 26 +43 8 48 14 +19 29 27 34 +48 28 50 36 +46 22 47 34 +8 35 28 35 +42 36 43 36 +3 14 49 35 +42 14 42 25 +9 25 22 28 +14 19 42 20 +49 25 49 31 +39 15 47 34 +34 36 43 36 +49 12 50 17 +21 14 49 24 +27 26 27 35 +16 23 38 24 +19 3 39 27 +30 33 49 34 +4 15 33 28 +1 34 9 36 +46 29 50 35 +50 24 51 36 +5 15 12 22 +5 28 51 28 +2 11 41 34 +42 10 43 26 +9 4 11 20 +41 2 43 30 +21 26 30 33 +3 3 47 34 +43 11 47 22 +51 3 51 32 +0 7 18 36 +6 0 45 33 +10 3 49 14 +50 33 50 34 +35 22 44 22 +31 20 36 27 +2 26 4 26 +42 5 49 15 +24 18 30 34 +0 13 1 19 +24 30 38 32 +41 33 42 35 +23 34 28 34 +39 17 45 26 +21 2 31 18 +2 17 37 27 +50 17 51 35 +14 3 45 16 +50 15 50 31 +49 13 50 28 +37 27 41 32 +29 5 38 18 +28 8 51 35 +12 17 38 28 +38 32 39 34 +16 35 18 36 +28 27 44 29 +43 15 44 18 +42 27 46 31 +3 9 13 20 +0 36 28 36 +43 5 46 21 +1 35 47 35 +29 9 30 11 +27 31 36 34 +50 28 51 28 +9 30 49 34 +1 23 24 29 +3 33 46 34 +4 14 4 30 +2 14 51 20 +13 36 19 36 +38 34 39 36 +22 12 39 12 +34 4 51 6 +5 30 31 34 +16 34 46 35 +13 18 34 23 +38 28 48 35 +44 33 45 36 +45 7 51 29 +47 33 47 36 +30 16 45 33 +21 27 22 31 +44 24 47 31 +40 30 41 32 +24 27 33 30 +23 7 39 28 +41 0 43 6 +10 13 42 16 +40 31 45 36 +25 32 26 35 +13 3 28 12 +41 7 41 18 +44 0 50 28 +8 7 33 25 +9 5 13 14 +50 15 51 22 +20 21 41 35 +47 26 47 31 +18 23 34 34 +26 31 34 36 +6 28 25 29 +14 20 35 25 +45 1 48 22 +27 21 47 34 +7 20 36 21 +21 17 40 28 +27 0 32 2 +33 15 42 32 +3 11 26 35 +46 2 51 11 +14 3 35 28 +38 33 41 36 +0 29 46 33 +14 6 28 31 +33 20 48 24 +30 24 42 32 +14 36 47 36 +34 2 37 13 +2 24 7 26 +2 5 24 14 +27 21 32 32 +11 23 40 23 +3 22 38 36 +7 28 8 28 +43 7 48 8 +45 3 50 24 +32 32 39 35 +35 36 42 36 +36 3 46 9 +27 1 50 5 +9 35 34 35 +50 25 51 29 +11 32 33 36 +8 24 29 30 +17 33 51 33 +50 35 50 35 +4 35 21 35 +22 25 35 33 +28 14 34 15 +11 2 51 14 +1 12 41 21 +18 22 44 27 +31 20 40 23 +14 7 46 15 +2 3 28 5 +4 12 44 28 +11 23 51 24 +24 3 39 22 +45 33 46 33 +11 17 38 25 +33 29 33 31 +47 32 50 34 +23 31 26 33 +2 16 28 25 +30 11 44 30 +15 35 18 36 +12 31 23 36 +15 0 48 25 +44 20 49 28 +49 10 50 13 +25 11 37 28 +15 34 18 36 +2 23 23 32 +31 12 46 12 +21 35 26 35 +19 25 31 34 +14 12 37 24 +21 25 40 25 +39 15 49 29 +48 30 49 31 +18 5 47 5 +33 22 33 28 +0 13 46 16 +50 2 50 33 +1 10 12 21 +18 12 31 21 +22 29 42 31 +39 33 46 35 +46 20 48 27 +7 36 48 36 +17 28 33 36 +29 3 37 32 +9 30 33 34 +49 1 51 18 +48 18 51 25 +47 36 51 36 +22 21 27 28 +28 23 51 29 +21 29 45 33 diff --git a/2018/republic/7-9_d1/arta/tests/input.04 b/2018/republic/7-9_d1/arta/tests/input.04 new file mode 100644 index 0000000..f875609 --- /dev/null +++ b/2018/republic/7-9_d1/arta/tests/input.04 @@ -0,0 +1,2368 @@ +11 89 +2366 +5 25 8 86 +2 78 6 81 +2 79 10 81 +10 36 10 88 +0 46 1 49 +4 84 8 87 +5 40 6 57 +10 27 10 32 +0 83 10 83 +8 16 9 34 +2 86 6 88 +4 76 8 78 +10 47 10 50 +4 22 10 63 +2 54 5 63 +0 62 6 70 +5 46 10 78 +0 31 4 70 +7 62 10 72 +3 44 7 73 +1 11 3 18 +9 70 9 77 +0 20 1 34 +7 48 10 73 +5 19 7 29 +3 69 3 80 +6 49 7 73 +5 1 7 61 +4 9 7 49 +1 85 9 87 +2 2 4 4 +2 25 3 49 +10 0 10 0 +9 44 9 80 +1 68 6 76 +6 10 6 54 +1 18 8 25 +3 57 10 76 +2 10 5 25 +2 32 9 36 +7 51 8 54 +10 3 10 24 +5 29 6 38 +10 57 10 82 +2 50 5 53 +0 1 4 37 +3 74 6 78 +1 32 5 48 +10 29 10 61 +0 69 9 82 +9 56 9 67 +6 81 6 87 +3 7 8 45 +5 8 5 46 +3 22 3 56 +5 61 9 70 +5 9 6 27 +9 2 9 41 +9 7 9 55 +5 21 10 46 +6 59 7 67 +6 19 9 84 +9 1 10 40 +1 62 3 73 +9 54 10 75 +7 83 7 86 +7 3 8 52 +1 66 2 68 +8 88 10 88 +9 0 10 62 +8 16 9 78 +10 86 10 86 +2 27 7 69 +6 30 8 70 +2 52 7 81 +10 64 10 74 +2 12 6 42 +0 82 0 86 +9 0 10 28 +8 14 10 49 +1 5 7 53 +1 88 8 88 +9 45 9 84 +2 38 7 51 +10 8 10 19 +0 84 1 84 +2 59 9 71 +7 26 9 63 +8 25 8 54 +4 44 7 55 +7 4 9 60 +5 67 10 87 +4 63 4 66 +9 11 9 45 +8 68 9 80 +7 15 9 19 +1 88 9 88 +3 11 6 32 +2 28 8 28 +6 27 9 79 +8 54 10 81 +4 53 4 70 +7 40 7 63 +0 11 3 58 +5 34 8 82 +0 41 4 66 +8 87 10 88 +1 82 8 87 +7 12 8 49 +1 49 3 62 +2 81 5 82 +1 68 4 85 +0 38 0 81 +7 49 10 67 +10 41 10 48 +0 31 8 81 +7 77 9 81 +10 80 10 81 +9 25 10 53 +2 33 7 60 +2 43 5 69 +5 84 8 87 +4 53 4 62 +3 21 7 34 +4 68 9 82 +2 73 7 88 +9 21 10 30 +9 48 10 49 +2 60 10 60 +0 74 10 82 +10 36 10 67 +9 24 9 38 +7 82 8 84 +7 31 8 87 +10 48 10 68 +6 45 10 60 +2 12 7 20 +7 48 9 48 +2 77 8 83 +9 24 10 86 +3 7 10 68 +6 74 9 82 +5 0 5 32 +1 16 5 83 +1 84 8 87 +0 37 9 50 +5 12 10 86 +4 62 9 87 +2 10 10 41 +6 80 10 84 +6 62 9 83 +1 38 8 41 +3 36 8 41 +8 11 8 86 +3 88 9 88 +10 61 10 70 +6 80 10 81 +3 4 4 88 +6 63 8 83 +7 26 9 52 +2 32 8 52 +5 38 10 62 +1 82 10 84 +10 45 10 64 +3 43 3 71 +9 3 10 17 +9 53 10 81 +6 69 10 79 +10 41 10 79 +2 27 7 42 +0 43 8 86 +8 22 10 74 +10 78 10 79 +10 30 10 58 +0 38 2 56 +8 81 8 83 +4 29 7 59 +9 45 9 59 +4 85 6 85 +0 12 5 48 +4 48 9 59 +5 63 5 63 +5 64 5 73 +6 42 8 71 +10 66 10 82 +4 54 9 72 +5 34 10 39 +4 53 7 54 +5 74 5 77 +7 32 10 82 +2 44 4 50 +1 40 4 75 +6 12 7 48 +1 3 8 52 +10 59 10 75 +8 58 8 63 +5 30 6 53 +6 19 10 60 +6 7 6 46 +9 85 9 86 +7 22 10 65 +0 15 0 46 +3 73 7 83 +10 45 10 52 +1 4 1 13 +8 73 8 73 +10 72 10 82 +0 69 3 86 +5 58 7 85 +7 19 8 40 +2 6 10 6 +9 45 9 57 +10 3 10 85 +2 78 9 80 +10 86 10 86 +3 87 7 87 +9 20 10 50 +2 45 9 78 +2 19 4 34 +7 73 8 76 +0 6 0 45 +6 48 10 88 +8 78 9 83 +2 44 9 77 +0 46 1 78 +3 36 5 50 +8 39 9 46 +5 51 5 69 +8 75 10 85 +5 0 7 17 +6 69 8 84 +5 48 7 63 +0 2 7 67 +7 20 8 82 +1 61 4 80 +5 8 5 34 +7 73 10 85 +5 20 7 57 +6 84 9 88 +10 41 10 85 +1 54 2 71 +8 41 10 47 +10 10 10 11 +1 58 2 58 +6 11 8 57 +2 31 7 44 +1 38 3 81 +4 88 6 88 +8 64 9 67 +6 19 9 24 +10 41 10 52 +8 16 8 21 +8 45 8 69 +7 44 10 53 +8 88 9 88 +9 40 9 62 +5 19 8 86 +8 84 8 88 +6 2 8 43 +9 8 9 73 +1 7 3 54 +8 54 10 76 +9 27 10 85 +5 15 9 46 +6 60 9 61 +6 22 10 31 +0 60 7 73 +3 58 6 85 +5 35 10 39 +5 9 10 60 +1 24 7 26 +3 86 10 87 +1 65 6 82 +8 75 8 79 +10 62 10 69 +6 78 9 79 +0 78 3 79 +0 63 3 81 +2 62 2 72 +9 87 10 88 +4 85 10 87 +9 59 10 77 +6 66 7 68 +6 15 9 62 +4 76 10 86 +4 73 7 87 +1 26 8 38 +0 71 5 75 +6 10 10 61 +9 66 9 73 +9 4 9 85 +1 79 7 80 +1 65 5 70 +1 13 3 54 +6 72 9 74 +8 78 10 84 +3 81 6 88 +1 54 4 79 +1 53 4 66 +4 60 8 80 +1 73 1 74 +4 19 9 51 +9 84 10 84 +4 70 5 79 +0 82 5 85 +2 41 6 67 +5 54 5 60 +2 34 6 36 +0 72 9 81 +0 77 2 88 +6 52 9 73 +5 69 7 87 +5 55 10 61 +6 54 9 84 +7 76 9 80 +1 72 6 87 +9 74 10 77 +2 23 7 64 +4 50 6 71 +9 50 9 53 +0 82 3 87 +10 34 10 36 +8 43 9 44 +1 54 4 74 +6 47 10 83 +9 33 10 81 +3 51 8 86 +4 29 5 58 +9 39 9 85 +10 39 10 62 +6 39 10 71 +7 32 8 56 +4 87 4 87 +8 44 8 78 +9 36 10 60 +10 69 10 79 +8 61 10 69 +5 63 7 71 +7 75 9 88 +2 74 6 85 +2 74 7 88 +7 52 9 87 +4 79 8 80 +5 22 9 43 +6 39 10 74 +4 71 8 84 +1 36 2 57 +4 85 4 85 +8 27 8 35 +6 65 9 83 +6 55 7 68 +2 35 5 85 +7 30 7 32 +8 71 10 85 +3 69 3 83 +9 10 9 17 +1 14 4 22 +7 3 7 70 +0 66 8 79 +3 16 3 45 +0 86 0 86 +5 26 5 69 +7 39 7 42 +1 16 7 22 +9 21 9 36 +9 46 10 74 +6 56 6 87 +0 67 10 79 +9 9 10 50 +0 45 7 52 +9 74 10 84 +5 79 7 84 +6 41 9 58 +6 40 9 48 +9 21 10 29 +9 4 10 23 +8 26 10 72 +6 72 10 81 +4 51 4 88 +4 79 9 86 +9 88 10 88 +1 74 6 88 +1 22 4 76 +0 71 6 87 +0 24 8 51 +5 50 7 73 +1 80 8 82 +2 4 3 52 +5 31 9 70 +10 62 10 63 +0 67 5 69 +5 41 9 45 +4 50 6 88 +3 84 5 88 +7 69 7 83 +10 0 10 8 +6 58 8 60 +3 19 7 44 +1 5 1 19 +7 36 7 73 +3 79 4 80 +4 40 6 80 +2 32 7 73 +8 19 9 71 +6 68 6 71 +2 33 5 82 +2 36 6 66 +4 0 5 33 +7 78 10 85 +7 51 10 83 +7 54 7 57 +1 73 4 87 +10 53 10 65 +2 27 5 67 +10 21 10 86 +4 86 4 86 +1 21 3 82 +9 23 10 64 +1 42 5 62 +3 24 10 55 +6 86 6 88 +10 12 10 81 +5 51 5 83 +10 43 10 43 +9 51 9 75 +7 27 7 37 +9 4 10 48 +9 26 9 79 +10 83 10 86 +6 87 10 87 +7 75 8 84 +9 33 10 61 +6 65 8 75 +2 57 2 72 +1 38 4 78 +4 58 5 61 +0 8 10 44 +0 84 0 85 +7 18 7 49 +1 55 7 71 +9 82 9 83 +3 75 8 85 +1 43 9 49 +5 22 9 49 +7 74 10 81 +3 6 8 25 +6 20 6 41 +3 18 10 29 +5 11 6 23 +2 14 6 40 +8 27 10 48 +1 39 2 52 +0 50 7 74 +6 24 8 64 +9 75 9 86 +6 22 8 38 +0 6 10 27 +3 86 9 86 +3 5 10 39 +0 23 2 71 +9 53 10 80 +2 82 10 88 +6 54 10 66 +4 46 8 49 +7 15 8 57 +7 41 10 42 +6 57 10 71 +2 4 4 66 +9 45 10 72 +5 7 9 10 +6 38 9 71 +2 8 2 25 +2 10 5 20 +9 17 9 41 +1 73 7 76 +6 88 7 88 +9 53 10 58 +10 64 10 78 +1 88 10 88 +8 63 10 70 +9 73 9 86 +2 43 4 67 +2 15 7 22 +6 34 7 37 +6 16 10 56 +0 76 5 81 +1 31 10 78 +5 54 9 64 +7 52 7 65 +6 59 7 85 +3 39 8 62 +3 34 5 84 +1 65 9 75 +5 71 5 72 +1 86 10 88 +6 43 8 48 +1 25 1 72 +5 77 8 84 +10 54 10 85 +0 5 9 84 +6 64 8 71 +1 32 7 64 +1 63 4 82 +6 63 7 72 +4 32 10 82 +7 65 7 71 +9 69 10 80 +4 80 4 85 +1 35 6 40 +6 88 7 88 +9 31 9 54 +6 70 6 86 +0 60 5 86 +2 15 9 42 +5 78 5 80 +7 86 7 87 +9 33 10 76 +10 41 10 50 +7 79 7 82 +8 4 8 19 +6 72 8 88 +9 15 9 61 +1 86 6 87 +7 28 7 76 +3 76 7 81 +1 1 3 64 +3 64 6 87 +0 27 8 41 +8 51 10 64 +10 37 10 64 +4 29 7 50 +1 47 7 82 +9 39 9 88 +3 65 4 82 +4 73 5 84 +0 46 10 61 +1 16 1 50 +5 76 8 77 +4 54 10 67 +8 42 8 69 +2 11 7 15 +8 58 10 66 +10 80 10 81 +10 41 10 62 +8 66 10 73 +7 14 9 82 +2 4 6 72 +5 58 6 59 +7 0 8 28 +6 75 8 76 +6 7 7 72 +0 52 7 57 +5 73 8 82 +10 19 10 25 +1 57 5 82 +3 82 10 86 +4 75 8 85 +5 58 5 62 +6 43 9 57 +1 26 5 56 +3 84 4 87 +8 4 10 43 +2 35 10 76 +4 84 10 84 +7 33 10 34 +8 66 10 88 +9 51 10 86 +7 15 9 55 +2 56 5 57 +6 28 9 41 +1 26 6 45 +8 63 10 85 +10 60 10 63 +9 56 10 76 +8 57 10 82 +7 51 8 56 +8 83 8 87 +1 0 6 72 +2 42 9 52 +9 27 9 49 +9 54 10 55 +8 83 10 83 +2 63 8 73 +6 63 6 81 +0 86 7 87 +0 66 3 76 +3 78 3 82 +10 19 10 82 +8 22 10 54 +0 27 7 83 +1 37 9 53 +5 56 6 82 +4 83 6 87 +2 44 3 50 +7 56 10 73 +7 29 7 84 +7 20 10 65 +7 30 9 86 +5 53 6 78 +6 28 8 33 +5 23 7 68 +5 4 9 37 +4 40 7 68 +4 9 8 86 +0 51 3 57 +5 27 5 67 +3 88 8 88 +8 54 10 84 +8 52 8 69 +10 41 10 76 +1 69 1 85 +9 82 10 86 +0 24 2 49 +7 42 10 48 +9 53 10 61 +3 40 3 58 +10 28 10 71 +8 14 10 69 +0 43 4 61 +9 44 10 72 +5 11 7 45 +3 64 3 82 +1 85 10 88 +4 73 6 73 +0 52 8 64 +10 48 10 76 +10 57 10 69 +0 30 9 85 +5 79 5 87 +7 9 8 77 +9 75 9 78 +6 73 7 85 +4 67 7 78 +9 71 9 83 +2 4 3 38 +7 60 8 61 +2 64 8 82 +0 72 2 80 +0 11 3 81 +3 36 10 88 +5 52 8 53 +9 26 9 53 +10 10 10 44 +4 74 8 81 +0 28 8 59 +9 78 9 85 +7 47 8 80 +1 24 6 30 +1 51 8 67 +5 49 9 57 +5 40 10 78 +7 70 7 88 +0 73 2 83 +8 58 10 81 +10 64 10 81 +7 61 9 74 +6 55 8 82 +3 66 8 66 +2 35 2 69 +5 73 6 80 +10 79 10 88 +2 68 9 74 +9 84 9 84 +8 46 9 70 +10 2 10 37 +10 13 10 72 +10 64 10 81 +4 9 7 9 +2 71 9 72 +0 62 7 64 +1 25 6 35 +3 56 8 66 +7 73 7 86 +2 23 8 77 +9 67 10 69 +6 3 10 7 +5 74 5 75 +10 38 10 62 +8 11 10 76 +0 18 1 72 +1 24 1 32 +9 46 9 70 +0 17 5 51 +6 66 7 73 +4 51 7 64 +10 76 10 87 +6 77 7 77 +3 81 4 88 +0 51 2 83 +9 76 9 76 +10 31 10 34 +1 24 7 69 +9 26 9 62 +9 24 9 40 +10 46 10 69 +0 5 1 50 +7 67 9 76 +3 2 4 26 +8 7 8 87 +7 2 10 57 +7 47 9 50 +10 82 10 84 +8 57 8 67 +6 27 9 54 +0 73 0 83 +4 8 8 56 +2 58 2 80 +3 35 9 45 +1 45 1 52 +3 30 7 51 +6 15 7 87 +1 65 2 87 +9 42 10 85 +1 70 7 83 +8 63 10 63 +7 4 10 63 +0 67 8 79 +2 23 2 77 +5 74 7 88 +3 28 3 84 +10 12 10 74 +1 71 10 79 +1 58 8 71 +8 61 8 64 +8 72 10 83 +1 34 10 84 +2 49 10 57 +4 11 8 66 +4 60 4 69 +6 16 9 51 +9 9 9 56 +6 26 9 36 +5 55 7 81 +3 77 4 79 +2 71 3 78 +2 81 4 83 +5 57 9 62 +0 65 6 70 +3 55 8 86 +5 33 5 80 +8 6 10 37 +5 64 6 84 +2 43 3 51 +4 78 9 88 +9 47 9 47 +0 12 7 32 +8 69 10 73 +7 63 10 77 +8 21 9 50 +2 39 6 56 +9 53 10 83 +7 51 8 86 +3 34 7 36 +5 31 10 81 +0 65 2 74 +3 66 6 87 +5 70 8 71 +3 42 6 50 +1 57 4 80 +10 49 10 83 +10 43 10 73 +0 17 10 58 +6 52 10 52 +0 52 9 73 +2 85 10 87 +5 40 6 65 +7 35 9 79 +3 25 9 25 +4 74 4 88 +5 51 8 53 +1 24 5 34 +4 74 10 79 +0 18 10 38 +8 29 9 48 +0 76 2 87 +7 11 8 53 +0 61 3 76 +10 26 10 68 +7 75 7 83 +8 19 9 40 +6 80 8 88 +3 86 5 88 +8 53 10 59 +4 64 6 68 +6 3 8 68 +6 6 9 74 +10 52 10 67 +0 9 5 36 +9 42 10 55 +10 60 10 87 +6 53 10 55 +5 15 9 27 +10 5 10 38 +2 88 6 88 +1 86 5 87 +0 64 8 87 +8 23 10 56 +1 56 9 81 +4 34 5 82 +6 25 7 60 +8 8 8 52 +4 66 10 75 +1 52 2 79 +7 54 9 85 +9 73 9 87 +10 49 10 74 +0 80 9 86 +0 29 9 64 +10 26 10 61 +4 3 9 4 +4 7 10 15 +9 36 10 56 +9 26 9 32 +0 86 4 86 +7 72 9 85 +3 3 9 3 +8 37 8 69 +7 79 7 79 +1 57 8 67 +8 54 10 77 +4 35 9 51 +7 64 9 68 +0 3 7 15 +2 43 3 70 +1 27 5 30 +7 13 10 53 +7 20 10 72 +5 49 8 50 +9 19 9 77 +5 85 8 86 +8 20 8 54 +3 50 6 82 +3 27 4 59 +2 54 2 74 +5 0 9 54 +5 31 6 41 +8 38 10 51 +4 44 6 46 +8 36 10 63 +4 27 10 59 +5 21 10 28 +8 8 9 14 +4 80 5 80 +9 83 10 87 +6 10 6 12 +9 88 9 88 +7 3 9 34 +7 50 8 83 +4 70 6 79 +4 49 5 59 +8 77 8 86 +4 9 7 68 +1 7 7 45 +8 1 8 45 +7 84 8 87 +9 45 10 82 +1 49 7 64 +9 37 9 54 +6 87 6 88 +5 51 6 78 +0 48 4 74 +4 2 9 88 +8 5 9 40 +2 70 5 82 +7 16 7 54 +2 26 10 35 +5 44 8 48 +7 66 8 76 +6 83 9 84 +4 83 5 85 +2 17 9 52 +10 65 10 84 +4 20 5 34 +7 21 9 35 +8 11 8 35 +0 75 9 84 +3 37 6 66 +2 71 5 72 +0 63 8 83 +2 84 6 84 +2 61 6 62 +2 42 4 80 +0 7 0 63 +0 6 9 64 +6 69 7 75 +10 76 10 78 +9 9 9 59 +6 79 8 87 +10 63 10 76 +2 80 6 81 +10 18 10 62 +9 54 9 84 +3 11 10 50 +10 83 10 88 +8 30 10 39 +5 71 10 74 +7 38 7 47 +1 17 6 58 +3 62 4 71 +5 70 8 80 +0 2 0 47 +7 38 10 39 +8 77 10 81 +4 40 6 48 +2 14 2 52 +3 18 6 36 +7 47 8 69 +10 54 10 68 +9 67 9 70 +7 13 9 22 +10 88 10 88 +1 3 5 28 +0 71 4 76 +6 83 9 85 +3 79 10 83 +7 47 9 52 +5 74 7 77 +5 39 7 39 +6 85 10 87 +3 28 3 55 +1 57 6 77 +3 74 6 74 +1 29 6 68 +8 45 8 58 +1 44 5 48 +10 22 10 32 +10 2 10 14 +10 39 10 70 +0 82 9 82 +3 22 3 35 +1 50 8 56 +7 88 8 88 +9 37 10 50 +7 65 8 83 +5 36 8 50 +9 84 9 86 +9 48 9 61 +6 68 10 81 +6 82 10 82 +0 6 10 66 +10 73 10 79 +8 86 9 88 +8 44 9 82 +2 61 8 78 +6 75 6 77 +0 28 1 33 +8 7 10 16 +1 86 6 86 +6 12 10 76 +10 63 10 83 +1 28 6 65 +1 39 2 88 +4 7 9 87 +5 28 10 77 +1 47 4 84 +0 83 6 85 +5 65 8 83 +7 66 10 79 +7 51 7 80 +7 33 9 88 +4 19 6 27 +4 33 6 83 +2 48 2 57 +3 31 7 33 +8 1 10 49 +9 53 10 70 +8 22 8 81 +4 37 10 44 +1 40 9 53 +8 58 9 71 +4 10 6 12 +9 78 10 84 +3 45 10 62 +8 58 9 74 +6 59 8 73 +6 32 7 52 +6 80 7 88 +10 35 10 82 +8 26 8 62 +7 36 8 85 +8 51 9 71 +9 54 10 80 +9 12 10 69 +9 24 10 36 +7 64 10 78 +4 9 9 79 +4 5 9 81 +8 66 8 83 +10 30 10 49 +7 14 9 75 +0 11 0 27 +7 23 9 73 +6 16 8 40 +7 86 8 87 +10 54 10 68 +4 33 4 68 +6 44 8 65 +6 69 8 74 +9 32 9 75 +9 16 9 87 +5 21 9 67 +3 57 5 63 +7 62 10 63 +6 7 9 80 +9 45 9 53 +4 12 6 58 +8 59 9 64 +1 82 6 86 +7 26 7 85 +10 81 10 82 +2 43 7 60 +0 45 9 67 +6 43 8 76 +8 77 9 78 +0 4 8 56 +5 44 5 52 +4 23 5 23 +5 68 8 88 +2 6 3 44 +9 51 10 69 +3 3 10 3 +4 21 4 28 +3 85 8 87 +9 84 9 86 +3 47 3 73 +8 13 9 64 +3 34 4 39 +9 78 9 78 +9 53 10 78 +5 18 8 69 +9 50 10 54 +3 21 8 50 +9 13 9 46 +7 41 10 59 +5 27 7 73 +4 13 9 86 +10 33 10 61 +10 15 10 24 +5 8 8 50 +0 17 5 34 +8 82 8 87 +4 87 10 88 +6 26 8 44 +3 83 10 87 +9 12 9 27 +9 79 10 80 +8 75 10 78 +2 84 4 85 +5 54 9 87 +1 21 1 60 +7 0 8 29 +4 25 7 59 +2 63 4 74 +4 67 6 83 +7 18 7 23 +3 8 9 70 +4 86 6 87 +0 27 6 60 +8 59 9 76 +7 49 8 60 +5 16 5 23 +0 39 2 48 +0 41 4 85 +7 23 7 34 +10 31 10 47 +5 63 7 77 +1 9 10 51 +10 66 10 67 +7 30 8 62 +0 45 2 81 +10 67 10 77 +10 76 10 79 +4 61 4 72 +10 71 10 80 +0 45 10 61 +5 47 7 87 +3 77 4 88 +10 55 10 82 +3 30 9 81 +9 8 10 19 +8 40 9 70 +9 81 9 88 +0 74 4 81 +3 48 9 84 +6 22 10 68 +2 39 6 40 +6 45 9 45 +9 64 10 75 +4 34 6 40 +0 34 5 42 +3 22 6 42 +9 20 9 74 +1 55 10 57 +7 23 10 43 +7 60 9 73 +0 81 0 88 +5 8 6 88 +2 42 4 51 +9 45 10 76 +5 79 5 81 +6 66 7 86 +1 81 10 87 +4 8 4 50 +2 49 8 66 +5 24 10 76 +9 45 10 72 +10 81 10 85 +5 69 7 75 +7 66 8 68 +3 86 7 87 +9 84 9 84 +4 71 5 81 +9 30 9 52 +3 7 10 27 +6 16 8 39 +6 88 8 88 +10 1 10 25 +2 79 2 85 +10 57 10 61 +7 12 8 65 +2 42 4 80 +4 10 7 88 +5 68 5 82 +4 65 4 65 +6 12 6 40 +10 52 10 58 +0 31 9 82 +3 19 3 56 +1 64 8 64 +1 31 6 80 +8 30 9 85 +8 21 10 75 +5 28 9 60 +6 10 8 52 +1 23 7 33 +5 28 9 64 +7 19 9 35 +8 59 8 85 +3 13 6 38 +3 78 6 78 +6 26 6 27 +5 46 7 53 +9 74 10 83 +8 80 9 87 +4 29 6 66 +8 85 10 87 +5 2 5 79 +2 59 4 80 +2 4 3 6 +10 18 10 68 +2 22 7 62 +6 48 10 85 +5 86 5 86 +3 23 8 61 +3 15 4 31 +3 67 9 83 +7 25 8 36 +3 72 9 75 +3 68 7 69 +4 43 10 72 +8 27 8 65 +10 79 10 85 +3 33 7 64 +9 58 9 82 +10 10 10 42 +0 78 0 79 +3 78 7 81 +0 57 10 79 +7 53 9 83 +2 18 9 56 +6 0 8 80 +0 28 1 52 +0 20 1 20 +0 3 3 67 +2 39 9 48 +1 5 9 54 +2 83 3 87 +8 58 10 67 +1 71 7 80 +1 5 4 84 +0 79 1 88 +8 84 9 86 +6 25 7 54 +6 36 8 53 +10 50 10 82 +5 35 7 79 +10 81 10 85 +6 10 6 22 +9 66 9 78 +2 4 5 72 +7 6 10 13 +4 80 10 83 +0 49 9 86 +0 4 10 27 +5 21 8 39 +9 54 10 76 +10 59 10 80 +10 85 10 87 +1 50 6 75 +6 31 6 53 +3 82 10 86 +5 61 8 67 +9 23 9 34 +6 83 9 83 +5 54 9 73 +4 38 8 45 +4 67 4 72 +3 9 6 27 +0 6 2 79 +9 82 9 83 +5 27 10 30 +4 88 5 88 +1 54 1 61 +3 63 8 72 +3 18 6 18 +8 37 10 79 +3 86 5 88 +3 57 3 64 +10 86 10 86 +1 28 8 76 +0 22 7 76 +0 77 0 80 +5 78 8 88 +4 85 10 88 +7 88 7 88 +10 49 10 78 +6 82 8 88 +7 84 7 84 +1 75 9 76 +8 9 8 9 +0 26 4 40 +4 27 8 32 +2 8 2 33 +2 79 8 83 +5 50 9 55 +9 19 10 67 +8 70 10 86 +0 10 2 50 +6 33 7 64 +5 64 6 71 +7 37 8 64 +5 14 6 19 +9 45 9 73 +10 28 10 77 +1 49 4 86 +0 52 6 58 +6 87 6 88 +1 52 7 65 +4 22 7 73 +2 33 10 80 +1 12 7 82 +10 32 10 62 +9 59 9 62 +5 2 9 19 +9 71 10 73 +1 60 4 66 +4 61 5 85 +1 16 2 60 +10 18 10 85 +2 45 10 82 +0 18 10 41 +0 79 1 88 +0 45 3 49 +3 13 8 67 +2 56 8 71 +9 65 9 75 +6 78 6 78 +0 32 9 57 +7 74 8 78 +4 16 8 83 +0 9 0 78 +4 50 6 81 +9 63 9 83 +0 42 9 72 +8 4 10 17 +9 46 9 67 +0 71 10 82 +4 88 8 88 +7 19 8 56 +5 51 9 78 +10 67 10 81 +9 47 9 63 +1 3 10 42 +1 83 8 83 +2 63 8 77 +10 23 10 80 +1 74 4 87 +7 32 8 75 +1 0 7 14 +1 59 2 86 +8 48 8 52 +6 11 8 37 +8 55 9 80 +1 38 9 67 +4 16 5 77 +1 66 7 86 +10 55 10 57 +8 70 10 70 +4 72 9 80 +9 60 9 61 +10 40 10 68 +0 3 7 42 +10 66 10 66 +0 57 5 88 +1 72 7 72 +2 39 10 53 +1 47 6 74 +10 72 10 77 +4 3 9 75 +9 75 10 87 +7 81 10 82 +10 4 10 8 +8 48 8 61 +6 77 8 79 +10 25 10 32 +5 60 10 73 +7 9 8 17 +9 31 9 50 +4 36 5 79 +1 19 8 59 +3 14 6 46 +2 69 5 84 +2 63 2 85 +7 27 8 71 +8 86 9 86 +6 10 9 53 +5 10 8 67 +2 49 9 78 +2 50 7 82 +7 71 7 83 +2 0 2 30 +5 33 6 52 +1 15 1 43 +5 71 8 76 +5 82 8 82 +7 57 8 65 +4 24 4 31 +3 88 7 88 +2 83 6 84 +2 42 10 59 +0 71 2 87 +10 79 10 88 +0 43 8 86 +5 75 10 76 +3 87 5 87 +10 13 10 23 +8 4 10 31 +1 40 6 40 +2 63 8 86 +9 19 9 69 +1 60 2 67 +3 65 6 80 +8 46 8 75 +1 6 10 53 +7 62 7 64 +5 5 10 80 +10 71 10 86 +10 78 10 82 +4 82 9 87 +2 54 2 74 +9 16 10 51 +9 64 10 76 +2 37 6 63 +10 65 10 83 +2 78 8 88 +0 2 4 35 +0 53 6 59 +0 3 3 47 +3 86 7 87 +10 62 10 75 +5 5 8 27 +8 48 9 85 +6 87 10 88 +1 80 1 85 +9 83 10 87 +0 56 9 57 +5 27 5 77 +4 9 9 11 +0 50 8 85 +10 80 10 83 +3 7 4 24 +3 22 4 52 +4 79 9 79 +3 49 10 69 +4 86 5 88 +3 44 6 60 +2 12 8 65 +0 77 6 85 +9 88 10 88 +6 43 10 86 +4 36 10 69 +3 52 5 82 +3 49 5 49 +9 83 10 84 +7 59 7 88 +10 70 10 81 +8 25 8 29 +3 42 6 88 +8 19 8 34 +2 1 6 74 +8 53 10 55 +5 28 6 75 +10 30 10 77 +6 61 8 70 +9 41 9 70 +10 38 10 48 +5 76 6 77 +6 22 9 83 +10 4 10 50 +3 28 6 38 +10 0 10 17 +1 79 7 83 +8 7 10 11 +7 34 9 61 +4 36 5 80 +1 63 10 63 +8 19 10 76 +1 70 10 74 +2 55 5 82 +4 51 7 66 +3 5 10 63 +0 59 3 78 +9 32 9 69 +4 27 5 55 +6 0 8 42 +2 49 10 79 +9 66 9 76 +8 18 9 83 +6 24 7 81 +9 81 9 83 +9 68 10 75 +1 80 9 83 +3 79 6 85 +4 53 6 53 +9 51 10 68 +7 49 9 61 +6 86 10 87 +7 54 7 59 +10 6 10 46 +2 32 5 55 +6 65 7 77 +5 64 5 79 +5 87 9 87 +4 22 10 83 +3 39 8 73 +4 49 9 63 +3 42 8 49 +8 77 10 77 +6 86 6 86 +1 48 10 62 +8 29 10 83 +4 17 8 40 +2 8 3 41 +9 0 10 42 +8 36 8 47 +5 24 7 43 +2 54 2 71 +4 28 9 39 +10 79 10 80 +3 73 5 76 +4 49 7 57 +10 6 10 57 +6 75 6 86 +8 63 8 77 +8 63 10 79 +4 26 7 56 +6 66 10 67 +9 88 10 88 +5 0 10 11 +0 73 4 74 +8 31 8 73 +9 72 9 74 +0 38 10 70 +0 7 7 45 +2 10 3 85 +9 40 9 70 +7 2 8 16 +1 13 7 58 +7 6 7 67 +0 77 6 85 +9 26 9 47 +9 59 10 83 +0 44 2 87 +0 4 8 65 +0 54 2 78 +4 54 4 87 +6 30 10 66 +6 43 9 58 +1 81 10 86 +8 57 8 78 +3 41 6 64 +4 11 10 53 +10 74 10 77 +4 63 8 82 +2 23 10 83 +2 8 5 75 +8 70 9 70 +7 30 8 53 +2 57 9 61 +2 76 3 82 +2 41 8 73 +5 88 6 88 +9 46 10 52 +4 23 5 36 +0 74 3 82 +7 84 9 87 +0 18 0 65 +4 48 5 68 +9 34 10 41 +2 25 8 26 +5 72 10 81 +0 17 6 65 +10 48 10 77 +6 83 6 83 +6 26 6 39 +4 13 6 71 +8 44 9 81 +2 78 4 86 +4 85 7 87 +8 56 8 83 +9 69 9 79 +1 56 1 73 +10 63 10 67 +3 28 6 71 +9 73 9 73 +4 53 8 54 +0 72 4 82 +4 65 5 80 +1 73 7 78 +9 27 10 87 +1 62 9 74 +8 70 9 88 +7 5 8 7 +3 79 4 86 +7 88 8 88 +0 33 7 37 +3 60 3 72 +8 23 10 34 +6 20 6 22 +2 87 3 87 +1 34 2 46 +1 30 8 63 +10 59 10 74 +9 62 10 64 +8 53 9 77 +0 7 3 77 +4 15 9 52 +3 14 10 15 +9 40 9 68 +9 66 9 69 +6 5 6 7 +8 31 10 71 +4 66 9 68 +6 59 7 64 +2 69 4 79 +9 62 10 71 +0 20 5 60 +5 41 5 58 +0 27 4 27 +2 57 4 76 +7 45 10 88 +5 84 7 84 +4 65 4 82 +5 41 9 78 +5 61 10 74 +3 7 5 9 +4 84 7 88 +5 15 5 44 +7 42 7 81 +0 69 3 73 +8 56 8 64 +1 72 7 77 +5 67 5 70 +5 40 10 81 +4 8 8 77 +2 18 9 74 +0 31 0 63 +6 62 7 69 +8 80 10 86 +10 82 10 82 +2 18 5 80 +7 69 10 85 +2 23 3 88 +8 44 9 62 +2 79 10 84 +8 78 9 86 +4 11 10 25 +9 26 9 67 +1 83 10 88 +2 7 8 54 +7 30 8 59 +8 26 10 46 +10 51 10 84 +9 1 9 22 +3 63 6 76 +3 48 3 60 +4 3 9 26 +7 43 8 58 +3 87 6 87 +10 11 10 28 +8 26 8 35 +7 6 9 66 +9 33 9 80 +2 60 6 60 +7 16 8 43 +8 0 9 26 +0 5 0 46 +3 34 6 57 +7 45 10 86 +9 62 9 68 +9 43 9 48 +2 8 3 81 +6 40 10 53 +3 81 5 87 +6 32 10 78 +6 82 7 88 +2 80 9 88 +2 74 5 84 +6 48 10 49 +7 68 7 70 +9 58 9 68 +0 16 1 82 +1 64 4 85 +10 49 10 68 +9 6 9 6 +7 23 10 73 +2 22 5 35 +2 21 8 56 +1 73 6 79 +0 78 9 81 +5 65 8 80 +3 25 4 86 +3 75 3 81 +2 7 2 56 +3 7 6 42 +4 7 8 60 +4 50 9 76 +4 9 9 11 +1 32 5 75 +1 23 10 30 +0 53 10 67 +1 60 10 84 +0 46 1 67 +10 47 10 50 +6 6 10 74 +0 80 1 84 +0 14 3 87 +5 8 7 62 +1 28 7 87 +3 41 8 41 +2 88 4 88 +0 69 9 70 +10 8 10 30 +5 47 8 55 +6 6 8 45 +9 6 9 14 +0 32 2 86 +3 55 10 75 +2 13 10 79 +1 74 2 84 +4 51 5 56 +9 88 9 88 +4 87 5 88 +7 10 9 29 +1 57 3 84 +3 48 4 87 +1 49 1 65 +6 18 7 46 +4 39 9 84 +7 13 8 47 +9 38 10 77 +6 12 9 59 +1 45 6 66 +10 48 10 74 +5 56 10 79 +5 79 5 79 +1 54 7 79 +6 45 8 66 +6 24 7 49 +2 4 4 4 +5 3 5 53 +7 13 9 16 +3 83 7 86 +9 15 9 66 +2 85 2 85 +10 63 10 79 +5 49 8 72 +4 76 10 82 +2 28 7 70 +2 43 9 84 +6 18 6 60 +2 16 4 23 +10 48 10 57 +7 37 8 71 +0 48 0 76 +8 41 10 87 +9 53 9 65 +3 3 6 71 +6 36 9 87 +10 49 10 73 +4 76 4 84 +4 6 6 66 +5 39 9 59 +7 3 10 20 +7 12 9 15 +8 6 10 73 +3 72 9 78 +4 74 6 82 +8 11 10 62 +2 25 2 51 +7 60 9 68 +9 22 9 37 +3 66 10 66 +7 75 7 83 +2 30 3 82 +4 70 7 71 +4 12 7 76 +10 72 10 84 +8 36 8 55 +5 37 10 56 +2 75 5 79 +10 86 10 87 +6 76 9 83 +4 28 7 84 +6 80 6 82 +8 7 8 74 +9 17 9 72 +10 15 10 82 +3 52 5 80 +8 44 9 65 +0 71 5 87 +3 68 4 76 +0 16 5 68 +10 55 10 56 +3 73 9 88 +3 56 6 77 +3 88 3 88 +2 72 4 88 +10 58 10 67 +0 18 3 81 +4 13 10 18 +5 15 8 61 +4 88 9 88 +3 65 3 77 +1 30 4 58 +9 42 10 64 +2 72 6 80 +4 10 7 51 +0 29 9 79 +10 37 10 50 +9 71 9 88 +2 52 5 52 +7 57 8 88 +0 57 0 81 +4 23 4 69 +6 46 9 48 +0 78 5 80 +10 48 10 78 +9 51 10 71 +9 80 9 81 +2 12 8 44 +1 45 3 86 +6 88 8 88 +7 63 8 68 +2 57 3 59 +6 48 9 78 +5 33 10 88 +6 66 6 80 +8 86 9 87 +7 63 10 64 +5 87 5 88 +1 74 6 76 +6 49 10 77 +0 82 1 88 +1 1 6 80 +7 15 7 80 +9 32 9 69 +7 38 9 67 +5 31 8 87 +10 15 10 19 +0 23 0 78 +7 10 7 80 +9 15 10 37 +6 1 6 53 +4 36 7 41 +8 7 10 60 +4 76 6 84 +9 0 10 4 +0 1 3 18 +3 67 10 72 +5 41 9 62 +6 28 9 51 +3 12 3 50 +8 87 8 87 +6 86 9 86 +1 35 8 60 +6 54 8 65 +1 54 6 72 +2 5 8 77 +6 4 6 31 +10 69 10 71 +7 47 7 68 +3 34 5 62 +7 36 7 41 +2 79 9 82 +1 10 4 11 +10 32 10 59 +8 2 9 52 +10 60 10 84 +6 72 9 78 +2 34 3 34 +0 55 4 86 +2 56 5 56 +2 72 10 82 +2 29 4 72 +6 50 10 59 +1 61 2 85 +8 35 10 35 +6 54 10 65 +0 7 4 46 +2 1 7 85 +8 40 10 47 +9 60 10 76 +1 23 10 61 +3 10 7 54 +4 60 5 75 +2 45 5 45 +7 10 8 82 +9 68 10 84 +10 50 10 69 +8 30 10 41 +0 34 5 37 +3 27 10 61 +7 73 8 82 +6 76 6 87 +9 67 10 70 +10 3 10 67 +3 44 4 61 +2 74 6 74 +8 46 10 67 +4 0 5 29 +2 3 8 43 +8 62 9 87 +7 27 10 63 +0 29 6 38 +2 40 4 50 +9 20 10 42 +0 6 9 88 +4 47 7 58 +6 14 8 32 +3 14 5 50 +3 83 7 86 +4 68 6 88 +4 20 4 63 +3 88 5 88 +6 51 6 81 +10 11 10 30 +2 15 3 79 +6 21 10 46 +1 81 7 87 +9 18 9 85 +5 87 8 87 +5 16 6 68 +0 37 10 81 +9 7 10 24 +1 32 9 53 +4 75 7 80 +4 32 6 43 +5 61 7 81 +1 16 4 88 +0 20 1 88 +6 10 10 50 +9 5 10 20 +9 18 9 36 +1 26 5 34 +7 63 9 80 +5 78 8 79 +3 23 9 47 +2 28 6 53 +0 0 9 54 +2 59 6 83 +6 11 9 82 +9 26 9 78 +6 78 9 88 +3 88 9 88 +10 0 10 72 +10 4 10 31 +8 82 8 88 +10 80 10 88 +0 20 2 27 +1 12 4 42 +6 38 10 42 +1 54 4 77 +1 86 3 87 +5 18 10 65 +7 73 10 78 +1 72 7 77 +5 5 9 63 +2 43 7 60 +6 22 6 86 +7 67 10 73 +0 50 3 75 +9 30 10 46 +1 60 10 81 +0 63 5 75 +2 79 10 80 +8 68 10 69 +3 76 6 85 +2 31 5 46 +8 45 9 55 +6 68 8 84 +7 36 9 75 +3 69 6 79 +2 4 2 26 +4 72 9 75 +8 10 8 68 +7 33 7 67 +9 30 10 63 +1 55 5 69 +7 86 7 86 +0 85 8 88 +1 67 7 72 +10 57 10 88 +10 47 10 84 +7 47 8 85 +6 82 9 86 +9 18 10 25 +8 53 10 72 +0 50 8 84 +4 61 10 84 +1 20 4 57 +1 6 10 16 +1 83 2 83 +6 35 6 68 +7 86 10 88 +6 75 7 85 +8 60 10 78 +5 58 9 78 +9 83 10 86 +3 20 4 24 +9 24 9 36 +3 70 10 88 +1 72 9 83 +8 83 10 83 +1 37 1 40 +2 60 6 64 +1 13 5 29 +10 85 10 88 +2 56 8 59 +5 17 9 51 +9 47 9 88 +4 65 7 86 +10 16 10 40 +0 46 2 67 +3 65 6 72 +3 76 3 79 +10 74 10 79 +2 69 3 79 +2 86 2 87 +3 21 6 54 +1 77 1 80 +1 71 1 79 +3 78 3 81 +0 45 6 87 +7 66 7 85 +1 55 8 67 +8 49 9 76 +6 26 10 43 +6 44 8 72 +4 56 4 84 +7 36 9 53 +8 75 10 85 +3 31 10 31 +1 58 4 80 +10 55 10 74 +4 21 10 48 +8 57 8 78 +7 68 10 72 +5 57 10 71 +10 52 10 67 +7 58 8 69 +6 27 6 34 +7 49 9 73 +10 46 10 60 +4 25 7 34 +3 81 6 87 +6 2 7 10 +6 8 7 35 +10 22 10 36 +4 24 8 83 +5 12 10 15 +4 52 4 64 +2 38 4 79 +4 15 4 33 +1 35 9 86 +6 51 6 64 +10 24 10 78 +1 86 9 86 +5 22 9 36 +5 5 7 23 +4 19 8 50 +3 18 8 29 +3 86 7 87 +7 18 7 25 +2 42 8 87 +10 4 10 52 +4 72 4 81 +4 16 8 73 +6 13 9 58 +4 79 10 88 +5 49 10 86 +0 28 10 87 +8 86 8 87 +3 21 7 87 +7 13 9 30 +1 46 7 79 +2 86 9 88 +3 21 10 27 +8 29 9 63 +10 5 10 26 +2 41 2 64 +9 0 9 35 +0 60 9 88 +0 43 3 66 +1 12 8 68 +5 63 9 73 +9 21 10 30 +4 51 8 76 +9 3 9 30 +2 2 10 21 +0 44 6 67 +0 53 2 63 +9 49 9 63 +8 43 9 80 +2 39 3 71 +10 27 10 69 +3 31 3 41 +1 65 7 86 +8 1 8 44 +0 37 6 61 +6 43 7 54 +9 14 9 69 +4 60 4 83 +10 16 10 81 +3 42 6 80 +4 68 5 88 +0 40 3 53 +0 21 6 30 +0 10 8 17 +6 77 6 88 +2 37 2 39 +0 55 0 62 +6 33 10 41 +10 79 10 88 +10 2 10 74 +0 53 4 56 +4 62 6 65 +0 1 4 23 +7 16 8 24 +7 63 8 80 +9 66 9 78 +8 48 8 53 +6 24 6 80 +3 85 7 88 +8 4 8 68 +2 76 7 84 +4 54 5 86 +7 73 10 73 +4 61 8 86 +2 39 5 48 +3 0 4 19 +0 69 0 70 +5 62 6 63 +3 13 6 84 +6 88 9 88 +8 0 9 36 +10 3 10 87 +1 71 4 81 +0 9 0 62 +7 45 8 61 +7 40 7 40 +5 50 9 65 +2 82 10 85 +0 38 8 79 +8 46 10 65 +1 61 9 80 +7 13 7 86 +5 53 10 58 +10 74 10 79 +3 88 9 88 +8 19 10 76 +3 40 7 57 +10 40 10 66 +4 40 9 69 +5 1 9 34 +3 53 10 70 +8 50 10 73 +1 40 10 81 +1 7 7 88 +8 37 8 67 +1 33 7 63 +6 67 9 88 +0 68 4 79 +6 84 6 84 +10 14 10 74 +4 38 8 70 +1 10 9 60 +5 24 10 43 +4 17 6 55 +2 10 7 21 +0 62 7 64 +0 88 0 88 +8 60 10 86 +8 23 9 50 +9 73 10 76 +9 28 10 45 +4 84 8 85 +9 13 9 15 +4 77 9 77 +4 27 6 82 +5 20 6 83 +0 21 8 27 +3 86 10 88 +2 59 2 61 +8 63 9 80 +5 29 8 87 +8 78 9 84 +10 50 10 85 +7 73 10 87 +0 58 1 81 +8 60 8 71 +1 83 2 85 +2 83 2 85 +9 55 9 61 +4 66 8 87 +4 67 5 79 +7 82 9 85 +6 83 10 87 +4 74 5 86 +0 75 2 81 +5 74 6 84 +10 24 10 39 +0 5 2 23 +10 63 10 65 +1 44 5 87 +8 47 8 50 +6 65 9 67 +6 70 10 72 +4 18 10 53 +8 75 10 75 +2 54 3 61 +9 51 10 81 +7 69 9 75 +6 43 8 66 +8 3 10 62 +7 0 7 9 +10 3 10 47 +5 9 5 54 +9 27 10 78 +2 28 9 44 +2 64 2 85 +4 34 10 44 +5 16 9 43 +10 3 10 43 +5 23 6 73 +5 68 10 78 +5 82 9 86 +7 76 9 85 +4 61 5 77 +4 53 9 83 +4 70 4 85 +5 32 5 76 +8 59 8 80 +10 1 10 64 +5 86 5 86 +7 86 9 88 +5 71 5 76 +9 12 9 23 +4 24 7 27 +2 75 10 85 +4 14 8 77 +3 79 7 81 +4 47 6 80 +6 6 10 49 +2 17 5 82 +5 61 9 79 +1 37 5 61 +3 43 4 64 +5 59 5 74 +0 47 6 58 +10 8 10 47 +3 63 8 79 +0 68 1 86 +7 37 10 50 +6 34 7 79 +1 34 9 63 +7 5 8 39 +9 69 9 81 +8 80 8 85 +4 10 4 68 +10 16 10 17 +2 72 7 80 +6 84 8 85 +7 76 8 83 +2 36 4 61 +5 26 5 70 +5 19 7 71 +10 86 10 88 +6 10 7 17 +8 88 8 88 +7 37 7 42 +6 15 9 78 +2 32 6 34 +7 43 8 55 +3 5 4 52 +7 40 10 79 +0 16 2 24 +2 35 9 56 +7 63 10 86 +4 37 9 85 +9 86 10 87 +4 0 7 31 +1 19 3 63 +9 37 9 87 +0 76 6 88 +4 44 5 52 +1 82 4 86 +5 0 10 55 +3 3 7 49 +7 53 7 81 +1 43 4 61 +5 16 9 19 +0 8 0 74 +7 45 10 54 +2 82 2 84 +8 72 8 79 +4 66 9 83 +4 59 4 68 +3 39 4 67 +9 17 10 57 +0 44 7 81 +8 60 10 71 +7 71 9 83 +9 52 10 86 +4 60 6 73 +8 84 9 84 +1 17 2 86 +2 50 7 55 +6 40 10 82 +2 50 5 72 +8 64 8 83 +7 72 7 74 +9 0 10 69 +2 57 9 57 +9 10 9 66 +1 39 8 66 +8 79 9 79 +1 17 4 33 +5 52 6 56 +2 49 9 61 +5 23 9 85 +1 85 2 86 +0 26 10 61 +10 63 10 87 +4 13 5 67 +0 39 0 55 +4 30 7 39 +6 23 10 50 +2 51 6 53 +8 80 9 83 +1 37 9 83 +3 27 3 38 +8 28 8 44 +4 84 4 86 +5 17 5 38 +9 53 10 69 +8 74 8 74 +10 58 10 73 +0 32 2 34 +0 23 2 53 +9 63 10 88 +10 66 10 87 +6 7 6 56 +2 47 6 64 +3 9 3 11 +10 16 10 87 +2 68 9 72 +9 25 9 25 +1 33 9 74 +2 54 8 65 +9 14 9 85 +3 46 6 63 +7 7 8 50 +9 39 10 70 +7 44 7 48 +7 66 10 87 +8 35 10 56 +10 16 10 28 +4 15 9 88 +1 59 10 83 +2 54 7 77 +4 82 10 84 +4 13 4 21 +5 29 10 64 +4 72 4 87 +3 66 4 76 +5 36 9 46 +7 18 7 26 +1 62 5 88 +5 32 6 60 +2 64 2 78 +2 16 6 16 +4 2 10 7 +9 63 10 74 +3 66 10 69 +2 4 9 7 +10 32 10 85 +1 18 9 57 +5 70 9 71 +3 84 9 88 +7 2 7 25 +1 14 3 17 +6 25 8 85 +5 9 6 49 +7 34 7 46 +4 88 7 88 +4 29 10 55 +8 83 10 86 +8 18 10 74 +10 75 10 87 +5 3 7 45 +6 78 8 79 +3 49 8 58 +7 42 9 45 +0 77 7 84 +1 82 6 87 +6 29 7 76 +7 55 10 84 +10 5 10 61 +2 81 2 86 +1 0 10 1 +0 0 5 44 +1 63 9 85 +8 0 10 8 +1 82 10 87 +7 17 9 80 +3 31 3 74 +3 34 7 81 +3 42 7 56 +1 41 2 81 +10 87 10 88 +2 83 6 88 +3 66 8 67 +4 68 4 78 +8 81 10 88 +1 54 1 70 +1 78 4 79 +1 30 5 48 +2 69 8 71 +2 83 4 85 +2 40 10 68 +4 73 9 79 +8 65 9 85 +7 51 9 55 +0 27 0 88 +10 86 10 88 diff --git a/2018/republic/7-9_d1/arta/tests/input.05 b/2018/republic/7-9_d1/arta/tests/input.05 new file mode 100644 index 0000000..b33708d --- /dev/null +++ b/2018/republic/7-9_d1/arta/tests/input.05 @@ -0,0 +1,185 @@ +61 33 +183 +21 13 42 14 +5 14 9 14 +29 19 56 23 +41 23 58 25 +54 13 55 20 +18 1 38 26 +46 12 59 18 +14 8 42 21 +23 28 39 29 +47 30 58 30 +38 24 60 30 +28 22 41 27 +50 3 56 27 +12 3 24 24 +57 28 60 31 +22 10 27 22 +52 18 58 26 +38 1 47 21 +54 18 59 23 +58 22 58 25 +25 0 45 14 +47 11 51 12 +6 1 37 17 +0 10 28 28 +31 11 57 27 +33 12 44 19 +35 10 59 32 +28 11 32 31 +11 4 31 8 +17 28 57 29 +35 0 43 5 +45 1 50 15 +25 12 41 32 +2 17 27 31 +12 26 33 27 +5 15 50 21 +32 0 59 29 +14 24 39 30 +48 8 56 11 +55 7 58 13 +32 17 48 29 +43 5 48 12 +48 8 58 12 +49 28 59 30 +50 23 52 29 +46 7 56 19 +59 26 60 29 +48 21 49 31 +37 3 49 5 +8 30 14 31 +43 17 50 17 +35 8 43 20 +22 26 27 27 +52 13 52 29 +2 11 46 25 +24 5 34 17 +17 31 52 31 +25 17 50 27 +51 1 54 3 +16 16 46 32 +23 14 45 26 +56 19 56 32 +15 32 31 32 +54 19 57 26 +25 15 42 29 +60 25 60 29 +16 21 55 32 +32 18 59 20 +40 8 47 14 +49 32 59 32 +25 11 48 25 +8 28 11 31 +17 19 38 27 +49 11 58 16 +43 26 45 28 +5 7 12 17 +31 15 49 31 +13 28 43 31 +19 22 60 26 +59 29 59 29 +38 25 38 27 +13 3 22 26 +20 14 23 19 +28 16 33 30 +46 25 57 32 +4 19 30 20 +48 22 53 31 +9 19 30 27 +14 31 59 32 +1 27 22 31 +10 1 43 18 +4 10 38 19 +1 15 50 15 +8 16 14 21 +18 21 20 22 +35 32 53 32 +53 24 60 26 +25 13 30 20 +36 23 57 31 +17 23 59 27 +0 8 53 18 +39 32 46 32 +35 9 36 22 +19 2 37 6 +24 3 28 5 +44 26 47 30 +22 29 25 32 +24 22 34 31 +24 17 28 17 +35 13 56 32 +7 0 49 29 +18 28 19 29 +6 21 42 25 +2 28 14 28 +32 26 34 31 +41 8 44 17 +46 2 60 25 +4 8 26 11 +10 21 48 27 +30 15 60 26 +31 15 52 32 +32 17 52 25 +53 31 56 32 +5 19 38 20 +28 10 45 21 +25 32 32 32 +54 18 57 24 +42 0 55 25 +8 8 32 27 +20 28 36 29 +60 17 60 27 +46 26 48 32 +46 3 60 6 +58 3 60 6 +37 22 48 31 +32 18 39 29 +13 4 17 29 +8 28 33 31 +53 6 59 21 +9 32 15 32 +53 30 59 32 +43 4 51 23 +32 14 56 17 +42 12 50 13 +46 27 51 27 +55 17 56 32 +37 7 44 28 +39 12 51 24 +7 24 18 32 +31 22 47 29 +16 26 34 32 +41 19 44 21 +52 19 53 25 +27 0 49 26 +45 10 54 27 +35 5 48 10 +15 1 45 14 +47 10 52 10 +58 11 60 13 +40 15 56 28 +47 5 60 15 +12 13 57 25 +55 23 56 31 +50 20 58 30 +26 29 57 32 +3 21 59 29 +26 1 52 12 +23 8 58 17 +17 27 18 32 +1 27 12 28 +0 9 41 13 +36 1 48 30 +27 25 38 26 +3 13 48 18 +6 15 8 27 +33 9 41 22 +8 13 16 15 +52 16 57 17 +21 10 38 25 +37 22 47 22 +11 28 12 32 +25 7 39 15 +4 26 44 31 diff --git a/2018/republic/7-9_d1/arta/tests/input.06 b/2018/republic/7-9_d1/arta/tests/input.06 new file mode 100644 index 0000000..cbeb472 --- /dev/null +++ b/2018/republic/7-9_d1/arta/tests/input.06 @@ -0,0 +1,1634 @@ +55 18 +1632 +5 8 9 8 +30 5 38 6 +36 5 42 8 +22 10 31 17 +16 0 39 14 +33 7 37 16 +42 12 47 15 +4 2 28 7 +14 12 51 15 +10 2 39 6 +18 10 47 16 +29 16 41 17 +17 13 25 14 +47 1 53 3 +16 17 39 17 +1 15 45 15 +47 9 48 13 +9 6 12 8 +10 13 38 15 +16 17 28 17 +50 4 51 17 +32 15 44 16 +40 14 49 14 +48 2 53 11 +13 17 34 17 +30 0 41 11 +36 0 43 7 +28 15 45 15 +6 2 44 11 +51 10 53 12 +20 6 52 12 +9 11 44 12 +33 16 47 17 +50 4 52 12 +33 10 34 16 +38 14 54 16 +46 8 49 10 +3 13 4 17 +0 17 43 17 +5 12 25 12 +12 1 29 7 +25 6 30 17 +45 1 48 2 +53 4 53 15 +22 16 28 16 +2 11 47 11 +43 17 51 17 +1 6 8 13 +4 6 27 14 +4 15 39 17 +13 1 48 2 +10 4 29 8 +17 8 27 15 +43 7 45 13 +50 1 52 3 +27 15 54 16 +19 17 25 17 +6 10 13 15 +3 1 43 8 +48 5 50 13 +44 17 52 17 +28 16 44 17 +5 15 9 16 +41 12 54 12 +8 9 27 14 +13 7 42 11 +30 0 44 3 +41 7 47 7 +37 9 41 10 +14 4 31 5 +34 10 49 14 +14 9 52 17 +24 14 28 17 +39 0 48 0 +43 10 45 12 +50 16 54 16 +43 14 46 16 +20 11 53 13 +19 6 45 10 +2 12 11 14 +14 4 45 7 +6 12 28 15 +22 15 34 16 +23 2 47 2 +46 13 49 14 +12 0 53 4 +38 17 41 17 +50 4 52 12 +36 8 36 11 +26 3 26 17 +2 16 21 16 +16 6 24 15 +43 2 45 15 +40 1 41 13 +47 4 53 9 +33 9 48 16 +2 7 52 16 +16 9 28 10 +14 17 32 17 +9 15 49 16 +7 11 20 12 +11 2 47 4 +45 17 47 17 +37 16 48 16 +44 3 45 16 +10 6 20 12 +12 14 21 14 +51 5 52 8 +28 7 39 7 +47 14 52 17 +39 16 48 16 +42 13 51 13 +38 0 51 16 +28 11 37 14 +34 1 52 13 +20 8 33 11 +0 11 5 14 +8 15 32 17 +45 2 49 14 +46 12 52 14 +13 7 26 10 +13 17 24 17 +20 17 35 17 +19 14 19 15 +20 7 46 14 +23 12 41 14 +34 16 47 17 +2 0 40 7 +17 10 18 10 +19 13 35 16 +17 1 26 3 +21 8 48 11 +1 13 13 14 +7 1 15 15 +32 4 33 11 +2 7 19 16 +31 15 48 17 +36 6 53 11 +3 9 28 12 +27 8 32 14 +47 3 53 3 +5 14 5 15 +14 4 40 12 +30 7 40 17 +24 16 26 17 +28 3 39 16 +47 5 49 9 +49 4 49 10 +36 3 47 11 +6 8 43 9 +38 16 51 16 +32 11 36 12 +52 16 54 16 +5 0 33 6 +34 7 42 8 +29 11 34 16 +34 8 52 9 +0 7 10 12 +32 2 40 5 +0 1 40 9 +34 9 43 15 +33 11 44 13 +14 2 53 12 +0 12 14 16 +24 1 29 15 +45 1 51 15 +46 5 49 9 +49 13 51 13 +34 5 50 12 +34 14 49 15 +40 9 45 9 +8 1 18 12 +51 4 52 13 +41 11 52 14 +54 14 54 16 +28 0 30 4 +33 5 35 14 +7 0 40 7 +16 6 19 13 +8 12 13 15 +48 13 52 14 +44 1 46 6 +3 17 7 17 +16 16 46 17 +16 16 39 17 +20 1 53 12 +19 7 25 10 +20 3 30 10 +22 13 50 17 +4 15 45 17 +37 10 45 12 +32 0 40 15 +27 12 38 15 +49 16 49 17 +28 8 34 15 +38 6 45 10 +26 0 45 8 +30 16 48 16 +1 5 12 10 +53 16 54 17 +0 17 14 17 +4 2 27 7 +10 11 44 16 +46 11 49 11 +31 0 52 5 +34 1 39 14 +3 5 13 8 +19 10 38 13 +1 2 14 17 +21 4 53 15 +49 1 50 10 +14 6 43 17 +39 8 54 14 +44 12 51 17 +17 3 29 7 +36 7 49 17 +50 17 52 17 +41 2 50 10 +40 7 53 9 +32 15 33 17 +43 14 53 15 +49 11 52 14 +48 1 52 8 +40 15 52 17 +41 12 54 13 +12 2 27 10 +12 3 32 6 +31 6 38 10 +9 10 39 15 +5 10 22 11 +46 17 54 17 +32 3 34 14 +45 8 54 13 +33 12 37 13 +20 17 36 17 +25 9 49 12 +45 1 49 11 +39 3 40 7 +12 7 43 14 +34 15 53 15 +11 1 26 15 +4 8 40 12 +46 10 47 14 +50 9 51 16 +15 14 45 14 +31 10 51 11 +11 12 16 14 +2 17 29 17 +48 9 53 12 +3 16 17 16 +9 10 14 17 +27 9 35 16 +4 1 18 4 +36 17 44 17 +32 16 49 17 +29 6 32 14 +26 7 34 15 +44 8 53 13 +51 3 53 4 +0 9 53 16 +46 12 46 12 +49 4 54 5 +28 3 54 13 +36 0 50 12 +6 13 31 14 +48 8 54 12 +15 14 32 17 +19 1 50 16 +1 15 45 15 +16 11 45 14 +47 8 51 9 +1 5 9 13 +31 8 37 16 +36 16 44 16 +4 13 34 16 +37 10 47 17 +46 14 50 15 +38 14 54 17 +7 6 46 15 +29 0 53 1 +38 2 46 12 +27 9 32 16 +22 1 34 3 +44 10 50 13 +5 2 43 3 +11 16 46 17 +31 13 54 15 +8 17 37 17 +41 7 48 14 +38 10 38 10 +15 12 34 12 +37 5 42 13 +5 8 33 16 +0 2 1 16 +53 1 54 17 +4 6 38 12 +11 14 43 14 +26 12 50 16 +15 0 48 15 +11 12 52 16 +43 16 54 17 +8 8 53 17 +41 11 48 14 +37 4 39 9 +45 9 51 14 +8 3 50 17 +33 12 42 13 +13 17 54 17 +2 16 11 16 +33 0 43 15 +46 15 53 15 +3 8 9 13 +43 14 52 15 +48 1 52 12 +22 6 52 9 +5 6 31 12 +51 7 52 9 +40 1 50 2 +10 15 53 17 +37 8 48 8 +36 4 44 8 +48 17 54 17 +41 16 52 17 +50 10 50 15 +14 17 40 17 +11 5 19 17 +35 9 45 11 +12 6 35 14 +38 3 45 14 +46 7 53 15 +8 13 13 15 +20 5 44 6 +45 4 50 11 +28 16 41 16 +15 14 29 17 +39 2 49 6 +23 1 54 13 +19 7 24 17 +44 15 50 16 +40 8 50 13 +21 3 29 15 +18 6 29 10 +40 9 41 9 +29 12 45 16 +48 9 50 15 +25 4 27 7 +31 10 32 12 +1 15 52 17 +36 0 38 9 +16 12 23 12 +54 10 54 17 +3 7 37 15 +13 16 44 17 +22 7 40 16 +54 11 54 13 +36 12 51 12 +32 1 45 5 +27 7 33 16 +1 3 20 13 +11 12 45 14 +7 6 22 14 +44 14 49 14 +46 5 54 14 +41 12 53 13 +32 15 39 15 +34 1 49 7 +10 2 12 11 +2 5 52 8 +4 11 52 15 +28 12 37 14 +35 6 38 12 +16 1 19 10 +28 1 48 5 +49 6 52 7 +30 1 32 5 +17 0 40 0 +33 4 49 7 +0 2 37 9 +35 16 46 16 +41 15 47 17 +31 8 38 13 +48 6 53 13 +32 11 51 15 +9 0 31 11 +32 15 46 16 +26 1 49 17 +41 11 47 12 +44 1 52 14 +40 5 53 12 +20 10 36 10 +42 7 45 17 +39 9 46 10 +7 6 51 14 +32 9 50 12 +52 17 54 17 +38 14 46 16 +19 13 41 16 +3 9 53 12 +47 17 52 17 +0 11 25 12 +11 15 43 16 +46 1 54 11 +47 8 51 14 +1 11 36 13 +39 13 40 17 +17 5 32 13 +26 13 31 14 +27 15 29 17 +2 1 44 9 +54 7 54 7 +44 4 47 11 +20 3 47 16 +28 10 33 16 +29 10 54 17 +41 4 45 8 +33 4 37 14 +43 12 46 12 +51 7 54 15 +10 2 45 3 +49 11 53 14 +0 13 14 17 +33 8 41 15 +20 15 32 15 +47 15 49 16 +53 12 53 12 +54 10 54 13 +2 7 19 9 +49 10 50 13 +21 16 52 17 +15 1 24 6 +4 17 26 17 +28 0 33 14 +17 2 26 4 +51 16 54 17 +47 10 49 17 +3 17 39 17 +3 17 26 17 +34 4 37 4 +26 6 31 17 +43 1 48 4 +14 9 30 9 +12 11 16 15 +14 5 40 12 +44 15 50 15 +20 10 26 11 +25 12 33 16 +34 12 51 17 +1 0 3 11 +48 5 51 13 +11 12 36 12 +3 16 19 17 +24 2 44 8 +24 6 50 12 +12 11 32 17 +26 15 41 15 +1 9 31 9 +41 14 46 15 +25 5 53 9 +14 8 22 17 +25 14 33 14 +20 16 52 17 +16 11 23 11 +0 7 41 10 +26 14 49 15 +25 17 53 17 +13 12 20 17 +21 4 29 10 +5 9 52 10 +34 16 49 16 +44 5 52 17 +52 10 53 15 +29 3 48 10 +30 0 47 16 +50 0 52 10 +8 15 9 15 +23 4 34 16 +33 14 33 16 +38 3 39 16 +10 14 17 15 +32 10 50 17 +52 13 53 17 +47 9 47 9 +0 12 11 13 +53 10 54 13 +51 2 54 9 +24 5 36 8 +32 12 45 14 +5 7 44 13 +28 5 41 17 +31 2 33 12 +45 16 45 16 +42 15 42 16 +31 13 45 15 +50 8 50 9 +44 11 50 13 +13 17 16 17 +17 16 19 16 +43 1 48 8 +45 16 51 17 +38 11 40 11 +14 0 27 14 +6 12 7 12 +23 3 38 15 +36 15 50 17 +42 2 42 5 +5 2 39 12 +1 1 35 6 +5 2 34 13 +5 16 6 17 +15 4 28 15 +34 12 52 17 +9 0 43 16 +47 0 47 14 +21 8 47 12 +28 14 44 17 +11 13 38 17 +40 10 54 16 +17 0 50 3 +7 17 54 17 +11 16 16 16 +20 12 52 15 +44 15 45 15 +37 7 52 12 +27 4 34 7 +14 15 31 16 +32 2 49 6 +14 14 35 14 +39 4 50 14 +20 7 46 11 +32 2 53 8 +9 12 10 15 +30 5 32 14 +14 16 14 16 +31 17 41 17 +28 9 47 10 +14 2 27 2 +11 15 12 15 +32 3 50 7 +15 5 50 5 +53 9 54 9 +38 14 51 16 +10 9 53 9 +37 3 37 11 +20 0 47 3 +50 12 52 13 +42 4 42 10 +13 17 39 17 +14 12 45 16 +51 4 51 14 +34 0 45 16 +2 2 46 11 +14 15 41 15 +7 15 26 15 +9 8 26 8 +54 6 54 7 +54 3 54 14 +6 14 29 15 +6 15 52 17 +41 4 42 12 +1 3 3 4 +38 10 53 12 +36 11 49 16 +32 16 39 16 +43 13 53 13 +38 16 52 16 +22 13 32 13 +41 4 53 5 +26 14 48 14 +27 3 34 8 +44 13 47 16 +5 14 50 14 +41 3 50 4 +50 10 50 11 +26 1 42 16 +54 2 54 4 +34 10 44 10 +8 3 53 8 +46 17 54 17 +37 7 46 12 +25 1 39 10 +34 3 51 11 +44 15 48 16 +29 13 38 16 +20 4 41 12 +7 8 13 9 +25 13 45 13 +53 15 53 17 +8 11 39 16 +22 10 50 17 +40 3 44 16 +13 3 52 10 +16 1 19 13 +51 6 51 11 +1 11 17 12 +33 14 44 16 +30 17 41 17 +22 11 37 15 +12 13 34 13 +41 12 51 15 +13 5 16 13 +8 2 44 2 +31 8 32 13 +24 13 54 13 +10 2 13 17 +21 2 25 16 +19 1 25 3 +14 11 33 15 +17 0 48 14 +36 1 51 17 +44 4 45 14 +1 8 41 11 +29 7 45 10 +34 5 52 13 +38 10 52 15 +17 14 42 17 +38 6 39 14 +22 15 23 16 +50 12 50 15 +7 13 17 17 +18 1 50 16 +10 3 21 14 +13 14 30 16 +37 7 52 16 +12 6 26 17 +19 4 33 5 +50 4 54 5 +46 12 53 15 +39 14 53 15 +39 1 50 13 +24 9 33 10 +14 1 39 5 +47 0 53 1 +1 11 48 14 +7 8 14 12 +15 0 33 12 +31 9 50 14 +23 10 54 17 +47 13 50 16 +26 9 44 10 +29 6 47 15 +17 6 18 16 +39 13 42 15 +38 6 48 9 +44 10 47 17 +2 1 32 7 +28 9 43 17 +45 5 45 17 +7 11 17 13 +46 11 52 12 +42 9 47 16 +4 4 10 4 +12 13 49 14 +19 3 29 7 +48 7 52 12 +15 9 28 13 +20 6 38 7 +15 14 48 15 +7 2 25 11 +14 4 21 13 +35 1 36 12 +25 5 48 11 +5 5 6 14 +13 11 19 16 +2 5 30 14 +10 6 27 12 +14 7 25 16 +43 14 48 15 +35 0 44 1 +46 6 54 12 +54 2 54 4 +45 11 51 15 +12 4 32 7 +8 9 36 11 +43 9 47 13 +10 5 24 14 +9 16 43 17 +7 11 32 14 +14 13 45 16 +54 4 54 8 +1 6 6 12 +38 7 43 7 +32 6 49 11 +32 2 37 7 +52 1 53 1 +21 0 26 11 +36 8 53 12 +54 9 54 11 +23 17 30 17 +18 17 51 17 +7 16 27 16 +45 13 46 14 +13 6 18 17 +51 13 52 16 +54 1 54 9 +48 12 50 13 +19 9 51 17 +28 12 44 17 +23 7 53 14 +39 14 40 17 +49 14 52 17 +9 0 44 1 +43 5 51 5 +27 9 54 16 +26 14 32 17 +26 10 52 16 +44 15 46 17 +7 1 40 14 +43 15 52 15 +0 16 36 16 +42 14 43 15 +44 14 45 14 +14 1 40 15 +47 17 51 17 +4 5 5 10 +44 14 49 16 +34 17 42 17 +50 12 52 15 +33 12 52 12 +54 0 54 15 +40 1 43 1 +44 4 52 14 +27 12 37 12 +26 8 40 16 +35 5 41 13 +54 6 54 10 +31 11 53 12 +19 8 32 12 +15 2 35 13 +26 3 48 5 +12 10 17 14 +37 6 49 16 +50 15 52 17 +2 8 28 12 +25 8 53 11 +11 2 16 13 +25 12 40 13 +20 0 48 9 +2 13 39 13 +16 8 22 15 +42 13 47 15 +26 8 53 10 +26 16 26 16 +23 10 23 15 +43 1 53 13 +32 8 41 13 +44 0 54 8 +40 4 48 6 +22 4 43 17 +2 5 48 10 +52 13 54 15 +0 14 40 17 +54 10 54 10 +54 13 54 14 +37 3 49 13 +24 3 29 10 +41 16 54 16 +38 14 39 14 +36 17 46 17 +34 3 36 17 +7 17 44 17 +52 5 54 5 +16 10 52 11 +24 13 38 13 +19 9 34 17 +29 16 52 17 +45 14 48 14 +20 3 34 8 +2 8 31 8 +38 15 51 17 +26 14 53 16 +33 12 40 16 +0 8 33 8 +35 4 44 10 +9 3 38 12 +46 10 47 17 +39 12 51 12 +42 7 48 16 +0 11 25 11 +29 7 29 17 +22 7 49 10 +2 13 18 17 +39 13 46 17 +38 3 39 13 +41 6 51 12 +27 14 47 16 +38 9 41 11 +48 2 52 5 +50 2 53 15 +19 8 49 12 +25 4 25 8 +36 3 36 8 +3 16 31 16 +43 2 43 2 +1 1 39 2 +51 10 54 14 +20 4 20 15 +8 2 26 4 +50 6 54 10 +40 16 48 16 +21 8 22 10 +27 11 28 14 +52 14 54 15 +26 9 48 16 +24 16 34 17 +32 14 43 14 +6 13 6 16 +54 6 54 16 +21 15 47 15 +25 4 39 13 +50 13 54 15 +20 17 39 17 +17 12 48 16 +53 10 54 11 +50 4 53 6 +31 4 45 15 +39 13 44 16 +36 11 43 14 +20 3 35 17 +41 1 45 6 +46 12 47 16 +44 16 53 16 +43 13 52 16 +35 2 45 13 +53 14 54 14 +27 2 45 9 +4 11 54 15 +19 15 54 16 +15 13 26 13 +18 14 45 15 +8 6 31 15 +39 0 52 13 +32 0 48 4 +47 6 48 6 +5 14 36 14 +37 13 39 15 +33 17 45 17 +31 11 43 14 +17 12 52 17 +15 6 26 8 +26 0 33 10 +51 9 52 16 +18 9 18 17 +1 4 19 11 +38 10 53 13 +39 14 45 17 +18 1 54 4 +0 17 27 17 +0 3 24 16 +29 11 46 17 +49 17 52 17 +1 14 19 16 +46 10 50 15 +7 11 53 13 +48 6 52 16 +41 6 51 16 +12 11 16 15 +39 5 49 9 +3 16 36 16 +48 11 51 15 +43 10 50 17 +30 6 50 12 +20 15 34 17 +13 6 51 10 +44 10 50 10 +5 8 52 17 +29 16 41 17 +31 2 34 11 +12 0 29 4 +14 13 54 15 +43 4 46 17 +26 2 27 5 +20 8 20 14 +47 12 52 15 +14 11 26 13 +47 8 48 13 +13 8 45 11 +30 17 30 17 +25 12 52 14 +0 9 10 9 +29 0 33 13 +53 13 54 16 +17 16 44 17 +36 17 45 17 +46 10 50 10 +34 1 40 15 +41 7 54 13 +40 2 42 16 +26 3 46 17 +40 3 41 15 +21 0 37 8 +14 3 49 9 +2 10 45 10 +49 6 50 17 +42 16 48 16 +16 2 29 3 +50 8 51 13 +1 10 49 10 +14 13 27 15 +50 6 53 8 +22 17 41 17 +7 11 33 14 +17 7 35 16 +52 10 54 11 +40 10 46 10 +39 14 41 16 +53 1 54 7 +36 16 45 17 +16 2 21 14 +5 9 18 10 +16 4 47 7 +28 10 31 16 +47 12 49 13 +13 11 19 17 +47 4 50 9 +2 8 33 13 +53 4 54 4 +50 7 53 13 +35 8 48 13 +42 2 51 8 +48 7 54 16 +22 3 53 4 +48 11 48 15 +49 15 51 16 +19 1 27 17 +0 4 42 4 +10 15 42 16 +46 1 54 2 +47 10 47 13 +40 2 41 17 +39 0 44 5 +50 13 51 15 +14 11 34 16 +3 5 34 12 +33 17 39 17 +14 17 49 17 +7 6 15 16 +33 8 49 8 +37 11 51 15 +32 14 34 17 +30 1 39 5 +6 8 50 15 +35 7 48 12 +39 0 41 10 +25 9 50 13 +25 4 53 4 +18 9 28 11 +9 7 43 15 +7 15 26 17 +28 17 48 17 +20 10 38 16 +14 11 18 12 +42 11 49 15 +1 7 29 15 +43 7 48 14 +41 16 45 17 +35 9 38 9 +33 10 54 11 +45 2 49 5 +3 9 43 17 +9 5 32 16 +17 1 27 16 +40 5 40 10 +27 9 46 12 +40 8 52 10 +7 14 28 16 +12 7 44 9 +54 8 54 12 +13 1 25 15 +7 8 45 14 +53 15 54 15 +32 15 45 15 +19 2 29 3 +0 6 32 11 +52 5 52 6 +42 1 54 5 +49 17 50 17 +25 17 37 17 +10 6 20 10 +54 11 54 15 +37 4 51 14 +2 6 2 12 +7 10 47 13 +39 17 42 17 +4 14 42 17 +36 16 52 16 +48 16 54 17 +43 0 44 10 +46 4 47 14 +6 14 29 16 +40 1 48 1 +8 3 19 6 +19 2 43 13 +1 9 19 14 +16 13 51 13 +47 7 49 11 +8 14 49 15 +21 2 48 14 +21 17 39 17 +50 7 52 12 +24 11 54 13 +34 17 43 17 +16 7 26 12 +5 7 8 7 +44 11 49 11 +14 13 46 15 +44 10 51 11 +25 16 49 16 +47 14 48 16 +29 8 37 12 +0 17 31 17 +25 17 36 17 +28 15 44 16 +2 10 44 17 +53 6 53 11 +31 14 35 16 +37 12 47 17 +9 2 35 11 +34 14 53 17 +53 8 54 12 +2 12 5 13 +46 0 49 3 +6 11 21 11 +2 15 4 15 +51 13 54 13 +28 16 30 16 +37 0 43 3 +11 13 29 17 +10 9 38 17 +51 12 54 17 +8 4 46 11 +10 8 31 8 +22 7 41 16 +6 8 25 17 +36 15 37 16 +45 12 51 12 +35 9 37 12 +42 9 43 11 +36 15 47 17 +52 7 53 9 +39 8 44 12 +41 3 52 13 +1 7 45 7 +54 1 54 5 +42 0 51 16 +7 2 47 10 +49 14 49 17 +42 16 48 17 +51 6 54 14 +46 9 46 13 +46 3 46 3 +39 10 49 11 +22 2 30 16 +2 10 43 12 +31 9 54 13 +39 12 52 12 +35 12 47 12 +4 14 50 15 +35 13 47 16 +13 14 22 15 +12 9 25 14 +44 2 50 16 +28 6 33 17 +44 17 46 17 +26 15 34 17 +51 7 52 11 +49 9 53 10 +54 9 54 14 +22 3 29 9 +32 4 36 11 +17 14 31 15 +23 13 53 15 +18 15 19 17 +40 2 52 15 +14 6 23 6 +17 13 30 14 +20 13 41 13 +33 8 43 12 +51 14 54 17 +15 11 24 15 +29 0 43 2 +29 3 42 6 +28 13 33 14 +52 9 54 10 +1 10 18 15 +32 4 52 17 +43 15 53 17 +31 11 41 12 +43 13 45 16 +44 3 46 5 +37 8 39 13 +22 14 48 14 +20 4 21 6 +6 7 54 8 +26 17 34 17 +50 2 50 9 +30 4 37 12 +37 16 47 17 +12 13 48 15 +41 10 42 11 +31 9 42 9 +42 16 45 17 +0 8 26 9 +45 4 49 7 +35 15 39 17 +13 6 53 17 +9 16 35 16 +34 3 38 11 +34 15 50 16 +29 11 49 13 +18 11 20 17 +27 11 32 16 +46 11 51 13 +17 10 42 16 +49 10 49 12 +36 10 39 13 +2 15 11 16 +30 4 38 12 +17 14 25 16 +8 4 37 17 +17 6 29 8 +40 1 41 12 +19 6 24 15 +22 17 52 17 +16 8 24 15 +37 9 47 12 +17 13 20 16 +28 5 54 7 +0 9 22 9 +37 15 45 17 +48 17 54 17 +46 2 46 16 +50 14 53 16 +23 1 34 17 +41 9 53 11 +20 10 53 15 +54 14 54 17 +37 4 51 15 +18 4 26 7 +47 13 51 14 +13 1 48 2 +54 11 54 11 +4 16 49 17 +9 12 36 16 +52 1 52 9 +26 4 52 17 +1 15 25 17 +44 9 45 16 +9 15 36 15 +0 14 50 17 +23 7 26 14 +45 6 48 6 +5 15 51 16 +52 9 54 13 +5 2 44 13 +24 1 32 13 +21 3 27 6 +1 7 53 10 +1 12 3 12 +41 2 50 16 +28 10 49 10 +54 5 54 14 +36 1 49 3 +26 7 36 9 +50 1 54 12 +33 13 52 15 +31 1 46 4 +43 0 49 2 +15 2 54 11 +30 8 35 12 +54 8 54 9 +25 11 31 17 +31 9 51 9 +2 1 10 6 +54 13 54 15 +26 2 39 17 +43 12 49 12 +48 10 54 15 +48 12 54 14 +31 11 31 11 +39 16 51 17 +1 4 45 10 +17 16 30 17 +43 14 50 16 +40 4 42 17 +30 7 39 7 +53 6 53 11 +51 6 53 6 +40 3 41 13 +44 13 53 13 +46 10 46 15 +34 7 42 7 +11 14 13 16 +24 5 34 12 +44 15 52 15 +1 13 48 13 +38 10 39 11 +20 6 44 9 +38 6 47 7 +26 16 35 17 +35 3 47 8 +39 17 50 17 +8 3 20 10 +51 0 53 11 +28 17 42 17 +30 5 30 15 +28 14 28 14 +21 11 35 14 +26 17 41 17 +32 14 43 14 +27 12 43 14 +50 11 51 12 +46 8 53 11 +26 14 45 15 +45 6 51 16 +43 12 51 17 +36 13 39 15 +19 14 46 14 +52 11 52 16 +20 2 51 14 +15 7 27 7 +3 8 34 14 +18 7 43 12 +15 17 16 17 +22 9 53 10 +20 5 26 11 +17 5 37 14 +2 15 12 15 +33 4 52 6 +45 8 53 9 +51 16 52 16 +21 17 21 17 +11 7 33 14 +12 12 12 12 +47 11 48 17 +49 15 52 17 +23 5 37 16 +44 6 54 6 +25 11 27 14 +4 17 47 17 +52 2 54 5 +49 13 53 16 +50 17 50 17 +13 5 24 13 +11 6 25 15 +46 4 47 10 +51 16 51 16 +0 7 31 17 +26 6 30 7 +36 4 50 9 +48 3 48 15 +52 11 52 17 +50 3 52 12 +18 0 43 16 +54 17 54 17 +27 7 40 15 +3 2 14 14 +44 14 50 15 +1 13 22 13 +50 9 53 9 +30 0 38 10 +1 1 42 17 +16 8 34 13 +28 17 46 17 +48 10 52 14 +22 3 31 15 +17 13 33 13 +5 4 7 6 +42 16 53 16 +48 6 49 11 +4 17 18 17 +28 16 42 17 +16 12 34 17 +36 17 37 17 +18 13 51 14 +16 6 18 12 +21 0 40 1 +54 4 54 4 +7 4 40 5 +35 12 48 15 +46 15 54 15 +30 3 39 5 +9 1 49 17 +5 11 43 16 +53 8 54 8 +0 16 43 17 +32 4 32 5 +35 3 49 6 +3 1 28 2 +47 7 49 14 +20 12 46 16 +32 8 43 10 +35 12 49 12 +1 3 52 3 +13 0 34 2 +13 10 31 14 +43 12 44 17 +5 8 39 14 +30 7 31 10 +27 9 36 14 +19 11 54 15 +34 4 47 16 +7 7 31 10 +48 12 48 17 +36 17 46 17 +40 0 54 4 +43 10 49 17 +2 1 40 16 +5 15 43 16 +42 12 50 12 +53 17 54 17 +34 13 43 17 +50 4 50 14 +49 3 50 12 +36 17 39 17 +28 6 31 6 +33 10 35 15 +45 12 47 16 +31 7 39 7 +39 15 40 16 +29 13 41 13 +19 8 51 11 +20 3 52 12 +3 16 45 16 +45 3 45 13 +39 14 53 15 +31 13 45 15 +4 1 37 1 +46 9 54 14 +8 11 24 14 +32 10 39 15 +15 6 22 17 +33 8 49 14 +6 0 52 12 +48 9 48 10 +50 1 54 13 +10 16 33 16 +34 14 49 15 +17 2 29 7 +48 14 49 15 +23 3 49 12 +26 4 30 6 +51 12 53 14 +8 15 21 15 +43 5 45 5 +52 4 52 15 +19 16 30 17 +22 10 52 14 +27 7 44 16 +24 7 28 12 +30 12 51 12 +35 5 47 17 +45 16 53 16 +33 3 46 7 +45 10 48 14 +38 3 46 14 +11 16 42 17 +20 8 32 17 +16 15 34 16 +25 6 25 7 +21 1 45 10 +4 9 30 15 +36 8 38 17 +33 11 40 16 +49 11 52 12 +34 11 43 11 +30 1 34 6 +13 8 32 13 +41 15 46 15 +10 17 42 17 +6 9 8 9 +43 2 49 11 +40 6 45 15 +10 4 45 4 +0 1 9 7 +53 5 53 16 +46 0 48 6 +32 6 51 10 +37 13 45 17 +41 1 47 8 +53 15 54 16 +49 1 51 6 +53 2 54 7 +35 13 39 13 +33 9 43 11 +24 6 36 15 +41 13 44 13 +15 2 47 2 +50 3 52 11 +2 11 53 17 +36 6 52 14 +18 10 42 14 +18 2 20 3 +39 13 48 15 +19 11 44 17 +38 0 48 14 +19 12 46 12 +14 3 36 10 +52 1 54 12 +33 15 49 17 +27 11 33 16 +27 7 51 13 +43 7 44 14 +38 16 39 17 +40 6 49 8 +42 6 52 10 +0 3 36 17 +27 5 30 15 +28 11 45 16 +6 2 13 12 +14 6 19 17 +38 9 52 14 +53 14 54 17 +16 9 20 14 +33 15 50 15 +35 17 53 17 +14 8 23 12 +10 2 54 2 +32 10 32 15 +53 5 54 6 +4 17 15 17 +34 15 44 15 +37 0 46 8 +48 17 53 17 +44 2 51 12 +52 5 52 11 +6 4 18 14 +3 5 53 8 +48 8 51 14 +47 3 48 10 +6 12 54 17 +53 3 53 10 +30 12 49 14 +22 11 53 15 +1 6 19 16 +32 8 40 16 +28 9 52 13 +26 8 51 10 +53 13 54 13 +36 2 52 2 +22 4 28 5 +19 6 26 7 +28 0 31 6 +12 14 51 14 +45 2 54 12 +49 17 52 17 +40 1 46 6 +47 4 51 4 +25 12 34 15 +36 0 43 7 +21 9 24 12 +39 1 45 10 +21 1 49 5 +21 2 29 17 +19 16 45 16 +2 5 44 13 +39 7 52 9 +15 12 31 14 +53 17 54 17 +17 12 26 13 +33 4 33 7 +27 1 30 1 +25 11 41 13 +28 12 51 17 +3 16 27 16 +24 3 41 3 +20 2 51 2 +35 17 50 17 +25 2 25 12 +10 2 53 12 +17 15 35 17 +24 0 38 15 +22 17 47 17 +21 3 41 14 +15 5 21 11 +29 10 37 13 +11 13 37 14 +44 6 47 12 +19 6 23 15 +12 13 43 15 +30 16 32 16 +53 8 53 10 +39 6 48 15 +40 12 49 15 +22 7 37 7 +21 16 45 17 +28 2 29 6 +2 16 30 17 +22 7 36 7 +18 15 18 17 +8 17 24 17 +11 0 21 11 +24 8 33 16 +13 16 28 17 +32 16 38 16 +11 0 19 10 +37 12 51 15 +11 2 14 13 +4 13 23 13 +2 3 6 5 +12 5 34 6 +10 6 45 16 +5 2 19 13 +44 6 50 17 +22 15 39 17 +28 11 38 15 +41 8 50 10 +30 11 37 13 +15 17 47 17 +34 12 50 16 +26 14 34 14 +52 14 52 17 +35 2 37 13 +20 17 29 17 +13 9 49 14 +52 16 54 17 +45 6 50 11 +28 5 29 5 +45 15 51 15 +45 15 52 16 +43 8 45 16 +21 16 21 17 +13 4 15 12 +50 0 52 6 +40 0 49 3 +21 2 31 5 +40 13 43 17 +12 1 28 3 +54 6 54 11 +12 16 50 17 +22 15 43 16 +41 15 53 17 +9 3 21 14 +30 2 32 2 +47 3 52 15 +9 12 9 14 +31 5 44 15 +33 2 35 6 +54 17 54 17 +15 12 24 13 +19 5 45 14 +48 6 52 9 +6 11 42 12 +53 11 54 11 +37 13 43 16 +41 2 54 2 +30 6 35 8 +32 17 47 17 +53 15 53 15 +45 13 46 13 +35 3 50 15 +19 12 26 16 +42 8 47 11 +30 13 38 16 +26 9 45 17 +22 16 48 16 +22 6 51 12 +43 16 43 16 +7 12 50 16 +41 1 44 14 +37 15 43 15 +7 1 24 8 +6 2 49 15 +52 13 54 13 +12 14 21 14 +7 8 33 8 +17 12 21 12 +25 7 41 9 +11 1 48 7 +50 14 50 14 +42 9 50 13 +4 11 44 15 +20 17 52 17 +24 10 42 13 +17 17 45 17 +14 10 25 14 +42 1 46 4 +9 15 28 15 +47 15 51 16 +32 4 35 7 +43 12 51 17 +32 4 33 13 +35 14 41 14 +43 8 46 11 +26 5 35 7 +36 0 37 15 +17 16 41 17 +46 0 54 1 +18 5 29 11 +16 10 32 12 +45 9 46 14 +29 12 33 17 +49 17 50 17 +0 9 47 13 +25 12 48 12 +21 12 50 15 +26 0 54 17 +1 16 4 16 +0 14 32 17 +36 14 47 15 +2 3 5 7 +5 9 27 14 +29 15 35 16 +39 1 43 8 +12 8 38 17 +19 13 49 15 +28 6 38 6 +13 13 17 13 +2 9 2 9 +37 4 49 6 +24 4 30 9 +6 5 23 17 +9 15 50 16 +38 6 43 9 +34 14 40 17 +7 17 8 17 +14 14 39 16 +0 12 25 16 +18 10 27 17 +12 10 25 15 +48 12 49 13 +23 3 39 13 +31 12 52 15 +53 14 53 14 +40 13 46 13 +7 16 46 16 +26 11 28 11 +13 5 51 12 +48 3 51 14 +14 16 44 16 +11 10 42 15 +40 9 40 17 +21 7 33 10 diff --git a/2018/republic/7-9_d1/arta/tests/input.07 b/2018/republic/7-9_d1/arta/tests/input.07 new file mode 100644 index 0000000..7d40e54 --- /dev/null +++ b/2018/republic/7-9_d1/arta/tests/input.07 @@ -0,0 +1,337 @@ +93 72 +335 +24 61 34 67 +31 38 61 60 +60 25 79 27 +4 58 86 60 +6 30 87 45 +71 33 83 61 +35 35 54 60 +92 71 92 71 +59 28 82 66 +70 47 81 64 +10 64 86 71 +73 12 76 51 +92 35 92 63 +87 51 90 70 +47 13 92 18 +42 6 77 42 +3 0 14 70 +75 26 89 38 +89 6 90 71 +69 34 88 69 +84 25 91 54 +43 50 58 50 +88 17 91 48 +16 45 47 55 +92 18 92 68 +88 23 88 50 +67 3 77 13 +68 60 84 71 +67 0 89 12 +89 7 92 67 +72 33 91 45 +25 36 70 49 +47 16 53 71 +86 15 92 15 +7 71 58 71 +18 42 70 64 +18 56 47 69 +91 51 92 55 +23 51 75 51 +48 27 53 63 +68 36 76 48 +8 48 71 66 +15 66 87 66 +51 12 54 41 +20 33 62 49 +3 68 88 71 +37 57 74 71 +27 10 33 29 +26 21 68 43 +44 12 73 63 +84 68 92 68 +47 43 58 70 +42 35 84 38 +91 36 92 64 +6 49 70 51 +30 26 33 50 +21 2 53 13 +6 34 50 49 +67 5 86 22 +38 5 59 19 +6 46 61 56 +26 58 36 68 +51 61 80 71 +56 49 69 71 +74 61 90 68 +77 65 86 68 +14 30 84 35 +57 59 74 70 +0 67 11 68 +3 45 35 70 +91 28 92 68 +9 65 28 69 +63 5 78 31 +31 11 61 60 +49 53 91 59 +4 62 37 66 +0 24 59 42 +61 15 88 61 +86 46 86 67 +70 32 78 69 +2 42 86 53 +44 39 86 58 +2 11 63 55 +27 29 46 43 +28 62 89 67 +48 7 61 70 +71 35 77 58 +75 0 79 19 +41 4 63 11 +11 37 79 67 +22 25 51 51 +86 31 87 45 +88 14 91 61 +89 53 92 57 +63 35 72 38 +12 0 18 65 +35 11 87 53 +8 45 9 49 +54 37 89 38 +14 70 52 70 +67 30 74 68 +27 33 57 69 +92 22 92 22 +24 7 89 12 +36 23 92 41 +16 15 85 31 +89 17 89 22 +72 1 92 43 +26 16 61 70 +75 51 77 54 +77 28 77 28 +92 55 92 59 +78 24 87 43 +45 35 81 52 +36 35 77 61 +57 39 65 60 +37 43 91 52 +69 51 89 63 +73 37 84 61 +41 15 72 55 +21 38 78 56 +39 65 59 71 +1 61 41 68 +40 34 65 34 +87 6 88 67 +62 57 74 65 +22 1 58 38 +66 15 70 32 +78 41 82 71 +1 49 83 52 +14 30 61 61 +90 57 91 64 +90 43 91 45 +69 29 71 35 +4 32 47 56 +77 63 86 66 +43 57 77 60 +26 3 33 16 +19 30 24 39 +23 20 62 33 +60 49 80 55 +46 40 55 40 +21 11 26 21 +78 47 87 59 +0 63 68 68 +78 24 82 31 +71 5 84 64 +28 51 78 57 +26 24 73 25 +1 32 8 60 +21 56 61 56 +7 63 60 64 +77 57 78 70 +29 46 84 64 +46 34 73 62 +71 7 87 66 +60 56 61 66 +69 30 76 50 +60 33 81 60 +45 55 84 61 +41 33 58 51 +89 6 89 64 +56 55 77 61 +85 70 89 71 +91 1 91 37 +7 43 85 53 +53 52 54 58 +92 55 92 64 +15 61 19 69 +59 1 66 45 +34 12 34 50 +29 25 50 56 +0 19 37 48 +35 69 62 71 +48 51 79 52 +77 64 88 68 +72 39 73 70 +81 13 81 70 +53 39 78 58 +81 48 91 58 +22 30 45 37 +60 46 91 61 +77 4 82 19 +20 32 57 48 +77 37 83 38 +45 68 51 68 +71 9 86 46 +10 52 81 66 +60 50 60 68 +80 53 89 64 +61 49 62 71 +90 40 91 61 +9 25 15 32 +54 13 71 71 +2 50 66 66 +13 19 91 25 +3 63 89 66 +56 17 65 51 +58 1 86 54 +21 33 67 47 +5 2 19 55 +87 71 92 71 +79 34 84 44 +12 55 50 66 +58 6 66 46 +74 4 82 60 +73 12 79 16 +42 1 49 3 +66 64 73 65 +24 20 56 30 +21 10 70 37 +46 70 87 71 +16 13 19 26 +61 21 65 56 +3 34 8 54 +2 42 70 60 +17 3 29 42 +55 67 92 71 +23 56 32 66 +88 18 92 31 +19 14 30 49 +32 60 73 67 +66 51 91 71 +62 11 86 17 +6 43 60 63 +54 4 54 58 +17 6 87 12 +48 18 53 29 +63 47 78 63 +1 33 35 38 +30 31 76 54 +38 43 61 69 +70 48 83 68 +79 23 81 70 +71 10 84 58 +52 29 73 33 +39 66 53 68 +73 12 88 37 +74 22 76 68 +81 68 82 69 +71 26 79 30 +63 52 65 60 +14 38 57 50 +0 21 52 58 +3 13 10 57 +5 53 20 61 +23 56 65 66 +64 13 75 21 +41 49 52 58 +91 67 92 70 +64 17 72 50 +75 17 79 62 +83 50 83 69 +51 68 89 69 +20 29 70 55 +40 14 90 47 +87 45 88 57 +86 60 89 61 +45 58 52 64 +50 41 50 54 +81 0 88 8 +91 41 91 50 +69 45 72 64 +31 63 41 65 +45 7 57 39 +5 8 34 63 +77 11 84 50 +37 61 52 66 +30 63 53 70 +90 21 92 32 +91 9 92 56 +86 8 89 59 +47 21 60 58 +43 45 60 47 +9 59 39 67 +53 21 71 41 +4 63 86 66 +47 70 53 71 +21 63 72 69 +64 49 88 60 +21 64 40 71 +92 68 92 71 +16 42 17 66 +17 17 65 19 +91 56 92 64 +45 13 63 21 +87 57 90 60 +40 26 43 55 +89 65 89 67 +61 54 87 71 +66 64 69 65 +2 1 61 33 +18 2 84 31 +46 35 64 62 +60 53 67 65 +20 3 89 10 +79 70 85 70 +50 49 71 54 +16 37 58 70 +79 54 80 57 +54 37 86 39 +68 54 89 63 +7 29 24 69 +13 21 56 38 +51 17 54 37 +28 23 33 60 +79 57 84 59 +3 54 58 71 +14 33 63 37 +63 16 83 55 +38 63 81 69 +52 62 80 67 +9 9 53 13 +26 14 87 44 +75 44 91 59 +85 10 91 68 +35 46 55 68 +45 56 90 60 +88 45 88 47 +75 32 83 53 +67 54 84 70 +69 64 74 66 +85 7 91 12 +47 11 82 45 +22 28 77 47 +54 45 88 58 +42 46 63 67 +18 49 20 59 +74 39 78 60 +90 68 90 69 +19 0 79 37 +7 55 37 55 +74 20 87 70 +4 41 33 71 +48 18 57 22 diff --git a/2018/republic/7-9_d1/arta/tests/input.08 b/2018/republic/7-9_d1/arta/tests/input.08 new file mode 100644 index 0000000..4fefb4c --- /dev/null +++ b/2018/republic/7-9_d1/arta/tests/input.08 @@ -0,0 +1,1655 @@ +66 20 +1653 +64 5 64 6 +30 0 52 13 +58 8 58 10 +42 1 58 11 +46 12 46 19 +43 12 45 15 +1 14 28 14 +63 14 64 19 +64 1 64 6 +30 1 60 18 +38 11 62 17 +12 16 13 18 +33 2 52 4 +47 16 57 18 +27 13 55 16 +36 0 40 19 +64 7 65 17 +36 18 49 19 +47 11 55 12 +65 16 65 18 +48 3 54 9 +41 4 60 10 +16 3 38 19 +56 8 58 12 +50 4 59 14 +63 6 65 11 +53 18 61 19 +22 17 40 17 +54 10 62 14 +22 18 23 19 +61 6 64 8 +44 9 45 17 +27 3 31 10 +62 2 64 17 +15 2 27 15 +3 8 56 14 +33 11 64 18 +57 17 59 17 +45 5 49 5 +56 15 59 18 +19 9 48 11 +17 0 35 2 +35 3 56 3 +63 7 65 9 +46 2 56 16 +15 10 59 15 +32 4 53 9 +11 2 60 3 +31 9 61 16 +43 11 50 16 +6 11 25 14 +59 5 60 7 +11 12 36 16 +31 19 48 19 +36 16 48 16 +1 19 9 19 +22 15 22 19 +63 4 63 11 +35 12 61 18 +14 3 52 6 +27 5 45 15 +8 19 59 19 +60 8 61 13 +17 17 64 19 +34 3 37 7 +30 5 48 5 +15 17 64 19 +53 7 54 14 +46 11 47 14 +17 18 53 18 +54 1 60 3 +51 1 59 6 +25 6 40 11 +65 9 65 17 +21 3 58 19 +4 4 34 4 +37 4 58 16 +64 9 64 10 +55 13 60 14 +62 14 63 18 +42 3 43 8 +57 0 62 15 +18 17 27 17 +24 3 45 3 +19 11 44 13 +56 7 59 19 +48 2 56 16 +13 8 30 16 +13 10 59 12 +63 7 65 14 +47 11 58 14 +9 10 18 13 +29 17 53 17 +32 12 39 13 +38 7 45 16 +63 15 65 19 +51 8 52 14 +43 17 54 18 +9 1 35 15 +22 11 54 16 +24 16 54 19 +35 13 35 15 +14 17 24 19 +11 12 57 19 +19 8 33 18 +20 6 47 14 +50 12 50 19 +59 6 62 10 +10 10 44 17 +8 13 42 13 +17 7 46 15 +19 14 31 18 +34 6 44 16 +22 11 50 17 +1 15 32 19 +19 13 52 13 +10 11 11 12 +60 4 65 7 +2 13 5 18 +20 13 25 17 +27 10 43 16 +43 19 61 19 +47 14 55 16 +33 2 64 8 +64 2 65 11 +38 11 52 17 +46 12 46 14 +12 14 38 18 +49 5 54 15 +12 2 63 7 +53 2 54 16 +35 5 50 9 +3 3 51 9 +54 5 55 10 +43 19 51 19 +63 0 64 3 +3 18 35 19 +26 16 50 17 +40 10 63 13 +26 16 65 18 +33 10 42 16 +21 18 26 19 +36 18 37 18 +8 3 45 12 +40 14 57 15 +49 18 64 18 +43 19 53 19 +40 17 63 19 +17 0 40 2 +22 10 47 18 +19 5 28 6 +16 16 34 16 +64 4 64 18 +45 19 55 19 +49 11 52 14 +48 7 49 10 +2 16 63 19 +4 18 50 18 +40 13 42 17 +57 2 57 16 +64 8 65 17 +49 0 61 7 +32 4 51 4 +54 19 58 19 +18 10 21 12 +52 13 65 16 +60 13 64 13 +35 9 35 9 +13 14 41 18 +27 0 62 14 +45 17 56 19 +63 0 65 14 +44 2 56 3 +17 12 64 14 +32 14 43 19 +57 17 63 17 +32 7 38 14 +48 3 61 4 +62 15 65 15 +48 10 58 15 +14 17 27 17 +18 2 27 19 +18 10 50 17 +63 19 65 19 +30 2 59 4 +14 5 42 6 +11 9 33 18 +48 18 48 19 +11 3 31 16 +40 11 50 13 +36 7 59 15 +26 14 36 16 +0 0 58 17 +63 7 64 7 +63 11 64 16 +40 14 58 14 +37 18 55 19 +6 15 24 15 +53 9 60 13 +54 19 55 19 +51 7 62 8 +1 0 56 1 +49 2 57 18 +0 5 2 10 +43 16 57 17 +38 19 45 19 +25 3 37 9 +61 5 65 5 +44 13 54 17 +64 0 65 1 +45 12 47 16 +3 8 50 16 +0 12 25 15 +25 14 48 17 +51 16 53 19 +20 8 30 15 +59 14 60 14 +61 12 63 19 +47 12 62 14 +61 9 63 13 +27 7 52 19 +58 8 58 10 +22 7 27 11 +12 4 55 16 +57 16 65 19 +1 11 34 15 +2 7 8 17 +21 15 58 19 +31 19 36 19 +62 18 62 18 +41 17 49 17 +49 14 61 16 +20 5 21 5 +57 17 60 18 +40 3 47 14 +29 14 46 14 +2 15 8 18 +30 19 35 19 +33 16 64 17 +45 1 63 8 +14 16 56 19 +41 7 55 13 +44 3 54 14 +32 19 64 19 +45 8 48 13 +55 15 55 18 +5 16 11 19 +17 9 35 18 +52 18 60 18 +64 0 65 1 +12 15 35 16 +47 1 64 9 +20 12 59 15 +34 14 37 18 +48 19 64 19 +45 11 55 19 +39 2 52 10 +5 8 63 13 +32 0 49 10 +23 12 44 15 +36 18 52 19 +29 17 39 18 +8 7 41 11 +46 14 51 16 +57 0 57 7 +9 16 46 17 +36 1 45 7 +45 1 58 11 +21 10 49 19 +3 8 63 8 +42 3 61 12 +41 14 56 14 +43 1 57 14 +57 10 65 18 +44 6 53 8 +31 11 53 14 +18 9 60 13 +21 1 58 2 +65 16 65 16 +13 8 39 15 +49 3 62 3 +1 13 44 14 +27 0 31 13 +34 6 45 10 +58 2 65 18 +48 10 63 17 +4 16 56 16 +17 7 50 19 +48 1 57 9 +20 6 60 11 +40 10 48 18 +43 6 60 6 +55 17 57 17 +53 10 56 11 +8 6 61 17 +40 11 58 17 +30 16 53 18 +32 3 42 11 +23 16 55 17 +43 4 56 6 +38 19 63 19 +35 13 41 18 +6 15 31 17 +39 8 65 16 +0 2 14 16 +56 7 65 7 +65 19 65 19 +27 16 30 16 +57 18 65 18 +31 0 47 15 +17 5 23 14 +4 15 23 19 +17 14 29 14 +14 18 59 19 +42 18 54 19 +50 4 65 5 +45 5 52 7 +10 18 61 19 +6 7 45 16 +24 15 27 19 +22 8 58 10 +55 9 63 14 +46 5 61 17 +39 2 54 7 +22 5 37 13 +44 16 46 16 +58 5 62 5 +26 1 58 2 +42 1 56 12 +38 7 54 19 +20 16 57 19 +17 1 21 2 +21 16 38 17 +4 0 42 4 +43 8 43 16 +3 8 44 13 +23 12 61 14 +50 16 62 19 +27 12 38 15 +47 9 51 18 +29 1 31 16 +62 0 64 5 +14 15 46 15 +16 16 32 19 +58 1 60 13 +16 13 52 15 +11 4 36 17 +23 11 27 16 +17 1 42 9 +30 0 63 8 +8 18 9 19 +26 9 62 19 +28 17 48 19 +26 17 29 19 +35 5 41 19 +40 10 61 14 +8 2 59 12 +45 18 46 18 +14 6 43 6 +30 0 55 10 +30 15 37 17 +39 16 49 17 +15 14 60 14 +29 11 63 13 +40 7 47 7 +52 8 54 19 +7 14 25 19 +26 0 31 11 +13 7 52 12 +16 11 36 18 +49 7 53 10 +53 0 60 6 +38 13 57 17 +29 18 47 19 +9 6 14 12 +11 17 30 19 +42 14 65 16 +18 5 59 17 +52 12 53 14 +13 15 54 18 +42 18 55 18 +53 18 62 18 +29 2 61 18 +17 8 18 17 +36 14 61 15 +6 18 36 18 +60 2 62 3 +40 4 49 18 +47 17 60 17 +36 6 55 16 +27 15 32 15 +13 4 20 10 +28 6 46 19 +11 15 65 15 +25 4 41 18 +37 5 48 17 +63 14 65 17 +27 13 56 19 +48 0 63 18 +1 1 23 14 +5 11 28 19 +30 3 36 13 +49 2 58 16 +38 12 46 13 +51 18 55 19 +6 16 10 19 +20 14 41 17 +14 4 26 11 +5 3 62 5 +62 2 63 11 +19 9 22 18 +14 12 30 16 +24 8 53 8 +22 14 25 18 +54 8 64 18 +25 3 50 5 +47 13 49 18 +40 16 58 19 +7 12 61 12 +34 2 54 9 +12 12 55 16 +60 19 65 19 +17 14 35 18 +38 5 56 18 +40 6 56 14 +32 2 59 12 +36 19 49 19 +5 5 41 13 +62 3 63 10 +3 3 54 7 +54 8 59 17 +24 19 49 19 +37 8 41 18 +5 15 12 15 +14 7 55 15 +64 5 64 8 +40 12 61 13 +38 7 39 9 +34 11 60 19 +57 19 64 19 +49 17 60 17 +62 0 63 0 +30 15 59 19 +54 10 54 19 +31 7 58 16 +17 10 28 16 +5 14 7 15 +12 12 25 13 +33 17 50 18 +8 19 49 19 +29 7 64 7 +16 9 46 14 +35 12 50 14 +29 8 36 19 +36 9 43 18 +63 3 65 10 +34 2 56 6 +14 2 48 17 +36 19 58 19 +57 5 57 9 +37 16 57 18 +60 2 65 7 +11 17 44 18 +55 10 56 16 +11 6 64 17 +17 17 34 19 +30 8 48 9 +58 3 58 7 +40 6 43 14 +3 7 7 11 +3 17 62 17 +65 12 65 14 +11 17 29 18 +28 6 47 19 +7 9 11 13 +61 14 61 19 +33 11 65 12 +14 7 60 8 +64 1 65 16 +4 10 15 19 +62 1 64 8 +19 15 23 15 +12 15 45 18 +13 6 23 11 +53 10 58 10 +18 15 18 19 +35 14 46 19 +19 2 29 19 +47 16 50 17 +65 16 65 18 +9 12 20 12 +59 7 61 19 +58 11 63 18 +8 2 41 8 +37 7 43 12 +24 3 34 6 +29 6 45 11 +12 3 14 13 +49 19 58 19 +48 10 63 15 +21 18 46 18 +46 0 63 0 +14 0 44 5 +0 17 20 17 +59 17 63 18 +35 18 64 19 +64 13 64 13 +29 6 39 18 +32 12 51 13 +57 2 62 19 +21 18 62 18 +30 5 61 8 +4 3 37 14 +16 12 47 16 +39 16 57 19 +19 7 35 14 +4 4 35 10 +7 15 20 16 +36 16 61 17 +31 14 38 15 +48 15 57 17 +33 18 35 19 +41 19 59 19 +1 10 40 18 +61 10 61 12 +25 15 45 17 +20 6 51 6 +21 12 56 13 +28 14 40 14 +32 15 51 15 +57 18 59 18 +61 2 63 14 +16 11 55 13 +9 6 21 13 +51 0 59 9 +54 16 58 18 +30 15 64 15 +32 11 59 15 +58 14 60 16 +20 15 29 16 +32 14 51 15 +58 9 58 12 +58 15 58 17 +16 12 50 15 +27 14 44 16 +13 14 44 16 +0 10 39 19 +62 1 63 13 +55 15 59 19 +7 15 11 19 +24 6 41 11 +27 19 55 19 +7 3 60 17 +59 5 61 5 +20 6 20 16 +13 9 35 15 +16 11 35 13 +21 1 56 3 +10 6 19 13 +44 18 62 19 +9 3 24 18 +58 15 63 15 +9 14 65 19 +58 6 65 18 +31 9 51 13 +5 2 44 16 +35 17 59 19 +57 7 62 9 +60 13 65 16 +59 5 61 12 +42 3 49 7 +26 17 58 17 +1 13 53 14 +61 18 65 19 +65 9 65 15 +57 1 62 1 +1 17 27 17 +18 9 42 16 +46 5 54 11 +5 13 34 19 +42 19 59 19 +28 13 43 18 +51 2 51 19 +2 1 14 9 +25 12 41 18 +57 6 64 15 +62 6 62 12 +21 6 60 16 +57 12 65 18 +8 16 58 18 +62 2 63 4 +20 13 64 19 +10 9 36 10 +64 13 65 13 +21 8 29 16 +35 4 51 7 +1 7 10 9 +44 2 56 13 +19 11 24 13 +36 7 40 13 +51 16 54 19 +30 4 33 16 +32 18 35 18 +43 12 50 13 +41 5 50 19 +10 15 53 16 +24 5 63 11 +15 19 32 19 +29 10 32 15 +45 6 46 16 +28 13 30 13 +6 13 20 19 +2 1 17 10 +13 8 18 9 +37 2 60 4 +17 0 47 5 +39 10 42 17 +36 15 62 19 +55 19 65 19 +53 11 56 19 +56 15 57 19 +30 8 60 14 +60 0 65 0 +8 10 11 12 +31 16 62 16 +63 3 63 13 +46 6 55 6 +51 15 59 18 +60 11 60 19 +39 15 59 19 +53 11 56 17 +51 17 63 17 +39 9 46 11 +53 15 53 15 +50 10 54 13 +31 0 34 18 +56 2 59 7 +17 6 57 6 +57 17 63 18 +16 10 36 14 +45 8 53 13 +3 19 43 19 +2 1 27 18 +26 14 26 14 +37 15 46 17 +42 11 58 19 +34 0 62 16 +32 0 59 1 +51 9 53 19 +8 1 42 14 +19 13 28 14 +37 18 48 18 +47 10 57 13 +31 13 38 15 +25 3 27 18 +4 19 48 19 +44 8 53 18 +65 7 65 9 +38 14 47 17 +34 3 58 16 +13 4 65 17 +64 9 64 19 +58 7 63 15 +65 19 65 19 +60 6 64 15 +41 8 42 17 +14 6 42 10 +52 17 59 19 +48 8 48 9 +56 9 61 9 +17 18 41 18 +54 13 61 16 +54 2 54 13 +3 9 63 19 +51 11 57 19 +61 9 65 9 +18 14 48 19 +26 4 50 16 +27 3 48 11 +8 13 38 17 +64 17 65 17 +49 12 64 13 +38 17 52 19 +34 18 35 18 +0 3 9 7 +23 19 42 19 +41 15 47 15 +34 5 51 8 +50 1 65 18 +16 8 65 18 +49 14 50 17 +11 0 21 3 +28 10 59 19 +0 0 63 12 +55 16 55 16 +4 3 36 12 +50 12 64 16 +39 10 59 13 +10 0 38 7 +0 3 57 12 +21 11 57 18 +43 1 58 15 +53 5 54 6 +25 6 45 10 +24 10 59 10 +55 8 65 18 +28 2 38 14 +5 16 13 16 +11 6 40 13 +41 14 64 17 +38 10 55 10 +8 19 56 19 +49 14 64 14 +5 13 54 19 +32 1 51 18 +39 14 56 18 +17 8 57 11 +48 1 57 1 +28 4 51 12 +60 16 65 17 +18 8 45 11 +24 13 52 15 +32 12 61 18 +12 18 63 18 +42 4 56 13 +56 16 64 18 +60 10 65 17 +62 3 62 8 +44 12 52 19 +55 5 62 11 +24 19 58 19 +1 10 44 15 +41 3 57 5 +52 19 52 19 +55 0 57 0 +23 16 29 18 +25 3 35 5 +40 16 57 18 +21 2 23 17 +19 13 27 16 +53 4 53 17 +65 4 65 11 +18 11 28 12 +56 2 65 18 +6 15 55 15 +52 14 57 16 +21 6 58 6 +44 16 48 18 +34 11 55 15 +52 17 53 19 +40 10 45 16 +45 9 55 13 +52 15 57 15 +3 12 18 19 +39 2 55 12 +28 9 51 13 +57 12 64 15 +42 14 47 14 +60 9 62 14 +1 9 30 16 +14 8 49 11 +37 1 46 1 +41 11 59 15 +50 3 61 10 +14 8 64 18 +63 9 65 10 +39 0 50 7 +8 15 42 15 +25 8 41 18 +65 1 65 1 +47 11 48 19 +29 6 46 9 +48 10 49 15 +9 16 48 16 +53 16 63 19 +17 14 23 18 +5 18 30 19 +36 8 60 16 +56 8 59 14 +13 19 54 19 +21 14 32 19 +13 6 22 9 +61 0 61 2 +12 2 15 18 +21 15 40 15 +62 19 62 19 +23 18 47 19 +22 4 45 4 +8 17 19 18 +5 8 25 16 +10 9 56 9 +46 15 59 19 +27 18 47 19 +59 5 59 6 +50 7 63 18 +43 8 59 14 +8 2 16 12 +18 1 28 1 +27 18 64 19 +8 6 18 18 +28 19 42 19 +10 19 24 19 +59 1 61 5 +30 0 31 8 +33 1 39 5 +51 13 55 14 +29 3 44 8 +16 7 20 13 +48 6 48 12 +33 4 51 14 +25 12 39 19 +4 10 50 18 +14 3 15 10 +7 4 39 10 +11 8 21 16 +59 0 62 10 +58 4 61 15 +45 4 50 8 +36 6 40 7 +22 5 33 8 +33 15 59 16 +21 19 53 19 +58 14 59 19 +29 15 29 17 +19 4 20 9 +0 15 35 17 +1 17 10 18 +7 2 18 9 +25 1 47 5 +29 17 55 18 +3 0 14 8 +17 15 44 16 +36 2 51 19 +52 6 65 11 +45 8 65 8 +50 8 59 15 +40 13 42 13 +36 14 63 17 +63 14 63 15 +47 1 47 8 +6 11 33 17 +55 0 61 9 +45 12 55 13 +13 7 32 17 +47 12 65 12 +47 7 56 9 +10 1 59 9 +46 11 50 13 +37 14 57 14 +65 1 65 16 +64 0 64 0 +21 7 37 12 +33 10 53 11 +35 11 63 14 +27 12 49 12 +9 15 27 15 +26 11 26 12 +39 18 39 19 +14 12 14 15 +34 13 40 19 +1 5 20 5 +40 11 49 13 +21 7 38 13 +30 17 51 17 +20 19 57 19 +2 10 27 10 +22 12 37 16 +52 0 62 18 +8 19 40 19 +40 17 47 19 +13 19 28 19 +5 0 29 4 +14 13 46 19 +45 1 59 9 +38 1 63 18 +0 0 19 10 +58 7 59 13 +9 11 14 12 +10 7 11 14 +33 12 55 13 +24 13 48 19 +64 8 64 9 +27 14 48 18 +47 10 54 12 +44 13 60 15 +23 12 34 16 +35 11 50 17 +12 13 34 16 +18 16 30 19 +18 10 29 19 +7 7 49 11 +54 9 54 16 +6 2 26 3 +63 13 63 16 +65 0 65 1 +7 0 39 3 +12 5 60 13 +4 7 4 11 +9 5 57 11 +26 9 62 15 +37 1 40 10 +40 17 46 19 +60 13 64 15 +19 15 28 19 +40 0 49 17 +49 16 61 17 +54 7 55 15 +27 19 56 19 +49 10 56 12 +4 16 5 16 +63 18 64 18 +49 1 55 7 +23 13 34 14 +54 3 61 9 +12 1 16 18 +27 14 64 15 +35 14 64 16 +64 11 64 11 +3 11 29 14 +34 7 63 16 +31 9 64 13 +17 19 49 19 +2 16 41 18 +61 6 64 10 +42 16 50 19 +8 4 27 5 +57 5 63 6 +43 3 45 19 +51 15 63 17 +3 5 56 14 +28 15 48 15 +3 0 57 19 +34 8 38 14 +16 13 46 19 +26 19 58 19 +47 8 58 9 +55 12 55 12 +44 11 51 19 +15 18 61 18 +54 19 56 19 +23 19 64 19 +42 18 53 18 +23 14 47 16 +21 3 42 17 +3 11 63 11 +13 12 27 14 +35 2 41 10 +23 15 55 15 +44 4 50 4 +2 2 19 9 +13 4 55 14 +35 3 52 15 +33 0 65 5 +44 12 53 15 +15 6 31 6 +49 8 55 11 +13 11 33 19 +19 1 59 12 +16 3 41 11 +32 8 49 11 +5 15 26 17 +40 12 54 17 +62 2 65 3 +41 19 45 19 +63 1 64 12 +45 19 65 19 +29 7 34 19 +20 14 56 15 +62 1 65 11 +8 3 10 12 +37 19 59 19 +43 7 61 12 +49 4 59 12 +37 13 44 13 +8 2 13 18 +9 18 11 18 +65 9 65 19 +51 1 59 11 +51 11 64 11 +62 1 65 7 +38 19 42 19 +16 14 28 18 +54 6 63 11 +10 19 63 19 +27 19 47 19 +12 15 23 17 +1 17 7 18 +12 19 25 19 +19 3 41 10 +40 18 60 18 +57 7 60 7 +2 18 56 19 +44 8 59 18 +31 4 41 14 +64 14 64 18 +4 11 15 11 +31 6 53 12 +37 6 46 16 +54 15 58 18 +63 1 65 4 +29 11 45 16 +51 8 56 13 +8 4 57 9 +20 13 46 13 +29 15 54 17 +63 9 64 10 +4 12 37 16 +41 18 47 18 +15 12 45 14 +15 12 40 15 +46 14 49 17 +39 7 59 19 +55 2 61 17 +14 3 39 10 +13 9 59 13 +19 9 54 13 +17 11 50 14 +0 15 53 19 +45 8 62 15 +44 19 63 19 +32 4 36 7 +51 17 63 17 +38 11 56 11 +13 4 23 12 +4 17 10 17 +51 17 59 17 +22 11 59 11 +19 9 54 17 +38 8 48 8 +4 18 26 19 +57 13 59 18 +38 13 47 14 +26 17 46 17 +17 7 31 19 +14 6 46 7 +47 11 60 17 +33 10 54 13 +34 14 60 18 +31 7 42 14 +47 16 48 19 +20 16 23 19 +11 16 35 19 +38 5 45 9 +14 15 57 19 +28 11 58 11 +9 17 14 17 +38 14 54 17 +25 3 35 13 +38 13 41 17 +48 12 63 13 +33 1 57 8 +7 1 23 8 +20 10 20 15 +27 0 39 3 +41 8 57 15 +59 8 64 17 +53 0 64 1 +11 19 47 19 +21 5 30 13 +12 3 52 12 +21 11 51 18 +21 2 59 3 +21 11 39 11 +38 2 59 16 +55 5 59 7 +18 2 51 8 +7 1 45 16 +18 19 39 19 +29 19 55 19 +60 12 60 17 +41 11 65 15 +17 14 59 19 +15 13 44 17 +20 12 55 12 +48 18 65 18 +16 4 32 6 +29 17 58 17 +12 12 12 17 +52 15 59 16 +20 7 54 7 +26 7 40 10 +4 10 65 13 +19 3 48 16 +27 7 29 7 +51 5 60 5 +13 16 40 18 +22 7 41 7 +4 5 24 6 +29 0 30 17 +55 18 57 19 +12 12 16 13 +44 7 62 7 +16 8 56 16 +2 8 5 14 +0 7 21 16 +60 0 65 0 +51 18 53 19 +64 14 64 16 +39 1 60 7 +60 16 63 16 +55 4 62 5 +51 3 64 14 +54 8 55 8 +49 13 64 16 +38 11 42 14 +52 10 60 18 +26 19 63 19 +37 10 45 13 +59 16 61 18 +65 17 65 19 +42 5 65 18 +0 19 29 19 +17 11 41 13 +10 4 15 11 +19 5 42 16 +0 18 40 19 +63 5 65 19 +21 14 57 15 +63 6 64 16 +38 15 57 18 +0 0 4 15 +62 18 62 19 +49 16 56 17 +11 3 23 3 +24 17 60 18 +24 11 65 13 +44 12 55 14 +62 19 64 19 +53 0 63 16 +1 8 55 10 +30 7 58 17 +4 13 4 17 +13 11 32 13 +19 10 39 15 +22 6 32 8 +36 17 40 17 +57 10 59 19 +19 12 23 12 +27 10 63 13 +6 13 26 13 +21 11 33 18 +15 6 34 7 +56 16 63 17 +57 5 64 16 +13 15 23 16 +45 16 62 17 +23 5 51 12 +18 6 63 16 +58 2 58 16 +59 0 63 17 +54 6 62 7 +25 17 31 17 +3 18 20 18 +41 11 51 13 +19 1 38 8 +7 0 17 4 +49 19 53 19 +63 6 64 11 +42 5 50 15 +7 11 40 12 +61 19 65 19 +5 10 50 13 +0 5 6 8 +6 16 58 18 +5 15 57 16 +40 15 41 15 +32 4 61 9 +5 7 9 9 +42 11 48 16 +63 0 63 16 +35 17 55 18 +51 5 60 8 +19 0 34 7 +38 8 50 12 +17 12 24 18 +21 3 35 11 +50 16 55 19 +20 13 45 18 +47 14 64 19 +11 15 44 15 +6 12 58 12 +9 0 44 4 +45 8 57 9 +57 17 58 18 +38 5 63 17 +38 9 48 19 +6 11 49 18 +25 3 38 4 +27 10 42 14 +64 3 64 17 +46 16 52 19 +22 16 61 16 +44 15 50 16 +19 9 45 17 +1 16 60 19 +30 3 38 13 +65 7 65 16 +60 13 61 14 +2 12 48 12 +18 13 48 14 +62 12 62 16 +65 16 65 17 +38 6 38 8 +65 18 65 19 +54 14 54 15 +47 19 53 19 +44 17 56 19 +51 7 60 18 +63 19 65 19 +45 7 50 9 +44 11 57 11 +39 5 51 13 +41 11 44 13 +11 0 17 4 +56 18 63 18 +64 18 64 18 +10 16 14 18 +30 12 45 17 +29 2 34 3 +59 14 59 14 +61 7 63 16 +7 9 65 15 +41 3 62 17 +1 10 28 10 +41 16 60 17 +23 1 31 12 +51 0 61 9 +2 0 46 8 +1 5 35 13 +57 0 59 10 +51 1 53 6 +1 0 28 3 +20 10 28 18 +33 2 55 19 +54 19 55 19 +43 4 61 16 +62 9 63 19 +50 7 52 7 +21 7 56 16 +43 19 52 19 +58 6 61 8 +32 10 47 11 +3 6 11 19 +30 0 54 19 +33 11 48 19 +45 18 51 19 +40 9 65 12 +7 8 9 16 +53 17 55 18 +60 16 63 17 +10 18 61 19 +38 14 57 17 +53 0 61 3 +33 19 39 19 +47 0 58 13 +37 13 52 13 +18 14 60 16 +28 15 41 15 +37 17 46 17 +18 6 63 12 +43 11 55 13 +7 16 36 18 +65 7 65 15 +16 8 51 9 +18 9 26 16 +46 0 52 6 +4 1 46 13 +47 6 56 7 +46 0 58 6 +60 0 64 1 +35 6 46 12 +24 1 41 8 +36 7 64 9 +57 5 57 10 +40 6 41 14 +44 8 62 8 +52 8 61 8 +55 12 59 14 +16 18 26 19 +44 10 64 15 +39 2 42 7 +8 18 28 19 +32 15 36 17 +56 16 65 19 +38 6 54 10 +54 3 60 13 +50 10 57 11 +27 5 59 17 +13 5 52 15 +44 5 52 10 +13 16 43 16 +4 12 63 14 +31 11 52 13 +22 5 38 10 +32 14 41 17 +58 2 63 10 +59 17 64 17 +14 12 52 18 +38 1 38 17 +4 14 14 16 +42 9 58 16 +54 3 62 19 +6 10 48 19 +54 15 55 19 +31 0 31 8 +65 2 65 17 +9 15 52 18 +9 17 39 19 +34 14 39 15 +19 19 19 19 +36 15 58 18 +38 18 47 18 +2 17 45 18 +16 16 18 17 +48 13 60 15 +8 10 31 16 +20 10 60 11 +16 4 20 19 +1 16 27 18 +63 10 64 11 +60 13 61 17 +15 8 27 17 +62 7 62 10 +22 4 64 6 +65 19 65 19 +12 15 42 18 +2 18 4 18 +52 12 55 16 +12 14 55 14 +15 12 19 15 +9 5 57 5 +39 3 40 14 +19 15 20 15 +10 14 14 19 +19 19 36 19 +29 15 52 17 +15 2 38 11 +35 16 62 19 +28 8 30 12 +53 4 62 5 +47 9 56 18 +13 16 36 17 +52 9 63 11 +17 15 17 18 +12 13 58 18 +30 15 43 16 +46 11 53 18 +20 9 25 14 +2 14 43 14 +26 13 57 19 +22 8 31 18 +9 12 37 19 +62 1 63 15 +53 5 62 16 +40 7 57 11 +64 1 64 5 +17 1 61 8 +21 2 34 8 +29 18 55 19 +30 7 63 15 +13 16 52 19 +27 18 56 19 +5 15 24 16 +50 13 52 16 +47 10 56 12 +37 10 62 13 +60 13 65 16 +9 19 11 19 +22 10 51 18 +43 7 43 14 +19 19 50 19 +4 15 43 16 +29 1 40 3 +49 9 54 10 +20 13 33 16 +7 9 24 10 +37 17 38 18 +59 15 65 19 +11 19 45 19 +19 18 22 18 +18 15 33 15 +32 4 61 7 +30 16 63 19 +21 19 52 19 +58 7 63 9 +34 10 51 12 +63 8 64 13 +62 14 62 14 +53 19 63 19 +61 14 64 19 +65 16 65 16 +48 15 48 15 +30 8 35 19 +60 9 64 12 +42 1 59 2 +30 16 57 18 +27 6 61 12 +15 7 31 10 +48 12 57 19 +53 1 65 3 +22 6 47 7 +35 19 56 19 +64 3 65 13 +54 7 61 12 +14 10 41 15 +5 16 52 16 +22 1 50 19 +36 3 49 18 +16 3 49 5 +16 0 35 18 +28 0 38 10 +35 3 58 16 +5 17 36 18 +43 8 54 12 +13 6 57 18 +30 7 42 18 +14 14 64 18 +4 0 38 16 +53 18 56 19 +40 9 56 11 +13 11 18 13 +44 19 63 19 +30 11 57 14 +4 5 49 15 +35 16 43 16 +61 16 64 16 +11 1 43 16 +39 4 54 5 +63 2 65 14 +55 13 61 16 +4 5 63 5 +59 3 63 17 +51 4 51 12 +19 19 42 19 +18 3 31 10 +33 16 39 16 +38 16 41 17 +25 3 29 17 +46 18 64 19 +0 11 32 18 +15 18 45 18 +45 18 59 19 +17 18 29 18 +60 1 61 8 +65 5 65 14 +5 16 60 18 +21 12 32 13 +31 16 35 19 +65 14 65 19 +39 4 39 10 +28 10 39 12 +28 16 37 18 +61 7 61 14 +12 13 33 16 +10 3 16 9 +57 7 61 11 +29 1 65 17 +4 13 63 17 +26 17 27 17 +38 1 55 6 +58 0 59 6 +65 4 65 6 +12 2 44 19 +52 7 55 10 +44 10 64 13 +8 5 47 17 +2 17 24 19 +35 14 35 17 +5 7 14 8 +19 8 56 14 +44 1 57 4 +25 16 38 17 +37 1 51 11 +23 17 23 19 +31 17 38 18 +25 5 34 12 +37 13 43 15 +59 10 60 19 +41 0 54 1 +16 6 29 7 +18 7 18 8 +19 8 59 17 +40 18 61 18 +50 17 51 17 +5 17 16 17 +11 4 18 13 +23 12 63 19 +2 6 2 16 +47 19 63 19 +2 2 57 9 +42 15 57 17 +23 6 32 16 +14 15 17 19 +26 1 52 1 +25 12 62 12 +28 15 29 15 +5 17 28 17 +13 16 56 19 +64 4 64 16 +20 1 24 12 +17 7 28 13 +33 9 64 12 +36 8 39 8 +5 6 37 19 +20 2 61 16 +59 5 64 14 +21 13 25 19 +20 1 24 11 +19 14 32 17 +53 5 53 8 +27 1 50 6 +46 13 50 19 +39 13 62 18 +51 17 57 18 +43 7 57 14 +37 15 54 19 +11 19 55 19 +17 8 29 8 +23 14 49 16 +1 14 63 18 +61 6 65 12 +31 13 62 17 +45 17 63 18 +53 13 56 13 +32 3 52 19 +14 14 18 18 +30 15 32 17 +47 1 50 8 +3 2 64 5 +10 8 43 17 +28 4 52 9 +16 1 51 1 +42 8 43 18 +9 19 15 19 +7 0 54 19 +2 16 3 18 +64 12 64 13 +1 6 26 16 +41 18 46 18 +42 7 62 12 +16 4 39 7 +30 8 44 10 +30 6 47 13 +18 17 48 19 +63 8 65 16 +49 19 53 19 +21 1 52 3 +16 9 40 17 +49 15 55 15 +8 0 22 9 +28 0 59 5 +44 11 60 11 +5 6 36 12 +37 0 40 2 +53 13 60 14 +23 13 51 13 +50 15 51 17 +8 16 26 17 +45 11 54 19 +3 3 29 8 +40 19 41 19 +13 5 21 18 +10 8 40 15 +51 14 62 18 +18 18 27 18 +27 19 52 19 +10 18 10 19 +10 16 41 19 +41 6 64 19 +58 8 64 9 +44 0 49 8 +17 1 27 11 +64 0 64 4 +34 9 56 18 +4 1 53 1 +24 10 65 14 +63 16 65 19 +24 15 41 15 +62 16 65 19 +13 5 47 16 +21 3 37 13 +62 10 64 10 +58 12 60 16 +31 2 36 9 +15 3 17 4 +30 5 43 13 +54 9 59 11 +61 10 64 12 +37 9 41 13 +16 3 48 6 +23 16 38 18 +55 7 62 17 +52 9 57 12 +62 6 63 10 +64 14 65 17 +51 12 64 17 +13 9 41 9 +29 15 41 17 +31 8 61 8 +24 1 49 19 +51 10 51 18 +7 19 45 19 +47 11 59 12 +41 16 64 17 +0 0 41 7 +9 11 61 17 +33 8 33 16 +57 4 63 14 +39 1 57 6 +20 15 42 19 +18 17 54 17 +58 1 62 11 +31 1 58 16 +57 5 63 6 +33 9 38 14 +52 5 61 12 +60 2 65 5 +23 10 36 11 +1 10 30 11 +28 4 31 15 +29 8 43 9 +17 19 52 19 +16 14 31 19 +35 3 46 13 +9 1 53 2 +38 1 65 2 +42 13 43 19 +45 12 47 13 +63 17 64 17 +61 5 63 14 +22 3 53 14 +36 10 40 10 +32 19 59 19 +60 15 63 15 +6 7 56 19 +41 17 48 18 +56 5 57 18 +64 1 65 3 +5 17 36 17 +48 11 60 19 +61 10 64 10 +13 12 16 13 +7 14 65 16 +43 3 56 13 +47 11 52 17 +5 13 49 13 +37 19 42 19 +37 5 40 16 +43 5 55 8 +24 5 30 13 +10 1 12 13 +18 7 24 7 +27 16 51 19 diff --git a/2018/republic/7-9_d1/arta/tests/input.09 b/2018/republic/7-9_d1/arta/tests/input.09 new file mode 100644 index 0000000..96ebe98 --- /dev/null +++ b/2018/republic/7-9_d1/arta/tests/input.09 @@ -0,0 +1,51 @@ +77 46 +49 +49 41 50 44 +5 38 22 41 +24 35 45 37 +67 36 70 39 +66 23 72 31 +25 9 33 26 +14 4 27 39 +61 30 64 39 +61 37 61 37 +64 43 72 44 +54 8 76 20 +7 42 33 42 +52 38 57 43 +22 33 54 37 +28 43 32 43 +14 13 58 22 +44 15 67 24 +73 21 76 27 +9 19 62 40 +44 5 57 45 +55 21 69 34 +48 22 53 37 +68 35 69 36 +20 28 58 31 +9 34 11 45 +67 21 71 43 +14 4 73 31 +74 20 76 28 +1 26 13 43 +6 40 59 41 +38 29 75 38 +0 37 44 37 +47 20 50 27 +37 30 56 36 +63 15 72 23 +65 22 67 43 +63 34 74 34 +75 26 76 41 +70 2 71 33 +39 43 48 44 +59 8 72 36 +51 45 64 45 +39 2 50 20 +76 38 76 38 +20 30 54 40 +1 22 69 26 +68 41 72 41 +15 1 29 44 +57 25 62 36 diff --git a/2018/republic/7-9_d1/arta/tests/input.10 b/2018/republic/7-9_d1/arta/tests/input.10 new file mode 100644 index 0000000..7b7a2f4 --- /dev/null +++ b/2018/republic/7-9_d1/arta/tests/input.10 @@ -0,0 +1,247 @@ +48 22 +245 +11 10 45 19 +7 21 47 21 +21 11 43 20 +10 19 21 21 +38 20 41 21 +7 10 12 14 +13 9 43 9 +46 3 47 16 +10 16 46 16 +33 13 47 21 +36 4 39 15 +42 6 42 17 +20 5 20 14 +19 2 25 20 +24 4 42 4 +12 11 21 16 +1 21 4 21 +41 10 46 21 +5 15 9 16 +1 20 42 21 +14 21 33 21 +0 18 8 21 +9 7 39 9 +5 10 8 20 +24 12 46 12 +21 11 34 17 +33 12 47 15 +39 15 43 21 +44 4 47 9 +38 20 46 21 +9 9 21 16 +2 21 19 21 +7 20 9 20 +30 9 34 20 +30 8 35 11 +36 3 40 13 +22 6 37 15 +13 6 35 17 +46 18 46 20 +25 13 40 19 +39 17 46 20 +45 14 47 21 +22 4 47 20 +16 3 37 21 +5 16 17 19 +29 3 45 8 +34 12 38 12 +20 16 39 19 +14 21 34 21 +9 6 40 8 +31 16 33 21 +35 6 36 16 +15 21 18 21 +14 4 21 10 +11 0 18 11 +41 8 44 19 +37 8 47 15 +41 7 47 16 +3 8 6 9 +5 20 27 20 +45 21 45 21 +24 6 29 20 +35 13 36 21 +2 20 33 21 +4 5 40 7 +39 14 47 14 +24 6 26 15 +14 1 25 10 +8 0 45 9 +35 13 42 15 +16 17 20 17 +38 17 47 17 +36 17 36 20 +42 9 46 12 +24 7 25 8 +6 11 22 18 +38 3 38 9 +23 18 37 21 +12 20 38 21 +44 10 45 14 +27 19 39 20 +9 20 19 20 +42 15 43 18 +38 4 43 6 +1 14 28 18 +13 17 42 17 +14 7 27 21 +14 15 45 15 +19 3 35 17 +30 4 40 18 +37 4 44 6 +36 21 38 21 +47 9 47 19 +43 0 45 16 +46 10 47 17 +35 20 41 21 +18 8 20 13 +16 12 21 16 +3 9 11 17 +41 5 43 17 +26 16 45 21 +10 16 18 18 +4 1 25 2 +3 11 6 14 +34 16 44 21 +23 2 37 11 +27 15 45 21 +46 8 47 8 +8 0 34 4 +19 3 44 16 +23 12 23 15 +22 16 47 21 +26 11 45 12 +43 2 44 13 +5 4 17 6 +41 14 42 21 +19 10 31 13 +45 19 45 19 +34 2 41 18 +36 11 45 12 +2 6 32 21 +20 9 21 18 +25 2 44 14 +4 19 35 21 +2 10 24 16 +47 0 47 14 +26 14 42 19 +6 12 25 20 +34 17 34 17 +42 11 45 13 +47 10 47 20 +6 18 43 20 +29 6 44 9 +3 13 46 21 +8 18 39 21 +2 3 14 18 +17 2 22 3 +38 14 42 19 +0 14 30 15 +38 8 39 9 +44 4 45 11 +16 19 22 21 +20 12 42 21 +17 4 46 12 +9 21 35 21 +14 4 43 13 +34 0 37 16 +14 15 44 21 +23 19 38 20 +46 18 46 21 +6 10 9 13 +11 7 30 17 +33 7 42 15 +27 10 35 13 +46 20 47 21 +37 13 37 14 +22 15 40 16 +20 0 39 2 +7 19 44 20 +25 8 37 10 +18 21 38 21 +22 5 39 21 +45 17 46 19 +3 18 22 20 +17 4 29 13 +28 11 31 16 +29 19 32 20 +33 11 34 13 +34 7 43 7 +37 7 42 8 +37 6 40 20 +0 1 10 12 +32 5 41 13 +45 18 47 19 +17 6 30 13 +29 9 40 18 +26 13 38 13 +34 12 38 19 +47 19 47 21 +36 12 43 12 +28 7 43 19 +47 10 47 18 +44 15 47 18 +19 7 27 7 +34 5 37 8 +3 2 26 5 +4 6 40 21 +23 9 25 17 +11 20 32 21 +43 0 45 1 +5 8 40 18 +45 11 46 11 +3 18 12 20 +18 14 34 21 +11 9 22 10 +2 19 35 19 +38 18 47 21 +23 5 36 20 +19 18 28 19 +34 21 46 21 +19 7 20 7 +6 2 33 3 +11 7 41 11 +27 2 33 20 +6 0 33 8 +28 8 46 8 +16 8 33 14 +10 10 39 18 +27 20 41 20 +7 0 23 11 +30 21 35 21 +43 15 46 16 +1 18 28 21 +34 4 46 10 +19 21 23 21 +44 2 45 21 +36 19 43 20 +45 13 47 21 +43 21 47 21 +10 17 11 17 +17 14 37 16 +2 14 19 20 +20 7 32 7 +18 11 46 21 +37 8 40 14 +31 2 35 11 +10 13 22 13 +1 1 42 9 +44 18 45 21 +18 5 46 15 +26 20 43 20 +19 17 36 20 +5 14 47 20 +7 3 37 6 +3 1 38 17 +38 21 44 21 +28 1 43 7 +44 17 47 21 +15 0 40 20 +23 21 42 21 +46 9 46 20 +12 18 17 18 +14 0 45 5 +35 15 46 16 +8 18 22 19 diff --git a/2018/republic/7-9_d1/arta/tests/output.01 b/2018/republic/7-9_d1/arta/tests/output.01 new file mode 100644 index 0000000..a32b072 --- /dev/null +++ b/2018/republic/7-9_d1/arta/tests/output.01 @@ -0,0 +1 @@ +354 diff --git a/2018/republic/7-9_d1/arta/tests/output.02 b/2018/republic/7-9_d1/arta/tests/output.02 new file mode 100644 index 0000000..45284c1 --- /dev/null +++ b/2018/republic/7-9_d1/arta/tests/output.02 @@ -0,0 +1 @@ +51 diff --git a/2018/republic/7-9_d1/arta/tests/output.03 b/2018/republic/7-9_d1/arta/tests/output.03 new file mode 100644 index 0000000..4369ba5 --- /dev/null +++ b/2018/republic/7-9_d1/arta/tests/output.03 @@ -0,0 +1 @@ +90 diff --git a/2018/republic/7-9_d1/arta/tests/output.04 b/2018/republic/7-9_d1/arta/tests/output.04 new file mode 100644 index 0000000..1627a54 --- /dev/null +++ b/2018/republic/7-9_d1/arta/tests/output.04 @@ -0,0 +1 @@ +99 diff --git a/2018/republic/7-9_d1/arta/tests/output.05 b/2018/republic/7-9_d1/arta/tests/output.05 new file mode 100644 index 0000000..1157269 --- /dev/null +++ b/2018/republic/7-9_d1/arta/tests/output.05 @@ -0,0 +1 @@ +154 diff --git a/2018/republic/7-9_d1/arta/tests/output.06 b/2018/republic/7-9_d1/arta/tests/output.06 new file mode 100644 index 0000000..7f6d1c0 --- /dev/null +++ b/2018/republic/7-9_d1/arta/tests/output.06 @@ -0,0 +1 @@ +73 diff --git a/2018/republic/7-9_d1/arta/tests/output.07 b/2018/republic/7-9_d1/arta/tests/output.07 new file mode 100644 index 0000000..569daf6 --- /dev/null +++ b/2018/republic/7-9_d1/arta/tests/output.07 @@ -0,0 +1 @@ +222 diff --git a/2018/republic/7-9_d1/arta/tests/output.08 b/2018/republic/7-9_d1/arta/tests/output.08 new file mode 100644 index 0000000..9f089a4 --- /dev/null +++ b/2018/republic/7-9_d1/arta/tests/output.08 @@ -0,0 +1 @@ +85 diff --git a/2018/republic/7-9_d1/arta/tests/output.09 b/2018/republic/7-9_d1/arta/tests/output.09 new file mode 100644 index 0000000..09b62a8 --- /dev/null +++ b/2018/republic/7-9_d1/arta/tests/output.09 @@ -0,0 +1 @@ +811 diff --git a/2018/republic/7-9_d1/arta/tests/output.10 b/2018/republic/7-9_d1/arta/tests/output.10 new file mode 100644 index 0000000..77b6b6f --- /dev/null +++ b/2018/republic/7-9_d1/arta/tests/output.10 @@ -0,0 +1 @@ +89 diff --git a/2018/republic/7-9_d1/condition.pdf b/2018/republic/7-9_d1/condition.pdf new file mode 100644 index 0000000..46e12d0 Binary files /dev/null and b/2018/republic/7-9_d1/condition.pdf differ diff --git a/2018/republic/7-9_d1/formule/input.1 b/2018/republic/7-9_d1/formule/input.1 new file mode 100644 index 0000000..a297c3f --- /dev/null +++ b/2018/republic/7-9_d1/formule/input.1 @@ -0,0 +1,7 @@ +6 +1 ++1 +1- +3/9 +1111+1111+1111 +9999*9999*9999 diff --git a/2018/republic/7-9_d1/formule/input.2 b/2018/republic/7-9_d1/formule/input.2 new file mode 100644 index 0000000..843f178 --- /dev/null +++ b/2018/republic/7-9_d1/formule/input.2 @@ -0,0 +1,7 @@ +6 +1+3014-4+629/1235-3*+2 ++1+3469 +4509/293+12345678901234567890-2 +345/234-4563/67*345+0987654321-1234567890 +234-234+34=34 +12-456-987*6785463/676775-4665+45563*556664/64656638+7847774/6664543*45564/66748+7677756-3666463763+7575775*5455663/767884+73676563732-26635553+65566464/646565545643-365654367672+736656553-68775+879986+657774664/8794664-56647778*4666677674/768875-45 diff --git a/2018/republic/7-9_d1/formule/input.3 b/2018/republic/7-9_d1/formule/input.3 new file mode 100644 index 0000000..d4f6716 --- /dev/null +++ b/2018/republic/7-9_d1/formule/input.3 @@ -0,0 +1,7 @@ +6 +1+1-2*3+34343434/13442- +*234567890-09876543211 +1-2+3-4+5-6+7-8+9*1/2*12/13*15/65656 +3/9++234 +11*11+11/11+11++11 +-9999*9+999*99/99 diff --git a/2018/republic/7-9_d1/formule/input.4 b/2018/republic/7-9_d1/formule/input.4 new file mode 100644 index 0000000..a2eb89d --- /dev/null +++ b/2018/republic/7-9_d1/formule/input.4 @@ -0,0 +1,7 @@ +6 +3.14*2+234-67+23 +1234567890*0987654321-567438929+5465768798 +111111111111111111111111111111111111111+2+3+4+5+6+7+8+9 +222222222222222222222222222222222222222-3-4-5-6-7-8-9-0 +25*35*45*56*67*78*98/89/45/34-34-566-4545454545454+90834 +234-8998\9887-676750867876=8585843639 diff --git a/2018/republic/7-9_d1/formule/input.5 b/2018/republic/7-9_d1/formule/input.5 new file mode 100644 index 0000000..6dcbb50 --- /dev/null +++ b/2018/republic/7-9_d1/formule/input.5 @@ -0,0 +1,8 @@ +7 +1111111111111111111111111111111111111111111111111111111 +2222222222222222222222222222222222222222222222222222222+ +3333333333333333333333333333333333333333333333333333333 +444444444444444444444444--44444444444444444444444444444 +5555555555555555555555555555555555555555555555555555555 +1+1=2 +1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1--1-1-1-1-1-1-1- diff --git a/2018/republic/7-9_d1/formule/output.1 b/2018/republic/7-9_d1/formule/output.1 new file mode 100644 index 0000000..dd299e8 --- /dev/null +++ b/2018/republic/7-9_d1/formule/output.1 @@ -0,0 +1,6 @@ +1 +0 +0 +1 +1 +1 diff --git a/2018/republic/7-9_d1/formule/output.2 b/2018/republic/7-9_d1/formule/output.2 new file mode 100644 index 0000000..922ed71 --- /dev/null +++ b/2018/republic/7-9_d1/formule/output.2 @@ -0,0 +1,6 @@ +0 +0 +1 +1 +0 +1 diff --git a/2018/republic/7-9_d1/formule/output.3 b/2018/republic/7-9_d1/formule/output.3 new file mode 100644 index 0000000..3769537 --- /dev/null +++ b/2018/republic/7-9_d1/formule/output.3 @@ -0,0 +1,6 @@ +0 +0 +1 +0 +0 +0 diff --git a/2018/republic/7-9_d1/formule/output.4 b/2018/republic/7-9_d1/formule/output.4 new file mode 100644 index 0000000..f734681 --- /dev/null +++ b/2018/republic/7-9_d1/formule/output.4 @@ -0,0 +1,6 @@ +0 +1 +1 +1 +1 +0 diff --git a/2018/republic/7-9_d1/formule/output.5 b/2018/republic/7-9_d1/formule/output.5 new file mode 100644 index 0000000..efe2f82 --- /dev/null +++ b/2018/republic/7-9_d1/formule/output.5 @@ -0,0 +1,7 @@ +1 +0 +1 +0 +1 +0 +0 diff --git a/2018/republic/7-9_d1/pagini/tests/input.01 b/2018/republic/7-9_d1/pagini/tests/input.01 new file mode 100644 index 0000000..21a73c5 --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/input.01 @@ -0,0 +1 @@ +23507645 diff --git a/2018/republic/7-9_d1/pagini/tests/input.02 b/2018/republic/7-9_d1/pagini/tests/input.02 new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/input.02 @@ -0,0 +1 @@ +1 diff --git a/2018/republic/7-9_d1/pagini/tests/input.03 b/2018/republic/7-9_d1/pagini/tests/input.03 new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/input.03 @@ -0,0 +1 @@ +2 diff --git a/2018/republic/7-9_d1/pagini/tests/input.04 b/2018/republic/7-9_d1/pagini/tests/input.04 new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/input.04 @@ -0,0 +1 @@ +3 diff --git a/2018/republic/7-9_d1/pagini/tests/input.05 b/2018/republic/7-9_d1/pagini/tests/input.05 new file mode 100644 index 0000000..b8626c4 --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/input.05 @@ -0,0 +1 @@ +4 diff --git a/2018/republic/7-9_d1/pagini/tests/input.06 b/2018/republic/7-9_d1/pagini/tests/input.06 new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/input.06 @@ -0,0 +1 @@ +5 diff --git a/2018/republic/7-9_d1/pagini/tests/input.07 b/2018/republic/7-9_d1/pagini/tests/input.07 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/input.07 @@ -0,0 +1 @@ +0 diff --git a/2018/republic/7-9_d1/pagini/tests/input.08 b/2018/republic/7-9_d1/pagini/tests/input.08 new file mode 100644 index 0000000..770fdcf --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/input.08 @@ -0,0 +1 @@ +1000000000 diff --git a/2018/republic/7-9_d1/pagini/tests/input.09 b/2018/republic/7-9_d1/pagini/tests/input.09 new file mode 100644 index 0000000..1dcd3c3 --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/input.09 @@ -0,0 +1 @@ +9999999999 diff --git a/2018/republic/7-9_d1/pagini/tests/input.10 b/2018/republic/7-9_d1/pagini/tests/input.10 new file mode 100644 index 0000000..ad8d5a4 --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/input.10 @@ -0,0 +1 @@ +1000099999 diff --git a/2018/republic/7-9_d1/pagini/tests/input.11 b/2018/republic/7-9_d1/pagini/tests/input.11 new file mode 100644 index 0000000..9c5b24f --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/input.11 @@ -0,0 +1 @@ +9999900000 diff --git a/2018/republic/7-9_d1/pagini/tests/input.12 b/2018/republic/7-9_d1/pagini/tests/input.12 new file mode 100644 index 0000000..25c9d71 --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/input.12 @@ -0,0 +1 @@ +3721855468 diff --git a/2018/republic/7-9_d1/pagini/tests/input.13 b/2018/republic/7-9_d1/pagini/tests/input.13 new file mode 100644 index 0000000..a9d5ca6 --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/input.13 @@ -0,0 +1 @@ +5386900000 diff --git a/2018/republic/7-9_d1/pagini/tests/input.14 b/2018/republic/7-9_d1/pagini/tests/input.14 new file mode 100644 index 0000000..739ece9 --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/input.14 @@ -0,0 +1 @@ +1000034010 diff --git a/2018/republic/7-9_d1/pagini/tests/input.15 b/2018/republic/7-9_d1/pagini/tests/input.15 new file mode 100644 index 0000000..c504ac5 --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/input.15 @@ -0,0 +1 @@ +1001014400 diff --git a/2018/republic/7-9_d1/pagini/tests/input.16 b/2018/republic/7-9_d1/pagini/tests/input.16 new file mode 100644 index 0000000..dd24128 --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/input.16 @@ -0,0 +1 @@ +100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/2018/republic/7-9_d1/pagini/tests/input.17 b/2018/republic/7-9_d1/pagini/tests/input.17 new file mode 100644 index 0000000..7269d35 --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/input.17 @@ -0,0 +1 @@ +999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 diff --git a/2018/republic/7-9_d1/pagini/tests/input.18 b/2018/republic/7-9_d1/pagini/tests/input.18 new file mode 100644 index 0000000..c70e4cc --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/input.18 @@ -0,0 +1 @@ +10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 diff --git a/2018/republic/7-9_d1/pagini/tests/input.19 b/2018/republic/7-9_d1/pagini/tests/input.19 new file mode 100644 index 0000000..59ee11f --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/input.19 @@ -0,0 +1 @@ +99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/2018/republic/7-9_d1/pagini/tests/input.20 b/2018/republic/7-9_d1/pagini/tests/input.20 new file mode 100644 index 0000000..83315f2 --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/input.20 @@ -0,0 +1 @@ +935532341368846051377479716216862272950121677225967874043755588961833400773960050559039287536304828219080764867077405200342788110461464869344687248837345744920174325029018617232242755851218166981192035774043615089056876686736059639176003061063470964175884552926906722928163386178574232657269998410469518262356116746998307843934791468174254035365983340683785740849531172125686491888089441501444060174378415155113661111995238922410941595099610040210264698075976906443019178214974403796341711420664528934338176109258179599198236205406555468900982309971414968722935737729991521154420191767789872208125381448039500578163207383410234633033581446612151945528026389507188747044157118807180512815091937347401387920871421566546542745194235666514068454477492004054396617475792120641078541669945464493092717033207194701206391054148518814516603270478628157413800767458280715757686067028684404295940209388200271960734736943983082699759288243316175579910750053091251187602815019008204518175232806136365227927354540 diff --git a/2018/republic/7-9_d1/pagini/tests/output.01 b/2018/republic/7-9_d1/pagini/tests/output.01 new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/output.01 @@ -0,0 +1 @@ +3 diff --git a/2018/republic/7-9_d1/pagini/tests/output.02 b/2018/republic/7-9_d1/pagini/tests/output.02 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/output.02 @@ -0,0 +1 @@ +0 diff --git a/2018/republic/7-9_d1/pagini/tests/output.03 b/2018/republic/7-9_d1/pagini/tests/output.03 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/output.03 @@ -0,0 +1 @@ +0 diff --git a/2018/republic/7-9_d1/pagini/tests/output.04 b/2018/republic/7-9_d1/pagini/tests/output.04 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/output.04 @@ -0,0 +1 @@ +0 diff --git a/2018/republic/7-9_d1/pagini/tests/output.05 b/2018/republic/7-9_d1/pagini/tests/output.05 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/output.05 @@ -0,0 +1 @@ +0 diff --git a/2018/republic/7-9_d1/pagini/tests/output.06 b/2018/republic/7-9_d1/pagini/tests/output.06 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/output.06 @@ -0,0 +1 @@ +0 diff --git a/2018/republic/7-9_d1/pagini/tests/output.07 b/2018/republic/7-9_d1/pagini/tests/output.07 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/output.07 @@ -0,0 +1 @@ +0 diff --git a/2018/republic/7-9_d1/pagini/tests/output.08 b/2018/republic/7-9_d1/pagini/tests/output.08 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/output.08 @@ -0,0 +1 @@ +0 diff --git a/2018/republic/7-9_d1/pagini/tests/output.09 b/2018/republic/7-9_d1/pagini/tests/output.09 new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/output.09 @@ -0,0 +1 @@ +5 diff --git a/2018/republic/7-9_d1/pagini/tests/output.10 b/2018/republic/7-9_d1/pagini/tests/output.10 new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/output.10 @@ -0,0 +1 @@ +1 diff --git a/2018/republic/7-9_d1/pagini/tests/output.11 b/2018/republic/7-9_d1/pagini/tests/output.11 new file mode 100644 index 0000000..b8626c4 --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/output.11 @@ -0,0 +1 @@ +4 diff --git a/2018/republic/7-9_d1/pagini/tests/output.12 b/2018/republic/7-9_d1/pagini/tests/output.12 new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/output.12 @@ -0,0 +1 @@ +5 diff --git a/2018/republic/7-9_d1/pagini/tests/output.13 b/2018/republic/7-9_d1/pagini/tests/output.13 new file mode 100644 index 0000000..b8626c4 --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/output.13 @@ -0,0 +1 @@ +4 diff --git a/2018/republic/7-9_d1/pagini/tests/output.14 b/2018/republic/7-9_d1/pagini/tests/output.14 new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/output.14 @@ -0,0 +1 @@ +1 diff --git a/2018/republic/7-9_d1/pagini/tests/output.15 b/2018/republic/7-9_d1/pagini/tests/output.15 new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/output.15 @@ -0,0 +1 @@ +2 diff --git a/2018/republic/7-9_d1/pagini/tests/output.16 b/2018/republic/7-9_d1/pagini/tests/output.16 new file mode 100644 index 0000000..573541a --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/output.16 @@ -0,0 +1 @@ +0 diff --git a/2018/republic/7-9_d1/pagini/tests/output.17 b/2018/republic/7-9_d1/pagini/tests/output.17 new file mode 100644 index 0000000..761fcd3 --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/output.17 @@ -0,0 +1 @@ +499 diff --git a/2018/republic/7-9_d1/pagini/tests/output.18 b/2018/republic/7-9_d1/pagini/tests/output.18 new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/output.18 @@ -0,0 +1 @@ +1 diff --git a/2018/republic/7-9_d1/pagini/tests/output.19 b/2018/republic/7-9_d1/pagini/tests/output.19 new file mode 100644 index 0000000..f9aaa4d --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/output.19 @@ -0,0 +1 @@ +498 diff --git a/2018/republic/7-9_d1/pagini/tests/output.20 b/2018/republic/7-9_d1/pagini/tests/output.20 new file mode 100644 index 0000000..5379c47 --- /dev/null +++ b/2018/republic/7-9_d1/pagini/tests/output.20 @@ -0,0 +1 @@ +448 diff --git a/2018/republic/7-9_d2/campion/tests/input.1 b/2018/republic/7-9_d2/campion/tests/input.1 new file mode 100644 index 0000000..1c8f673 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.1 @@ -0,0 +1,2 @@ +1 1 +1 diff --git a/2018/republic/7-9_d2/campion/tests/input.20 b/2018/republic/7-9_d2/campion/tests/input.20 new file mode 100644 index 0000000..3dae2fb --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.20 @@ -0,0 +1,2 @@ +9 800774 +319051 350795 5139 133094 165782 40778 182434 5287 85206 diff --git a/2018/republic/7-9_d2/campion/tests/input.21 b/2018/republic/7-9_d2/campion/tests/input.21 new file mode 100644 index 0000000..afad455 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.21 @@ -0,0 +1,2 @@ +9 476728 +185713 91426 66684 61692 89674 45844 128200 151720 9857 diff --git a/2018/republic/7-9_d2/campion/tests/input.22 b/2018/republic/7-9_d2/campion/tests/input.22 new file mode 100644 index 0000000..9f1a7f3 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.22 @@ -0,0 +1,2 @@ +7 425756 +223015 241233 243151 10064 207383 6197 125452 diff --git a/2018/republic/7-9_d2/campion/tests/input.23 b/2018/republic/7-9_d2/campion/tests/input.23 new file mode 100644 index 0000000..2330c99 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.23 @@ -0,0 +1,2 @@ +9 718222 +57755 163886 100982 180954 195639 200060 275742 162454 159433 diff --git a/2018/republic/7-9_d2/campion/tests/input.24 b/2018/republic/7-9_d2/campion/tests/input.24 new file mode 100644 index 0000000..007c073 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.24 @@ -0,0 +1,2 @@ +10 89 +4 5 4 4 1 27 10 4 5 14 diff --git a/2018/republic/7-9_d2/campion/tests/input.25 b/2018/republic/7-9_d2/campion/tests/input.25 new file mode 100644 index 0000000..dd02ef7 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.25 @@ -0,0 +1,2 @@ +10 800912 +2258 10714 8393 1837 13230 7905 9268 3411 3243 5578 diff --git a/2018/republic/7-9_d2/campion/tests/input.26 b/2018/republic/7-9_d2/campion/tests/input.26 new file mode 100644 index 0000000..a237420 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.26 @@ -0,0 +1,2 @@ +9 601691 +77543841 79199670 111322434 23909982 120834443 111857057 52203137 37386829 118913161 diff --git a/2018/republic/7-9_d2/campion/tests/input.30 b/2018/republic/7-9_d2/campion/tests/input.30 new file mode 100644 index 0000000..7655de1 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.30 @@ -0,0 +1,2 @@ +17 981949689211793 +129910083358400 127527604571213 221892293957492 145853797835049 3477305701100 44880640523803 154000995261187 189895680557748 38491449553951 64377155624359 97199467746447 197842647669187 130001717139371 62090783074267 81236384824482 177051505621533 38971535004148 diff --git a/2018/republic/7-9_d2/campion/tests/input.31 b/2018/republic/7-9_d2/campion/tests/input.31 new file mode 100644 index 0000000..7acd7fd --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.31 @@ -0,0 +1,2 @@ +16 203896491485170 +50211130311935 10193130735279 12589379592533 8153026093177 39590805294101 12705588190833 13882827936262 43836638601784 21863668632046 35850672064525 17908741452938 15757778704856 699629341636 45330499502964 40802446318362 50921688118195 diff --git a/2018/republic/7-9_d2/campion/tests/input.32 b/2018/republic/7-9_d2/campion/tests/input.32 new file mode 100644 index 0000000..f652849 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.32 @@ -0,0 +1,2 @@ +17 956413233905161 +8951240300713 181105187360263 115797394540457 146258135693529 166854027919947 97782449419574 193653867707050 159285708923993 124720788335761 66743428363104 146522232544971 48870500177382 207703739659256 129437012516927 100104064550531 9129407976467 34932653609952 diff --git a/2018/republic/7-9_d2/campion/tests/input.33 b/2018/republic/7-9_d2/campion/tests/input.33 new file mode 100644 index 0000000..7edd024 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.33 @@ -0,0 +1,2 @@ +3 705215145444797 +187159232082431 566817318043152 803988235625732 diff --git a/2018/republic/7-9_d2/campion/tests/input.34 b/2018/republic/7-9_d2/campion/tests/input.34 new file mode 100644 index 0000000..a2bc8e8 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.34 @@ -0,0 +1,2 @@ +16 98 +19 16 6 1 17 1 18 12 13 10 1 5 5 17 5 11 diff --git a/2018/republic/7-9_d2/campion/tests/input.35 b/2018/republic/7-9_d2/campion/tests/input.35 new file mode 100644 index 0000000..9ef89f6 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.35 @@ -0,0 +1,2 @@ +20 533001563737511 +4864919245337 4243721355049 3471500508877 2624108662511 200255180980 5004481430002 3804410849750 655622392116 575397155167 919504928582 2257375282561 2791469661333 2908423163419 2880480353480 3904585109436 2859011364994 2266926620912 2309052495013 1077498842846 686060746957 diff --git a/2018/republic/7-9_d2/campion/tests/input.36 b/2018/republic/7-9_d2/campion/tests/input.36 new file mode 100644 index 0000000..f61602e --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.36 @@ -0,0 +1,2 @@ +17 951661983473361 +9832983194908290 2313070370558146 2328449654518283 4816233227336387 8743124269528004 8218619792151830 473520776795831 4536969657949451 5073894521439996 7770178302156559 2713829568512776 3693433837570267 523055522526368 1337507573633953 6354141496497919 9473379817947274 6454738975717345 diff --git a/2018/republic/7-9_d2/campion/tests/input.40 b/2018/republic/7-9_d2/campion/tests/input.40 new file mode 100644 index 0000000..c2c12d8 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.40 @@ -0,0 +1,2 @@ +20 284814362679177 +29658819685238 31969097640706 36783897234702 14318267043398 26343125668794 39889478847658 30376979471659 154678129194 11205872302042 10017751178080 52378629096924 56130158233221 17924827677800 10441402631428 51748125003574 18329902100203 2504461844726 11540518871959 10349363152716 23232117000370 diff --git a/2018/republic/7-9_d2/campion/tests/input.41 b/2018/republic/7-9_d2/campion/tests/input.41 new file mode 100644 index 0000000..88d1914 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.41 @@ -0,0 +1,2 @@ +18 685548477953815 +143968324501187 119746255922719 134844951543561 18707705573993 119563413439449 65222539859648 90797335334768 63822348260400 9752655273143 38102088298294 137598063486047 148528794320237 146588661139201 3262209277844 68241523678524 146383465955526 119348393513643 109619050730672 diff --git a/2018/republic/7-9_d2/campion/tests/input.42 b/2018/republic/7-9_d2/campion/tests/input.42 new file mode 100644 index 0000000..58608f7 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.42 @@ -0,0 +1,2 @@ +16 930631456948216 +115399101648608 144195212898331 819662954644 149216293110959 213597622314714 50104702733054 35635625870977 114329925296212 205349189613877 157138314769267 66453166175174 81150959180672 34946372193243 15260324095384 91342481199624 52534444865530 diff --git a/2018/republic/7-9_d2/campion/tests/input.43 b/2018/republic/7-9_d2/campion/tests/input.43 new file mode 100644 index 0000000..1f216ce --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.43 @@ -0,0 +1,2 @@ +16 836739688694766 +105114298302891 145346898405749 87037058710980 92210784739938 133369069692763 21344066640075 180832838716033 160908624727864 193404378658282 205447273896724 90507701236119 130971051853657 200451231664362 9485619386966 149106543260413 173065513446497 diff --git a/2018/republic/7-9_d2/campion/tests/input.44 b/2018/republic/7-9_d2/campion/tests/input.44 new file mode 100644 index 0000000..e68e363 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.44 @@ -0,0 +1,2 @@ +20 134 +10 18 10 19 13 7 19 22 10 9 20 25 3 16 23 10 23 14 21 6 diff --git a/2018/republic/7-9_d2/campion/tests/input.45 b/2018/republic/7-9_d2/campion/tests/input.45 new file mode 100644 index 0000000..64bfa65 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.45 @@ -0,0 +1,2 @@ +17 821371169654359 +8787030017318 4140907516683 5661756827824 5336594129174 4756125142972 3730806985955 8368824137466 5591404232035 8731466981391 8650362205982 778483264831 8949713506916 924503526457 5758104874156 6502886368630 5055924617442 4836973679339 diff --git a/2018/republic/7-9_d2/campion/tests/input.46 b/2018/republic/7-9_d2/campion/tests/input.46 new file mode 100644 index 0000000..aa5cdf7 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.46 @@ -0,0 +1,2 @@ +17 259850191740356 +4210992388935106 3798221642341532 8067173745611740 8712285243759329 5822713911024862 6813246371343526 93317094697546 6167257631777350 9723597328051809 5701852737353533 2765460240013002 2359234260811917 1794786500101416 7553233305514115 7209878668884748 2846783263066707 1284338464866804 diff --git a/2018/republic/7-9_d2/campion/tests/input.50 b/2018/republic/7-9_d2/campion/tests/input.50 new file mode 100644 index 0000000..2a7e0b1 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.50 @@ -0,0 +1,2 @@ +33 19204 +2175 1052 407 1841 1383 1494 9 1344 1481 608 757 683 1329 2002 1450 140 518 2 1449 1793 1650 1508 1734 872 368 208 340 348 411 1068 137 1458 1601 diff --git a/2018/republic/7-9_d2/campion/tests/input.51 b/2018/republic/7-9_d2/campion/tests/input.51 new file mode 100644 index 0000000..b594661 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.51 @@ -0,0 +1,2 @@ +36 602747 +38318 22254 15853 66891 53036 10443 11741 19537 280 50231 55131 32968 18379 34536 43090 65704 20663 40997 32293 49666 38776 63382 12043 7804 7652 49055 23432 58993 5386 18794 40814 61990 56390 27818 19905 52392 diff --git a/2018/republic/7-9_d2/campion/tests/input.52 b/2018/republic/7-9_d2/campion/tests/input.52 new file mode 100644 index 0000000..e69e14b --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.52 @@ -0,0 +1,2 @@ +40 911784 +85610 73843 50077 83958 62949 65510 50975 59484 71789 26826 90260 4237 8649 56122 16307 50799 86441 65561 1549 8379 35242 58384 60823 60947 21786 57694 441 51747 76479 56376 71009 88513 19496 51107 34542 82735 7011 31392 44960 16337 diff --git a/2018/republic/7-9_d2/campion/tests/input.53 b/2018/republic/7-9_d2/campion/tests/input.53 new file mode 100644 index 0000000..159fcc7 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.53 @@ -0,0 +1,2 @@ +36 581950 +3507 62940 5688 49942 41282 57282 19296 50491 63796 23929 11904 8648 49816 52026 19901 18824 41389 8567 44698 17964 15275 62206 15971 24992 31965 16973 36365 62075 44210 50209 53469 50416 43003 22203 26326 1128 diff --git a/2018/republic/7-9_d2/campion/tests/input.54 b/2018/republic/7-9_d2/campion/tests/input.54 new file mode 100644 index 0000000..7a1c77d --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.54 @@ -0,0 +1,2 @@ +32 149 +15 4 1 4 11 12 18 1 11 17 12 12 15 15 8 4 18 6 15 10 7 6 10 11 6 14 16 18 7 13 15 18 diff --git a/2018/republic/7-9_d2/campion/tests/input.55 b/2018/republic/7-9_d2/campion/tests/input.55 new file mode 100644 index 0000000..38401b1 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.55 @@ -0,0 +1,2 @@ +30 171923 +451 1009 566 788 55 470 942 737 145 546 841 639 785 1004 165 274 990 823 1080 708 194 563 3 385 325 393 364 263 304 267 diff --git a/2018/republic/7-9_d2/campion/tests/input.56 b/2018/republic/7-9_d2/campion/tests/input.56 new file mode 100644 index 0000000..0e4551a --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.56 @@ -0,0 +1,2 @@ +32 499872 +26380839 24729653 1680420 13991960 13931401 23773554 26029823 6754724 25949326 8863847 22935832 6640602 5350100 19477222 4070251 8253085 30742071 7075693 22374348 15954078 1141858 15812158 2987558 29665383 16859987 21138120 5860184 4777705 28763027 1332968 17764631 26047207 diff --git a/2018/republic/7-9_d2/campion/tests/input.60 b/2018/republic/7-9_d2/campion/tests/input.60 new file mode 100644 index 0000000..bba9dc3 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.60 @@ -0,0 +1,2 @@ +34 35713 +2861 92 3277 3604 75 908 1646 336 854 290 1322 184 2174 1036 3802 1268 2442 2902 1069 2738 426 3966 1609 508 2785 2037 437 2586 1734 1667 3978 4139 2215 1843 diff --git a/2018/republic/7-9_d2/campion/tests/input.61 b/2018/republic/7-9_d2/campion/tests/input.61 new file mode 100644 index 0000000..c6c6770 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.61 @@ -0,0 +1,2 @@ +33 248109 +17590 13324 5078 25820 8733 16113 151 28956 28265 13969 19083 21686 16204 6075 20135 7737 10061 19610 21485 22549 23433 12262 5340 2276 7795 4839 17322 1089 9754 17834 102 5990 8219 diff --git a/2018/republic/7-9_d2/campion/tests/input.62 b/2018/republic/7-9_d2/campion/tests/input.62 new file mode 100644 index 0000000..8b97e7a --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.62 @@ -0,0 +1,2 @@ +38 13218 +169 938 182 875 137 518 493 236 341 79 153 1070 1168 550 1276 1374 1117 913 190 295 147 178 661 532 1053 120 271 1133 1017 911 1193 1011 593 257 429 295 1022 1010 diff --git a/2018/republic/7-9_d2/campion/tests/input.63 b/2018/republic/7-9_d2/campion/tests/input.63 new file mode 100644 index 0000000..873500d --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.63 @@ -0,0 +1,2 @@ +5 398580 +42514 102427 228077 313676 234990 diff --git a/2018/republic/7-9_d2/campion/tests/input.64 b/2018/republic/7-9_d2/campion/tests/input.64 new file mode 100644 index 0000000..7ef14bd --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.64 @@ -0,0 +1,2 @@ +30 56 +5 1 1 1 5 2 3 3 4 6 3 7 7 4 1 5 1 4 7 5 5 1 4 6 2 4 7 1 5 4 diff --git a/2018/republic/7-9_d2/campion/tests/input.65 b/2018/republic/7-9_d2/campion/tests/input.65 new file mode 100644 index 0000000..d8cad9f --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.65 @@ -0,0 +1,2 @@ +32 869460 +5114 1937 452 4385 3536 4832 3816 1008 5209 4369 3292 3985 3683 4756 3060 351 4651 4046 2567 5390 110 3781 3795 386 2035 4104 668 23 97 2496 4659 4296 diff --git a/2018/republic/7-9_d2/campion/tests/input.66 b/2018/republic/7-9_d2/campion/tests/input.66 new file mode 100644 index 0000000..9a1bb5f --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.66 @@ -0,0 +1,2 @@ +32 16705 +486698 104608 1043120 629816 160094 575176 504285 492586 1037104 76561 750697 145025 261400 358659 300173 994965 642460 690810 161422 291777 654594 374128 844509 287149 906211 257799 693321 428427 970786 8308 556505 397351 diff --git a/2018/republic/7-9_d2/campion/tests/input.80 b/2018/republic/7-9_d2/campion/tests/input.80 new file mode 100644 index 0000000..45eb1ec --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.80 @@ -0,0 +1,2 @@ +35 148575354977 +7938021661 9298477533 1950289480 11454059128 10537191780 8382605273 14214098089 1942289356 3995304706 12223422305 5418855220 11653514839 791293531 13484957865 5301523164 6352974194 11360021407 4573958307 8520461813 11066584029 15844213437 14925733273 14830641274 12486766722 4589695898 6822167914 16596654075 9418192534 1995994768 12681952964 4709839554 15552561511 10236196788 10057315257 14891986476 diff --git a/2018/republic/7-9_d2/campion/tests/input.81 b/2018/republic/7-9_d2/campion/tests/input.81 new file mode 100644 index 0000000..381861b --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.81 @@ -0,0 +1,2 @@ +33 765945958682733 +89409715885120 60162425751572 41675396154780 51518084190687 43679071432944 59884201585155 10460647295856 10126616135220 92331196356620 83015068385047 26196046922262 83308863955431 9065847900050 28536865009061 36932545700446 3418251244439 38240422947448 16013224195446 73116603934484 22176267463920 14775501745556 17017165013459 43161005271700 82927723839510 44478163878858 5829134196324 39368933309113 29066226487924 57910534581732 62916411605877 12033690810607 90350664279837 17884006886585 diff --git a/2018/republic/7-9_d2/campion/tests/input.82 b/2018/republic/7-9_d2/campion/tests/input.82 new file mode 100644 index 0000000..5e09817 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.82 @@ -0,0 +1,2 @@ +32 848702444188124 +60433494139066 36322198507545 13210972096564 44231573009361 17664565259625 35464346234497 61223143538917 44505181882119 80877696784294 85092425403528 100646876835720 40170040656311 15436080184586 50664649332081 17353445163608 20218530238182 62046990563884 40277953634910 2298501545437 76507308372506 26739402715549 6313196737957 3498873607282 3223039606639 55904830367930 21415047876870 65240605426316 564930481199 58825088438294 37012461997260 10680285596677 70539612758844 diff --git a/2018/republic/7-9_d2/campion/tests/input.83 b/2018/republic/7-9_d2/campion/tests/input.83 new file mode 100644 index 0000000..4f6ea92 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.83 @@ -0,0 +1,2 @@ +14 794272112051428 +32285513049919 108289944244781 112424525735811 34081043695369 208703838659210 97983954894945 189615080446140 77331121357651 153648711051665 86937497790762 25525811303198 210408591819623 138549009001524 81812295530589 diff --git a/2018/republic/7-9_d2/campion/tests/input.84 b/2018/republic/7-9_d2/campion/tests/input.84 new file mode 100644 index 0000000..b5812c2 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.84 @@ -0,0 +1,2 @@ +34 12 +2 1 1 1 1 2 1 1 2 2 1 2 2 2 2 1 1 1 1 2 1 2 1 2 1 2 2 2 2 2 2 1 2 2 diff --git a/2018/republic/7-9_d2/campion/tests/input.85 b/2018/republic/7-9_d2/campion/tests/input.85 new file mode 100644 index 0000000..d3cc65e --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.85 @@ -0,0 +1,2 @@ +39 291969699645474 +28456443118 513164813594 961189527667 502153216560 808937455534 351082852537 9229518893 1207032750015 1147010962359 194245408393 198902812329 1310889544994 150120999408 1102870924875 1380642338334 322544327973 344471463399 831356469899 137786707788 754712298383 287664892843 722086506257 818406955734 478297744010 1346761889100 688120793802 392601414785 851053846767 462853808780 170898904611 826374831493 33629002037 1461467080656 798586931725 1232506962419 187890368141 28978993507 839707123184 600565921059 diff --git a/2018/republic/7-9_d2/campion/tests/input.86 b/2018/republic/7-9_d2/campion/tests/input.86 new file mode 100644 index 0000000..7dbc992 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.86 @@ -0,0 +1,2 @@ +36 962866661313722 +7878346642171881 7610823824848283 4926030601651016 7042286447910665 2592285795644927 9456933502861930 2171797704425131 6581537032686120 9499894083717016 714951449480989 7556342321080099 6892305034064695 6650964108235465 629849276790812 527949702661817 5890370442166423 3426368582522039 334602591825853 9812278751492894 6011506128136857 9720756404092647 1124289452252609 6424645142147 6541579042660946 7978051059937806 7184214070880308 3134416064880266 1796129762478982 6784062292354316 2707639224140910 2721152481093838 3143226284494489 1049033073546269 3935335503775991 6748878514707225 7469558794673706 diff --git a/2018/republic/7-9_d2/campion/tests/input.90 b/2018/republic/7-9_d2/campion/tests/input.90 new file mode 100644 index 0000000..d44b4fb --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.90 @@ -0,0 +1,2 @@ +37 680753864258733 +35855570438313 62077083582445 32818673633194 20235096760508 62849333446661 60265644901735 13949524569074 69006132619559 18271420739312 52465219609876 53028190912885 59414089662673 44265972225378 26060466180169 49536088343108 45637217961751 57689423466417 35319789208549 64160818260250 13614359572221 6347221832599 20170884352791 17525865961721 3771130199168 53923056776117 1652337219404 54071031181966 14611332914761 42938291466061 24181049323647 51107194584435 29398375648949 22457662237697 37182861365051 7978729438097 50628355406849 59746089273605 diff --git a/2018/republic/7-9_d2/campion/tests/input.91 b/2018/republic/7-9_d2/campion/tests/input.91 new file mode 100644 index 0000000..46f4a17 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.91 @@ -0,0 +1,2 @@ +37 366799389882936 +25103932495073 24968609843071 12277152908788 4470630343597 5694467328147 29328094936990 34991680512415 16061459804558 2943905255376 25079718880202 26490511243587 20995026421669 3484375659874 15115259790723 26132109624074 945747320308 2680365118198 33311436489772 29533506312557 1305088628866 24135578883289 37093399220392 16820803726105 29080269509442 24177977029872 2954710100669 1669581321060 17436040390148 19327303719197 7769827323828 1676860869579 14439126304799 16437152115414 2434054622471 17263632838998 26957009258767 1542392935456 diff --git a/2018/republic/7-9_d2/campion/tests/input.92 b/2018/republic/7-9_d2/campion/tests/input.92 new file mode 100644 index 0000000..700353c --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.92 @@ -0,0 +1,2 @@ +30 398638327344634 +12186764939069 8090650901008 33155629013527 25905359805796 52409467678950 51476197050598 17231233017829 33208977300073 34693930210949 118066217601 53033988858348 25714180778421 15330387153145 52213953956299 49025800869447 32220174540486 29554740006790 38545522476669 6174763252434 45320501712273 6006088596635 1700292304810 5722643717008 32576623943882 1462784463793 50075182759976 13207702393393 1718655027907 11311431549390 36010152840661 diff --git a/2018/republic/7-9_d2/campion/tests/input.93 b/2018/republic/7-9_d2/campion/tests/input.93 new file mode 100644 index 0000000..f5ec22e --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.93 @@ -0,0 +1,2 @@ +13 387754385001692 +70981630061055 45773355846998 67284863298432 104044080747020 100044462710573 31327075300133 16068038607977 56874097399382 99488255676953 5134802114527 37236094762351 111474958998010 84737703330204 diff --git a/2018/republic/7-9_d2/campion/tests/input.94 b/2018/republic/7-9_d2/campion/tests/input.94 new file mode 100644 index 0000000..9836aae --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.94 @@ -0,0 +1,2 @@ +40 184 +14 2 9 15 6 9 11 8 7 11 11 7 8 12 8 2 7 15 17 11 10 17 7 5 6 1 14 2 13 8 1 13 10 15 17 11 13 16 16 12 diff --git a/2018/republic/7-9_d2/campion/tests/input.95 b/2018/republic/7-9_d2/campion/tests/input.95 new file mode 100644 index 0000000..e9625c5 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.95 @@ -0,0 +1,2 @@ +39 551800736560238 +2759393889768 2380255231192 2762215002429 995422174392 2344269219807 1015970607000 1801989533968 329225616476 2804209293752 407033502999 929540874047 253687697895 2281138121246 2439978064546 2538161205864 1510094906451 506409978263 305287343232 1065746293367 924057943645 1324552031615 1386128420032 219167824535 1714601817004 1369777580964 938907384893 1661235241834 965181807836 2240117951523 909076155534 1507946389336 644491087965 1122607208991 474848974782 1769558391515 714724942107 454557215307 1223778233072 1662399418143 diff --git a/2018/republic/7-9_d2/campion/tests/input.96 b/2018/republic/7-9_d2/campion/tests/input.96 new file mode 100644 index 0000000..e10ade4 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/input.96 @@ -0,0 +1,2 @@ +30 724093597136197 +5830064819282457 6850487943007048 7343170706001437 4783526446902344 2712824544015324 8295046066287432 586202900822357 4590295725140075 715015639838979 9427943602071295 3404289602077375 2319789441000334 1141820318318460 1678561577584005 4735792743011798 6859919758494790 4397258349759244 2390167722107451 452175642686166 3780913323866087 7669314619248094 195275858244308 1037846409230740 6483701983251086 4353206204831132 5432455498057014 6312298585687565 7356321313811847 8662780699429229 8461619672173398 diff --git a/2018/republic/7-9_d2/campion/tests/output.1 b/2018/republic/7-9_d2/campion/tests/output.1 new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.1 @@ -0,0 +1 @@ +2 diff --git a/2018/republic/7-9_d2/campion/tests/output.20 b/2018/republic/7-9_d2/campion/tests/output.20 new file mode 100644 index 0000000..2921a15 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.20 @@ -0,0 +1 @@ +360 diff --git a/2018/republic/7-9_d2/campion/tests/output.21 b/2018/republic/7-9_d2/campion/tests/output.21 new file mode 100644 index 0000000..8661997 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.21 @@ -0,0 +1 @@ +328 diff --git a/2018/republic/7-9_d2/campion/tests/output.22 b/2018/republic/7-9_d2/campion/tests/output.22 new file mode 100644 index 0000000..425151f --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.22 @@ -0,0 +1 @@ +40 diff --git a/2018/republic/7-9_d2/campion/tests/output.23 b/2018/republic/7-9_d2/campion/tests/output.23 new file mode 100644 index 0000000..997def4 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.23 @@ -0,0 +1 @@ +237 diff --git a/2018/republic/7-9_d2/campion/tests/output.24 b/2018/republic/7-9_d2/campion/tests/output.24 new file mode 100644 index 0000000..d7b1c44 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.24 @@ -0,0 +1 @@ +1024 diff --git a/2018/republic/7-9_d2/campion/tests/output.25 b/2018/republic/7-9_d2/campion/tests/output.25 new file mode 100644 index 0000000..d7b1c44 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.25 @@ -0,0 +1 @@ +1024 diff --git a/2018/republic/7-9_d2/campion/tests/output.26 b/2018/republic/7-9_d2/campion/tests/output.26 new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.26 @@ -0,0 +1 @@ +1 diff --git a/2018/republic/7-9_d2/campion/tests/output.30 b/2018/republic/7-9_d2/campion/tests/output.30 new file mode 100644 index 0000000..77f0cb4 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.30 @@ -0,0 +1 @@ +71228 diff --git a/2018/republic/7-9_d2/campion/tests/output.31 b/2018/republic/7-9_d2/campion/tests/output.31 new file mode 100644 index 0000000..89afa17 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.31 @@ -0,0 +1 @@ +30228 diff --git a/2018/republic/7-9_d2/campion/tests/output.32 b/2018/republic/7-9_d2/campion/tests/output.32 new file mode 100644 index 0000000..37e5578 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.32 @@ -0,0 +1 @@ +63119 diff --git a/2018/republic/7-9_d2/campion/tests/output.33 b/2018/republic/7-9_d2/campion/tests/output.33 new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.33 @@ -0,0 +1 @@ +3 diff --git a/2018/republic/7-9_d2/campion/tests/output.34 b/2018/republic/7-9_d2/campion/tests/output.34 new file mode 100644 index 0000000..c284518 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.34 @@ -0,0 +1 @@ +52328 diff --git a/2018/republic/7-9_d2/campion/tests/output.35 b/2018/republic/7-9_d2/campion/tests/output.35 new file mode 100644 index 0000000..6820bf1 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.35 @@ -0,0 +1 @@ +1048576 diff --git a/2018/republic/7-9_d2/campion/tests/output.36 b/2018/republic/7-9_d2/campion/tests/output.36 new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.36 @@ -0,0 +1 @@ +3 diff --git a/2018/republic/7-9_d2/campion/tests/output.40 b/2018/republic/7-9_d2/campion/tests/output.40 new file mode 100644 index 0000000..6cfed36 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.40 @@ -0,0 +1 @@ +771504 diff --git a/2018/republic/7-9_d2/campion/tests/output.41 b/2018/republic/7-9_d2/campion/tests/output.41 new file mode 100644 index 0000000..b54070d --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.41 @@ -0,0 +1 @@ +64653 diff --git a/2018/republic/7-9_d2/campion/tests/output.42 b/2018/republic/7-9_d2/campion/tests/output.42 new file mode 100644 index 0000000..4616ad7 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.42 @@ -0,0 +1 @@ +49867 diff --git a/2018/republic/7-9_d2/campion/tests/output.43 b/2018/republic/7-9_d2/campion/tests/output.43 new file mode 100644 index 0000000..128cbc3 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.43 @@ -0,0 +1 @@ +15850 diff --git a/2018/republic/7-9_d2/campion/tests/output.44 b/2018/republic/7-9_d2/campion/tests/output.44 new file mode 100644 index 0000000..caecbdd --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.44 @@ -0,0 +1 @@ +364009 diff --git a/2018/republic/7-9_d2/campion/tests/output.45 b/2018/republic/7-9_d2/campion/tests/output.45 new file mode 100644 index 0000000..b71078f --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.45 @@ -0,0 +1 @@ +131072 diff --git a/2018/republic/7-9_d2/campion/tests/output.46 b/2018/republic/7-9_d2/campion/tests/output.46 new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.46 @@ -0,0 +1 @@ +2 diff --git a/2018/republic/7-9_d2/campion/tests/output.50 b/2018/republic/7-9_d2/campion/tests/output.50 new file mode 100644 index 0000000..d8896cf --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.50 @@ -0,0 +1 @@ +6473158407 diff --git a/2018/republic/7-9_d2/campion/tests/output.51 b/2018/republic/7-9_d2/campion/tests/output.51 new file mode 100644 index 0000000..718d208 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.51 @@ -0,0 +1 @@ +31929475040 diff --git a/2018/republic/7-9_d2/campion/tests/output.52 b/2018/republic/7-9_d2/campion/tests/output.52 new file mode 100644 index 0000000..96c5929 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.52 @@ -0,0 +1 @@ +400993756090 diff --git a/2018/republic/7-9_d2/campion/tests/output.53 b/2018/republic/7-9_d2/campion/tests/output.53 new file mode 100644 index 0000000..1556c29 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.53 @@ -0,0 +1 @@ +29158717263 diff --git a/2018/republic/7-9_d2/campion/tests/output.54 b/2018/republic/7-9_d2/campion/tests/output.54 new file mode 100644 index 0000000..c073712 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.54 @@ -0,0 +1 @@ +985164328 diff --git a/2018/republic/7-9_d2/campion/tests/output.55 b/2018/republic/7-9_d2/campion/tests/output.55 new file mode 100644 index 0000000..c934a44 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.55 @@ -0,0 +1 @@ +1073741824 diff --git a/2018/republic/7-9_d2/campion/tests/output.56 b/2018/republic/7-9_d2/campion/tests/output.56 new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.56 @@ -0,0 +1 @@ +1 diff --git a/2018/republic/7-9_d2/campion/tests/output.60 b/2018/republic/7-9_d2/campion/tests/output.60 new file mode 100644 index 0000000..af91975 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.60 @@ -0,0 +1 @@ +12786589317 diff --git a/2018/republic/7-9_d2/campion/tests/output.61 b/2018/republic/7-9_d2/campion/tests/output.61 new file mode 100644 index 0000000..d3ce4e8 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.61 @@ -0,0 +1 @@ +6322911735 diff --git a/2018/republic/7-9_d2/campion/tests/output.62 b/2018/republic/7-9_d2/campion/tests/output.62 new file mode 100644 index 0000000..1399ef5 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.62 @@ -0,0 +1 @@ +194077340137 diff --git a/2018/republic/7-9_d2/campion/tests/output.63 b/2018/republic/7-9_d2/campion/tests/output.63 new file mode 100644 index 0000000..8351c19 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.63 @@ -0,0 +1 @@ +14 diff --git a/2018/republic/7-9_d2/campion/tests/output.64 b/2018/republic/7-9_d2/campion/tests/output.64 new file mode 100644 index 0000000..5c56b19 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.64 @@ -0,0 +1 @@ +518967771 diff --git a/2018/republic/7-9_d2/campion/tests/output.65 b/2018/republic/7-9_d2/campion/tests/output.65 new file mode 100644 index 0000000..7df3e13 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.65 @@ -0,0 +1 @@ +4294967296 diff --git a/2018/republic/7-9_d2/campion/tests/output.66 b/2018/republic/7-9_d2/campion/tests/output.66 new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.66 @@ -0,0 +1 @@ +2 diff --git a/2018/republic/7-9_d2/campion/tests/output.80 b/2018/republic/7-9_d2/campion/tests/output.80 new file mode 100644 index 0000000..64b88d4 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.80 @@ -0,0 +1 @@ +10983539409 diff --git a/2018/republic/7-9_d2/campion/tests/output.81 b/2018/republic/7-9_d2/campion/tests/output.81 new file mode 100644 index 0000000..d8db6dc --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.81 @@ -0,0 +1 @@ +5810978932 diff --git a/2018/republic/7-9_d2/campion/tests/output.82 b/2018/republic/7-9_d2/campion/tests/output.82 new file mode 100644 index 0000000..7142005 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.82 @@ -0,0 +1 @@ +4056842785 diff --git a/2018/republic/7-9_d2/campion/tests/output.83 b/2018/republic/7-9_d2/campion/tests/output.83 new file mode 100644 index 0000000..b7d95b3 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.83 @@ -0,0 +1 @@ +8600 diff --git a/2018/republic/7-9_d2/campion/tests/output.84 b/2018/republic/7-9_d2/campion/tests/output.84 new file mode 100644 index 0000000..3013d15 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.84 @@ -0,0 +1 @@ +23118426 diff --git a/2018/republic/7-9_d2/campion/tests/output.85 b/2018/republic/7-9_d2/campion/tests/output.85 new file mode 100644 index 0000000..3675499 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.85 @@ -0,0 +1 @@ +549755813888 diff --git a/2018/republic/7-9_d2/campion/tests/output.86 b/2018/republic/7-9_d2/campion/tests/output.86 new file mode 100644 index 0000000..48082f7 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.86 @@ -0,0 +1 @@ +12 diff --git a/2018/republic/7-9_d2/campion/tests/output.90 b/2018/republic/7-9_d2/campion/tests/output.90 new file mode 100644 index 0000000..90c184a --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.90 @@ -0,0 +1 @@ +66028388425 diff --git a/2018/republic/7-9_d2/campion/tests/output.91 b/2018/republic/7-9_d2/campion/tests/output.91 new file mode 100644 index 0000000..994152b --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.91 @@ -0,0 +1 @@ +118354347407 diff --git a/2018/republic/7-9_d2/campion/tests/output.92 b/2018/republic/7-9_d2/campion/tests/output.92 new file mode 100644 index 0000000..6901f2b --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.92 @@ -0,0 +1 @@ +590324949 diff --git a/2018/republic/7-9_d2/campion/tests/output.93 b/2018/republic/7-9_d2/campion/tests/output.93 new file mode 100644 index 0000000..8699619 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.93 @@ -0,0 +1 @@ +3432 diff --git a/2018/republic/7-9_d2/campion/tests/output.94 b/2018/republic/7-9_d2/campion/tests/output.94 new file mode 100644 index 0000000..0894e55 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.94 @@ -0,0 +1 @@ +378185333468 diff --git a/2018/republic/7-9_d2/campion/tests/output.95 b/2018/republic/7-9_d2/campion/tests/output.95 new file mode 100644 index 0000000..3675499 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.95 @@ -0,0 +1 @@ +549755813888 diff --git a/2018/republic/7-9_d2/campion/tests/output.96 b/2018/republic/7-9_d2/campion/tests/output.96 new file mode 100644 index 0000000..1e8b314 --- /dev/null +++ b/2018/republic/7-9_d2/campion/tests/output.96 @@ -0,0 +1 @@ +6 diff --git a/2018/republic/7-9_d2/condition.pdf b/2018/republic/7-9_d2/condition.pdf new file mode 100644 index 0000000..54fdf8e Binary files /dev/null and b/2018/republic/7-9_d2/condition.pdf differ diff --git a/2018/republic/7-9_d2/metrou/tests/input.01 b/2018/republic/7-9_d2/metrou/tests/input.01 new file mode 100644 index 0000000..eefba3d --- /dev/null +++ b/2018/republic/7-9_d2/metrou/tests/input.01 @@ -0,0 +1,13 @@ +12 13 1 13 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 diff --git a/2018/republic/7-9_d2/metrou/tests/input.02 b/2018/republic/7-9_d2/metrou/tests/input.02 new file mode 100644 index 0000000..b68a038 --- /dev/null +++ b/2018/republic/7-9_d2/metrou/tests/input.02 @@ -0,0 +1,13 @@ +12 13 1 13 +6 7 +1 2 +7 8 +2 3 +9 10 +3 4 +11 12 +4 5 +10 11 +5 6 +8 9 +12 13 diff --git a/2018/republic/7-9_d2/metrou/tests/input.03 b/2018/republic/7-9_d2/metrou/tests/input.03 new file mode 100644 index 0000000..37a121e --- /dev/null +++ b/2018/republic/7-9_d2/metrou/tests/input.03 @@ -0,0 +1,13 @@ +12 241 1 13 +1 2 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 +2 3 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 +3 4 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 +4 5 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 +5 6 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 +6 7 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 +7 8 138 139 140 141 142 143 144 145 146 147 148 149 150 151 151 153 154 155 +8 9 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 +9 10 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 +10 11 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 +11 12 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 +12 13 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 diff --git a/2018/republic/7-9_d2/metrou/tests/input.04 b/2018/republic/7-9_d2/metrou/tests/input.04 new file mode 100644 index 0000000..60498f2 --- /dev/null +++ b/2018/republic/7-9_d2/metrou/tests/input.04 @@ -0,0 +1,13 @@ +12 241 1 13 +1 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 2 +6 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 7 +2 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 3 +7 138 139 140 141 142 143 144 145 146 147 148 149 150 151 151 153 154 155 8 +3 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 4 +9 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 10 +4 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 5 +10 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 11 +12 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 13 +5 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 6 +8 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 9 +11 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 12 diff --git a/2018/republic/7-9_d2/metrou/tests/input.05 b/2018/republic/7-9_d2/metrou/tests/input.05 new file mode 100644 index 0000000..5b6748e --- /dev/null +++ b/2018/republic/7-9_d2/metrou/tests/input.05 @@ -0,0 +1,13 @@ +12 241 2 13 +1 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 2 +6 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 7 +2 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 3 +7 138 139 140 141 142 143 144 145 146 147 148 149 150 151 151 153 154 155 8 +3 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 4 +9 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 10 +4 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 5 +10 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 11 +12 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 13 +5 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 6 +8 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 9 +11 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 12 diff --git a/2018/republic/7-9_d2/metrou/tests/input.06 b/2018/republic/7-9_d2/metrou/tests/input.06 new file mode 100644 index 0000000..c1a3c30 --- /dev/null +++ b/2018/republic/7-9_d2/metrou/tests/input.06 @@ -0,0 +1,13 @@ +12 241 3 13 +1 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 2 +6 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 7 +2 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 3 +7 138 139 140 141 142 143 144 145 146 147 148 149 150 151 151 153 154 155 8 +3 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 4 +9 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 10 +4 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 5 +10 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 11 +12 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 13 +5 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 6 +8 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 9 +11 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 12 diff --git a/2018/republic/7-9_d2/metrou/tests/input.07 b/2018/republic/7-9_d2/metrou/tests/input.07 new file mode 100644 index 0000000..4564cc7 --- /dev/null +++ b/2018/republic/7-9_d2/metrou/tests/input.07 @@ -0,0 +1,13 @@ +12 241 4 13 +1 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 2 +6 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 7 +2 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 3 +7 138 139 140 141 142 143 144 145 146 147 148 149 150 151 151 153 154 155 8 +3 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 4 +9 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 10 +4 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 5 +10 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 11 +12 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 13 +5 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 6 +8 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 9 +11 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 12 diff --git a/2018/republic/7-9_d2/metrou/tests/input.08 b/2018/republic/7-9_d2/metrou/tests/input.08 new file mode 100644 index 0000000..56618c5 --- /dev/null +++ b/2018/republic/7-9_d2/metrou/tests/input.08 @@ -0,0 +1,13 @@ +12 241 4 10 +1 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 2 +6 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 7 +2 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 3 +7 138 139 140 141 142 143 144 145 146 147 148 149 150 151 151 153 154 155 8 +3 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 4 +9 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 10 +4 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 5 +10 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 11 +12 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 13 +5 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 6 +8 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 9 +11 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 12 diff --git a/2018/republic/7-9_d2/metrou/tests/input.09 b/2018/republic/7-9_d2/metrou/tests/input.09 new file mode 100644 index 0000000..3d57dc0 --- /dev/null +++ b/2018/republic/7-9_d2/metrou/tests/input.09 @@ -0,0 +1,14 @@ +13 243 1 13 +1 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 2 242 +6 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 7 +2 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 3 +7 138 139 140 141 142 143 144 145 146 147 148 149 150 151 151 153 154 155 8 +3 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 4 +9 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 10 +4 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 5 +10 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 11 +12 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 13 243 +5 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 6 +8 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 9 +11 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 12 +242 243 diff --git a/2018/republic/7-9_d2/metrou/tests/input.10 b/2018/republic/7-9_d2/metrou/tests/input.10 new file mode 100644 index 0000000..57b3b8c --- /dev/null +++ b/2018/republic/7-9_d2/metrou/tests/input.10 @@ -0,0 +1,14 @@ +13 243 1 13 +1 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 2 242 +6 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 7 +2 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 3 +7 138 139 140 141 142 143 144 145 146 147 148 149 150 151 151 153 154 155 8 +3 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 4 +9 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 10 +4 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 5 +10 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 11 +12 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 13 243 +5 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 6 +8 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 9 +11 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 12 +242 244 245 243 diff --git a/2018/republic/7-9_d2/metrou/tests/output.01 b/2018/republic/7-9_d2/metrou/tests/output.01 new file mode 100644 index 0000000..84b19cd --- /dev/null +++ b/2018/republic/7-9_d2/metrou/tests/output.01 @@ -0,0 +1 @@ +11 diff --git a/2018/republic/7-9_d2/metrou/tests/output.02 b/2018/republic/7-9_d2/metrou/tests/output.02 new file mode 100644 index 0000000..84b19cd --- /dev/null +++ b/2018/republic/7-9_d2/metrou/tests/output.02 @@ -0,0 +1 @@ +11 diff --git a/2018/republic/7-9_d2/metrou/tests/output.03 b/2018/republic/7-9_d2/metrou/tests/output.03 new file mode 100644 index 0000000..84b19cd --- /dev/null +++ b/2018/republic/7-9_d2/metrou/tests/output.03 @@ -0,0 +1 @@ +11 diff --git a/2018/republic/7-9_d2/metrou/tests/output.04 b/2018/republic/7-9_d2/metrou/tests/output.04 new file mode 100644 index 0000000..84b19cd --- /dev/null +++ b/2018/republic/7-9_d2/metrou/tests/output.04 @@ -0,0 +1 @@ +11 diff --git a/2018/republic/7-9_d2/metrou/tests/output.05 b/2018/republic/7-9_d2/metrou/tests/output.05 new file mode 100644 index 0000000..d434014 --- /dev/null +++ b/2018/republic/7-9_d2/metrou/tests/output.05 @@ -0,0 +1 @@ +10 diff --git a/2018/republic/7-9_d2/metrou/tests/output.06 b/2018/republic/7-9_d2/metrou/tests/output.06 new file mode 100644 index 0000000..3b0923b --- /dev/null +++ b/2018/republic/7-9_d2/metrou/tests/output.06 @@ -0,0 +1 @@ +9 diff --git a/2018/republic/7-9_d2/metrou/tests/output.07 b/2018/republic/7-9_d2/metrou/tests/output.07 new file mode 100644 index 0000000..129a793 --- /dev/null +++ b/2018/republic/7-9_d2/metrou/tests/output.07 @@ -0,0 +1 @@ +8 diff --git a/2018/republic/7-9_d2/metrou/tests/output.08 b/2018/republic/7-9_d2/metrou/tests/output.08 new file mode 100644 index 0000000..3d2c52f --- /dev/null +++ b/2018/republic/7-9_d2/metrou/tests/output.08 @@ -0,0 +1 @@ +5 diff --git a/2018/republic/7-9_d2/metrou/tests/output.09 b/2018/republic/7-9_d2/metrou/tests/output.09 new file mode 100644 index 0000000..78c6bae --- /dev/null +++ b/2018/republic/7-9_d2/metrou/tests/output.09 @@ -0,0 +1 @@ +2 diff --git a/2018/republic/7-9_d2/metrou/tests/output.10 b/2018/republic/7-9_d2/metrou/tests/output.10 new file mode 100644 index 0000000..78c6bae --- /dev/null +++ b/2018/republic/7-9_d2/metrou/tests/output.10 @@ -0,0 +1 @@ +2 diff --git a/2018/republic/7-9_d2/senzori/tests/input.01 b/2018/republic/7-9_d2/senzori/tests/input.01 new file mode 100644 index 0000000..c744be0 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/input.01 @@ -0,0 +1,34 @@ +10 +465 330 +588 203 +523 140 +329 415 +360 156 +307 229 +405 83 +691 91 +403 417 +649 65 +20 +515 218 69 +452 157 23 +488 301 34 +400 148 51 +488 134 58 +449 279 33 +467 355 54 +457 247 29 +397 84 29 +548 266 22 +390 236 59 +615 215 59 +556 78 41 +353 190 45 +661 168 29 +525 373 40 +305 251 36 +630 89 66 +382 401 61 +542 155 42 +13 +8 9 6 20 15 19 10 12 18 7 17 14 2 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/input.02 b/2018/republic/7-9_d2/senzori/tests/input.02 new file mode 100644 index 0000000..bc4af08 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/input.02 @@ -0,0 +1,104 @@ +50 +433 314 +501 348 +433 221 +662 485 +556 158 +131 557 +401 195 +600 360 +668 425 +555 467 +401 433 +300 201 +287 539 +705 528 +479 542 +505 504 +518 155 +552 343 +737 231 +393 462 +358 563 +320 386 +130 466 +528 461 +694 483 +673 346 +601 287 +382 543 +590 589 +401 287 +724 448 +371 135 +182 498 +290 85 +575 382 +129 490 +702 77 +585 178 +483 421 +303 491 +264 524 +463 406 +240 506 +683 65 +463 225 +702 421 +547 541 +707 362 +588 518 +656 264 +50 +579 252 28 +570 317 63 +655 312 29 +578 398 69 +511 296 28 +610 340 27 +696 258 47 +503 439 45 +605 207 32 +535 243 52 +543 486 45 +486 181 62 +647 384 51 +773 306 52 +496 552 66 +697 206 31 +413 585 65 +472 301 50 +412 264 52 +729 150 55 +697 445 41 +501 379 68 +664 472 29 +386 216 52 +413 106 65 +582 163 30 +743 257 31 +423 226 22 +594 559 69 +314 211 36 +344 569 20 +710 373 24 +460 262 29 +777 87 64 +409 488 67 +454 418 22 +290 524 61 +689 80 67 +611 120 61 +415 175 45 +677 523 51 +430 541 22 +475 91 41 +186 571 64 +430 440 22 +339 412 40 +147 504 44 +284 588 44 +311 119 48 +647 581 38 +25 +47 26 48 31 44 35 15 36 40 41 8 2 13 22 29 23 50 39 45 16 30 10 3 25 38 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/input.03 b/2018/republic/7-9_d2/senzori/tests/input.03 new file mode 100644 index 0000000..8fb823d --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/input.03 @@ -0,0 +1,204 @@ +120 +725 360 +285 402 +651 496 +614 108 +352 404 +327 534 +327 502 +783 380 +171 262 +499 163 +716 179 +540 296 +382 304 +691 157 +749 468 +83 211 +649 419 +295 509 +785 546 +704 537 +55 221 +549 547 +264 306 +321 140 +515 504 +612 435 +244 210 +259 347 +268 529 +398 467 +398 337 +242 395 +306 295 +634 371 +191 217 +549 62 +696 182 +268 159 +449 102 +470 404 +696 106 +276 488 +539 401 +144 542 +100 173 +144 210 +225 486 +289 137 +211 218 +584 410 +111 306 +444 436 +767 117 +570 312 +206 160 +226 319 +411 319 +370 490 +69 182 +279 266 +158 402 +615 260 +768 57 +334 208 +763 372 +347 356 +741 385 +753 446 +170 220 +316 340 +510 464 +675 191 +661 306 +368 446 +711 152 +372 346 +338 284 +725 301 +523 75 +545 365 +561 584 +461 84 +151 158 +271 381 +735 550 +512 134 +768 532 +248 107 +511 281 +498 364 +614 377 +752 426 +413 104 +698 483 +523 177 +584 253 +774 477 +151 274 +610 335 +164 519 +233 259 +681 579 +603 81 +581 588 +393 246 +246 561 +404 277 +664 209 +514 584 +629 188 +258 53 +452 529 +193 367 +466 59 +679 268 +205 251 +217 424 +642 320 +573 212 +721 80 +80 +752 212 43 +762 272 58 +721 247 29 +733 308 31 +662 204 63 +605 176 46 +672 327 48 +720 179 46 +759 99 69 +601 74 61 +529 90 52 +514 165 55 +604 282 58 +640 144 31 +658 69 52 +731 386 49 +674 421 51 +709 485 47 +659 523 69 +568 392 65 +685 585 50 +427 218 49 +444 272 30 +513 458 26 +589 552 45 +388 284 68 +286 319 56 +564 498 24 +764 469 45 +492 425 20 +731 335 22 +546 269 41 +751 565 60 +341 282 20 +771 349 46 +474 286 32 +212 338 56 +551 320 36 +539 573 49 +134 287 54 +507 496 48 +518 401 31 +355 354 23 +448 422 56 +144 174 67 +214 211 45 +640 353 27 +252 141 44 +257 71 59 +318 177 56 +433 82 47 +306 392 61 +101 343 59 +573 219 47 +764 510 24 +437 487 57 +90 202 44 +94 411 49 +152 335 32 +443 345 23 +508 357 38 +342 477 48 +183 382 37 +91 84 45 +282 532 56 +225 262 53 +620 420 25 +756 165 28 +559 171 35 +226 431 69 +91 496 40 +359 407 43 +126 386 22 +783 233 26 +675 251 34 +409 357 36 +169 498 57 +713 535 24 +230 177 24 +470 66 21 +40 +78 7 34 63 29 61 23 35 24 58 37 47 79 12 8 4 21 2 13 68 62 9 25 48 56 16 54 11 41 74 46 59 39 38 40 44 52 42 80 18 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/input.04 b/2018/republic/7-9_d2/senzori/tests/input.04 new file mode 100644 index 0000000..0ae9665 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/input.04 @@ -0,0 +1,254 @@ +150 +349 139 +336 105 +632 268 +486 461 +691 239 +446 103 +352 436 +313 171 +106 551 +553 398 +174 566 +285 275 +227 275 +349 415 +645 368 +715 484 +710 577 +389 137 +600 122 +608 548 +327 279 +788 282 +726 237 +114 143 +132 114 +563 444 +724 463 +426 353 +70 522 +606 447 +619 385 +777 135 +273 255 +487 204 +494 348 +247 86 +696 442 +234 578 +712 125 +375 394 +639 162 +319 551 +419 563 +581 310 +761 306 +165 67 +602 188 +722 425 +576 411 +360 191 +621 408 +481 256 +512 216 +558 568 +227 437 +575 463 +751 477 +651 219 +650 77 +309 241 +758 153 +710 216 +374 589 +255 246 +105 219 +613 93 +416 588 +120 532 +554 337 +500 152 +161 498 +724 553 +182 236 +710 160 +656 489 +548 279 +362 525 +420 515 +689 407 +619 482 +682 81 +578 231 +672 122 +726 523 +553 131 +351 66 +369 274 +430 329 +627 70 +252 406 +709 188 +120 178 +599 232 +765 386 +526 358 +443 306 +147 213 +200 156 +311 522 +50 245 +536 242 +277 157 +457 288 +153 113 +96 486 +696 52 +454 358 +538 574 +145 275 +141 477 +476 393 +742 99 +511 490 +244 128 +354 224 +208 65 +218 531 +495 322 +276 366 +598 266 +401 261 +221 132 +699 370 +93 251 +440 392 +251 353 +60 51 +460 430 +569 385 +440 249 +294 55 +195 504 +539 94 +694 337 +306 346 +746 425 +203 398 +267 434 +71 222 +503 561 +771 73 +439 580 +212 111 +365 561 +185 548 +431 182 +788 186 +691 568 +788 454 +647 319 +100 +684 139 39 +606 121 50 +744 106 32 +782 129 21 +552 125 50 +733 168 62 +651 86 47 +485 64 65 +706 240 51 +578 84 22 +503 137 45 +607 242 60 +698 200 20 +780 202 54 +725 284 40 +535 81 24 +456 110 35 +757 52 64 +658 236 34 +633 349 58 +381 108 58 +369 161 20 +596 175 25 +651 432 63 +781 274 29 +674 285 27 +771 438 68 +708 367 55 +601 528 55 +708 479 52 +643 193 54 +716 555 50 +529 530 25 +350 55 31 +613 286 27 +503 566 46 +758 530 41 +501 183 47 +550 397 43 +597 463 31 +347 198 33 +482 262 52 +706 420 20 +557 559 32 +548 277 58 +698 62 53 +656 584 31 +558 208 54 +775 380 27 +416 242 39 +568 443 24 +397 153 37 +300 133 49 +393 303 41 +201 106 63 +130 101 54 +251 60 66 +433 85 22 +426 310 26 +146 152 33 +559 354 31 +72 69 38 +439 569 65 +126 216 64 +357 530 28 +301 201 28 +211 212 43 +333 381 66 +259 263 43 +365 345 25 +290 540 47 +480 536 21 +448 367 55 +83 175 23 +236 409 45 +192 560 67 +475 423 33 +464 466 27 +339 319 32 +372 505 21 +84 268 58 +173 510 34 +137 298 27 +427 515 28 +238 534 31 +739 329 39 +525 326 38 +599 398 24 +434 205 37 +256 326 42 +346 429 28 +366 233 41 +122 533 64 +364 585 64 +356 279 42 +287 233 27 +495 501 25 +296 339 28 +205 458 25 +691 523 25 +50 +88 82 50 34 62 24 27 59 48 72 36 23 5 100 13 91 83 89 25 7 41 43 71 47 95 78 8 69 15 98 77 14 4 60 79 52 61 87 85 11 93 53 39 28 64 16 80 70 65 67 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/input.05 b/2018/republic/7-9_d2/senzori/tests/input.05 new file mode 100644 index 0000000..b3d7985 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/input.05 @@ -0,0 +1,254 @@ +150 +127 143 +65 217 +654 575 +233 113 +342 515 +51 375 +599 382 +567 516 +673 236 +280 310 +697 384 +139 296 +786 215 +445 102 +99 189 +51 65 +526 82 +394 446 +648 83 +66 197 +475 163 +722 324 +270 267 +189 244 +773 557 +481 211 +638 451 +504 428 +702 255 +163 184 +780 106 +591 225 +189 351 +106 123 +590 180 +695 106 +609 518 +403 529 +580 537 +514 482 +170 425 +357 95 +417 218 +204 189 +131 177 +544 308 +652 175 +746 577 +722 469 +513 204 +142 104 +568 574 +753 497 +298 82 +738 198 +372 579 +210 68 +661 475 +499 289 +538 169 +504 179 +107 311 +179 273 +334 333 +317 254 +732 76 +161 115 +175 148 +701 468 +711 301 +692 224 +673 92 +124 61 +394 325 +271 355 +703 181 +396 79 +633 369 +371 378 +516 533 +427 373 +265 60 +783 172 +579 96 +122 236 +233 349 +753 79 +710 400 +404 470 +106 479 +620 427 +446 515 +236 180 +332 371 +594 255 +713 425 +664 149 +604 407 +467 546 +475 345 +433 66 +344 458 +318 482 +82 425 +265 90 +414 562 +687 419 +482 125 +768 587 +666 63 +320 139 +756 528 +733 110 +666 263 +706 131 +479 406 +639 508 +332 93 +144 425 +590 426 +284 156 +103 440 +76 289 +254 302 +730 226 +422 329 +687 349 +363 124 +253 232 +304 373 +536 395 +606 146 +436 535 +723 513 +412 92 +287 331 +729 131 +701 329 +360 562 +626 97 +776 537 +685 128 +188 405 +82 104 +567 156 +63 494 +446 406 +345 284 +420 509 +606 462 +100 +743 392 56 +715 343 54 +786 405 26 +766 450 22 +719 471 54 +663 415 29 +688 247 58 +746 518 39 +782 272 66 +737 587 63 +663 303 30 +602 196 44 +551 211 52 +593 258 53 +557 123 60 +455 149 60 +635 154 32 +636 536 62 +619 421 49 +383 229 57 +565 341 53 +320 200 29 +464 72 28 +428 255 22 +597 309 30 +734 177 34 +491 402 53 +369 304 56 +556 467 56 +491 194 30 +564 547 69 +605 118 34 +515 567 24 +481 280 40 +423 412 50 +338 241 30 +283 228 48 +753 110 48 +441 214 21 +305 314 29 +433 336 46 +683 394 28 +651 357 39 +240 273 46 +452 500 62 +539 85 23 +674 111 60 +631 478 45 +708 527 26 +759 216 45 +411 194 25 +706 287 27 +784 166 46 +381 76 65 +528 302 29 +287 118 67 +297 173 32 +153 208 66 +536 264 47 +587 371 21 +646 192 34 +492 316 33 +421 295 38 +356 183 43 +63 190 63 +356 361 56 +408 530 43 +158 111 48 +357 430 37 +393 470 25 +318 268 21 +730 58 21 +69 108 60 +313 72 35 +193 78 35 +115 62 24 +69 271 67 +106 231 34 +225 354 68 +154 309 63 +346 528 66 +408 571 26 +325 334 25 +680 53 49 +554 412 30 +675 577 34 +503 141 36 +249 184 28 +417 123 20 +196 131 22 +615 346 25 +253 83 29 +211 202 40 +51 353 56 +314 357 25 +93 153 31 +82 439 61 +498 458 30 +149 392 51 +298 559 33 +66 +100 25 90 67 49 82 64 92 42 61 80 84 68 98 40 57 17 24 36 38 72 54 5 20 71 10 27 33 31 7 47 32 37 87 88 85 94 79 44 6 35 41 39 63 53 30 13 56 18 29 51 78 22 93 70 55 26 2 21 95 74 8 75 34 66 3 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/input.06 b/2018/republic/7-9_d2/senzori/tests/input.06 new file mode 100644 index 0000000..9fa2e96 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/input.06 @@ -0,0 +1,274 @@ +150 +381 319 +255 134 +493 159 +738 118 +212 463 +105 423 +593 348 +235 235 +771 113 +771 340 +588 167 +172 347 +648 79 +636 305 +579 414 +669 526 +198 418 +363 366 +471 141 +566 208 +396 462 +617 524 +650 326 +321 435 +761 410 +757 60 +714 111 +441 527 +486 82 +424 100 +728 208 +224 351 +262 543 +295 566 +687 296 +679 116 +731 337 +587 268 +524 489 +182 447 +325 75 +365 463 +293 301 +253 487 +482 542 +592 581 +628 358 +678 222 +469 433 +537 471 +728 431 +174 413 +690 347 +442 195 +747 264 +737 499 +548 87 +697 72 +197 383 +710 313 +732 541 +80 362 +327 482 +386 233 +78 565 +130 507 +598 472 +392 490 +485 421 +723 69 +616 314 +446 339 +497 290 +602 125 +381 175 +114 348 +426 77 +207 191 +781 57 +367 266 +565 553 +656 242 +621 78 +563 466 +275 247 +699 568 +196 503 +322 263 +699 165 +759 527 +287 405 +159 316 +617 417 +701 213 +348 153 +60 425 +648 586 +536 439 +340 50 +630 495 +450 397 +390 257 +380 583 +579 366 +239 384 +673 573 +446 312 +266 222 +739 457 +227 589 +339 507 +531 250 +366 492 +661 465 +450 148 +192 467 +305 280 +346 270 +530 512 +694 52 +514 270 +766 88 +533 570 +138 444 +357 419 +460 473 +123 390 +745 567 +324 196 +310 408 +762 442 +290 334 +460 234 +575 114 +622 334 +75 450 +529 308 +620 227 +557 163 +279 427 +775 474 +406 406 +251 302 +769 583 +728 251 +152 504 +671 265 +302 544 +674 313 +413 480 +120 +604 571 33 +519 580 59 +544 506 48 +646 585 39 +442 550 43 +585 523 30 +494 440 45 +594 482 35 +485 399 31 +370 573 57 +397 529 23 +457 355 33 +295 580 34 +604 410 44 +305 545 33 +503 337 59 +582 311 27 +270 506 53 +407 380 41 +506 519 23 +558 253 56 +641 529 39 +483 286 34 +641 345 53 +252 583 31 +375 487 57 +475 226 33 +565 176 59 +634 259 50 +641 453 41 +235 482 25 +442 198 29 +683 395 22 +356 351 22 +215 554 24 +708 338 39 +360 396 20 +331 416 36 +693 499 50 +262 550 21 +301 448 20 +433 258 36 +772 500 46 +473 144 48 +331 336 23 +676 256 23 +725 466 26 +739 560 34 +738 300 25 +789 302 50 +547 455 27 +217 449 42 +536 361 21 +745 423 44 +518 387 27 +551 83 56 +565 419 30 +495 92 28 +699 579 35 +595 353 23 +652 100 59 +182 492 39 +427 503 47 +313 475 27 +722 79 47 +418 324 47 +293 407 27 +692 461 25 +294 350 36 +314 272 59 +176 563 32 +354 236 45 +738 359 30 +403 104 39 +363 161 57 +707 146 32 +696 415 20 +396 265 38 +120 473 58 +373 432 39 +711 262 48 +270 302 37 +783 582 53 +564 379 36 +705 215 39 +345 202 25 +90 565 53 +401 55 42 +766 71 23 +271 222 50 +445 107 33 +417 438 36 +228 311 20 +216 400 46 +125 396 52 +437 401 25 +778 109 50 +373 306 35 +620 375 20 +87 364 33 +599 130 53 +266 143 37 +738 123 32 +667 192 32 +529 123 29 +263 442 28 +646 406 37 +248 260 30 +315 123 25 +197 347 37 +240 122 23 +211 183 26 +426 146 39 +330 82 36 +51 446 37 +153 326 30 +90 515 34 +158 431 26 +362 70 28 +618 55 36 +80 +48 102 61 75 17 105 77 88 63 8 68 30 74 89 22 42 40 53 10 85 114 32 79 50 117 38 54 96 71 9 26 16 108 65 14 67 21 116 94 111 23 118 95 12 41 99 92 15 56 86 37 87 35 45 34 98 82 57 109 81 49 29 24 69 36 104 7 97 107 93 5 70 103 44 119 78 19 80 100 20 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/input.07 b/2018/republic/7-9_d2/senzori/tests/input.07 new file mode 100644 index 0000000..041c74c --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/input.07 @@ -0,0 +1,142 @@ +18 +569 426 +297 574 +589 83 +108 153 +294 193 +613 358 +636 313 +554 341 +349 318 +111 210 +573 526 +288 356 +751 64 +304 290 +654 373 +208 457 +440 455 +708 227 +120 +319 213 29 +376 234 42 +386 321 58 +267 226 35 +240 293 56 +396 190 29 +290 274 29 +184 221 50 +161 272 48 +436 150 59 +378 144 20 +522 145 33 +167 341 32 +414 408 46 +106 373 58 +208 135 52 +337 174 27 +452 473 41 +367 122 27 +303 307 37 +147 369 24 +460 298 40 +476 75 50 +461 554 43 +523 488 42 +432 200 30 +235 337 27 +508 327 52 +389 496 48 +526 523 28 +142 147 53 +458 225 42 +509 384 37 +431 97 30 +271 183 46 +336 501 44 +135 207 48 +319 96 43 +333 448 57 +412 369 30 +237 231 23 +69 206 46 +331 566 28 +576 81 55 +563 282 53 +588 317 26 +274 429 43 +489 503 27 +117 99 21 +363 361 29 +94 54 32 +270 488 23 +51 404 56 +651 325 43 +58 361 26 +501 184 52 +208 82 25 +528 224 29 +640 66 24 +713 339 27 +204 325 21 +278 582 50 +399 69 53 +266 516 24 +73 317 47 +67 488 41 +208 357 25 +550 571 35 +268 77 30 +587 534 20 +698 286 46 +558 439 26 +291 459 21 +119 443 50 +326 280 29 +770 280 56 +670 377 54 +94 549 41 +587 570 24 +627 419 22 +104 254 55 +161 406 23 +251 150 31 +208 518 38 +623 469 38 +169 494 20 +717 426 45 +573 220 55 +237 396 48 +199 434 46 +755 445 29 +714 229 50 +662 550 56 +751 404 23 +470 365 36 +604 365 33 +772 415 23 +696 130 59 +166 64 46 +307 387 49 +176 100 24 +392 549 38 +457 403 26 +160 471 26 +673 473 23 +777 91 59 +495 266 54 +549 386 26 +247 101 31 +653 197 23 +578 178 28 +58 118 54 +633 255 45 +592 133 42 +58 56 30 +713 562 47 +149 571 45 +640 167 38 +443 517 33 +309 51 31 +80 +3 82 25 73 71 112 54 40 81 56 106 26 119 107 84 108 59 44 105 79 9 38 111 39 91 34 74 22 41 50 13 43 95 2 19 18 31 101 86 64 104 7 49 45 33 90 55 29 5 72 66 98 69 20 10 116 32 110 117 97 115 6 28 23 30 100 114 75 4 92 37 83 67 102 89 99 88 52 16 94 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/input.08 b/2018/republic/7-9_d2/senzori/tests/input.08 new file mode 100644 index 0000000..34ec8ae --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/input.08 @@ -0,0 +1,164 @@ +40 +212 198 +387 474 +241 526 +297 506 +350 108 +603 75 +293 274 +628 322 +310 129 +339 430 +145 478 +520 203 +256 63 +193 280 +746 324 +204 470 +757 399 +305 180 +486 78 +225 61 +630 364 +472 110 +415 563 +371 110 +412 390 +580 237 +675 115 +695 357 +202 493 +167 109 +462 232 +315 52 +461 381 +419 425 +386 95 +62 362 +96 378 +642 171 +355 517 +198 242 +120 +229 152 29 +249 87 50 +205 204 44 +186 260 54 +207 323 40 +134 264 40 +80 273 39 +190 374 56 +199 119 39 +271 386 51 +339 363 55 +333 415 41 +155 164 55 +297 70 32 +152 335 23 +143 231 24 +268 298 42 +67 330 52 +222 426 55 +112 382 37 +192 61 59 +327 305 37 +419 406 56 +80 119 35 +89 222 51 +199 489 41 +226 273 29 +274 126 31 +491 411 38 +253 524 36 +238 576 30 +83 452 53 +269 449 48 +523 348 56 +514 453 26 +145 467 22 +482 287 53 +611 410 59 +451 362 46 +333 241 46 +314 525 49 +669 387 58 +565 495 50 +629 320 39 +562 266 51 +385 206 45 +141 113 33 +89 56 35 +149 413 49 +777 369 58 +635 530 54 +342 119 43 +375 538 36 +715 406 35 +613 573 34 +181 454 29 +277 568 42 +400 458 36 +181 570 59 +441 524 50 +142 519 39 +746 289 53 +351 585 55 +51 395 47 +540 406 44 +758 464 43 +612 214 36 +747 252 20 +506 549 23 +258 163 28 +709 239 36 +682 442 25 +714 331 26 +460 215 38 +84 497 21 +500 219 28 +118 69 28 +110 536 31 +583 191 33 +567 320 45 +661 258 40 +651 172 29 +58 541 34 +384 322 39 +513 175 50 +474 132 30 +322 174 22 +713 161 45 +675 134 45 +522 515 38 +306 332 22 +425 290 33 +393 106 34 +469 451 34 +464 170 31 +481 72 49 +117 488 23 +546 50 44 +420 230 30 +659 489 23 +649 344 23 +627 150 26 +630 76 46 +446 248 32 +423 104 26 +782 275 24 +205 531 25 +773 235 23 +745 407 22 +247 225 39 +77 588 55 +592 363 24 +647 219 30 +725 376 21 +707 472 42 +759 209 36 +760 144 28 +344 199 25 +100 158 35 +134 589 24 +80 +31 81 99 116 46 97 44 96 40 68 20 34 86 29 76 17 33 93 8 26 88 66 41 113 85 84 18 2 91 107 65 39 79 16 70 105 64 38 43 69 73 35 53 37 7 114 54 12 51 4 104 3 115 109 98 74 78 59 42 25 14 13 67 108 50 103 6 48 110 63 57 119 95 90 28 52 89 32 10 112 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/input.09 b/2018/republic/7-9_d2/senzori/tests/input.09 new file mode 100644 index 0000000..340441a --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/input.09 @@ -0,0 +1,384 @@ +240 +216 348 +684 394 +342 115 +309 202 +400 104 +580 75 +627 391 +513 542 +229 227 +90 437 +520 399 +91 381 +315 469 +563 589 +519 488 +552 97 +344 531 +384 65 +469 109 +240 535 +144 516 +587 568 +577 351 +419 125 +733 426 +351 437 +503 229 +789 489 +531 243 +525 581 +209 64 +161 333 +338 135 +409 317 +326 366 +252 306 +594 91 +281 115 +481 552 +765 457 +509 508 +418 549 +715 218 +206 453 +387 248 +284 443 +303 305 +781 307 +314 540 +288 493 +378 123 +421 336 +299 580 +349 212 +240 143 +259 388 +146 539 +593 503 +148 106 +352 340 +350 245 +650 418 +547 448 +72 231 +383 532 +531 92 +158 425 +774 367 +343 573 +158 170 +473 308 +69 377 +712 409 +150 201 +756 261 +697 494 +269 510 +620 290 +392 228 +333 450 +634 130 +260 429 +487 485 +614 175 +682 299 +636 473 +609 250 +540 134 +265 231 +282 301 +259 263 +413 165 +642 86 +94 84 +788 217 +532 520 +733 99 +202 172 +157 355 +420 244 +700 320 +220 313 +418 370 +300 364 +450 411 +512 180 +758 580 +66 341 +729 282 +206 112 +505 325 +281 380 +135 414 +73 560 +481 253 +254 200 +356 504 +452 183 +473 350 +279 539 +225 274 +103 578 +388 325 +327 163 +732 201 +753 544 +118 398 +526 57 +160 249 +723 162 +374 382 +696 376 +729 257 +718 446 +432 421 +606 142 +663 97 +713 527 +673 231 +588 190 +594 405 +614 111 +541 381 +387 194 +623 498 +493 60 +467 139 +696 162 +543 180 +196 402 +186 440 +577 534 +484 180 +727 56 +89 246 +785 269 +669 523 +404 413 +440 212 +74 516 +629 264 +209 373 +286 215 +572 51 +230 123 +615 543 +265 72 +306 132 +178 161 +294 264 +100 463 +539 212 +438 81 +443 289 +766 509 +108 491 +555 541 +619 568 +138 466 +624 456 +559 247 +584 463 +404 521 +747 500 +154 226 +448 537 +254 489 +703 272 +180 379 +493 140 +588 221 +532 270 +362 319 +587 386 +698 106 +495 450 +720 374 +739 383 +403 284 +758 78 +606 486 +696 473 +579 153 +320 80 +588 330 +143 280 +134 242 +678 583 +610 362 +543 494 +492 394 +678 204 +100 419 +70 446 +61 481 +199 512 +432 470 +458 227 +459 460 +571 302 +183 346 +766 429 +688 127 +788 425 +747 404 +467 329 +163 138 +338 281 +386 157 +257 565 +437 320 +203 89 +439 257 +186 280 +228 411 +85 104 +719 349 +742 320 +238 83 +781 588 +140 +721 451 47 +712 498 41 +667 463 39 +624 446 28 +696 357 54 +671 304 42 +638 248 54 +703 230 27 +761 241 39 +670 433 21 +588 412 37 +700 410 35 +553 211 44 +685 211 21 +655 499 23 +539 362 54 +611 509 38 +525 179 24 +758 199 33 +541 309 47 +664 142 54 +651 209 28 +527 249 34 +656 185 20 +594 560 54 +601 319 37 +517 584 37 +564 265 39 +532 452 49 +494 149 42 +648 342 32 +663 394 44 +654 566 55 +478 72 46 +403 111 46 +428 146 32 +719 156 32 +758 315 29 +354 158 58 +772 114 45 +787 175 27 +337 221 30 +782 360 36 +462 192 43 +474 543 34 +764 397 40 +421 524 41 +764 471 46 +389 60 30 +642 97 43 +471 244 43 +291 287 55 +523 549 34 +447 589 45 +499 485 42 +580 72 59 +454 431 47 +356 532 33 +514 117 26 +436 307 54 +290 368 46 +750 533 50 +418 460 44 +264 139 40 +243 436 47 +316 447 41 +279 500 58 +419 382 20 +474 386 32 +714 583 58 +257 66 51 +671 71 34 +310 554 46 +492 447 28 +231 288 54 +481 345 22 +203 531 32 +311 74 22 +211 332 22 +606 189 59 +393 503 23 +708 51 48 +410 577 27 +457 502 41 +179 359 51 +376 232 25 +210 97 43 +524 52 35 +228 218 36 +335 262 41 +109 378 52 +180 249 32 +535 84 29 +729 380 26 +250 328 29 +772 585 57 +757 161 31 +391 423 37 +126 241 35 +288 233 27 +511 289 22 +781 51 43 +148 102 25 +174 139 54 +56 368 43 +213 61 28 +118 439 57 +346 336 50 +389 355 34 +363 574 27 +141 509 54 +590 481 25 +436 63 31 +420 217 45 +222 175 25 +153 415 22 +225 566 37 +346 75 39 +214 481 42 +196 408 42 +85 239 32 +617 377 40 +84 557 26 +712 288 42 +91 92 37 +538 151 29 +699 540 24 +293 210 20 +381 278 20 +514 406 25 +220 375 23 +168 201 34 +238 352 22 +255 176 31 +77 516 44 +118 54 24 +125 578 46 +149 278 25 +177 284 21 +177 589 43 +70 +126 100 93 115 62 68 124 118 71 30 84 96 4 36 35 140 47 58 15 119 77 87 113 60 20 88 76 103 11 39 81 92 75 56 135 109 26 25 40 24 117 114 10 22 64 32 121 44 120 49 17 134 46 16 53 101 86 106 94 54 57 43 130 9 122 61 29 80 51 6 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/input.10 b/2018/republic/7-9_d2/senzori/tests/input.10 new file mode 100644 index 0000000..a59feb9 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/input.10 @@ -0,0 +1,384 @@ +240 +578 107 +105 516 +601 254 +67 202 +392 267 +325 226 +461 562 +575 401 +172 99 +711 119 +610 534 +466 313 +454 178 +612 174 +85 166 +696 139 +581 334 +667 129 +692 192 +673 386 +506 400 +768 382 +715 373 +133 267 +598 494 +373 553 +679 424 +587 554 +278 539 +239 220 +216 379 +747 553 +300 136 +472 396 +215 484 +364 532 +116 537 +270 144 +479 235 +301 84 +316 365 +710 305 +362 133 +459 520 +782 545 +555 293 +708 488 +280 511 +54 550 +217 524 +473 457 +249 397 +194 459 +333 195 +301 168 +725 254 +656 575 +116 147 +523 413 +332 540 +562 92 +733 512 +585 370 +527 110 +740 140 +398 549 +99 385 +399 228 +352 553 +75 474 +529 495 +262 348 +416 407 +650 375 +88 427 +138 435 +551 545 +233 304 +200 296 +672 88 +380 477 +76 225 +447 107 +314 519 +696 249 +420 460 +609 377 +477 490 +171 60 +326 310 +187 239 +556 358 +134 230 +669 503 +710 452 +649 214 +602 333 +688 344 +437 224 +167 232 +361 346 +144 340 +568 58 +360 447 +265 225 +144 210 +288 243 +410 124 +85 126 +616 469 +426 504 +390 354 +359 235 +507 196 +78 100 +144 475 +74 500 +205 335 +95 584 +706 549 +425 381 +479 348 +253 442 +68 57 +130 553 +74 377 +740 359 +736 279 +430 329 +774 174 +315 334 +192 136 +422 77 +248 270 +602 117 +79 286 +52 125 +146 78 +352 328 +712 185 +449 424 +282 467 +219 136 +732 481 +124 384 +757 259 +584 233 +85 342 +406 165 +754 167 +617 503 +754 468 +456 60 +637 559 +54 260 +128 299 +50 84 +334 89 +646 315 +242 492 +326 456 +623 146 +534 440 +782 58 +122 207 +383 107 +595 198 +652 147 +433 197 +147 383 +572 163 +643 480 +432 302 +180 305 +164 496 +538 256 +595 402 +486 195 +124 478 +637 285 +473 369 +756 187 +408 321 +266 65 +110 113 +429 351 +744 434 +522 240 +274 258 +295 416 +451 477 +645 536 +674 319 +262 102 +140 136 +535 588 +137 402 +457 290 +332 288 +79 259 +293 381 +236 192 +682 543 +674 206 +500 139 +545 172 +781 443 +192 114 +379 53 +330 266 +452 137 +598 298 +525 172 +536 355 +406 525 +562 125 +405 445 +718 82 +759 323 +409 290 +673 482 +781 354 +772 106 +336 373 +360 279 +332 111 +677 56 +171 433 +99 228 +304 210 +284 320 +378 149 +302 275 +764 402 +701 163 +639 73 +558 471 +548 212 +575 522 +274 120 +140 +512 159 21 +552 161 30 +487 170 28 +433 188 42 +518 238 52 +492 303 22 +390 237 49 +323 176 55 +573 117 35 +271 138 46 +563 231 33 +543 92 32 +333 100 38 +557 301 30 +208 127 41 +176 101 31 +579 368 53 +301 227 51 +290 314 55 +431 116 52 +299 379 26 +381 166 21 +606 271 46 +511 428 58 +528 313 21 +152 128 25 +337 279 42 +112 135 34 +662 294 32 +712 304 27 +128 179 47 +383 194 30 +274 427 52 +437 409 38 +532 484 26 +240 172 24 +222 379 27 +65 105 54 +340 360 59 +478 67 26 +153 75 29 +198 72 34 +619 153 30 +231 150 23 +383 487 59 +327 61 24 +392 552 28 +406 368 56 +177 326 48 +309 521 44 +392 77 47 +247 219 29 +458 445 39 +253 544 32 +644 236 29 +704 385 57 +127 284 58 +84 324 37 +669 174 58 +658 118 37 +514 121 38 +316 456 32 +256 479 31 +493 365 52 +591 495 51 +446 276 35 +356 583 39 +657 63 47 +412 269 25 +643 536 49 +786 313 54 +493 145 23 +714 266 33 +562 202 20 +641 485 36 +52 155 26 +57 387 47 +110 71 55 +50 265 43 +227 318 32 +555 337 23 +707 94 43 +258 253 41 +582 68 56 +467 223 48 +768 65 36 +388 422 30 +698 471 26 +756 255 52 +73 449 56 +739 147 20 +788 137 55 +213 167 21 +745 471 51 +601 213 31 +786 210 55 +475 98 22 +207 446 46 +193 397 23 +436 54 39 +131 365 33 +181 255 37 +773 523 35 +333 412 45 +276 510 22 +743 422 36 +168 479 48 +237 517 25 +651 405 25 +553 545 52 +477 491 37 +787 588 48 +589 169 37 +431 316 39 +343 244 25 +501 573 58 +81 222 36 +131 521 46 +621 305 26 +50 511 33 +502 274 26 +75 580 48 +204 293 30 +163 546 32 +689 526 39 +660 349 37 +266 98 28 +547 402 23 +757 363 56 +498 198 29 +719 555 26 +225 571 24 +157 424 35 +50 51 58 +258 53 37 +745 570 26 +363 128 20 +691 215 27 +100 395 22 +641 455 20 +138 +89 91 37 92 20 90 68 3 12 36 13 78 87 2 103 8 134 83 136 9 106 77 129 131 127 59 70 108 71 98 139 6 50 62 21 135 65 47 44 95 80 34 11 42 48 123 16 49 102 33 138 81 35 56 132 53 14 19 140 75 112 88 26 104 130 57 40 17 76 82 45 126 55 31 52 93 24 10 114 15 69 23 29 85 4 64 122 67 116 32 51 25 128 100 107 133 118 58 28 27 5 119 46 120 97 54 101 113 121 73 60 72 18 96 94 38 117 63 99 109 22 39 41 7 84 43 61 30 79 125 124 115 66 74 110 86 111 137 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/input.11 b/2018/republic/7-9_d2/senzori/tests/input.11 new file mode 100644 index 0000000..e2febee --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/input.11 @@ -0,0 +1,384 @@ +240 +178 249 +182 527 +178 556 +354 215 +394 396 +309 161 +493 219 +130 92 +714 322 +629 488 +263 423 +246 326 +637 411 +90 573 +352 381 +345 240 +423 187 +480 348 +303 531 +210 481 +545 506 +92 188 +519 132 +580 556 +596 56 +703 288 +713 509 +229 589 +568 236 +592 349 +490 314 +387 340 +75 537 +236 304 +507 502 +495 81 +360 137 +751 97 +359 170 +391 418 +191 279 +430 344 +335 163 +644 392 +471 224 +483 159 +655 264 +777 451 +408 98 +165 463 +104 221 +521 464 +206 86 +275 80 +410 473 +91 256 +433 167 +761 372 +522 188 +689 489 +470 441 +717 192 +150 312 +787 232 +313 321 +756 513 +224 108 +240 427 +75 126 +645 307 +553 255 +718 264 +476 71 +544 79 +633 437 +315 105 +116 551 +98 460 +445 292 +442 513 +368 188 +724 221 +134 436 +551 428 +179 445 +359 490 +227 346 +59 562 +622 378 +789 320 +706 454 +528 492 +452 404 +490 392 +531 283 +368 525 +75 75 +569 443 +736 323 +161 330 +636 529 +675 411 +381 118 +650 145 +578 373 +186 70 +606 409 +728 455 +324 404 +473 268 +747 572 +212 393 +576 419 +599 388 +767 586 +143 284 +571 150 +688 540 +318 79 +576 576 +117 61 +412 407 +477 577 +291 388 +143 527 +635 218 +341 423 +288 499 +151 223 +605 586 +117 506 +430 492 +599 511 +602 102 +187 369 +589 244 +697 378 +410 283 +699 577 +331 127 +72 488 +340 525 +751 302 +386 479 +669 132 +145 560 +212 529 +403 542 +734 545 +275 279 +634 53 +641 583 +489 183 +447 440 +529 261 +339 478 +60 225 +657 355 +441 116 +55 120 +216 318 +227 149 +531 418 +354 300 +685 67 +446 551 +573 84 +245 505 +106 303 +731 485 +124 224 +775 258 +728 85 +742 393 +251 553 +761 217 +401 366 +359 104 +552 559 +318 516 +559 391 +766 423 +506 526 +464 336 +731 524 +510 247 +486 292 +315 351 +192 224 +530 562 +421 66 +679 454 +578 208 +547 469 +558 211 +289 169 +605 262 +314 551 +269 52 +150 62 +247 206 +458 570 +300 200 +660 490 +777 537 +199 428 +259 291 +240 233 +299 130 +315 262 +359 352 +103 487 +608 491 +342 339 +403 499 +773 394 +314 576 +455 181 +221 175 +583 477 +579 277 +174 192 +453 50 +632 175 +239 534 +129 169 +295 61 +667 550 +754 120 +362 81 +259 586 +86 423 +186 119 +610 199 +467 496 +401 53 +567 329 +533 531 +237 56 +51 197 +140 +658 83 45 +609 62 36 +725 80 41 +740 128 26 +710 192 47 +713 115 20 +717 271 40 +644 298 45 +746 211 20 +761 269 48 +752 180 23 +634 381 46 +626 468 47 +539 455 46 +624 430 20 +736 232 24 +672 523 46 +576 463 27 +675 273 30 +577 264 42 +544 221 21 +559 369 35 +492 267 59 +736 304 32 +575 338 30 +621 167 55 +507 511 58 +471 532 25 +789 215 55 +484 578 21 +670 583 50 +689 321 33 +402 228 43 +432 179 36 +610 225 53 +736 556 38 +711 497 35 +532 53 55 +503 147 55 +760 504 32 +472 455 37 +473 387 54 +663 441 41 +571 513 46 +559 181 41 +469 120 24 +442 55 58 +595 376 24 +421 356 30 +576 135 45 +490 336 27 +379 79 28 +497 212 31 +763 582 31 +349 265 30 +661 329 20 +596 585 46 +788 457 51 +420 112 28 +759 395 20 +587 432 24 +690 54 28 +413 407 45 +452 556 31 +345 315 54 +707 450 32 +428 570 24 +570 403 27 +427 527 25 +389 511 39 +527 582 53 +744 445 34 +360 460 57 +396 125 25 +695 396 54 +279 293 50 +419 301 25 +661 134 40 +236 325 36 +194 335 27 +216 365 33 +322 527 56 +223 573 57 +786 525 25 +341 128 50 +279 519 31 +414 475 34 +360 190 23 +158 313 22 +505 413 25 +634 115 21 +195 239 57 +774 325 45 +303 174 58 +249 167 44 +236 405 48 +272 90 56 +255 464 24 +246 259 22 +492 85 46 +714 581 20 +280 407 26 +739 370 26 +169 552 45 +302 339 33 +136 265 32 +737 337 24 +319 54 59 +457 507 24 +647 250 28 +204 459 45 +204 101 29 +773 56 35 +344 396 27 +130 227 37 +127 174 23 +233 125 25 +116 537 34 +158 72 48 +240 508 20 +389 369 22 +369 221 24 +91 66 22 +516 368 36 +61 166 53 +66 221 51 +697 149 35 +61 550 44 +554 304 28 +53 119 32 +142 448 25 +119 487 54 +572 92 29 +102 436 28 +138 103 25 +107 297 28 +606 546 30 +696 228 30 +409 269 38 +436 495 20 +70 +75 5 32 93 71 69 27 17 35 4 95 29 127 26 87 107 100 116 117 102 125 115 73 106 33 25 49 56 80 23 3 70 108 52 82 16 77 9 68 40 44 24 55 67 61 46 119 64 58 36 135 50 88 41 99 86 98 10 126 101 57 139 104 120 37 45 94 76 30 11 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/input.12 b/2018/republic/7-9_d2/senzori/tests/input.12 new file mode 100644 index 0000000..abcc489 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/input.12 @@ -0,0 +1,194 @@ +30 +516 356 +631 429 +173 576 +478 426 +400 308 +265 471 +592 313 +409 529 +204 469 +774 366 +190 149 +759 332 +107 133 +331 185 +362 240 +585 252 +367 336 +509 270 +428 391 +311 352 +666 176 +762 448 +403 358 +386 213 +54 290 +500 192 +512 56 +284 170 +615 110 +570 166 +160 +707 143 46 +749 203 52 +669 132 31 +599 108 50 +725 277 55 +643 205 46 +642 293 49 +710 227 28 +627 155 46 +753 318 26 +636 382 53 +766 86 53 +583 185 29 +729 53 27 +648 56 34 +584 242 44 +689 364 44 +518 199 54 +536 74 51 +630 239 26 +418 190 55 +468 56 56 +762 166 21 +379 150 28 +762 358 35 +461 137 23 +502 159 23 +471 285 59 +639 110 26 +353 126 29 +581 342 34 +368 253 54 +305 247 35 +367 71 48 +561 132 35 +660 442 34 +262 271 25 +296 87 45 +593 294 44 +510 302 26 +759 403 51 +302 293 22 +409 110 46 +379 176 23 +496 100 21 +474 355 54 +654 87 23 +552 376 47 +519 420 50 +776 304 26 +496 487 55 +739 465 42 +258 96 24 +520 259 39 +485 555 28 +582 462 56 +233 67 29 +694 101 27 +631 520 24 +398 402 53 +438 459 29 +698 320 34 +742 240 20 +630 568 42 +263 207 48 +379 304 37 +531 545 50 +680 228 23 +205 242 28 +313 121 22 +324 451 41 +672 265 29 +695 481 49 +205 93 43 +785 469 32 +265 149 51 +217 136 46 +554 221 20 +527 139 21 +702 550 49 +279 420 45 +427 257 37 +308 203 20 +248 369 32 +705 417 28 +764 445 22 +232 284 24 +251 324 31 +585 154 23 +201 387 21 +463 419 46 +589 385 23 +260 487 39 +293 351 38 +142 376 51 +554 506 21 +117 305 36 +84 262 50 +531 334 21 +200 192 49 +316 58 20 +608 425 25 +400 504 44 +67 403 33 +222 453 56 +52 452 28 +311 506 30 +68 180 40 +163 87 21 +333 524 21 +739 505 33 +152 336 30 +145 509 52 +120 196 55 +178 274 35 +76 500 59 +111 428 46 +68 120 37 +472 211 24 +347 394 38 +102 539 28 +174 400 27 +90 359 38 +318 553 23 +771 537 54 +152 582 24 +438 516 35 +688 180 35 +118 91 37 +387 452 26 +590 549 31 +218 320 35 +232 500 21 +781 233 22 +188 52 34 +203 577 44 +277 588 38 +457 583 45 +284 524 21 +98 586 53 +338 194 27 +137 239 31 +159 452 32 +738 158 22 +410 66 28 +360 435 35 +170 133 43 +754 580 35 +345 352 36 +507 589 34 +164 178 21 +787 271 37 +88 90 20 +122 136 25 +653 508 23 +234 521 20 +562 166 27 +410 350 46 +54 556 40 +371 529 27 +145 +57 73 155 126 109 53 28 84 20 76 104 124 97 14 21 46 123 148 60 68 146 77 16 48 96 34 74 137 7 43 37 3 55 47 18 111 81 114 39 79 136 149 87 63 2 93 52 140 105 100 98 83 61 13 82 78 133 117 66 128 135 99 158 42 67 127 132 11 12 151 157 139 153 95 23 112 45 88 106 58 107 17 15 150 33 51 145 89 119 103 50 26 143 71 31 152 115 41 85 49 94 19 56 9 160 125 72 86 59 6 30 24 121 70 92 118 120 36 27 138 122 91 156 80 40 75 101 5 8 113 108 35 29 141 69 134 64 154 62 129 54 10 116 130 90 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/input.13 b/2018/republic/7-9_d2/senzori/tests/input.13 new file mode 100644 index 0000000..6bbb700 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/input.13 @@ -0,0 +1,194 @@ +30 +288 78 +719 438 +767 289 +648 465 +468 566 +317 414 +359 518 +431 316 +416 122 +605 97 +504 334 +297 129 +677 474 +522 346 +475 55 +124 229 +698 573 +339 227 +467 536 +602 405 +519 70 +602 501 +562 278 +100 202 +372 275 +130 249 +708 488 +124 481 +787 292 +402 150 +160 +202 427 39 +130 450 59 +112 527 30 +251 421 47 +262 374 31 +304 381 46 +334 343 29 +139 497 25 +141 368 26 +378 331 59 +424 384 27 +154 545 49 +459 314 46 +235 327 29 +244 529 47 +87 378 50 +287 326 33 +287 569 25 +384 445 51 +341 561 44 +293 477 57 +531 329 30 +396 580 44 +453 550 41 +464 354 23 +561 344 26 +506 584 28 +172 580 21 +333 274 33 +517 294 21 +570 404 51 +487 512 36 +117 336 34 +567 456 26 +194 473 30 +444 408 22 +252 283 23 +513 221 58 +527 500 34 +348 219 32 +79 553 45 +264 192 59 +84 455 22 +583 292 58 +144 402 31 +576 168 53 +578 542 59 +223 135 54 +505 320 22 +376 383 24 +650 347 42 +164 158 42 +664 126 48 +51 519 22 +663 415 57 +686 181 48 +636 554 25 +87 506 21 +733 388 59 +352 487 35 +196 223 58 +676 582 37 +789 391 29 +653 64 52 +330 199 21 +745 185 27 +397 225 53 +366 262 36 +235 585 29 +108 234 43 +191 388 35 +404 480 24 +626 189 22 +628 253 46 +501 358 29 +152 275 34 +630 502 21 +68 292 38 +475 148 46 +788 192 38 +270 130 33 +709 234 43 +251 55 38 +207 538 23 +423 315 25 +777 484 52 +779 324 24 +76 253 25 +210 174 23 +723 503 57 +178 506 39 +272 240 32 +784 533 29 +699 320 55 +352 420 30 +508 417 40 +561 123 38 +516 65 49 +426 512 45 +548 247 23 +109 156 32 +214 271 33 +70 185 55 +69 427 26 +778 572 23 +507 122 22 +766 121 45 +638 458 21 +417 127 30 +133 97 30 +551 581 32 +622 103 43 +751 56 29 +609 372 46 +777 154 20 +438 186 47 +601 55 30 +201 336 36 +672 271 20 +319 305 35 +454 244 41 +730 273 38 +462 78 52 +124 64 34 +664 553 21 +349 148 44 +404 163 23 +710 452 34 +73 77 38 +197 104 25 +497 462 50 +710 576 20 +173 55 27 +787 277 44 +427 452 24 +774 439 32 +383 50 51 +568 74 23 +56 122 40 +592 221 50 +222 497 21 +698 92 23 +516 552 28 +303 81 44 +60 484 43 +118 583 48 +609 573 23 +745 217 22 +766 231 20 +77 338 21 +745 312 29 +674 245 28 +162 322 29 +406 270 37 +758 351 26 +392 511 23 +229 457 36 +94 119 24 +243 88 22 +717 151 30 +15 +149 96 63 16 32 95 159 7 55 65 25 97 56 110 44 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/input.14 b/2018/republic/7-9_d2/senzori/tests/input.14 new file mode 100644 index 0000000..b388d54 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/input.14 @@ -0,0 +1,74 @@ +50 +471 80 +594 356 +587 113 +541 101 +581 190 +545 396 +501 114 +644 252 +582 383 +355 132 +586 260 +633 171 +667 161 +490 47 +442 54 +384 116 +613 88 +401 52 +653 206 +654 64 +614 252 +415 110 +695 46 +544 255 +380 68 +491 89 +561 221 +519 98 +574 339 +545 131 +605 320 +683 62 +709 131 +665 244 +514 35 +570 239 +621 345 +651 84 +447 102 +573 88 +570 136 +645 122 +521 123 +687 98 +661 45 +676 131 +441 75 +695 155 +480 107 +610 222 +20 +583 89 18 +614 107 38 +626 173 32 +578 197 27 +544 192 15 +643 246 47 +686 146 36 +539 97 37 +499 74 47 +561 126 21 +574 238 44 +409 79 47 +368 133 25 +600 278 36 +443 127 14 +418 120 15 +594 340 32 +560 382 25 +540 134 16 +677 74 46 +1 +8 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/input.15 b/2018/republic/7-9_d2/senzori/tests/input.15 new file mode 100644 index 0000000..a32956d --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/input.15 @@ -0,0 +1,634 @@ +450 +593 375 +537 259 +659 113 +395 185 +190 324 +405 332 +301 54 +774 69 +527 472 +142 292 +163 298 +337 166 +137 344 +353 186 +632 275 +436 335 +445 267 +737 272 +315 106 +138 93 +89 377 +733 239 +197 199 +224 65 +559 206 +757 240 +777 103 +677 211 +502 65 +395 446 +671 74 +574 57 +513 406 +468 121 +131 186 +267 56 +710 164 +395 62 +228 111 +244 344 +282 208 +714 211 +242 392 +320 392 +642 251 +121 130 +74 271 +111 89 +94 399 +788 164 +741 196 +621 373 +626 175 +737 157 +72 348 +334 278 +419 108 +272 268 +201 143 +339 95 +684 315 +789 190 +419 467 +767 181 +630 112 +259 367 +318 358 +536 213 +690 279 +442 364 +687 89 +380 165 +440 391 +393 107 +334 70 +250 263 +185 78 +357 289 +335 223 +489 357 +47 45 +415 140 +574 363 +595 187 +63 293 +318 241 +112 334 +258 105 +320 312 +119 310 +356 432 +498 317 +744 90 +299 161 +221 320 +608 226 +489 44 +533 136 +379 288 +502 145 +638 314 +568 325 +75 199 +286 246 +509 345 +553 101 +584 118 +613 52 +612 88 +202 116 +771 204 +123 161 +466 309 +275 76 +438 160 +113 260 +559 185 +553 415 +106 110 +448 185 +114 235 +152 254 +241 167 +652 84 +321 151 +230 211 +132 36 +471 187 +358 152 +99 295 +424 353 +399 352 +388 206 +49 160 +471 95 +190 243 +671 232 +621 254 +162 103 +571 168 +574 83 +249 75 +339 365 +272 389 +102 190 +640 160 +508 181 +447 137 +138 225 +579 218 +396 250 +485 391 +533 64 +480 428 +153 194 +506 102 +355 408 +360 377 +193 31 +487 167 +324 420 +467 209 +412 39 +74 310 +312 127 +514 241 +101 138 +278 290 +718 125 +70 130 +309 189 +352 315 +640 192 +166 148 +572 384 +637 353 +415 495 +470 75 +49 77 +268 348 +420 169 +428 61 +131 61 +718 70 +491 454 +754 64 +165 337 +615 153 +659 302 +91 222 +538 191 +767 148 +186 167 +359 59 +581 283 +460 333 +762 272 +285 311 +640 222 +394 82 +510 40 +446 430 +763 32 +517 448 +414 261 +629 133 +439 211 +275 125 +394 310 +605 305 +203 341 +409 233 +239 288 +665 153 +525 306 +214 251 +301 383 +463 149 +668 267 +695 179 +415 371 +532 352 +758 116 +454 290 +628 72 +324 43 +69 370 +213 290 +330 258 +375 358 +152 45 +111 209 +544 154 +361 101 +747 45 +176 51 +191 265 +625 294 +199 53 +449 60 +750 295 +385 233 +552 225 +600 267 +529 432 +471 262 +536 238 +536 89 +342 454 +409 412 +694 110 +382 411 +308 210 +372 393 +93 259 +675 345 +493 277 +184 293 +168 176 +318 440 +609 202 +284 372 +220 91 +221 147 +141 120 +559 271 +54 223 +445 100 +775 254 +248 226 +147 170 +553 125 +714 279 +53 199 +53 315 +531 379 +646 51 +688 48 +558 299 +390 374 +64 175 +312 76 +594 349 +355 338 +358 80 +372 137 +602 133 +399 128 +737 216 +378 328 +199 95 +347 134 +367 265 +542 322 +488 297 +787 85 +120 363 +658 358 +227 44 +267 326 +269 226 +605 395 +79 153 +507 380 +296 34 +431 283 +208 220 +720 104 +78 87 +360 246 +541 284 +124 278 +272 179 +683 131 +429 315 +93 348 +402 278 +782 41 +229 360 +112 387 +178 224 +168 269 +463 414 +420 443 +725 181 +178 353 +300 328 +96 73 +570 250 +432 231 +359 209 +78 241 +665 185 +252 128 +538 451 +668 35 +445 454 +377 40 +343 392 +553 71 +576 147 +591 68 +75 109 +216 184 +53 270 +463 354 +619 335 +158 230 +313 272 +416 212 +274 156 +301 292 +250 206 +162 70 +300 231 +293 108 +571 406 +586 33 +171 126 +483 138 +430 126 +153 318 +473 282 +88 171 +740 127 +249 148 +661 326 +74 63 +719 258 +481 337 +624 34 +373 308 +500 432 +703 144 +540 44 +656 208 +292 88 +401 393 +462 169 +607 113 +428 194 +249 47 +98 53 +415 83 +223 271 +243 315 +436 41 +333 202 +44 99 +206 74 +533 408 +402 157 +265 249 +228 231 +176 203 +522 327 +141 149 +524 114 +430 414 +465 385 +441 80 +550 392 +489 118 +468 52 +489 85 +417 299 +42 181 +649 132 +86 327 +516 162 +593 323 +580 305 +780 131 +693 199 +132 247 +240 94 +331 118 +697 222 +56 336 +507 471 +593 158 +774 225 +74 392 +290 139 +592 97 +169 32 +259 301 +687 157 +491 197 +375 188 +685 247 +696 70 +182 106 +517 81 +599 244 +491 411 +375 116 +650 284 +730 291 +292 274 +235 191 +58 249 +765 87 +201 306 +432 251 +578 198 +381 431 +377 71 +549 341 +678 295 +180 +496 149 29 +495 109 33 +465 147 11 +527 136 18 +434 140 25 +538 107 36 +569 114 11 +406 125 18 +394 100 36 +368 131 29 +431 165 18 +568 75 22 +320 149 35 +495 68 35 +401 150 21 +263 153 36 +479 134 16 +605 50 34 +462 189 25 +208 133 32 +197 97 10 +175 150 30 +422 65 37 +334 183 31 +186 196 24 +211 194 15 +197 159 17 +139 169 39 +600 104 35 +122 196 23 +91 140 28 +451 149 13 +314 215 13 +445 207 18 +281 97 32 +140 110 31 +386 57 22 +82 211 36 +359 95 33 +247 176 12 +290 226 37 +139 87 14 +91 83 33 +389 182 32 +399 207 13 +367 64 15 +308 198 19 +426 199 22 +302 64 38 +408 236 34 +233 72 33 +145 54 27 +336 265 34 +427 103 22 +252 249 20 +309 305 27 +351 144 12 +642 74 26 +458 106 20 +321 286 17 +97 108 14 +218 166 23 +402 284 19 +363 218 23 +442 275 27 +380 287 12 +526 63 26 +257 118 20 +676 57 27 +602 144 20 +97 185 12 +158 133 18 +195 240 30 +212 264 19 +145 210 19 +647 115 28 +684 96 23 +111 251 36 +215 286 20 +243 296 12 +57 87 21 +65 68 13 +276 291 26 +562 151 32 +276 74 10 +622 132 17 +356 299 32 +270 263 12 +689 129 15 +160 245 21 +182 105 12 +192 279 23 +454 323 35 +376 260 16 +561 193 39 +605 207 16 +540 237 29 +656 164 28 +479 292 26 +459 297 12 +418 328 36 +241 98 14 +306 99 17 +264 317 24 +563 276 29 +69 270 26 +701 149 22 +66 105 11 +603 291 31 +634 182 14 +658 201 12 +408 369 29 +335 223 25 +73 165 20 +515 338 38 +432 400 19 +239 187 11 +50 51 18 +439 362 14 +629 196 12 +648 227 19 +490 403 35 +111 154 10 +447 121 10 +465 270 16 +239 216 24 +98 292 24 +712 120 22 +540 408 22 +50 171 16 +496 186 16 +503 315 13 +424 438 36 +630 101 11 +641 259 31 +731 89 20 +519 394 25 +617 236 22 +417 482 16 +79 320 15 +759 55 29 +181 56 30 +320 246 14 +623 157 21 +758 88 34 +709 72 14 +585 326 22 +753 137 30 +446 414 11 +583 381 31 +668 242 20 +216 314 14 +380 323 21 +352 338 16 +773 185 28 +485 318 12 +613 331 23 +61 325 16 +365 368 29 +256 365 33 +392 415 22 +694 189 36 +156 291 36 +120 332 34 +748 224 31 +458 81 11 +741 262 37 +531 189 13 +92 370 32 +431 297 13 +341 423 34 +670 274 26 +191 327 33 +552 326 11 +655 331 36 +482 437 14 +334 385 36 +171 117 18 +604 360 26 +515 452 28 +170 +103 71 172 91 46 173 158 88 174 20 136 42 159 95 67 135 65 76 5 22 105 79 41 9 149 24 150 119 161 107 17 37 82 127 52 165 92 73 19 94 89 100 28 142 164 44 62 160 66 179 132 84 78 152 85 14 16 30 27 124 15 120 130 87 86 101 50 176 10 26 138 39 90 175 144 115 121 60 74 128 45 140 70 58 116 93 48 154 180 18 123 171 106 126 61 11 145 156 4 63 81 129 43 169 131 168 23 83 54 33 36 141 177 34 96 35 109 6 157 146 137 40 178 69 80 143 75 139 49 64 108 55 51 148 12 153 167 151 38 97 118 77 98 99 31 111 2 166 163 112 162 47 113 7 147 68 72 134 25 102 8 13 56 122 114 32 110 53 59 125 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/input.16 b/2018/republic/7-9_d2/senzori/tests/input.16 new file mode 100644 index 0000000..e743e37 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/input.16 @@ -0,0 +1,634 @@ +450 +217 192 +490 208 +514 475 +731 522 +696 512 +345 462 +164 240 +564 460 +272 63 +290 125 +391 453 +424 486 +376 180 +159 51 +138 143 +404 553 +617 523 +759 569 +254 390 +303 431 +640 514 +403 321 +227 252 +429 172 +245 242 +689 559 +204 326 +392 102 +226 272 +563 254 +311 329 +483 424 +420 401 +674 510 +128 83 +524 568 +469 146 +127 200 +115 323 +497 367 +232 149 +633 253 +162 444 +497 401 +518 375 +345 236 +335 382 +591 505 +453 223 +298 172 +137 394 +683 485 +88 537 +263 98 +100 501 +491 186 +530 174 +305 76 +288 220 +280 187 +395 285 +232 77 +171 466 +214 367 +372 586 +220 303 +242 193 +623 400 +454 315 +214 448 +607 420 +460 272 +91 281 +515 242 +395 409 +248 270 +363 474 +203 75 +264 130 +212 110 +450 162 +250 318 +120 278 +182 331 +391 501 +245 221 +459 470 +643 447 +309 280 +606 491 +165 384 +407 532 +185 283 +88 451 +285 407 +284 303 +504 420 +268 569 +118 386 +354 188 +378 205 +530 224 +586 566 +212 387 +570 361 +357 383 +362 447 +305 587 +499 163 +334 430 +105 297 +104 424 +319 498 +48 436 +566 515 +152 424 +689 441 +668 416 +424 321 +286 546 +344 408 +612 257 +642 422 +460 493 +172 216 +434 559 +313 239 +684 324 +183 251 +233 409 +306 379 +605 541 +261 495 +685 589 +720 577 +372 240 +382 132 +198 52 +660 328 +257 364 +238 53 +180 130 +450 443 +91 345 +195 189 +608 576 +209 479 +85 303 +244 129 +64 475 +109 113 +538 366 +302 204 +548 576 +335 575 +504 450 +289 272 +88 116 +505 521 +363 267 +283 521 +348 553 +276 167 +479 382 +485 544 +520 270 +113 182 +343 325 +447 251 +320 460 +661 288 +483 467 +204 265 +133 364 +394 259 +248 474 +156 296 +523 499 +353 294 +227 469 +409 178 +664 443 +650 588 +777 556 +342 530 +592 380 +188 103 +708 412 +412 430 +749 535 +66 499 +161 89 +346 491 +712 549 +344 157 +401 223 +322 520 +285 86 +295 493 +568 424 +448 409 +77 414 +158 488 +443 358 +696 348 +388 82 +588 450 +344 356 +324 180 +332 217 +609 465 +522 194 +391 152 +105 140 +129 420 +342 119 +521 541 +382 392 +143 331 +550 490 +190 159 +486 250 +317 362 +264 253 +132 514 +297 452 +271 319 +336 266 +295 105 +604 357 +514 345 +208 411 +573 482 +93 183 +252 73 +588 260 +488 492 +253 161 +595 290 +64 520 +106 259 +289 248 +710 493 +115 533 +529 417 +731 498 +222 341 +159 354 +323 313 +190 489 +69 442 +259 587 +270 446 +177 421 +474 312 +128 461 +649 367 +538 516 +587 400 +620 316 +545 451 +520 290 +367 83 +383 347 +265 413 +334 73 +193 215 +319 401 +639 545 +164 269 +497 270 +417 149 +525 589 +407 346 +443 332 +593 320 +539 279 +50 539 +467 206 +633 335 +191 453 +289 364 +167 151 +422 198 +569 538 +84 323 +369 324 +582 587 +144 267 +772 531 +417 571 +383 525 +149 111 +542 207 +678 536 +419 466 +467 239 +624 357 +274 385 +82 486 +192 372 +150 182 +553 396 +128 105 +334 98 +653 402 +665 558 +176 72 +750 515 +629 295 +261 342 +268 216 +182 306 +150 217 +470 333 +454 387 +101 467 +225 217 +505 582 +207 237 +129 59 +129 490 +500 290 +715 440 +464 185 +381 556 +291 343 +390 474 +313 156 +598 241 +298 472 +303 533 +68 287 +240 350 +277 478 +371 412 +396 572 +418 235 +429 298 +211 151 +421 255 +700 532 +638 385 +417 370 +524 455 +733 558 +113 349 +633 566 +502 558 +351 589 +289 573 +558 228 +416 512 +357 515 +434 427 +482 351 +678 464 +159 132 +139 165 +541 540 +400 197 +314 551 +248 442 +101 160 +151 468 +233 97 +592 340 +446 142 +372 367 +370 154 +548 427 +625 438 +739 584 +223 171 +463 361 +308 135 +136 306 +370 498 +375 295 +444 202 +515 149 +267 291 +397 367 +233 374 +330 478 +289 148 +429 539 +139 441 +85 517 +705 459 +321 114 +449 293 +199 346 +238 290 +499 226 +371 109 +473 444 +191 33 +402 387 +652 309 +197 433 +674 304 +304 306 +200 134 +118 441 +405 133 +188 398 +314 95 +480 287 +518 435 +541 255 +624 589 +362 129 +438 459 +228 432 +162 323 +618 380 +658 533 +691 401 +537 473 +156 402 +309 259 +89 96 +55 415 +64 309 +479 164 +100 402 +392 429 +169 112 +722 477 +430 219 +355 426 +363 536 +588 525 +171 35 +149 73 +229 322 +283 430 +292 60 +223 131 +476 402 +620 277 +530 395 +208 285 +658 348 +436 378 +330 293 +427 346 +570 381 +302 513 +180 +429 408 37 +450 373 25 +462 426 16 +386 406 28 +345 408 16 +415 347 36 +356 400 11 +390 309 28 +480 402 33 +366 272 38 +363 238 12 +506 389 21 +506 452 31 +435 319 32 +399 274 15 +312 286 35 +260 265 31 +449 351 14 +338 309 30 +508 355 21 +309 410 35 +415 442 17 +401 473 32 +285 260 19 +484 344 11 +316 378 23 +334 342 22 +460 459 39 +228 259 16 +468 291 25 +318 224 33 +267 362 39 +324 457 34 +263 224 23 +360 470 12 +449 486 16 +222 299 22 +542 431 33 +316 332 19 +576 408 23 +297 174 35 +530 372 26 +298 511 30 +298 132 17 +211 397 36 +210 254 21 +203 323 34 +300 467 15 +589 479 37 +571 375 19 +196 294 12 +224 189 33 +260 323 14 +257 140 38 +588 532 38 +411 378 20 +195 434 17 +653 543 36 +321 522 16 +278 450 24 +603 571 30 +164 435 29 +339 172 11 +669 584 24 +295 335 23 +313 156 11 +191 191 16 +266 401 22 +370 139 38 +214 278 18 +216 110 24 +348 193 18 +183 68 38 +131 417 37 +415 162 26 +346 480 15 +481 498 13 +239 339 11 +177 382 24 +195 149 33 +175 99 18 +247 413 20 +211 226 18 +238 230 20 +375 523 37 +351 429 13 +364 105 13 +385 375 24 +329 254 23 +369 185 24 +100 404 10 +417 512 19 +378 85 19 +457 247 33 +349 545 28 +342 578 19 +259 428 14 +177 227 31 +340 116 23 +130 133 36 +208 352 16 +230 446 31 +90 109 16 +154 224 12 +138 79 26 +475 329 11 +238 64 26 +451 163 32 +550 397 26 +491 175 22 +516 224 34 +500 289 14 +264 480 25 +343 520 18 +196 463 29 +75 433 31 +294 104 38 +101 433 13 +704 549 21 +441 218 31 +723 586 33 +522 482 33 +290 576 37 +317 566 20 +392 212 28 +184 248 12 +283 313 22 +124 172 37 +129 480 39 +365 382 12 +619 371 35 +553 466 32 +682 503 23 +525 532 30 +386 167 17 +105 518 32 +523 565 31 +600 418 28 +152 349 31 +752 541 36 +494 552 18 +512 264 33 +698 572 14 +154 316 29 +91 491 21 +98 165 15 +566 554 12 +75 512 23 +56 531 19 +647 431 34 +370 576 30 +683 434 36 +353 366 11 +527 202 10 +215 72 15 +375 458 26 +620 309 36 +718 493 19 +333 81 22 +649 331 22 +125 289 38 +74 296 20 +274 64 21 +518 184 28 +509 161 16 +593 335 22 +101 322 34 +617 266 25 +197 211 15 +666 293 17 +687 332 21 +591 255 18 +147 196 12 +412 247 31 +168 290 26 +412 553 26 +391 94 12 +285 200 22 +70 479 23 +544 253 31 +90 +118 17 137 179 84 115 170 24 141 117 37 146 175 76 41 108 128 96 98 178 72 31 99 135 82 30 164 122 60 88 71 77 114 149 13 35 150 16 171 129 180 42 81 148 158 48 166 39 45 4 87 7 168 20 59 131 107 33 160 161 145 102 140 85 134 124 136 14 104 123 91 32 147 29 132 27 43 154 97 95 63 15 126 28 50 58 64 75 18 44 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/input.17 b/2018/republic/7-9_d2/senzori/tests/input.17 new file mode 100644 index 0000000..56e27b4 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/input.17 @@ -0,0 +1,223 @@ +20 +649 354 +168 360 +288 195 +358 434 +529 487 +781 380 +441 564 +734 341 +244 229 +385 488 +704 436 +689 372 +428 498 +452 507 +204 226 +627 328 +633 224 +676 59 +334 500 +735 256 +199 +708 241 20 +709 288 38 +748 270 31 +694 352 34 +783 279 20 +765 315 33 +666 379 23 +722 342 19 +751 227 17 +647 338 33 +740 379 32 +580 333 38 +773 376 13 +753 423 31 +622 381 39 +615 307 14 +660 294 38 +770 228 15 +663 227 37 +596 399 14 +627 430 30 +556 388 27 +594 446 15 +645 472 21 +588 475 26 +626 484 15 +743 336 21 +785 433 36 +789 240 14 +620 277 10 +644 190 34 +543 362 26 +695 264 11 +557 449 25 +541 329 24 +678 473 27 +536 414 37 +621 147 38 +681 163 26 +703 516 32 +483 412 26 +709 132 25 +490 336 32 +592 521 36 +598 210 36 +674 546 36 +554 491 36 +558 554 21 +690 208 22 +664 136 20 +654 408 14 +539 538 10 +476 375 19 +726 213 14 +454 367 11 +769 288 12 +724 488 13 +725 159 21 +585 145 17 +699 390 11 +743 118 16 +666 179 11 +522 304 12 +580 563 20 +671 442 21 +751 212 11 +450 341 33 +714 418 23 +531 570 36 +517 531 17 +702 567 11 +398 309 36 +411 377 39 +449 420 27 +783 338 14 +606 252 17 +656 511 15 +429 265 29 +703 177 10 +708 458 28 +540 185 35 +425 469 37 +519 208 23 +608 494 15 +733 190 22 +670 400 18 +587 89 32 +766 175 17 +566 220 25 +768 393 11 +595 286 16 +768 152 15 +393 456 27 +490 306 26 +404 507 23 +508 266 22 +349 305 22 +618 178 18 +789 215 20 +634 532 35 +332 262 34 +419 228 33 +322 324 22 +608 233 14 +771 115 28 +685 95 24 +460 256 27 +491 589 25 +355 371 24 +401 554 35 +453 533 38 +655 118 10 +355 446 16 +619 103 20 +385 255 20 +544 258 35 +274 336 34 +372 581 20 +506 482 29 +503 243 11 +590 171 19 +235 345 24 +781 298 11 +491 272 13 +727 83 22 +720 320 24 +408 185 25 +303 339 23 +442 157 22 +376 203 39 +627 260 12 +679 586 17 +315 199 32 +503 152 36 +201 320 32 +213 276 21 +734 68 11 +156 308 33 +339 214 11 +340 556 31 +471 232 11 +685 63 37 +352 162 21 +302 275 13 +492 547 23 +499 192 24 +125 289 26 +543 299 21 +417 428 29 +622 293 15 +209 242 23 +91 257 26 +265 360 12 +169 362 33 +290 245 18 +450 292 38 +749 62 18 +769 195 23 +241 314 20 +472 189 28 +500 394 19 +306 525 29 +266 253 16 +654 155 16 +253 507 31 +217 471 27 +317 403 37 +193 473 18 +248 242 19 +377 528 21 +294 217 21 +518 332 12 +459 477 29 +338 343 27 +326 467 22 +347 489 28 +313 136 32 +612 468 19 +386 481 11 +228 376 23 +288 173 25 +761 476 22 +448 446 12 +214 539 37 +123 265 12 +399 151 18 +331 108 20 +503 104 34 +160 454 32 +567 118 15 +478 61 38 +371 325 21 +150 253 23 +744 80 11 +381 395 16 +258 265 12 +284 101 16 +598 424 19 +211 577 38 +184 +136 76 126 105 152 141 81 92 122 63 127 190 103 189 66 186 114 187 156 132 90 116 28 191 89 77 10 43 2 57 86 165 44 75 62 170 145 54 155 68 166 164 35 83 51 6 183 97 94 13 55 21 50 135 17 133 39 176 161 147 29 129 95 33 180 192 110 40 151 18 160 153 84 42 11 38 128 73 71 58 121 104 98 142 36 123 88 27 177 124 106 184 157 144 173 25 188 197 125 131 32 20 3 61 74 112 146 154 168 130 70 199 181 56 108 49 195 115 78 102 23 64 9 148 19 198 134 91 48 138 185 59 53 80 69 119 14 163 100 109 143 174 67 117 82 26 87 12 140 72 171 4 52 5 182 113 65 167 34 150 111 46 41 137 85 172 139 96 60 120 169 158 159 30 31 162 175 15 8 45 99 194 16 178 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/input.18 b/2018/republic/7-9_d2/senzori/tests/input.18 new file mode 100644 index 0000000..9ab2989 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/input.18 @@ -0,0 +1,223 @@ +20 +396 327 +690 202 +595 148 +254 338 +567 376 +441 463 +423 190 +188 242 +505 421 +308 149 +450 428 +721 568 +711 233 +762 489 +782 83 +557 339 +732 224 +272 249 +578 551 +673 66 +199 +586 327 23 +643 317 39 +566 353 35 +653 356 39 +609 263 35 +690 334 22 +659 232 30 +598 406 32 +586 237 29 +602 435 14 +566 439 24 +672 312 12 +630 403 18 +725 304 37 +663 396 34 +643 429 12 +621 199 24 +663 273 14 +670 328 14 +547 301 25 +765 297 10 +761 249 36 +688 206 16 +559 269 21 +765 339 35 +526 238 27 +574 391 15 +535 435 37 +508 501 38 +701 377 24 +692 230 23 +685 254 20 +723 213 26 +494 443 27 +591 290 15 +766 312 10 +623 445 12 +445 431 27 +565 483 24 +510 278 39 +511 571 35 +559 206 15 +734 343 16 +421 429 16 +392 394 32 +479 568 22 +447 259 37 +743 368 21 +459 291 11 +579 466 10 +337 404 29 +431 202 32 +540 208 19 +400 198 12 +386 198 14 +433 294 22 +507 387 27 +587 501 16 +471 221 20 +302 378 17 +396 246 24 +360 253 25 +696 181 32 +746 273 11 +517 316 15 +350 289 29 +462 507 39 +495 307 23 +626 229 22 +606 451 17 +596 517 18 +734 403 18 +429 393 29 +708 255 13 +716 422 24 +533 527 14 +755 420 34 +441 576 24 +598 541 17 +351 348 36 +584 198 36 +774 191 35 +315 439 29 +748 471 28 +677 449 34 +651 185 20 +347 475 34 +576 175 11 +782 460 36 +388 434 14 +359 320 17 +384 459 16 +625 474 38 +486 254 26 +572 154 31 +787 397 29 +592 481 23 +551 544 21 +548 107 36 +716 478 12 +404 328 30 +513 137 37 +529 175 35 +505 191 22 +449 360 23 +635 510 20 +619 154 26 +326 371 30 +568 252 11 +468 343 12 +577 564 20 +274 373 35 +308 247 39 +545 406 14 +755 151 25 +461 95 36 +472 392 38 +453 168 31 +776 498 23 +718 360 12 +671 521 24 +648 125 31 +713 336 17 +282 475 34 +676 573 37 +589 85 34 +420 449 21 +628 589 31 +383 302 20 +355 442 26 +603 133 13 +456 122 14 +682 90 30 +241 515 27 +499 474 11 +252 487 11 +291 199 39 +468 581 10 +776 145 12 +311 505 19 +789 279 24 +268 266 12 +281 160 25 +668 154 17 +303 296 21 +710 82 19 +711 443 13 +334 194 18 +728 150 11 +617 343 13 +332 154 29 +243 204 30 +264 538 30 +735 179 39 +299 339 39 +372 114 37 +496 95 27 +404 178 23 +496 536 22 +480 178 11 +267 234 38 +405 416 10 +243 330 37 +209 324 12 +496 63 27 +379 334 15 +265 436 19 +778 106 38 +404 278 28 +412 560 28 +725 114 35 +411 79 36 +436 475 23 +388 586 11 +442 321 10 +712 572 31 +718 274 23 +776 51 39 +613 370 11 +222 380 28 +258 299 24 +226 258 21 +704 137 14 +454 332 10 +240 444 33 +391 544 21 +234 560 22 +404 216 20 +357 145 24 +177 264 31 +729 238 18 +504 421 13 +489 343 26 +428 227 13 +752 92 15 +196 538 32 +509 222 14 +560 59 21 +225 489 16 +198 +100 169 6 132 65 78 189 142 35 57 45 158 92 97 139 55 69 109 160 111 186 187 121 108 115 101 112 74 157 95 2 16 185 120 41 8 47 87 193 44 37 27 124 21 171 79 172 96 77 11 103 114 181 84 25 150 177 140 31 173 48 24 166 68 161 196 89 194 130 102 63 20 123 7 156 183 110 117 175 159 190 147 199 59 73 50 54 36 163 22 136 134 91 125 143 64 127 51 76 129 99 30 15 165 70 162 49 71 10 145 58 192 38 118 138 3 66 62 43 17 53 83 133 29 39 170 105 113 12 33 144 72 85 141 61 23 28 155 13 176 184 98 42 154 151 107 178 34 93 14 60 164 180 135 195 137 26 191 126 146 56 182 88 46 174 167 67 4 75 131 32 152 18 106 52 188 128 122 81 86 80 148 90 104 19 168 119 179 197 149 198 40 116 9 5 94 82 153 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/input.19 b/2018/republic/7-9_d2/senzori/tests/input.19 new file mode 100644 index 0000000..87581d5 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/input.19 @@ -0,0 +1,223 @@ +20 +619 80 +146 529 +128 382 +329 577 +43 298 +210 320 +453 366 +175 480 +172 370 +279 395 +237 161 +491 52 +430 519 +313 457 +522 94 +435 338 +565 468 +625 492 +209 173 +535 516 +199 +320 325 34 +374 339 26 +366 303 37 +325 383 28 +295 366 17 +318 291 31 +300 265 22 +410 362 25 +381 372 31 +380 264 38 +281 317 36 +440 297 33 +216 315 32 +359 391 15 +355 239 20 +411 341 13 +188 342 38 +218 268 18 +214 375 15 +228 385 15 +184 239 32 +201 400 17 +382 205 38 +173 423 33 +196 282 26 +135 456 25 +158 455 12 +246 320 22 +134 418 32 +101 431 14 +118 385 33 +143 257 35 +82 358 17 +61 427 38 +477 261 38 +263 222 38 +286 350 16 +217 433 28 +51 332 38 +360 438 39 +328 239 17 +397 303 13 +298 416 31 +415 225 11 +177 398 11 +447 252 18 +272 185 36 +240 159 31 +396 325 25 +452 375 37 +256 279 36 +306 228 12 +139 337 16 +237 458 25 +330 350 12 +303 174 21 +277 444 12 +434 338 20 +187 203 21 +254 490 27 +283 156 22 +310 454 31 +121 353 15 +435 204 39 +379 173 21 +396 432 15 +122 224 24 +423 417 28 +249 373 19 +206 151 16 +451 162 11 +90 461 22 +211 187 20 +225 527 29 +342 130 39 +197 548 21 +55 387 16 +185 478 30 +176 518 17 +503 324 33 +442 439 30 +158 236 16 +280 532 34 +346 87 36 +130 297 22 +297 477 16 +356 355 15 +311 52 19 +254 134 18 +60 293 25 +173 267 21 +302 143 22 +228 205 16 +154 287 21 +215 224 29 +315 562 23 +173 123 31 +479 463 30 +227 555 13 +509 444 34 +436 150 16 +550 409 29 +254 108 13 +542 319 17 +196 580 20 +480 500 34 +351 483 20 +443 486 32 +183 88 38 +521 380 26 +189 172 31 +308 68 12 +168 499 14 +342 167 23 +266 407 28 +442 102 36 +210 126 20 +92 279 22 +571 396 17 +468 183 36 +156 555 31 +156 316 15 +411 453 22 +376 51 31 +592 389 11 +466 73 14 +406 499 19 +568 432 21 +82 483 11 +148 437 15 +353 561 27 +523 491 23 +486 78 22 +235 546 10 +331 198 35 +161 534 12 +202 109 13 +494 379 17 +148 491 15 +536 462 26 +603 375 22 +290 578 24 +384 577 13 +580 478 30 +429 529 39 +110 548 21 +340 252 12 +459 556 20 +186 305 17 +376 506 25 +499 117 36 +523 71 28 +398 104 32 +482 574 12 +511 53 10 +410 243 26 +542 88 10 +257 589 15 +89 210 20 +472 347 27 +544 108 15 +437 51 24 +485 54 22 +93 186 19 +71 559 32 +534 240 32 +72 504 22 +223 55 20 +216 500 17 +148 74 15 +94 588 35 +231 119 24 +269 119 16 +562 303 15 +65 534 10 +54 188 32 +145 518 18 +157 53 11 +518 564 33 +562 106 17 +315 583 15 +73 385 16 +516 286 31 +414 153 24 +495 159 35 +129 165 29 +503 195 23 +588 420 19 +290 392 11 +90 339 10 +559 515 36 +538 125 15 +604 93 35 +407 579 32 +66 238 24 +614 129 12 +607 515 38 +625 451 32 +300 99 31 +99 +194 71 102 195 36 123 185 179 14 192 163 125 47 8 149 144 199 40 66 90 189 78 20 64 89 155 53 28 158 39 17 167 162 105 57 161 131 52 181 126 6 191 166 77 157 148 85 7 84 132 146 133 152 55 140 110 80 46 88 109 11 138 96 93 141 164 87 151 145 82 68 83 112 173 31 184 95 62 196 42 2 147 122 175 190 10 69 97 63 5 48 3 134 44 43 114 124 121 16 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/input.20 b/2018/republic/7-9_d2/senzori/tests/input.20 new file mode 100644 index 0000000..919a475 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/input.20 @@ -0,0 +1,15 @@ +8 +217 60 +217 107 +231 75 +181 123 +270 88 +212 130 +254 103 +190 90 +3 +194 108 31 +224 71 31 +255 88 26 +1 +2 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/output.01 b/2018/republic/7-9_d2/senzori/tests/output.01 new file mode 100644 index 0000000..301160a --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/output.01 @@ -0,0 +1 @@ +8 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/output.02 b/2018/republic/7-9_d2/senzori/tests/output.02 new file mode 100644 index 0000000..b393560 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/output.02 @@ -0,0 +1 @@ +23 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/output.03 b/2018/republic/7-9_d2/senzori/tests/output.03 new file mode 100644 index 0000000..d2e1cef --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/output.03 @@ -0,0 +1 @@ +44 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/output.04 b/2018/republic/7-9_d2/senzori/tests/output.04 new file mode 100644 index 0000000..f70d7bb --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/output.04 @@ -0,0 +1 @@ +42 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/output.05 b/2018/republic/7-9_d2/senzori/tests/output.05 new file mode 100644 index 0000000..9d1ce53 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/output.05 @@ -0,0 +1 @@ +82 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/output.06 b/2018/republic/7-9_d2/senzori/tests/output.06 new file mode 100644 index 0000000..615be70 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/output.06 @@ -0,0 +1 @@ +85 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/output.07 b/2018/republic/7-9_d2/senzori/tests/output.07 new file mode 100644 index 0000000..3cacc0b --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/output.07 @@ -0,0 +1 @@ +12 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/output.08 b/2018/republic/7-9_d2/senzori/tests/output.08 new file mode 100644 index 0000000..978b4e8 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/output.08 @@ -0,0 +1 @@ +26 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/output.09 b/2018/republic/7-9_d2/senzori/tests/output.09 new file mode 100644 index 0000000..d7f3668 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/output.09 @@ -0,0 +1 @@ +98 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/output.10 b/2018/republic/7-9_d2/senzori/tests/output.10 new file mode 100644 index 0000000..06690d5 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/output.10 @@ -0,0 +1 @@ +238 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/output.11 b/2018/republic/7-9_d2/senzori/tests/output.11 new file mode 100644 index 0000000..a46c9d2 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/output.11 @@ -0,0 +1 @@ +91 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/output.12 b/2018/republic/7-9_d2/senzori/tests/output.12 new file mode 100644 index 0000000..b5045cc --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/output.12 @@ -0,0 +1 @@ +21 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/output.13 b/2018/republic/7-9_d2/senzori/tests/output.13 new file mode 100644 index 0000000..56a6051 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/output.13 @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/output.14 b/2018/republic/7-9_d2/senzori/tests/output.14 new file mode 100644 index 0000000..d8263ee --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/output.14 @@ -0,0 +1 @@ +2 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/output.15 b/2018/republic/7-9_d2/senzori/tests/output.15 new file mode 100644 index 0000000..f994536 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/output.15 @@ -0,0 +1 @@ +419 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/output.16 b/2018/republic/7-9_d2/senzori/tests/output.16 new file mode 100644 index 0000000..3021b56 --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/output.16 @@ -0,0 +1 @@ +184 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/output.17 b/2018/republic/7-9_d2/senzori/tests/output.17 new file mode 100644 index 0000000..25bf17f --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/output.17 @@ -0,0 +1 @@ +18 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/output.18 b/2018/republic/7-9_d2/senzori/tests/output.18 new file mode 100644 index 0000000..2edeafb --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/output.18 @@ -0,0 +1 @@ +20 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/output.19 b/2018/republic/7-9_d2/senzori/tests/output.19 new file mode 100644 index 0000000..3cacc0b --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/output.19 @@ -0,0 +1 @@ +12 \ No newline at end of file diff --git a/2018/republic/7-9_d2/senzori/tests/output.20 b/2018/republic/7-9_d2/senzori/tests/output.20 new file mode 100644 index 0000000..d8263ee --- /dev/null +++ b/2018/republic/7-9_d2/senzori/tests/output.20 @@ -0,0 +1 @@ +2 \ No newline at end of file diff --git a/2020/sector/moda_revisited.cpp b/2020/sector/moda_revisited.cpp new file mode 100644 index 0000000..8120ccf --- /dev/null +++ b/2020/sector/moda_revisited.cpp @@ -0,0 +1,95 @@ +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + +ifstream input_stream; +ofstream output_stream; + +struct Order { + int id; + int price; + int deadline; + + bool operator < (const Order &order) const { + return price < order.price; + } +}; + + +struct compareOrderPointers { + bool operator() (const Order *lhs, const Order *rhs) const { + return lhs->price > rhs->price; + } +}; + + +int main() +{ + int orders_count; + input_stream.open("moda.in"); + + input_stream >> orders_count; + + vector orders; + orders.reserve(orders_count); + int total_price; + + unordered_map> orders_by_deadline; + + vector schedule; + schedule.reserve(24); + + for (int i = 0; i < 24; i++) { + schedule.push_back(0); + } + + int max_deadline = 0; + + for (int i = 0; i < orders_count; i++) { + Order order; + input_stream >> order.deadline >> order.price; + order.id = i + 1; + orders.push_back(order); + max_deadline = max(max_deadline, order.deadline); + orders_by_deadline[order.deadline].insert(&orders.back()); + total_price += order.price; + } + + + multiset current_orders; + + int revenue = 0; + + for (int hour = max_deadline; hour>=1; hour--) { + if (orders_by_deadline.find(hour) != orders_by_deadline.end()) { + for (Order *order : orders_by_deadline[hour]) { + current_orders.insert(order); + } + } + + if (!current_orders.empty()) { + schedule[hour - 1] = (*current_orders.begin())->id; + revenue += (*current_orders.begin())->price; + current_orders.erase(current_orders.begin()); + } + } + + cout << revenue << " " << total_price - revenue << "\n"; + + for (int i = 0; i < 24; i++) { + if (schedule[i] != 0) { + cout << schedule[i] << " "; + } + } + + + cout << "\n"; + + return 0; +}