RH 14 13 11 10 10 10 10 9 9 9 9 8 8 8 8 7 7 7 6 6 6 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 6 6 7 7 8 8 8 8 9 8 8 8 8 7 7 7 7 7 6 6 6 6 7 7 8 8 9 11 13 15 18 21 24 25 26 27 27 27 26 26 26 28 29 29 29 30 30 31 31 31 30 30 29 28 26 23 19 15 11 8 6 4 3 4 5 7 9 10 11 11 12 11 11 10 9 8 7 5 5 7 11 16 21 26 30 34 35 38 40 40 40 40 41 43 41 41 42 41 39 37 36 37 41 44 46 48 49 51 51 51 54 48 43 51 52 52 53 54 51 49 49 49 58 70 79 80 80 84 91 97 96 92 85 72 67 64 62 55 44 35 29 29 26 27 28 27 28 31 33 36 40 43 46 47 48 49 50 51 52 54 58 67 65 57 48 43 40 37 35 33 35 36 38 41 44 46 47 45 41 37 34 29 28 29 31 31 31 31 30 28 26 25 23 22 21 20 20 19 19 19 19 19 20 20 19 18 18 18 18 19 20 20 20 20 20 19 19 19 19 20 20 20 20 20 21 21 22 26 30 35 34 35 36 38 36 34 33 32 33 33 33 33 39 43 44 39 42 40 36 37 40 43 43 38 40 45 49 50 48 49 50 51 55 59 62 64 65 63 61 57 55 54 53 52 53 55 57 58 58 57 55 54 52 52 51 51 51 51 51 51 53 55 54 50 48 45 42 39 36 38 46 60 60 60 59 55 48 45 50 61 71 78 83 83 78 73 64 51 52 55 58 55 51 48 46 44 44 43 42 39 38 35 32 32 37 42 46 46 38 31 24 20 18 17 18 21 24 23 20 16 17 21 29 15 14 12 11 10 10 9 9 9 9 8 8 8 8 7 7 7 7 6 6 6 6 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 6 6 7 7 8 8 8 8 8 8 8 8 8 7 7 7 7 7 6 6 6 6 7 8 8 9 10 11 13 15 18 21 24 25 25 26 27 27 26 26 27 28 29 30 30 29 30 31 31 31 31 31 31 30 29 27 24 20 16 12 9 6 4 3 4 5 8 9 10 11 11 11 11 10 9 8 7 6 5 6 9 15 21 27 32 35 36 38 40 38 39 39 39 39 40 40 39 37 35 36 39 41 43 46 48 49 50 52 53 53 54 54 54 53 52 54 57 60 58 56 54 50 64 71 73 75 81 83 86 93 94 92 87 80 75 74 72 63 57 47 38 33 28 28 28 26 27 29 32 36 40 44 47 49 50 51 52 52 53 54 57 64 65 55 44 39 37 37 36 32 33 34 36 37 41 44 45 43 37 32 28 26 28 30 31 30 29 27 26 24 22 20 19 18 18 18 18 18 17 17 18 18 21 22 21 20 19 19 19 19 20 20 20 20 19 19 18 18 18 18 18 19 19 19 19 19 19 23 29 34 32 33 36 38 38 37 35 34 33 33 32 31 36 42 42 29 33 32 31 33 36 39 38 33 35 38 43 46 47 48 49 51 55 61 66 68 69 69 69 67 64 62 60 58 57 55 54 56 59 59 57 55 55 54 53 53 51 51 51 52 51 50 48 45 43 41 40 39 37 35 38 47 49 50 52 57 51 45 40 41 53 66 76 83 83 81 75 63 51 51 55 52 47 42 37 35 39 41 41 39 35 32 31 34 39 44 47 45 37 29 23 19 18 18 18 20 24 26 26 27 27 28 31 16 15 13 12 10 10 9 9 9 9 9 8 8 7 7 7 7 7 6 6 6 6 6 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 6 6 7 7 8 8 9 9 9 8 8 8 8 7 7 7 7 7 6 6 6 6 6 7 8 9 9 10 11 13 15 18 21 24 25 25 26 26 27 27 27 27 28 29 30 30 29 30 30 31 32 32 32 31 31 30 29 27 24 20 17 13 10 6 4 3 4 6 8 10 10 11 11 11 11 10 9 8 7 6 6 8 13 20 26 31 36 37 38 39 38 38 38 38 37 38 39 38 35 35 36 37 39 41 42 44 46 48 51 52 55 54 55 57 60 57 55 56 59 60 61 62 63 74 74 70 67 78 81 83 90 92 90 87 82 77 72 68 67 58 50 42 34 29 28 28 24 25 27 30 34 39 44 48 50 52 53 54 54 54 55 55 57 59 52 43 38 36 37 37 32 32 32 32 32 37 41 42 39 33 28 26 26 28 29 29 27 25 23 21 19 18 17 17 17 17 17 17 17 17 17 17 17 19 21 23 23 21 21 21 21 21 21 20 20 19 19 18 18 18 18 17 18 18 18 18 18 18 20 23 29 31 33 35 36 37 37 35 33 33 32 31 32 35 42 42 24 33 34 31 30 31 32 32 31 33 35 37 41 44 47 49 51 55 61 68 72 72 72 73 73 72 70 68 65 64 61 59 60 60 59 57 55 57 59 59 58 57 55 54 53 53 48 43 41 40 39 38 40 39 37 35 34 40 43 46 53 50 49 47 40 40 49 62 75 80 83 81 75 57 48 45 44 40 34 29 28 35 39 41 39 36 33 32 36 42 47 48 45 36 28 23 20 20 19 19 21 24 27 30 36 41 41 39 16 15 14 13 11 10 9 9 9 9 9 8 8 8 7 7 7 6 6 6 6 6 6 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 6 6 7 8 8 9 9 9 9 8 8 8 7 7 7 7 7 6 6 6 6 6 6 7 8 9 10 11 12 13 15 18 22 24 25 25 26 26 26 26 27 27 29 29 30 30 29 29 30 31 31 31 32 32 31 30 29 28 26 23 20 17 13 10 6 4 3 6 8 9 10 10 11 11 11 10 9 8 7 6 5 7 12 19 25 30 34 35 37 39 39 39 38 36 35 37 38 38 37 36 36 35 36 37 40 44 47 52 53 53 54 55 55 55 55 60 60 58 57 62 65 69 72 79 81 77 68 68 71 77 91 89 88 86 83 71 60 53 54 51 48 43 33 30 28 27 24 24 26 28 33 39 44 49 52 54 55 56 55 55 54 54 53 52 47 41 36 35 35 35 33 31 29 27 27 32 35 37 36 32 29 27 27 27 27 26 25 22 20 18 17 16 16 17 17 17 18 18 18 18 18 18 18 19 21 25 27 24 23 23 23 23 22 22 21 20 20 19 19 19 18 18 17 17 17 17 17 18 18 20 25 32 35 35 34 33 33 32 30 31 30 30 30 34 40 42 29 34 37 36 28 29 29 29 30 32 33 35 37 40 43 46 49 52 58 66 73 73 73 72 73 73 73 73 71 68 66 63 60 57 56 55 56 59 60 61 61 60 59 58 57 56 51 45 43 41 40 39 39 38 39 39 38 36 41 48 54 48 46 44 38 39 42 48 54 69 78 82 82 68 52 40 37 34 30 27 28 35 40 41 41 37 34 34 39 45 49 48 44 35 28 24 23 23 22 22 21 22 25 30 37 48 51 50 17 16 15 14 12 11 10 10 9 9 9 9 8 8 8 7 7 6 6 6 6 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 6 6 6 7 8 8 9 9 9 9 8 8 8 7 7 7 7 7 6 6 6 6 6 6 7 7 8 10 11 12 13 15 18 22 25 26 26 26 26 26 26 27 27 29 30 30 30 30 30 30 30 31 31 31 31 31 30 29 28 27 25 22 19 16 13 10 6 4 5 7 8 9 10 10 11 11 10 10 9 8 7 6 6 9 14 19 24 30 35 38 40 39 39 37 35 35 37 38 37 37 37 37 37 39 41 45 49 51 55 56 55 55 56 57 56 53 55 58 61 59 64 68 71 77 80 82 80 70 67 70 77 84 85 85 83 79 59 50 48 50 51 49 42 31 29 27 26 25 25 26 29 34 40 46 50 53 55 56 56 56 55 54 53 51 48 43 39 35 34 34 33 31 29 26 25 25 28 31 34 35 35 35 34 33 33 32 29 26 21 18 17 16 16 17 17 17 18 18 18 18 18 19 19 20 21 23 26 32 28 26 24 24 24 24 23 23 22 22 21 21 21 20 19 18 18 18 17 17 18 19 19 20 26 29 29 26 26 26 25 25 29 29 27 29 32 38 42 38 33 34 35 31 30 30 31 31 32 32 33 34 36 38 40 43 48 52 59 68 71 72 71 70 70 69 70 70 68 66 63 59 57 55 55 56 59 60 61 62 63 62 60 60 57 54 51 48 46 45 43 40 35 35 36 37 37 41 48 54 52 47 40 33 31 36 43 48 57 68 78 82 75 60 44 38 33 29 28 32 38 42 43 42 39 36 37 43 48 50 47 41 33 27 25 25 26 26 24 22 21 22 27 35 47 55 58 17 16 15 14 13 12 11 10 10 9 9 9 9 8 8 7 7 7 6 6 6 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 6 6 7 7 8 9 9 10 10 9 9 8 8 8 7 7 7 7 6 6 6 6 6 6 6 7 8 10 11 12 13 14 18 22 25 27 26 26 26 26 26 26 27 29 30 30 30 30 30 30 30 30 30 30 30 30 29 29 28 27 26 24 21 18 16 13 9 5 5 6 8 9 10 10 10 11 10 10 9 8 8 6 6 6 11 16 21 27 33 36 37 37 38 38 36 36 37 38 38 39 39 40 42 43 45 46 47 47 50 52 54 56 58 59 57 53 52 56 61 63 68 71 74 78 81 80 76 71 67 69 74 79 83 85 83 73 53 46 49 55 56 49 38 28 27 27 27 26 26 27 31 36 43 48 52 55 56 56 56 55 54 53 52 49 45 41 37 34 34 33 32 29 27 25 24 24 26 30 34 37 40 43 46 49 46 41 35 28 22 18 17 17 17 17 17 17 17 17 18 18 18 19 20 22 23 25 28 34 36 31 25 26 25 25 25 24 24 24 24 23 23 23 22 21 19 18 18 18 19 20 20 19 20 20 20 20 21 21 22 23 27 27 26 28 30 35 39 43 34 32 34 35 35 34 34 34 34 33 33 32 33 35 37 40 44 48 52 58 64 66 66 66 66 65 64 63 63 62 61 58 57 57 57 56 59 61 63 63 63 63 62 61 60 59 57 55 52 50 48 44 38 33 32 35 36 36 38 43 45 44 42 40 35 34 38 48 54 59 66 78 77 65 51 42 36 33 32 36 40 42 43 43 41 39 41 47 50 50 45 38 31 27 26 27 29 30 28 25 20 19 21 28 41 52 60 18 17 16 15 14 13 12 12 11 10 10 9 9 8 8 7 7 7 6 6 6 6 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6 6 7 7 8 9 10 10 10 10 9 9 8 8 8 8 7 7 7 6 6 6 6 6 6 7 8 9 11 12 14 14 17 21 25 27 27 27 26 27 27 27 27 28 29 30 30 30 30 30 29 29 29 29 29 29 29 28 27 26 26 25 23 19 17 15 12 8 6 6 7 8 9 10 10 10 11 10 10 9 8 7 6 5 10 15 20 24 30 31 32 35 38 38 37 35 37 38 39 40 41 41 41 41 40 39 39 41 42 45 49 54 58 59 58 54 55 58 62 67 73 75 76 78 76 74 72 68 65 68 74 78 84 85 81 68 51 47 51 60 57 45 33 26 26 27 28 28 28 30 34 40 46 51 54 55 55 55 54 54 53 52 50 46 42 39 36 33 33 32 30 28 26 25 25 25 27 30 34 37 42 48 53 54 48 41 34 26 20 17 17 17 17 17 16 16 16 17 17 17 18 19 21 23 25 26 28 32 36 35 31 27 27 26 26 25 25 25 25 24 24 24 24 23 21 19 18 19 20 20 20 19 19 19 19 20 22 23 24 26 26 27 29 32 31 32 32 32 35 37 39 40 40 40 40 40 39 38 36 35 35 36 39 42 47 49 51 53 55 57 59 59 60 60 60 59 59 59 58 57 56 57 58 58 61 62 63 64 63 62 61 60 60 60 60 59 57 55 52 48 42 36 32 31 37 37 34 33 35 37 41 49 48 44 41 44 43 44 51 69 73 66 55 47 41 38 37 40 41 42 43 43 43 43 45 50 51 49 44 38 32 28 26 30 34 36 34 28 21 17 16 21 32 44 55 19 18 17 16 15 14 13 13 12 12 11 10 9 9 8 8 7 7 6 6 6 6 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6 6 6 7 7 8 9 10 10 10 10 9 9 9 8 8 8 8 8 7 7 7 6 6 6 6 7 7 8 10 12 14 15 17 20 25 28 27 27 27 28 28 27 27 29 29 30 30 31 31 30 30 29 29 29 28 28 28 27 26 26 25 25 24 21 18 16 14 10 8 7 7 7 8 9 10 10 11 10 10 9 9 8 6 5 8 12 18 22 28 30 32 35 36 36 36 36 38 39 39 41 40 40 39 38 39 40 41 42 42 43 47 52 58 59 59 58 61 63 65 67 74 74 73 75 72 72 69 59 60 64 70 77 82 82 78 72 53 49 54 62 52 39 28 25 26 28 29 30 31 34 38 44 50 53 55 55 55 53 53 52 52 51 47 43 40 37 34 32 31 30 29 27 26 26 26 26 28 29 30 32 37 43 46 45 38 32 25 19 16 16 16 17 17 17 16 16 16 16 16 16 17 18 19 21 23 25 27 31 39 45 44 31 28 26 25 25 25 26 26 24 24 25 25 24 22 20 19 19 21 21 21 20 20 21 21 23 25 26 27 28 30 33 37 42 36 34 35 36 39 41 43 44 46 47 47 48 47 45 44 42 42 43 44 47 49 51 51 52 52 53 53 54 55 55 56 57 56 56 56 57 57 57 59 59 60 60 60 62 63 62 60 60 58 58 59 61 60 59 56 53 49 41 34 30 31 35 36 32 32 36 41 42 43 41 38 39 35 32 36 58 67 64 57 50 46 43 43 43 43 43 43 44 46 48 50 53 53 50 47 47 44 34 26 32 40 43 42 34 24 18 15 17 27 38 49 20 19 18 17 16 15 14 14 13 13 12 11 10 9 8 8 7 7 6 6 6 6 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6 6 6 7 7 8 9 10 10 10 10 10 9 9 9 9 9 9 8 8 8 7 7 7 6 6 7 7 8 9 11 13 15 16 19 23 27 28 28 28 28 28 27 28 29 30 30 30 31 31 31 30 29 29 29 29 28 27 26 26 25 24 24 24 22 19 16 14 12 9 8 7 7 7 8 9 10 11 11 10 10 10 8 7 5 6 9 15 20 26 30 33 34 35 35 37 38 39 39 40 41 42 41 39 41 42 41 40 40 43 46 49 54 57 59 60 62 64 66 67 68 73 75 75 76 76 69 59 51 57 61 66 75 77 80 80 75 56 52 56 57 42 31 25 25 27 29 31 32 34 37 42 47 51 54 55 55 53 52 51 51 51 48 44 40 38 35 32 30 29 29 28 27 27 27 27 27 27 26 25 24 27 30 32 29 24 20 17 15 16 17 18 18 17 17 16 15 15 15 15 15 16 16 17 19 21 23 25 28 35 42 44 35 27 24 24 24 25 25 25 24 22 23 25 26 23 21 20 20 22 22 22 22 23 24 25 28 30 32 34 35 36 41 44 42 41 41 41 43 43 44 45 47 49 50 51 52 52 52 51 51 51 51 51 51 50 49 49 48 48 49 49 49 50 50 51 52 53 53 55 58 58 58 59 58 59 59 60 61 61 60 59 57 57 56 56 59 60 60 60 58 55 49 41 33 31 29 29 32 30 34 36 31 29 30 33 35 37 36 35 39 54 59 57 51 47 46 46 47 48 48 47 48 50 53 55 55 53 51 50 51 55 45 33 33 45 51 50 41 29 22 19 19 26 36 46 20 20 19 18 17 16 15 14 14 14 13 13 12 10 9 8 8 7 6 6 6 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 7 7 8 9 10 10 11 10 10 10 9 9 9 10 10 9 9 9 8 8 7 7 7 7 7 7 9 10 13 15 16 18 22 26 28 29 28 28 27 28 29 30 30 30 30 30 31 31 30 30 30 30 30 29 28 27 26 25 23 23 23 23 19 16 14 13 10 9 8 7 7 7 9 10 10 11 11 10 10 9 8 5 5 8 12 18 24 28 31 32 34 36 38 39 40 42 43 41 44 43 41 42 40 37 36 37 41 45 48 50 53 58 62 67 67 67 68 71 73 76 78 80 72 64 57 55 57 60 65 70 74 83 86 72 58 55 53 46 33 27 25 27 29 30 32 35 37 40 44 49 52 53 54 53 51 50 50 50 48 45 42 38 35 32 30 28 28 28 28 27 27 27 27 27 24 21 19 17 18 19 20 18 16 15 15 17 18 18 18 18 18 17 16 15 14 14 14 14 14 15 15 16 17 19 21 24 27 31 32 27 24 23 24 24 25 25 25 23 21 21 22 24 23 21 21 22 24 23 22 21 23 25 27 30 34 36 38 40 42 43 44 45 45 45 45 45 45 45 45 46 47 47 48 48 49 50 51 51 52 52 53 53 52 51 50 49 49 50 50 51 51 51 50 48 49 51 52 54 56 57 56 57 57 59 60 61 60 59 57 56 56 55 55 56 57 59 60 60 59 56 51 41 36 32 28 25 24 22 22 25 24 25 27 31 28 29 32 38 43 50 54 51 48 47 49 52 55 55 54 53 56 59 60 59 59 58 56 55 59 50 39 40 52 58 57 46 33 26 23 23 27 35 43 21 21 20 19 18 17 16 15 15 15 14 14 13 11 10 10 9 8 7 7 6 6 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 7 7 8 9 10 10 11 11 10 10 9 9 10 10 10 10 10 10 10 9 9 8 8 7 7 7 8 9 11 14 15 18 21 25 28 29 29 28 27 28 29 31 31 30 29 29 30 31 31 30 30 30 30 30 30 29 28 26 24 22 21 21 19 16 13 12 11 10 8 8 7 7 8 9 10 11 11 11 11 10 9 6 5 6 10 16 22 25 28 32 35 37 38 39 41 44 45 45 42 42 42 39 37 34 33 36 41 43 44 48 52 59 65 68 70 70 70 71 75 78 80 79 71 63 57 54 54 59 65 68 76 83 83 66 58 51 44 34 28 26 27 29 31 32 34 37 39 42 45 49 51 52 52 51 49 48 47 46 44 41 39 36 33 30 29 28 28 28 28 27 27 27 26 24 20 17 15 15 15 15 16 15 15 15 16 18 19 19 19 18 18 17 16 14 13 13 12 13 13 13 13 14 16 19 23 26 21 21 22 21 22 24 26 26 26 26 24 22 21 19 19 19 18 21 23 24 23 22 20 19 20 21 23 26 31 35 38 41 43 46 47 48 48 47 45 44 43 42 41 41 41 40 40 41 41 42 43 43 44 46 49 51 52 52 52 51 51 51 52 53 55 56 56 54 53 52 51 51 53 55 56 56 56 56 57 59 59 58 57 56 55 55 54 54 54 56 57 59 59 59 56 52 45 38 33 30 26 23 21 19 23 28 34 38 35 28 26 38 35 40 48 51 49 49 53 62 64 64 62 60 62 64 66 67 67 65 64 62 63 55 48 51 60 65 63 51 35 28 28 32 35 38 43 21 22 22 20 19 18 17 16 16 15 15 14 14 13 12 11 10 9 8 8 7 7 6 6 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 7 7 8 9 9 10 11 11 11 10 10 10 10 10 10 11 11 11 11 10 10 9 9 8 8 7 7 8 10 12 14 16 19 23 27 29 29 28 28 29 30 31 30 29 28 28 30 31 31 30 30 30 30 30 30 30 29 28 26 23 21 20 19 16 13 12 11 10 8 8 7 7 8 9 10 11 11 11 12 11 10 7 5 5 8 13 18 23 28 33 35 36 38 39 41 43 45 46 42 40 40 37 35 32 31 33 39 43 44 47 54 60 66 69 71 71 73 77 82 84 83 79 74 67 60 53 51 56 63 68 76 80 76 62 52 42 34 28 28 29 31 32 33 35 37 39 40 43 45 48 50 51 51 49 48 46 44 42 40 38 36 34 31 30 29 28 28 27 27 26 26 25 24 21 17 15 15 15 15 16 16 16 16 16 17 18 19 19 19 18 18 16 15 14 12 12 11 11 11 12 12 12 14 19 25 30 23 22 23 25 27 28 28 28 27 25 23 22 20 19 18 18 20 23 26 26 24 21 19 18 18 18 20 22 25 29 33 37 41 44 47 49 48 47 44 41 39 37 36 35 34 34 34 35 36 37 38 37 38 40 42 45 48 50 51 52 52 52 53 54 57 61 64 63 60 57 54 54 55 56 56 56 57 56 56 56 56 57 57 55 54 53 53 53 52 53 54 55 57 56 56 55 52 46 40 34 30 26 24 23 24 27 32 39 36 30 25 29 29 33 41 50 51 52 55 62 67 67 65 65 65 67 70 72 71 69 68 66 66 63 61 64 68 70 68 55 37 29 31 41 43 46 50 21 22 22 22 21 19 18 17 16 16 15 15 15 14 13 12 11 10 9 9 8 7 7 6 6 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 7 7 8 8 9 10 10 11 11 10 10 10 10 10 10 11 11 11 11 11 11 10 10 9 9 8 8 8 9 10 13 15 18 21 25 28 29 28 28 29 30 31 30 28 27 28 30 31 31 31 30 30 30 30 30 30 30 30 28 25 22 19 18 16 13 11 11 10 8 8 8 7 7 8 9 10 11 12 13 13 11 8 5 5 7 10 16 22 27 32 34 36 39 40 40 41 43 44 41 40 39 36 33 32 32 33 37 41 44 45 53 63 70 74 75 76 79 84 88 88 85 78 71 67 63 55 54 56 61 66 71 72 66 54 42 34 29 28 31 33 34 35 36 37 39 40 41 43 45 47 48 49 49 48 46 44 41 37 36 35 34 32 31 30 29 28 27 26 25 24 24 23 21 18 16 15 15 16 16 17 17 18 18 18 18 19 19 19 19 19 18 16 15 13 12 11 10 10 10 10 11 11 12 14 17 21 26 29 30 31 35 34 31 28 26 23 21 20 20 19 19 19 21 24 26 26 25 23 20 18 18 19 21 23 25 27 28 31 34 38 42 46 46 44 42 38 35 33 32 31 30 31 32 32 35 36 36 35 36 37 39 41 43 46 48 50 51 53 54 56 59 63 66 67 65 62 60 60 59 58 57 57 58 57 56 56 55 55 54 53 53 52 52 51 51 51 52 53 54 53 53 53 54 50 44 39 35 30 26 23 18 16 17 18 25 26 22 17 21 29 39 50 54 55 57 62 65 67 68 69 70 71 71 72 73 71 68 66 64 66 71 76 76 77 73 60 39 28 27 39 44 51 58 20 22 23 22 22 21 20 19 18 17 16 16 15 15 14 13 12 11 10 10 9 8 8 7 6 6 6 6 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 7 7 8 8 9 10 10 11 11 11 10 10 10 10 10 10 11 11 11 12 12 11 11 10 10 9 8 8 8 9 11 14 16 19 23 26 28 28 28 29 30 30 29 28 27 28 30 30 31 31 30 30 30 30 30 30 30 30 29 26 22 19 18 15 12 10 10 10 9 8 8 8 8 8 9 10 11 11 13 14 13 10 7 5 6 9 15 21 26 30 32 35 38 40 41 41 40 41 40 39 37 33 32 33 36 37 39 40 41 43 52 65 75 78 79 82 85 87 91 90 86 77 72 69 67 60 60 60 61 62 63 60 53 43 34 29 29 32 35 37 38 38 39 39 40 41 42 43 44 45 46 46 47 46 45 41 37 34 33 32 31 30 30 29 28 27 26 24 23 23 23 21 19 17 16 16 16 17 17 18 18 19 19 20 20 20 20 20 19 19 18 16 15 13 11 10 9 9 9 10 10 11 12 16 22 31 35 36 36 37 38 36 32 25 23 22 21 21 20 20 20 19 20 22 24 25 24 22 20 18 17 18 21 25 28 28 27 27 28 31 35 39 40 39 37 34 32 31 30 30 31 32 33 34 35 35 35 35 36 37 38 39 40 42 44 47 50 52 54 56 59 62 64 67 66 66 66 65 63 61 60 59 58 57 56 55 54 53 53 53 52 52 52 51 51 51 51 52 52 52 51 52 54 52 48 43 38 33 28 25 21 18 15 13 15 17 17 12 15 22 31 43 50 54 57 61 61 62 64 68 71 73 73 72 72 70 67 63 61 68 76 82 81 81 77 67 44 28 22 30 41 51 59 21 21 22 23 23 22 21 20 19 18 17 17 16 16 15 14 13 12 11 10 10 9 8 7 7 6 6 6 6 6 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 7 7 8 8 9 9 10 10 11 11 11 10 10 10 10 10 10 10 11 11 11 12 12 11 11 10 9 9 8 9 10 12 15 18 21 24 26 28 28 29 29 30 29 27 27 28 29 30 30 30 30 30 29 30 30 30 30 30 29 26 22 18 17 14 12 10 10 10 9 8 8 8 8 8 9 10 10 11 12 14 15 13 9 6 6 8 14 19 25 30 31 34 38 40 41 40 39 38 40 39 37 32 30 35 40 41 43 43 44 46 57 68 76 79 81 82 84 89 91 91 86 78 75 72 69 64 62 61 60 59 55 49 42 34 30 30 33 36 38 40 41 41 41 41 41 41 42 42 42 43 44 44 45 45 43 39 35 32 30 30 29 29 29 29 27 26 25 24 23 23 22 21 19 17 17 17 18 18 19 19 20 20 20 20 20 20 20 20 19 18 17 16 14 12 11 10 9 9 9 10 10 12 16 23 32 41 42 39 37 35 34 33 29 23 22 22 22 21 21 20 19 18 18 19 20 21 21 20 18 17 16 17 19 24 28 28 26 25 25 26 28 31 33 32 30 28 28 28 29 29 32 32 33 35 35 34 34 35 36 37 38 38 39 40 41 43 46 49 51 53 56 59 61 63 64 66 67 67 66 65 63 61 60 58 57 56 55 54 53 54 53 52 52 52 52 51 51 52 50 50 51 51 52 52 50 48 40 34 29 27 25 22 19 17 15 14 12 11 12 15 21 30 41 47 52 58 58 59 60 61 66 71 74 75 73 69 64 61 59 65 73 77 77 77 77 72 52 33 20 19 35 45 50 22 22 22 23 23 23 22 21 20 19 18 18 18 17 17 15 14 13 12 11 10 10 9 8 7 7 6 6 6 6 6 6 5 5 5 5 5 5 5 5 5 5 5 6 6 6 5 5 5 6 6 6 6 6 6 6 6 6 5 5 5 5 5 5 5 5 5 6 6 7 7 8 8 9 9 10 10 10 11 11 10 10 10 10 9 9 9 10 10 11 11 12 12 11 11 10 10 9 9 9 11 13 16 19 22 25 26 27 28 29 30 28 27 26 27 29 29 30 30 30 30 29 29 29 29 29 30 29 26 22 17 15 14 12 10 9 10 10 9 9 8 8 8 9 10 10 11 12 13 15 16 12 8 7 7 15 18 22 28 30 34 37 38 39 39 38 36 39 39 38 34 30 34 38 36 41 45 50 52 62 68 74 80 79 81 85 93 92 90 85 80 76 71 67 62 60 60 58 53 47 41 36 31 31 33 36 39 41 42 42 42 42 42 42 41 41 41 41 41 42 43 44 44 41 37 33 30 29 28 28 28 28 27 26 25 24 24 23 23 22 21 20 19 19 19 19 20 20 20 20 20 20 20 20 20 20 19 19 18 17 15 14 12 10 9 8 8 9 10 12 14 20 29 38 45 42 37 31 28 27 27 26 23 23 22 21 20 19 18 17 16 16 16 17 17 16 16 15 15 14 14 16 19 23 24 24 22 22 22 23 24 26 26 25 23 23 24 26 27 30 31 32 33 32 32 33 34 35 36 36 37 38 39 40 41 42 44 47 49 51 54 56 58 60 62 64 66 67 67 66 65 63 61 59 58 56 55 55 55 54 54 53 53 52 51 51 50 49 48 48 49 49 49 50 51 42 35 30 27 29 26 22 20 18 16 14 12 13 15 19 25 34 40 46 55 56 57 57 56 58 63 68 73 74 71 66 61 57 58 62 64 66 69 72 73 61 44 31 28 42 47 45 23 22 22 23 23 23 22 22 21 20 19 19 19 18 18 17 16 14 13 12 11 10 10 9 8 7 6 6 6 6 6 6 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 5 5 5 6 7 7 8 8 9 9 9 10 10 10 11 11 10 10 10 9 9 8 8 8 9 10 11 11 12 12 11 10 10 9 9 10 12 14 17 20 23 25 26 28 29 30 28 26 26 27 28 29 30 30 29 29 29 29 29 29 28 28 27 25 21 17 14 13 12 10 9 10 11 11 10 9 9 9 9 10 10 11 11 12 14 17 15 12 9 7 15 17 18 25 29 32 35 36 37 37 37 35 38 39 39 36 29 31 35 34 39 45 51 56 66 71 75 80 79 81 86 95 93 89 84 81 75 69 63 59 59 58 54 47 42 38 35 33 35 37 39 41 42 43 43 43 43 43 42 41 40 39 39 39 40 42 42 43 39 35 32 30 28 27 26 27 26 26 25 24 24 24 24 24 23 22 21 20 20 20 20 21 21 21 21 20 20 19 19 19 19 18 18 17 15 14 13 11 10 9 8 8 9 11 14 17 23 31 38 41 36 30 26 24 25 25 24 23 21 19 18 16 15 14 13 13 13 14 14 13 12 12 12 12 12 13 14 15 17 18 19 18 18 18 18 18 19 20 20 19 18 20 22 25 27 29 30 30 29 29 30 31 32 33 34 35 35 37 39 41 40 41 43 45 47 49 51 52 54 57 60 63 66 67 68 67 65 64 62 60 59 57 56 56 55 54 54 53 52 51 50 50 48 47 47 49 47 46 47 49 44 39 34 28 28 26 23 21 19 18 17 16 16 17 20 26 31 37 45 53 55 56 56 54 54 56 59 64 69 71 69 64 58 54 52 52 54 59 64 71 68 56 45 43 54 52 44 25 23 22 22 23 23 23 22 21 20 20 20 20 20 20 19 18 16 15 13 12 11 10 9 9 8 7 6 6 6 6 6 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 5 5 6 6 7 8 8 9 9 9 10 10 10 10 10 10 10 10 9 9 8 7 7 7 8 9 10 11 11 12 11 11 10 10 10 10 12 15 18 20 23 25 27 29 30 28 27 26 27 29 29 30 29 29 29 29 29 29 28 27 26 25 24 22 18 14 12 11 11 10 11 12 13 13 11 10 9 9 10 10 11 11 12 13 16 16 15 12 9 14 15 17 22 26 29 31 34 35 35 34 34 37 38 38 35 30 31 33 31 40 48 55 60 71 76 79 84 83 84 88 97 92 87 83 82 75 67 61 58 58 54 49 43 39 37 36 36 38 40 42 43 43 43 44 44 43 43 41 40 39 38 38 38 39 40 41 41 37 34 31 29 27 26 25 26 26 25 25 24 24 24 24 23 22 22 21 21 21 21 21 21 21 20 20 20 19 19 18 18 18 18 17 15 14 13 12 11 10 9 9 9 10 12 15 19 24 28 32 33 29 26 25 25 25 25 23 20 18 15 14 12 11 10 10 10 10 10 10 10 10 10 10 10 10 11 12 13 13 13 14 13 13 13 13 13 13 14 15 15 16 17 19 22 24 26 27 28 28 28 29 29 29 30 30 31 32 33 36 40 39 40 41 42 44 45 46 48 50 51 53 57 62 65 67 68 67 66 64 62 61 60 58 57 55 54 53 52 52 51 51 51 49 48 48 48 47 45 44 46 46 45 43 38 29 25 23 22 21 19 18 18 18 19 21 25 31 39 47 54 57 57 56 53 52 51 52 55 63 69 72 69 63 57 51 48 48 51 57 67 71 64 54 47 53 49 40 26 25 23 23 22 22 22 22 21 21 20 21 21 21 21 20 19 18 16 15 13 12 11 10 9 9 8 7 6 6 6 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 5 6 6 7 8 8 9 9 9 9 10 10 10 10 10 10 10 9 9 8 7 6 6 6 7 8 9 10 11 11 11 11 10 10 10 11 13 16 18 21 24 27 29 30 28 27 27 28 29 30 30 29 29 28 28 29 29 28 27 26 26 25 24 21 16 13 11 11 11 12 13 14 15 14 12 10 10 10 10 11 11 11 12 15 16 16 15 14 14 14 15 19 22 24 26 31 32 32 32 31 35 38 37 35 30 30 32 31 41 53 64 70 77 84 88 91 88 89 92 96 90 85 82 84 75 67 61 58 55 50 44 40 38 38 38 40 42 43 44 44 45 44 44 44 43 42 40 38 37 37 37 38 39 39 39 38 35 33 30 28 26 25 25 25 25 25 25 24 24 24 23 23 22 22 21 21 21 21 21 21 20 20 19 19 19 18 18 18 18 17 16 14 13 12 11 10 10 9 9 9 10 13 16 20 23 26 28 28 25 24 24 25 24 22 20 17 14 12 11 10 9 8 7 7 6 6 6 6 6 6 7 7 8 9 9 10 11 12 11 11 11 10 10 9 9 10 11 12 14 15 17 19 22 24 26 27 28 29 29 29 29 29 29 29 29 30 32 35 37 38 40 41 45 44 43 44 45 46 48 51 56 61 65 67 67 66 65 64 63 62 61 59 56 54 53 52 52 51 51 51 51 50 49 48 46 44 43 44 47 49 49 48 41 33 27 24 23 21 20 18 18 19 20 23 30 38 47 56 60 60 58 54 49 47 47 49 55 63 70 72 68 62 56 50 48 47 50 59 70 70 62 50 48 43 38 28 26 25 24 23 22 22 22 22 21 21 21 22 22 22 22 21 19 18 16 15 13 12 11 10 10 9 8 7 6 6 5 5 5 5 5 4 4 4 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 6 6 7 7 8 9 9 9 10 10 10 10 10 10 10 10 10 9 8 7 6 5 5 5 6 7 9 10 11 11 11 11 10 10 10 11 13 16 19 22 26 28 30 28 27 27 28 29 30 30 29 28 28 28 29 29 29 28 26 26 26 25 23 18 14 11 11 12 13 14 15 16 16 14 12 10 10 10 11 11 11 12 13 15 15 16 16 15 14 15 17 19 20 22 27 28 28 29 29 34 37 37 34 30 30 30 31 43 59 73 78 88 94 98 97 93 92 92 93 88 83 80 81 74 67 60 56 51 45 41 38 38 39 41 43 44 45 46 46 46 46 45 44 43 41 39 36 36 36 36 38 38 37 36 35 33 31 29 27 26 25 25 26 26 25 25 25 24 24 23 22 22 22 22 21 21 21 21 21 20 20 19 19 18 18 18 18 17 16 15 13 12 11 10 10 10 10 9 9 10 13 17 20 22 24 24 24 22 22 22 22 20 18 16 13 11 10 9 8 7 6 5 5 4 4 4 3 3 4 5 9 8 9 9 8 8 9 9 9 9 8 8 7 6 7 8 10 11 13 14 16 18 21 23 26 27 29 29 29 29 29 29 29 29 29 30 32 35 36 37 38 42 42 41 43 44 44 45 47 51 55 60 64 66 66 66 66 65 65 64 61 58 56 53 52 51 51 51 51 51 51 50 49 47 46 45 47 47 48 49 50 50 45 38 32 28 24 22 22 20 19 20 26 30 35 43 52 59 61 60 55 49 44 42 44 47 55 64 72 71 66 59 53 50 48 46 48 61 71 72 60 50 41 37 30 28 27 25 24 23 23 22 22 22 22 22 22 23 23 23 22 21 19 18 16 14 13 12 11 10 10 8 7 6 6 5 5 5 5 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 6 6 7 7 8 8 9 9 10 10 10 10 10 10 10 10 10 10 9 8 7 6 5 4 5 5 6 8 9 10 11 11 11 10 10 10 11 13 16 20 23 27 29 28 28 27 29 30 30 30 29 28 28 28 29 30 29 28 27 26 26 26 25 21 17 13 11 13 14 15 16 16 16 16 15 12 11 10 11 11 11 12 12 13 14 15 16 16 16 16 16 18 18 19 23 23 24 25 26 31 35 36 34 31 30 31 36 49 63 74 76 89 94 95 97 95 92 90 88 85 81 77 74 73 68 61 52 47 43 39 38 38 40 42 45 46 48 48 48 48 47 45 44 42 39 37 35 35 35 36 38 36 35 33 32 31 30 28 26 26 26 26 26 26 25 25 24 24 23 23 23 22 22 22 22 22 21 21 21 20 20 19 19 18 18 18 17 17 16 14 12 11 10 10 10 10 10 9 9 10 13 17 20 21 21 21 20 20 20 20 18 16 14 12 11 9 8 7 6 5 4 4 4 3 3 3 3 3 5 10 21 17 16 15 12 7 6 6 6 6 6 5 4 4 5 7 9 10 10 12 13 16 18 20 22 24 26 27 28 29 29 29 29 30 30 31 32 34 35 36 37 37 38 41 48 46 45 44 44 45 47 50 55 60 62 64 66 65 65 65 64 61 58 55 52 51 51 52 51 51 51 51 49 48 48 48 48 47 47 47 48 49 49 48 45 40 33 28 30 30 26 23 27 32 33 35 41 50 56 57 54 48 42 38 38 43 48 56 68 72 69 62 55 52 50 46 41 47 60 71 70 59 46 39 31 30 29 27 26 25 24 23 23 23 22 23 23 24 24 24 23 22 20 19 17 16 14 13 12 11 10 9 8 7 6 6 5 5 5 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 6 6 7 7 8 8 9 9 10 10 10 10 9 9 9 10 10 10 9 9 8 7 6 5 4 4 4 6 7 9 10 10 11 11 10 10 10 11 14 17 21 25 29 28 28 28 29 30 30 30 30 28 28 28 29 29 29 28 27 26 26 26 26 24 20 15 11 12 14 16 16 17 17 17 16 14 12 11 11 11 11 12 12 13 14 14 15 17 16 15 15 17 17 16 18 19 20 21 22 27 32 34 33 31 30 32 40 51 61 68 69 74 78 83 93 94 91 86 84 82 79 76 71 70 68 62 51 45 42 40 40 41 42 44 47 48 49 50 50 49 48 45 43 40 38 36 34 34 35 37 37 35 32 31 30 30 28 27 26 26 26 26 26 26 25 25 24 24 23 23 23 22 22 22 22 21 21 21 20 20 20 19 19 19 18 17 17 16 14 13 11 10 9 9 9 10 10 10 9 10 13 17 20 21 20 20 19 18 18 16 15 13 11 10 8 6 5 4 4 3 3 3 3 3 3 3 3 3 6 13 24 18 19 22 26 9 4 4 4 4 4 4 3 3 5 7 9 9 9 10 12 14 16 18 20 21 23 24 26 27 29 30 31 31 31 31 33 34 36 38 39 37 36 40 50 47 45 44 44 43 42 41 44 49 54 59 63 64 64 65 65 63 60 57 54 52 52 52 52 51 51 51 50 49 49 49 48 48 46 46 45 47 48 49 49 48 44 40 37 36 32 29 28 34 33 31 34 41 47 49 48 43 39 35 33 40 45 51 60 68 70 67 60 55 52 49 42 37 44 56 67 63 55 46 33 32 31 29 28 27 26 25 24 24 24 24 24 25 25 24 24 23 21 20 18 17 15 14 13 12 11 10 9 7 6 6 5 5 5 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 6 6 6 7 7 8 8 9 9 10 10 10 10 10 9 9 9 9 9 9 9 8 8 7 6 5 4 4 4 5 6 8 9 10 11 11 10 10 10 12 15 18 22 27 28 28 28 28 30 30 30 30 28 28 28 29 29 28 28 27 27 26 26 26 26 23 18 13 12 13 15 17 17 17 17 16 15 14 12 11 11 11 11 11 12 13 13 14 15 15 15 14 16 17 16 16 16 16 16 17 22 26 29 30 30 28 29 39 47 54 59 60 61 63 71 91 90 85 79 77 80 79 76 73 70 68 64 57 47 43 41 41 43 44 45 48 49 51 51 51 50 48 45 42 39 36 35 34 35 36 37 36 32 30 29 29 29 28 27 26 26 26 26 26 25 25 24 24 23 23 23 22 22 22 21 21 21 21 20 20 20 20 20 19 18 17 16 15 14 13 11 10 9 9 9 9 10 10 10 9 10 14 17 21 22 21 20 19 17 15 13 12 10 8 6 4 4 3 3 3 3 3 3 3 3 3 3 3 3 4 7 9 7 9 15 26 10 5 4 4 3 3 3 3 3 5 7 8 8 8 9 11 13 15 17 18 20 21 23 24 26 28 31 33 33 33 32 33 35 36 37 39 36 36 39 45 44 43 43 44 43 42 40 39 40 44 50 56 60 62 64 64 63 61 58 55 53 52 52 53 52 51 51 50 50 50 49 48 48 47 46 45 47 48 49 49 48 48 47 42 39 37 34 32 34 33 31 32 37 39 39 39 38 37 36 38 42 47 52 55 63 68 68 65 59 55 52 47 36 34 39 51 56 55 50 34 33 32 31 30 29 28 27 26 26 25 25 25 25 26 25 24 23 22 20 19 17 16 15 14 13 12 10 9 8 7 6 6 5 5 5 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 8 8 9 9 10 10 10 10 10 9 9 9 9 9 9 9 9 8 7 6 6 5 4 4 4 5 6 7 9 10 11 10 10 10 10 12 15 19 24 27 28 28 28 30 30 31 30 29 28 29 29 28 28 27 28 28 27 26 26 26 25 22 16 12 12 14 16 17 18 17 16 16 14 13 11 11 12 12 10 12 12 13 14 14 14 14 14 15 15 16 17 16 14 13 13 16 19 22 24 26 25 26 35 41 46 50 51 50 51 60 78 81 78 72 65 69 71 72 71 71 70 68 65 54 46 42 42 44 45 46 48 50 51 52 51 49 47 44 41 37 35 34 35 35 37 37 34 30 28 28 29 28 28 27 26 26 26 26 26 25 24 24 23 23 23 22 22 22 21 21 21 20 20 20 20 20 20 19 19 18 16 15 13 12 11 10 9 9 8 8 9 10 10 10 9 11 14 18 22 23 23 21 18 16 13 11 8 6 5 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 3 5 9 5 4 5 7 5 4 3 3 4 5 6 6 7 8 9 11 13 15 17 18 19 21 22 23 25 27 30 34 34 33 33 34 35 36 36 36 36 36 36 38 41 42 42 42 42 42 41 39 37 38 41 47 53 58 61 62 61 60 59 56 54 54 54 53 53 52 51 49 50 50 50 50 50 49 48 47 48 51 53 52 51 50 48 45 42 40 39 37 33 31 30 27 34 35 33 33 35 35 36 41 44 49 54 55 59 64 66 66 62 59 55 52 40 31 28 34 42 44 44 35 34 33 32 32 31 30 29 28 27 27 26 26 26 26 26 25 24 22 21 19 18 17 16 15 14 13 11 10 8 7 6 6 6 5 5 5 5 4 4 4 4 4 4 4 4 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 8 8 9 9 10 10 10 10 10 10 9 9 9 9 9 9 9 8 8 7 6 5 5 4 4 4 4 5 7 8 10 10 10 10 10 11 13 17 21 26 27 28 29 30 30 31 30 29 29 29 29 28 28 28 29 29 28 27 27 27 26 24 21 15 12 12 14 16 17 17 16 14 13 13 13 12 13 13 12 13 12 12 13 12 12 12 14 14 14 16 19 17 14 12 11 12 13 16 19 21 21 23 29 35 39 43 45 42 43 47 55 62 67 68 62 58 60 64 62 65 66 67 67 61 54 48 43 45 46 47 49 51 52 52 50 48 45 42 39 36 34 35 36 37 37 35 31 28 28 28 28 28 28 27 26 26 26 26 25 25 24 24 23 23 23 22 22 21 21 21 20 20 20 19 19 19 19 18 18 16 15 13 12 10 10 9 9 8 8 8 9 10 10 10 9 11 15 19 22 24 23 21 18 14 10 7 5 4 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 4 7 12 12 8 4 4 4 5 5 6 7 9 11 13 14 16 17 19 20 21 22 23 24 26 28 30 31 32 32 33 34 34 35 35 36 36 35 35 36 37 37 38 38 39 39 38 37 37 37 39 45 51 56 60 60 60 58 57 55 55 55 54 54 53 52 51 54 54 54 53 52 51 50 49 49 51 54 57 57 55 52 49 48 45 43 39 32 29 27 26 36 40 41 39 40 38 37 38 41 47 52 56 57 60 63 63 62 60 58 54 44 33 26 25 30 34 35 35 35 34 33 33 32 32 31 30 29 28 27 27 26 26 26 25 24 23 22 20 18 17 16 15 15 13 12 10 9 7 7 6 6 5 5 5 5 5 4 4 4 4 4 4 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 8 9 9 10 10 10 10 10 10 10 9 9 8 8 8 8 8 8 7 7 6 5 4 4 4 4 4 5 6 8 10 10 10 10 11 12 14 18 23 27 28 29 30 30 31 31 30 29 29 29 29 29 29 30 30 29 28 27 27 26 26 24 19 14 11 11 14 15 16 15 12 12 14 15 14 14 14 13 13 12 12 12 11 10 11 13 14 15 16 19 18 15 13 12 13 13 14 17 18 19 21 24 30 35 37 40 39 39 40 42 48 54 58 57 51 59 64 54 54 58 62 64 64 60 54 47 46 46 48 51 52 52 51 49 46 43 40 36 34 34 35 37 37 36 33 29 28 27 28 28 28 27 27 26 26 26 25 25 24 24 23 23 23 22 22 22 21 21 21 20 20 19 19 18 18 18 17 15 14 12 11 10 9 9 8 8 8 8 8 9 9 10 10 9 13 16 20 22 23 22 20 16 10 6 4 3 3 4 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 5 5 5 5 5 5 5 5 7 14 23 16 5 5 5 5 6 7 8 10 12 14 16 17 18 20 21 22 23 24 25 26 27 28 29 30 31 32 32 33 33 33 34 35 36 35 35 34 34 34 34 34 34 35 35 36 36 36 39 45 51 56 58 59 58 57 55 55 56 56 55 54 54 53 55 57 58 56 54 52 50 50 49 50 52 56 59 59 58 57 55 54 53 49 44 38 33 30 40 46 50 53 59 56 48 40 39 43 49 55 58 60 61 61 60 60 59 55 47 38 31 26 27 30 32 36 36 35 34 34 33 33 32 31 30 29 28 28 27 26 26 25 25 24 22 21 19 17 16 16 15 14 12 11 9 8 7 7 6 5 5 5 5 5 5 4 4 4 4 4 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 8 9 9 10 10 10 11 10 10 10 10 9 8 8 8 8 8 8 7 7 6 6 5 4 4 4 4 4 5 6 8 10 10 11 11 11 13 16 21 25 28 29 30 31 31 31 30 30 29 29 30 30 30 31 31 31 30 29 27 27 26 26 23 18 13 10 11 13 14 13 11 10 12 16 16 16 16 15 13 12 11 11 10 11 12 12 13 14 15 17 16 15 15 15 16 17 18 20 20 21 22 24 27 31 35 37 37 37 38 40 44 47 49 48 50 59 63 49 46 51 58 62 64 63 59 51 46 46 49 53 52 51 50 46 43 41 38 35 34 35 36 38 37 35 31 28 27 28 28 28 28 27 27 26 26 25 25 25 24 24 23 23 23 22 22 22 22 21 21 21 20 19 19 18 17 15 14 12 11 10 9 8 8 8 8 9 9 9 9 9 9 9 10 10 16 20 23 24 23 21 18 12 7 4 3 4 4 5 6 6 6 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 7 7 6 7 9 27 21 9 5 5 6 7 8 9 11 13 15 16 18 19 21 22 24 25 25 25 26 27 29 30 31 33 35 34 34 33 32 33 34 35 36 36 35 34 32 31 32 33 33 32 33 36 42 46 50 52 53 56 57 57 56 55 56 57 57 56 55 54 53 55 56 58 60 58 54 51 50 50 51 52 53 58 60 60 58 59 60 62 61 58 54 50 43 39 39 43 49 69 76 72 58 47 46 48 51 59 62 61 60 58 59 59 55 46 40 36 33 33 34 36 36 36 35 35 34 34 33 33 32 31 30 29 28 27 26 26 26 25 24 23 21 20 18 17 16 15 14 13 11 10 9 8 7 6 6 5 5 5 5 5 4 4 4 4 4 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 8 9 9 10 10 10 11 11 11 10 10 9 9 8 8 8 7 7 7 7 6 6 5 5 4 4 4 4 4 5 6 8 10 11 11 11 12 14 18 23 27 29 30 31 31 32 31 30 30 29 30 30 30 31 31 31 31 30 29 28 27 26 25 22 17 12 11 12 13 11 10 10 11 14 15 16 17 17 15 13 11 10 10 11 12 13 12 13 13 14 14 14 14 15 17 19 21 21 21 24 26 29 30 32 35 38 38 38 38 40 42 42 42 43 45 49 51 48 46 50 57 61 63 64 61 53 46 46 49 54 53 51 48 44 42 39 36 33 34 35 37 38 36 33 29 27 27 28 28 28 28 27 26 26 25 25 25 24 24 23 23 23 22 22 22 22 22 21 21 21 20 19 18 17 15 13 10 9 8 7 7 7 7 8 8 9 9 9 9 9 9 9 10 13 21 29 32 31 25 20 14 7 4 4 4 5 6 7 8 8 9 9 9 9 9 9 10 10 10 10 11 11 11 11 11 11 11 11 10 10 10 9 8 7 20 19 12 6 6 7 7 8 9 11 13 16 17 19 22 26 25 26 28 30 29 28 28 30 31 33 36 39 39 37 35 33 32 33 34 35 36 35 34 32 30 29 30 33 31 32 39 51 55 56 54 53 54 56 57 56 56 56 57 58 57 56 55 54 55 55 56 57 59 58 56 55 57 58 56 55 57 60 61 59 59 60 63 66 65 64 63 61 49 36 29 34 58 77 86 81 68 59 53 51 60 62 62 60 57 58 59 55 46 40 36 37 39 41 43 36 36 36 35 34 34 33 33 32 31 30 29 28 28 27 26 26 25 25 24 22 20 18 17 16 15 14 13 12 11 10 9 8 7 6 6 5 5 5 5 5 4 4 4 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 8 9 10 10 10 11 11 11 11 11 10 10 9 9 8 8 7 7 7 7 6 6 5 5 5 4 4 4 4 4 5 7 9 10 11 11 12 13 16 20 25 28 30 31 31 31 31 31 31 30 30 30 30 31 31 31 31 31 30 29 28 27 26 25 21 16 12 11 12 12 10 10 10 12 14 16 17 17 17 15 13 11 10 10 12 13 13 13 13 12 12 13 13 13 14 15 17 17 18 22 26 30 31 33 35 38 40 40 39 39 39 39 39 40 43 44 45 46 49 53 58 62 62 63 61 54 47 46 49 54 53 50 47 43 40 37 35 33 34 35 37 36 34 31 28 27 27 28 28 28 27 26 26 25 25 25 24 24 23 23 23 22 22 22 22 22 22 21 21 20 20 19 18 15 12 9 7 5 5 5 6 6 7 8 8 9 9 10 10 9 9 9 12 18 31 39 42 35 25 16 9 4 4 5 7 8 9 10 10 11 11 11 11 11 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 12 12 11 11 12 12 11 8 8 8 8 8 9 10 12 15 17 21 26 33 29 28 31 37 36 33 31 31 31 32 34 38 39 38 35 33 32 31 32 33 34 35 34 31 29 28 29 30 30 32 36 46 56 57 54 53 54 55 56 56 57 57 58 59 59 58 56 55 55 55 55 55 57 58 59 65 68 67 64 59 59 59 60 61 60 59 60 61 64 67 69 71 70 57 40 25 39 60 79 90 85 76 67 61 63 64 63 63 59 58 58 55 47 40 35 33 39 43 46 35 35 35 35 34 34 33 33 32 31 30 29 29 28 27 26 26 25 25 24 23 21 19 18 16 15 15 14 12 11 10 9 8 7 6 6 6 5 5 5 5 5 4 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 8 9 10 10 10 11 11 11 11 11 10 10 10 9 9 8 8 7 7 7 6 6 6 5 5 4 4 4 4 4 4 5 7 10 11 11 12 12 15 18 22 27 29 30 31 31 31 32 31 31 31 31 31 31 31 31 31 31 31 31 29 28 27 26 24 20 14 11 10 12 11 11 12 15 15 16 16 17 17 17 16 15 12 11 11 12 12 12 12 12 12 13 13 14 14 14 14 13 13 16 19 24 29 31 33 34 39 40 40 38 38 39 39 40 47 47 44 47 52 56 60 63 63 63 60 54 46 44 48 52 52 50 46 42 39 36 34 32 34 35 36 34 32 29 27 27 27 27 28 27 26 26 25 25 24 24 23 23 23 22 22 22 22 22 22 22 21 21 20 20 19 17 15 12 9 6 5 4 4 5 6 6 7 8 8 9 10 10 10 9 9 11 17 28 41 47 45 35 20 10 5 4 6 8 9 10 11 12 13 14 14 14 14 14 14 14 14 14 14 14 14 14 15 15 15 15 15 15 15 15 14 14 14 13 13 12 10 11 11 10 10 10 10 10 11 12 16 20 25 32 28 26 28 33 35 34 31 30 30 30 30 31 33 33 31 30 29 29 29 30 31 32 33 31 29 28 29 31 32 33 36 42 49 50 50 51 54 56 57 57 58 58 59 60 60 59 59 58 58 57 57 57 59 60 60 63 69 69 67 64 61 59 59 59 59 59 59 58 61 64 67 69 73 74 66 45 32 38 56 76 85 86 80 72 71 68 65 65 61 60 59 56 49 42 35 31 37 40 43 35 35 35 35 34 34 33 33 32 31 30 30 29 28 27 26 26 25 24 24 23 21 20 18 17 16 15 14 13 12 11 10 9 8 7 6 6 6 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 8 9 10 10 10 10 10 10 10 10 10 10 10 10 9 9 8 7 7 7 6 6 6 5 5 5 4 4 4 4 4 4 5 8 10 12 12 12 13 16 20 25 28 29 30 31 31 31 32 32 32 31 31 31 31 31 31 31 31 31 31 29 28 27 26 23 18 13 10 11 11 12 13 14 14 14 15 15 15 15 16 17 16 15 13 11 11 10 10 10 12 16 19 22 22 23 24 25 23 21 20 19 21 26 29 31 35 39 41 39 39 40 40 42 48 45 42 47 52 57 62 65 65 64 60 52 48 49 51 52 51 49 45 41 38 35 33 32 34 34 34 32 30 28 27 27 27 27 27 27 26 25 24 24 23 23 23 22 22 22 22 22 22 22 22 21 21 20 20 19 17 14 11 8 5 4 4 4 5 5 6 7 7 8 9 9 10 10 9 8 10 16 25 37 47 51 46 31 13 6 5 8 10 11 12 14 14 15 15 16 16 16 16 15 15 15 15 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 15 15 15 15 15 14 13 13 12 11 10 10 10 9 20 23 23 26 29 29 27 26 27 26 24 25 27 28 29 29 28 28 28 27 27 27 27 28 28 29 30 30 28 27 27 30 33 35 37 40 43 45 47 50 52 55 57 58 58 58 59 60 60 60 60 60 61 61 60 60 61 62 62 61 64 67 67 65 62 61 62 66 64 62 61 60 60 62 63 64 67 71 75 75 50 35 34 51 68 79 84 81 77 72 68 67 65 63 61 58 51 44 36 30 37 39 39 35 35 35 35 34 34 33 32 32 31 30 30 29 28 27 26 25 25 24 23 23 22 21 19 18 17 15 14 13 13 12 11 10 8 7 7 6 6 6 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 6 6 6 6 6 6 6 6 7 8 9 10 10 10 10 10 10 10 10 9 9 9 9 9 9 9 8 8 7 7 6 6 6 5 5 4 4 4 4 4 4 4 6 9 12 13 13 12 14 17 22 25 27 28 31 31 31 31 32 32 32 32 31 31 31 31 31 31 31 31 31 29 28 26 25 21 15 11 11 12 12 12 14 15 14 13 14 16 18 19 18 18 18 17 15 14 16 19 21 18 18 20 24 24 25 26 27 29 31 30 25 22 25 28 30 31 35 39 38 42 42 40 41 38 37 40 47 53 59 63 66 66 65 64 61 66 63 57 52 51 48 44 40 37 34 32 32 33 33 32 30 28 27 27 27 27 27 27 26 25 24 23 23 23 22 22 22 22 22 22 22 22 21 21 20 20 19 18 17 14 11 7 4 4 4 4 5 6 6 7 7 8 9 9 10 10 10 9 9 13 22 32 42 50 50 40 19 8 6 9 11 13 14 15 16 16 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 18 18 18 18 18 18 17 17 17 16 16 16 16 15 14 13 12 11 11 10 15 16 18 29 36 37 34 30 26 22 19 19 21 22 23 24 24 23 23 23 23 24 25 26 26 26 26 26 25 24 24 27 32 36 38 40 43 47 51 51 55 59 60 59 59 59 59 60 61 62 63 63 63 64 64 63 64 64 64 63 62 62 63 62 62 64 67 70 71 69 65 62 62 62 63 63 63 64 68 75 72 51 31 29 46 62 76 83 80 75 71 69 68 67 64 61 54 47 39 32 37 39 39 35 35 35 35 34 34 33 32 31 31 30 29 29 28 27 26 25 24 23 23 23 22 21 20 19 17 16 15 14 13 12 11 10 9 7 7 6 6 6 6 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 6 6 6 6 6 7 8 9 9 10 10 10 9 9 9 8 8 8 8 8 8 8 8 8 8 8 7 7 6 6 6 5 5 4 4 4 4 4 4 5 7 10 13 15 13 13 14 17 20 23 26 29 30 31 31 31 31 31 31 31 31 31 31 31 31 31 31 32 30 29 27 26 23 18 14 11 12 12 12 12 14 14 13 12 13 17 19 19 21 22 23 24 26 30 34 38 37 35 33 32 30 29 26 24 24 26 29 30 27 27 28 29 29 31 34 38 40 42 44 47 39 39 44 51 58 64 68 70 66 64 63 63 65 60 54 50 50 47 43 39 36 33 32 32 33 32 30 28 27 27 27 27 27 27 26 25 24 23 22 22 22 22 21 21 21 21 21 21 20 20 19 19 18 17 16 14 10 7 4 3 4 5 5 6 7 7 8 9 9 10 10 10 10 10 10 12 20 30 39 46 49 40 24 8 8 10 13 15 15 16 17 17 17 18 18 18 19 19 19 19 18 19 19 19 19 19 19 19 19 19 19 19 19 19 20 20 19 19 19 19 18 18 18 18 17 17 16 15 14 12 12 13 12 14 19 29 38 41 38 32 25 20 16 13 13 14 16 16 16 16 16 16 16 17 18 20 21 22 22 22 21 20 21 23 28 33 37 39 42 46 48 49 55 60 62 61 60 60 60 60 62 64 65 67 68 68 67 67 67 66 66 65 63 62 60 59 58 60 63 63 66 66 64 62 62 62 64 65 65 64 65 66 73 67 50 25 33 47 63 77 81 79 75 73 72 71 69 65 58 50 42 35 38 42 43 36 36 35 35 34 33 32 31 31 30 30 29 28 27 26 26 25 24 23 23 22 22 22 20 19 18 17 15 14 13 12 11 10 9 8 7 6 6 6 6 6 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 5 5 5 6 7 8 9 9 9 9 9 8 8 7 7 7 7 7 7 7 7 7 8 8 8 7 7 7 7 6 6 5 5 4 4 4 4 3 4 6 9 12 15 15 14 13 13 15 18 21 25 27 29 30 30 30 30 31 31 31 31 31 31 31 31 31 32 31 30 28 26 24 20 15 12 13 13 14 15 15 14 13 12 12 13 13 14 15 17 20 24 31 36 39 41 40 37 35 35 36 36 35 35 31 28 26 27 29 29 29 29 30 33 37 44 43 52 60 56 42 42 48 56 65 72 76 76 72 67 64 63 60 55 51 50 49 46 42 38 35 33 32 32 31 30 28 27 27 27 27 27 27 26 25 24 23 22 21 21 21 21 20 19 19 19 19 18 18 17 17 16 15 14 12 10 7 5 4 4 5 6 6 7 8 9 10 10 11 11 11 11 11 10 12 16 26 35 42 47 39 24 10 7 12 14 16 16 17 17 18 18 19 19 20 20 21 21 21 21 21 21 21 21 21 22 22 22 22 22 22 21 21 21 21 21 21 21 21 20 20 20 20 19 19 18 18 17 15 15 15 16 18 20 24 31 39 41 39 32 24 18 13 10 9 9 10 11 11 12 11 11 11 11 12 13 14 15 16 17 17 17 18 20 24 28 33 36 40 43 46 47 52 56 60 62 62 62 62 62 63 64 66 68 69 69 69 69 68 68 67 67 65 64 62 59 58 58 59 60 62 63 62 59 59 59 60 64 65 66 65 65 66 70 66 44 36 41 54 67 78 81 80 77 76 75 73 69 63 54 45 38 38 43 47 37 36 36 35 34 33 32 31 30 29 29 28 28 27 26 25 25 24 23 23 22 22 22 21 20 18 17 16 14 13 12 12 11 10 8 7 7 6 6 6 6 6 6 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 7 6 6 6 6 5 5 5 5 5 5 5 5 6 6 7 8 9 9 8 8 7 7 6 6 6 5 5 5 6 6 6 7 7 7 7 7 7 7 7 6 6 5 5 4 4 4 4 3 5 7 10 14 16 17 16 15 13 13 15 18 22 25 27 29 30 30 30 30 30 30 30 31 31 31 32 32 32 31 29 26 23 18 15 12 13 14 15 16 16 16 15 15 16 15 14 13 13 13 15 17 23 28 34 39 40 40 40 40 40 39 38 38 37 33 28 25 29 34 37 37 34 37 44 50 55 71 78 58 46 45 52 63 72 76 77 77 74 71 66 61 55 51 50 50 48 45 42 37 35 33 32 31 30 29 27 26 26 27 27 27 26 26 24 23 21 21 21 20 20 19 18 17 17 16 16 16 15 14 13 12 12 11 9 7 5 4 5 5 6 6 7 8 9 10 11 12 12 12 11 11 10 11 14 19 27 35 40 41 26 14 9 12 15 16 17 17 18 19 19 20 21 22 22 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 22 22 22 21 21 21 20 20 19 18 18 17 18 19 22 25 27 31 35 39 40 37 31 23 18 15 14 13 11 9 8 8 8 8 9 9 9 9 9 10 10 11 12 13 14 16 19 22 25 30 34 38 43 48 51 52 54 57 60 63 64 64 63 63 64 66 68 68 68 67 67 66 66 65 65 65 64 62 61 60 59 59 60 61 61 60 56 57 58 59 60 62 64 66 68 68 69 70 68 50 46 51 57 70 79 84 82 81 79 76 73 68 61 53 47 46 47 49 36 36 35 35 34 33 32 30 29 29 28 28 27 27 26 26 25 24 23 23 22 22 22 21 20 19 18 16 15 14 13 12 11 10 8 7 7 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 6 6 6 5 5 5 5 5 5 5 5 5 6 7 8 8 8 8 7 6 6 5 5 5 5 5 5 5 5 6 6 6 6 7 7 7 7 7 7 6 5 5 5 4 4 4 3 4 6 9 12 15 17 18 18 16 14 13 14 17 20 23 26 27 29 29 29 30 30 30 30 31 31 32 32 32 31 29 26 21 17 15 13 13 14 15 16 16 16 17 17 18 17 17 17 15 15 15 16 18 21 26 32 36 41 45 50 46 46 44 41 37 33 29 26 32 37 39 36 33 40 49 55 73 88 87 58 48 49 58 70 76 76 74 71 71 69 66 60 54 51 50 50 48 45 41 37 34 33 32 31 30 28 27 26 26 27 27 27 26 24 23 21 20 20 19 19 18 17 16 15 14 14 13 13 12 11 10 10 9 8 7 5 4 5 6 6 6 7 8 9 10 11 12 13 12 11 10 9 9 11 13 17 24 31 34 29 17 12 13 16 16 17 18 19 20 21 22 23 23 24 24 24 24 24 24 24 24 23 23 23 23 23 23 23 23 23 23 23 23 23 24 24 24 24 23 23 22 22 21 21 20 20 19 19 20 23 26 30 35 38 40 41 40 38 34 27 21 18 18 19 19 17 14 11 9 7 6 6 7 7 7 8 8 8 8 9 10 12 14 18 20 24 27 32 36 42 49 55 57 58 59 60 63 65 66 66 65 65 65 67 68 68 67 65 64 63 62 62 61 61 62 62 61 60 60 60 62 63 62 58 56 57 60 62 61 62 66 69 68 68 69 74 63 56 52 53 59 71 83 87 85 84 81 76 72 68 63 60 60 58 55 36 35 35 34 33 32 31 30 29 29 28 27 27 27 26 26 25 24 23 23 22 22 22 22 21 19 18 17 15 14 13 12 11 10 9 7 7 7 7 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 6 6 5 5 5 4 4 5 5 5 5 6 7 8 8 8 7 6 6 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 7 7 7 6 6 5 5 4 4 4 3 4 6 8 11 14 16 18 19 19 18 16 14 14 16 18 21 23 25 27 28 29 30 30 30 30 31 31 32 32 31 28 25 21 18 15 14 14 14 15 16 16 17 18 19 20 20 20 19 19 19 20 22 24 27 31 36 41 47 51 53 53 52 49 43 37 32 28 27 32 34 35 33 32 36 42 46 81 87 74 51 48 54 64 76 76 74 71 68 69 68 66 60 54 51 51 50 48 45 41 36 34 33 32 31 29 28 27 26 27 27 27 26 25 22 21 19 19 18 18 17 16 15 14 13 13 12 11 11 10 9 9 8 8 6 5 4 5 6 7 7 7 7 9 10 12 13 14 13 11 10 8 7 7 9 12 17 23 27 26 18 14 14 16 16 17 18 20 21 22 23 24 25 25 25 25 25 25 24 24 24 23 23 23 22 22 22 22 22 22 21 22 22 22 22 23 24 24 24 24 24 23 23 22 22 21 20 20 21 24 27 32 37 43 47 49 49 44 38 31 24 19 18 19 22 22 21 19 16 13 11 9 7 7 6 6 6 6 7 7 7 8 10 13 17 21 24 27 31 35 40 47 54 59 62 64 64 64 66 67 68 68 68 67 67 67 67 67 65 63 62 61 60 59 59 60 62 62 61 60 60 62 64 65 64 59 55 53 56 63 65 65 68 67 66 66 70 70 64 58 58 55 62 74 86 90 89 86 81 76 71 68 69 69 67 64 35 35 34 34 33 33 32 31 30 29 28 28 27 27 26 26 26 25 24 23 23 22 22 22 21 20 18 17 15 14 13 12 11 10 9 7 7 7 7 7 7 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 6 6 5 5 4 4 4 4 4 4 5 6 7 8 8 7 6 6 5 5 5 5 5 6 6 7 7 7 7 7 6 6 6 6 6 6 6 7 6 6 6 5 5 4 4 3 4 5 7 10 13 15 17 19 20 20 18 16 15 15 16 18 19 22 24 26 27 28 29 29 30 30 31 31 31 30 27 23 21 18 15 15 16 16 15 15 16 16 18 20 22 23 23 23 23 24 26 29 33 34 35 39 47 55 60 61 60 57 52 45 39 35 32 31 34 35 36 35 37 36 36 36 59 60 52 46 50 58 67 76 74 72 70 68 68 69 67 61 55 52 51 51 48 45 41 37 34 33 32 31 29 28 27 27 27 27 27 25 22 20 19 18 18 17 16 16 15 14 13 12 11 11 10 9 9 8 7 7 6 5 4 5 6 7 7 7 7 8 9 12 14 15 15 13 10 7 6 5 7 9 13 17 20 20 17 14 15 16 17 18 20 21 22 24 25 25 25 26 26 25 25 25 24 24 23 23 22 22 22 22 21 21 21 21 21 21 21 21 21 21 22 22 23 23 24 24 24 23 23 22 21 21 22 22 24 27 31 35 41 47 51 52 47 40 31 23 19 18 19 22 22 21 20 19 18 16 14 12 11 10 9 8 7 7 6 6 7 9 12 16 22 26 28 31 34 38 44 50 55 60 64 66 67 67 68 69 70 71 71 70 70 69 68 67 65 64 62 61 60 60 60 62 62 62 60 60 60 62 64 66 64 60 54 49 57 63 66 67 66 64 63 65 70 69 66 63 60 59 62 74 87 92 91 86 80 75 71 71 72 70 69 35 35 34 34 33 33 32 32 31 30 29 28 28 27 27 26 26 25 24 24 23 22 22 22 21 20 18 17 15 14 13 12 11 10 9 7 7 7 7 7 7 7 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 6 5 5 4 4 4 4 4 4 5 6 7 8 8 7 6 5 5 5 5 5 6 6 7 8 8 8 7 7 7 6 6 6 6 6 6 7 6 6 6 5 5 4 4 4 4 5 7 10 13 15 18 20 21 21 20 18 18 17 17 17 18 19 21 22 24 25 27 28 28 29 29 30 30 28 26 23 22 18 15 15 16 17 17 16 15 16 17 19 22 24 25 25 26 27 29 31 32 35 38 41 48 58 66 67 63 60 55 49 44 41 38 37 37 37 37 37 41 41 40 40 41 43 46 50 54 60 66 72 71 71 70 69 68 69 69 63 56 53 52 51 48 44 41 37 35 33 32 31 29 28 28 28 28 27 25 22 20 18 18 17 17 16 15 15 14 13 12 11 10 9 9 8 7 7 7 6 5 5 5 7 7 7 7 7 7 8 9 12 14 14 14 11 8 7 6 6 8 10 13 15 16 15 15 15 17 18 19 21 22 23 24 25 26 26 26 25 25 25 24 24 23 23 23 23 22 22 22 22 21 21 21 21 21 21 21 21 21 21 21 22 22 23 23 23 23 23 22 22 22 22 23 23 23 23 24 26 31 37 42 46 44 38 31 23 20 19 20 22 22 21 20 20 20 19 18 17 16 15 15 14 13 12 10 8 8 9 11 16 22 26 29 31 32 35 39 44 50 55 59 62 65 67 68 69 70 71 72 73 73 72 72 71 69 68 66 65 63 62 61 62 63 62 61 60 60 61 62 64 66 65 62 57 52 55 62 67 66 63 61 61 66 69 70 69 67 62 59 60 75 86 92 90 84 79 75 74 74 72 70 36 35 35 35 34 33 33 32 31 30 29 29 28 28 27 27 26 26 25 24 23 22 22 21 20 19 18 16 15 14 13 12 11 10 8 7 7 7 7 7 7 7 7 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 6 5 5 4 4 4 4 4 4 5 6 7 8 7 6 6 5 5 5 5 5 6 7 8 8 8 8 7 7 7 7 6 6 6 6 6 6 6 6 6 5 5 4 4 4 4 6 8 11 13 16 19 22 22 22 21 19 19 19 19 19 19 19 20 20 22 23 24 26 27 27 28 28 29 26 23 24 22 19 15 14 15 17 19 21 17 16 17 18 20 22 22 22 24 27 31 34 34 37 40 43 48 57 66 68 65 63 60 56 51 48 45 43 41 40 39 37 40 43 46 47 48 50 53 55 56 60 64 69 69 71 72 71 70 71 70 65 57 54 53 52 48 44 41 38 35 33 32 31 30 29 29 29 28 26 23 20 18 17 17 16 16 16 17 18 15 13 11 10 9 8 8 7 7 6 6 5 5 6 7 8 8 8 8 8 8 8 10 11 12 12 12 10 8 8 8 9 10 11 13 14 15 15 16 18 19 20 22 23 24 25 26 26 26 25 25 25 24 24 24 24 24 23 23 23 23 22 22 22 22 22 22 22 22 23 23 23 23 22 22 22 22 22 23 23 23 22 22 22 22 22 22 22 22 21 21 21 24 30 36 42 40 35 28 23 21 21 21 22 22 22 21 21 21 21 20 19 18 19 19 20 20 19 18 15 13 12 12 14 21 27 30 31 30 31 33 37 43 49 54 57 60 62 64 66 68 69 70 72 73 73 74 74 73 73 71 69 67 65 64 64 64 63 61 60 61 61 62 63 65 67 67 66 60 54 53 58 63 63 61 59 62 65 68 71 71 68 63 58 65 75 84 89 86 82 79 78 78 76 73 35 35 35 35 34 34 33 33 32 31 30 29 28 28 27 27 26 26 25 24 23 22 22 21 19 18 17 16 14 13 12 11 10 9 8 7 7 7 7 7 7 7 7 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 8 8 7 7 6 6 5 4 4 4 4 4 4 5 6 7 8 7 6 5 5 5 5 5 6 7 8 8 8 8 8 7 7 7 6 6 6 6 7 7 6 6 6 6 5 5 4 4 4 5 7 9 12 15 18 21 23 23 22 21 21 20 20 20 21 21 21 21 21 21 21 22 23 25 26 26 27 27 25 23 24 22 19 17 14 16 21 26 28 19 16 17 18 19 20 21 22 27 32 37 40 41 42 43 47 51 58 66 68 66 65 64 62 57 53 50 46 43 42 41 39 43 48 52 54 56 57 57 55 54 55 58 63 66 70 73 74 75 74 71 67 58 55 54 52 49 44 41 38 35 34 33 31 31 30 29 29 26 23 20 18 17 17 16 16 17 19 22 23 17 12 10 9 8 7 7 7 6 5 4 4 5 6 7 8 8 8 8 8 9 10 11 13 13 12 11 10 10 10 11 11 12 13 14 15 16 18 19 20 21 22 24 25 25 26 26 26 25 25 24 24 24 24 24 24 24 24 24 24 23 23 23 23 22 22 22 23 23 24 24 24 24 24 24 23 23 23 23 24 23 23 23 23 23 23 23 23 23 23 23 23 24 30 39 46 44 35 26 22 21 21 22 22 22 22 23 24 23 23 22 21 19 19 19 21 21 22 22 21 19 16 15 14 19 26 30 32 31 29 29 31 35 41 46 52 54 57 58 60 62 64 66 68 69 71 72 74 75 75 74 73 70 68 66 65 65 64 63 61 61 62 62 63 65 67 68 69 68 63 58 53 55 57 59 58 60 62 64 67 70 71 69 61 62 68 75 82 85 84 80 78 79 78 77 35 35 35 35 34 34 33 33 32 31 30 30 29 28 28 27 27 26 26 25 24 22 21 20 18 17 16 15 13 12 11 10 10 9 8 7 7 7 7 7 7 7 7 6 6 6 6 6 6 6 6 6 6 7 7 7 7 8 8 8 8 7 6 6 5 4 4 4 4 4 4 5 6 7 8 7 6 5 5 5 5 5 6 7 8 8 9 8 8 7 7 6 6 6 6 7 7 7 7 6 6 6 5 4 4 4 4 6 8 11 14 18 21 23 24 23 23 22 22 21 21 22 22 23 24 24 24 23 22 21 22 23 24 25 24 25 24 22 21 20 19 17 16 20 27 31 27 19 17 18 19 20 21 24 29 37 42 46 47 47 48 50 53 56 62 68 68 66 65 65 63 60 56 52 49 45 43 42 43 48 52 56 58 58 58 56 53 51 49 50 55 60 66 72 77 78 77 74 69 60 56 55 54 49 45 41 38 36 34 33 32 31 30 29 28 24 21 18 17 17 16 16 16 20 25 27 23 15 10 9 8 7 7 6 6 5 4 4 5 6 7 8 9 9 8 8 8 9 11 14 16 15 13 11 10 11 12 13 13 14 15 16 18 19 20 21 22 23 24 25 25 26 26 25 25 25 24 24 24 24 25 25 25 25 25 25 25 24 24 24 23 23 23 24 24 25 26 26 26 26 26 25 25 24 24 24 24 24 24 24 23 23 23 24 24 25 25 25 25 25 30 37 45 41 32 24 21 22 22 23 23 23 23 24 24 25 24 23 22 20 19 19 19 20 21 21 21 20 18 17 16 18 23 28 32 32 31 29 27 28 32 37 43 48 51 53 54 56 57 59 61 64 66 69 71 73 75 75 74 73 71 70 68 68 66 64 62 62 63 63 64 65 67 69 70 71 70 67 62 57 55 54 55 57 60 62 64 67 71 72 68 63 67 74 78 81 82 81 78 76 75 75 34 34 34 34 33 33 33 32 32 31 31 30 29 28 28 27 27 26 26 25 24 22 20 19 17 16 15 14 12 11 10 10 9 8 7 7 7 7 7 7 7 7 7 6 6 6 6 6 6 6 6 6 7 7 7 7 8 8 8 8 8 7 7 6 5 4 4 3 4 4 4 5 6 7 7 7 6 5 5 5 5 6 7 7 8 8 9 8 8 7 7 6 6 6 6 7 7 7 7 6 6 5 5 4 4 4 5 8 11 14 17 20 22 24 24 24 23 22 22 22 22 23 24 24 25 25 25 24 23 22 22 23 23 23 21 22 22 20 19 19 18 17 17 24 28 30 25 21 18 18 20 23 27 32 41 50 54 57 56 56 57 59 63 66 70 73 72 68 65 64 62 62 59 55 51 48 46 45 46 51 53 54 54 55 54 52 51 50 50 50 51 57 64 70 76 79 79 77 73 64 59 56 56 51 46 42 39 36 34 33 32 31 30 29 26 21 19 18 17 16 16 17 20 25 27 25 16 11 9 7 7 6 6 6 5 5 5 6 7 8 9 10 10 10 9 9 9 10 12 15 17 16 14 12 11 12 13 14 15 16 18 19 20 21 22 23 24 24 25 25 26 25 25 25 24 24 24 25 25 25 25 26 26 26 26 26 26 26 26 25 25 25 25 26 26 27 27 28 28 28 28 27 27 26 26 26 25 25 25 24 24 24 24 24 25 26 26 26 25 25 26 29 37 31 25 22 22 22 23 23 24 24 24 24 25 25 24 24 23 22 20 19 19 20 21 21 20 19 18 18 17 18 21 25 30 32 33 31 29 27 27 29 33 39 43 48 50 51 51 52 53 56 59 62 66 69 72 74 74 75 74 73 72 71 69 67 64 63 64 65 66 67 68 70 71 72 72 71 70 66 60 56 56 56 57 60 63 65 68 72 74 68 67 73 83 82 81 80 78 75 73 71 33 33 33 32 32 32 32 32 31 31 31 30 29 29 28 27 27 26 26 25 24 22 20 18 17 15 14 13 12 11 10 9 8 8 7 7 7 7 7 7 7 7 7 6 6 6 6 6 6 6 6 7 7 7 7 8 8 8 8 8 8 8 7 6 5 4 4 3 3 4 4 5 6 7 7 6 6 6 5 5 6 6 7 8 8 9 9 8 8 7 7 6 6 6 6 7 7 7 7 6 6 5 4 4 4 6 8 11 14 18 21 22 23 24 24 24 23 23 22 22 22 23 24 25 25 25 25 24 23 23 22 22 22 22 20 20 20 19 18 18 17 18 20 26 27 26 24 23 20 19 23 27 35 44 54 61 65 67 65 65 67 69 73 77 79 80 78 73 69 65 63 63 60 57 54 53 52 51 48 50 51 51 51 51 50 49 49 52 55 56 55 59 64 69 73 78 81 81 78 69 63 58 57 52 47 42 39 36 34 32 31 31 30 27 23 19 18 17 17 18 19 22 27 29 25 18 11 9 8 6 6 6 6 6 5 7 9 10 10 11 12 13 13 12 11 10 10 10 12 15 16 15 14 13 13 14 15 16 18 19 20 21 22 22 23 24 25 25 26 26 25 25 25 24 24 25 25 25 26 26 26 27 27 27 27 27 27 27 27 27 26 27 27 28 29 30 30 30 30 30 30 30 29 28 27 27 26 26 26 25 24 24 24 25 25 25 25 25 24 24 24 25 27 24 23 22 22 22 22 23 23 24 24 25 25 24 24 24 23 23 22 21 20 20 21 22 22 21 19 18 17 17 19 21 25 29 32 33 33 30 27 26 27 30 35 40 44 46 47 47 47 48 50 53 57 62 66 70 72 75 76 77 76 76 74 72 68 66 66 68 69 69 70 71 72 72 72 72 72 71 68 64 61 60 59 59 61 65 67 69 74 73 69 69 80 84 83 81 78 76 73 70 32 32 32 31 31 31 31 31 31 31 30 30 29 29 28 28 27 26 26 25 23 22 19 18 16 14 13 12 11 10 10 9 8 8 7 7 7 7 7 7 7 7 7 6 6 6 6 6 6 6 7 7 7 7 8 8 8 8 9 9 8 8 7 6 5 4 4 3 3 3 4 5 6 7 7 6 6 6 6 6 6 6 7 8 8 9 9 8 8 7 7 6 6 6 6 7 7 7 6 6 5 5 4 5 6 9 12 15 18 21 23 23 24 24 24 24 23 23 22 22 22 23 24 24 25 25 24 24 23 23 23 22 22 21 18 19 19 18 18 18 19 21 23 25 23 21 20 20 20 21 26 33 42 51 58 64 69 73 72 74 76 80 83 85 85 81 76 72 69 66 63 62 60 58 56 56 55 53 49 50 51 51 50 49 48 48 51 55 59 61 61 62 66 70 73 74 77 81 82 75 68 62 58 53 48 43 39 36 34 32 31 30 28 25 20 19 18 18 18 21 24 28 33 26 19 13 10 8 7 6 5 6 6 6 6 10 13 14 14 15 16 16 17 15 14 13 13 13 14 15 15 14 14 14 15 16 17 18 20 20 21 22 23 23 24 25 25 26 26 25 25 25 25 25 25 26 26 26 27 27 27 28 28 28 28 28 28 28 28 28 28 29 29 30 31 32 32 33 33 33 33 32 31 30 29 29 28 27 27 26 25 25 25 25 24 24 23 23 23 23 23 23 22 22 22 22 22 22 22 22 22 23 23 24 24 24 24 24 24 24 24 23 22 21 21 23 25 25 25 23 21 19 18 17 19 23 28 32 35 34 32 29 27 27 29 32 36 40 42 43 43 43 43 44 47 51 57 62 68 72 76 79 80 81 80 77 73 69 69 70 72 73 73 73 73 73 72 72 72 73 72 71 68 68 66 64 63 65 67 68 70 74 72 70 72 80 83 82 79 76 74 72 31 31 31 31 30 30 30 30 30 30 30 30 29 29 28 28 27 26 26 24 23 21 19 17 16 14 13 11 11 10 9 9 8 7 7 7 7 7 7 7 7 7 7 6 6 6 6 6 6 7 7 7 7 8 8 8 9 9 9 9 9 8 7 6 6 5 4 3 3 3 4 5 6 7 7 6 6 6 6 6 6 7 7 8 8 9 9 8 8 7 7 6 6 6 6 7 7 6 6 5 5 5 5 7 9 12 16 19 21 22 23 24 24 24 24 24 23 23 23 22 22 23 23 24 24 24 24 23 23 23 23 22 21 19 16 18 19 19 20 19 20 20 20 20 19 18 20 21 22 24 29 36 43 48 52 61 69 75 78 81 85 88 88 87 82 74 65 60 58 56 54 53 54 54 53 53 52 49 47 48 49 50 50 49 49 50 54 57 61 65 68 68 70 72 74 70 72 78 84 81 74 67 60 54 49 43 40 37 34 32 31 30 26 22 19 19 18 19 22 26 29 32 31 21 15 11 10 8 6 5 5 6 7 7 8 12 15 16 16 16 17 18 18 18 17 17 18 19 18 17 14 14 14 16 17 18 19 20 21 22 22 23 24 24 25 25 26 26 25 25 25 25 25 26 26 26 27 27 28 28 29 29 29 30 30 30 29 29 29 29 30 30 31 32 33 34 35 35 36 35 35 34 33 32 31 30 30 29 28 27 27 26 25 25 24 23 23 22 22 22 22 22 22 22 22 21 21 21 21 21 22 22 23 23 24 25 25 25 26 26 26 25 24 23 22 23 24 27 29 31 31 28 24 20 16 17 20 26 32 35 36 35 32 29 29 29 31 34 36 39 40 39 39 39 39 42 46 52 59 66 72 77 80 82 83 83 79 75 72 71 72 74 76 76 75 74 73 72 72 72 73 73 72 72 72 71 69 68 69 70 71 72 73 73 71 76 79 80 78 76 74 73 29 30 30 30 30 29 29 29 29 29 29 29 29 28 28 27 27 26 25 24 22 20 18 17 15 13 12 11 10 10 9 8 8 7 7 7 7 7 7 7 7 7 7 6 6 6 6 6 6 7 7 7 8 8 8 9 9 9 9 9 9 9 8 7 6 5 4 3 3 3 4 5 6 7 7 6 6 6 6 6 6 7 7 8 8 8 8 8 8 7 6 6 6 6 6 6 6 6 5 5 5 6 8 10 13 16 18 20 22 23 24 25 25 25 24 23 23 23 23 22 22 22 23 23 23 23 23 22 22 22 21 20 19 17 15 18 19 21 21 20 20 19 18 17 18 19 21 22 23 26 30 36 39 42 44 51 61 71 78 83 86 87 87 84 76 67 58 54 51 50 49 45 45 45 45 44 43 43 42 43 43 45 47 46 46 48 52 59 66 71 76 76 77 77 76 73 74 78 85 86 81 72 63 57 50 44 40 39 36 33 31 29 25 21 19 19 21 24 28 30 32 32 27 17 13 12 10 8 6 5 6 6 8 9 10 14 16 16 16 16 17 18 19 19 19 21 24 26 23 18 14 15 16 18 19 20 21 22 22 23 23 24 24 25 25 26 26 25 25 25 25 25 26 26 27 28 28 29 29 30 30 30 31 30 30 30 30 30 31 31 31 32 33 34 35 35 36 37 38 38 37 37 35 34 33 32 31 31 30 29 29 28 26 26 25 25 24 23 23 22 22 22 21 21 21 21 21 21 21 21 21 22 23 24 25 26 27 28 29 29 29 28 28 27 25 24 24 26 28 31 35 36 35 30 24 18 17 18 24 31 36 38 37 35 33 31 31 32 33 35 36 36 36 35 35 35 37 41 47 55 63 70 76 80 83 85 85 82 78 75 73 73 74 76 76 75 74 73 73 73 73 74 74 73 74 74 74 74 74 74 75 75 74 74 73 73 75 77 77 75 73 72 28 29 29 29 29 29 28 28 28 28 28 28 28 28 27 27 26 25 24 23 21 20 18 16 14 13 12 11 10 9 9 8 8 7 7 7 7 7 7 7 7 7 7 6 6 6 6 6 6 7 7 8 8 8 9 9 9 10 10 10 9 9 8 7 6 5 4 3 3 3 4 5 6 7 7 6 6 7 7 7 7 7 7 8 8 8 8 8 8 7 6 6 6 6 6 6 6 6 5 6 7 9 11 13 16 18 19 20 22 23 25 26 26 25 24 24 23 23 23 22 22 22 22 22 23 23 22 21 21 20 19 18 16 15 14 15 19 21 22 20 19 18 18 17 18 20 21 22 24 27 32 35 36 37 38 43 53 64 73 78 79 78 77 73 66 58 51 48 47 47 51 49 46 43 41 40 39 37 36 36 38 39 38 39 41 44 49 57 66 74 80 82 84 83 77 77 79 83 87 91 86 78 67 59 51 46 44 43 39 34 32 28 24 20 20 23 27 31 33 34 35 33 25 20 15 12 11 9 7 6 7 7 8 11 13 15 16 16 16 17 17 18 18 19 21 25 29 30 26 19 15 17 18 19 20 21 22 22 23 23 24 24 25 25 26 26 26 26 25 26 26 26 27 27 28 29 29 30 30 31 31 31 31 31 31 31 32 32 32 32 32 33 34 35 35 36 37 38 39 40 40 39 38 36 35 34 33 33 32 31 31 30 29 28 27 26 26 25 24 24 24 23 22 22 21 21 21 21 21 21 21 22 24 25 27 29 31 32 32 33 33 33 33 32 30 29 27 27 27 29 31 34 36 36 34 28 22 19 19 25 32 37 41 40 39 37 36 35 35 35 35 34 32 31 31 31 32 34 37 43 51 59 68 74 79 83 86 86 85 82 78 75 74 74 74 74 74 74 74 73 74 74 74 74 74 75 75 78 79 80 80 80 78 76 74 73 72 73 74 74 72 70 27 27 28 28 28 27 27 27 27 27 27 27 26 26 26 26 25 25 24 22 21 19 17 15 14 13 11 11 10 9 9 8 8 7 7 7 7 7 7 7 7 7 7 6 6 6 6 6 7 7 7 8 8 9 9 9 10 10 10 10 10 9 9 8 6 5 4 3 3 3 4 5 6 7 6 6 7 7 7 7 7 7 7 8 8 8 8 8 7 7 6 6 5 6 6 6 6 6 6 8 9 11 14 15 16 18 19 20 22 24 25 26 26 26 25 24 23 23 22 21 21 21 22 22 22 22 22 21 19 18 17 16 15 14 15 16 18 20 20 19 18 18 18 17 18 20 22 24 26 28 31 34 35 37 38 42 51 61 67 71 70 67 63 59 54 48 42 37 35 37 43 44 45 47 50 45 43 41 39 37 36 35 34 35 37 41 46 54 64 73 79 84 88 88 81 82 85 89 92 94 91 82 70 61 53 48 49 44 39 34 32 27 23 21 22 28 34 37 37 38 37 32 26 22 17 12 11 9 7 6 9 8 9 12 14 15 16 17 18 18 18 18 19 21 24 28 33 32 26 20 17 18 20 21 21 22 22 23 23 24 25 25 26 26 26 26 26 26 26 26 26 27 27 28 29 30 30 31 31 32 32 32 32 32 32 33 33 33 33 33 33 34 34 35 36 37 38 39 40 41 42 42 41 39 37 35 35 34 34 33 32 32 31 30 29 28 27 27 26 26 26 25 25 24 23 23 22 22 22 22 21 22 24 26 28 30 32 34 35 35 36 36 36 36 35 34 32 31 30 30 30 31 32 33 34 33 29 25 21 22 27 33 39 42 43 43 43 42 41 40 38 36 33 30 29 28 29 30 31 34 40 46 55 64 72 79 84 87 88 88 86 82 79 76 74 73 73 73 73 73 74 75 76 76 77 77 77 80 84 85 85 85 84 82 78 76 72 70 68 70 70 70 25 26 26 26 26 26 26 26 26 25 25 25 25 25 25 25 24 23 22 21 20 18 16 15 13 12 11 10 10 9 9 8 8 7 7 7 7 7 7 7 7 7 7 6 6 6 6 6 7 7 8 8 9 9 9 10 10 10 10 10 10 10 9 8 7 6 4 4 3 3 4 5 6 7 6 6 7 7 7 7 8 8 8 8 8 8 8 7 7 7 6 5 5 5 5 6 6 7 8 10 12 13 14 15 16 18 19 21 23 24 26 26 26 26 25 24 24 23 22 21 21 21 21 22 22 22 21 21 18 17 16 15 14 14 15 16 18 19 18 18 17 17 18 18 20 22 24 26 27 30 32 34 36 38 40 46 55 64 69 69 66 62 58 55 53 51 47 43 39 36 35 36 37 39 43 41 41 41 41 42 41 39 37 36 36 40 49 58 69 78 82 88 93 94 89 90 92 94 96 97 93 85 72 63 54 48 46 41 37 34 32 26 23 23 28 36 40 42 42 40 36 30 25 22 16 12 10 10 8 7 9 9 10 13 15 17 18 19 20 18 18 18 21 23 26 31 35 31 25 20 19 20 21 22 22 22 23 23 24 25 26 26 26 26 26 26 26 26 26 27 27 28 28 29 30 30 31 32 32 33 33 33 33 33 34 34 34 35 35 35 34 35 35 35 36 37 38 39 40 42 43 44 44 42 40 38 36 35 34 34 33 33 33 33 32 31 30 29 29 28 28 27 27 27 26 25 24 24 23 23 22 22 23 24 26 28 30 32 33 35 36 36 37 37 37 37 36 35 35 34 34 34 33 33 33 33 31 29 25 23 24 28 34 40 44 47 49 49 49 49 47 44 40 36 33 30 28 28 28 30 32 36 42 50 60 70 78 83 87 90 90 88 85 82 79 77 75 74 73 73 73 75 76 78 80 80 80 82 86 89 90 89 89 88 86 82 78 72 66 65 67 69 23 24 24 24 24 24 24 24 24 24 24 24 24 24 24 23 23 22 21 20 18 17 16 14 13 12 11 10 10 9 8 8 8 8 7 7 7 7 7 7 7 7 7 6 6 6 6 6 7 7 8 8 9 9 10 10 10 10 11 11 11 10 10 9 7 6 5 4 3 3 4 5 6 7 6 7 7 8 8 8 8 8 8 8 8 8 7 7 7 6 5 5 5 5 5 6 7 8 10 12 13 14 15 16 17 18 20 21 23 25 26 26 27 27 26 25 24 23 23 22 21 21 21 21 22 21 20 19 18 16 15 14 14 15 16 16 17 17 17 16 16 17 18 20 21 23 25 28 30 32 33 34 35 37 41 49 61 73 80 75 70 65 62 59 57 54 50 46 43 41 38 38 37 36 35 35 36 36 36 38 39 38 37 36 38 43 51 59 69 79 85 91 94 94 95 95 96 97 96 97 94 86 74 64 55 48 43 38 35 33 30 26 26 30 37 43 45 45 43 38 34 31 29 24 18 12 10 12 10 8 9 11 13 15 17 19 20 21 20 18 19 21 23 26 29 32 34 29 24 20 21 22 22 22 22 23 24 24 25 26 26 27 27 27 27 27 27 27 27 27 28 28 29 30 31 31 32 33 33 34 34 34 34 35 35 35 36 36 36 36 36 36 36 36 37 38 39 40 40 42 43 44 46 45 43 41 38 36 35 34 34 34 34 34 34 34 33 33 32 31 30 30 29 29 28 28 27 26 25 25 24 24 23 23 24 25 26 28 30 32 33 34 35 35 36 36 36 36 36 36 36 36 36 35 35 34 33 31 28 25 23 24 28 34 40 46 51 53 55 56 56 54 52 49 44 39 35 32 30 29 30 31 33 38 46 55 66 75 82 87 91 91 90 88 85 83 80 78 76 75 74 74 75 77 79 82 82 83 87 91 93 92 92 92 91 89 85 80 73 67 65 66 21 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 21 20 19 18 16 15 14 13 12 11 10 10 9 9 8 8 8 8 8 7 7 7 7 7 7 7 6 6 6 6 7 7 7 8 8 9 9 10 10 11 11 11 11 11 11 10 9 8 6 5 4 3 3 4 6 7 7 7 7 8 8 8 9 9 9 9 8 8 7 7 7 6 6 5 5 5 6 6 8 9 10 12 12 13 15 17 18 18 19 20 22 23 24 26 26 27 27 27 26 25 24 23 22 22 21 21 21 21 21 19 18 16 15 13 13 15 17 16 16 15 15 15 15 15 16 17 17 18 20 23 25 27 29 29 30 32 35 40 50 65 79 85 79 75 70 66 60 56 52 47 42 41 43 43 41 39 37 36 35 35 35 33 36 37 37 35 35 39 45 54 61 67 75 86 90 92 94 98 98 98 98 97 96 93 86 75 66 57 49 43 39 37 35 32 31 33 39 47 48 47 45 41 39 38 37 36 26 18 11 9 13 12 9 9 12 15 18 19 19 19 19 19 19 21 24 26 28 31 34 32 26 23 21 22 23 23 23 23 24 24 25 26 26 27 27 27 27 27 27 27 28 28 28 29 29 30 31 32 32 33 34 35 35 35 35 36 36 37 37 37 38 38 38 38 38 38 38 39 39 40 40 41 41 43 44 46 47 47 45 42 39 36 35 34 34 35 35 36 36 36 36 36 35 33 32 32 31 31 30 29 28 27 27 26 26 25 24 24 24 25 26 28 29 30 30 30 30 30 31 31 32 33 33 34 34 34 34 34 34 34 33 31 27 24 23 23 28 34 41 47 52 57 60 62 62 62 60 57 52 47 42 37 34 32 31 30 31 35 41 49 60 69 78 86 89 91 92 91 90 87 84 82 80 78 76 75 77 80 82 81 84 88 92 96 94 93 93 93 94 92 87 82 74 69 66 19 20 20 21 21 21 21 21 21 22 22 22 22 22 22 21 21 20 19 18 17 16 14 13 12 12 11 10 10 9 9 8 8 8 8 8 8 8 8 8 7 7 7 7 6 6 6 7 7 7 8 9 9 10 10 10 11 11 12 12 12 11 10 9 8 7 5 4 4 4 4 6 7 7 7 7 8 9 9 9 9 9 9 9 8 7 7 6 6 6 5 5 6 7 8 10 10 11 12 12 15 17 18 18 19 20 21 22 23 24 25 26 27 27 27 26 25 24 24 23 22 21 21 21 20 20 19 17 15 14 12 13 14 15 15 17 16 14 13 13 14 15 15 17 22 27 30 32 33 33 32 31 32 34 40 49 62 75 82 78 75 71 65 59 55 52 48 44 43 43 42 41 39 38 38 36 35 34 35 40 42 43 41 40 41 46 56 67 75 81 86 91 94 96 97 97 98 98 98 96 92 86 76 68 59 51 46 46 45 43 39 37 41 47 52 50 47 45 46 47 47 43 36 23 16 11 8 13 14 12 9 14 17 19 19 18 18 18 20 22 25 27 28 31 33 34 30 25 23 23 23 23 23 24 24 25 25 26 27 27 27 28 28 28 28 28 28 28 29 29 30 30 31 32 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 40 41 41 41 41 42 42 42 42 41 41 42 43 45 47 49 49 47 43 40 37 36 36 36 37 37 38 39 39 39 38 37 36 35 34 33 32 32 31 30 29 28 28 27 27 26 25 25 25 25 26 26 25 25 25 25 25 26 26 27 28 29 29 30 31 32 32 33 33 32 30 27 24 21 23 26 32 39 46 52 58 62 65 67 67 66 63 58 53 47 42 38 35 33 32 32 33 36 44 53 62 72 78 83 85 87 89 90 90 89 87 85 83 79 80 81 81 78 82 87 92 95 94 93 92 93 96 95 93 88 82 76 71 18 18 19 19 20 20 21 21 21 21 21 21 21 21 21 20 20 19 18 17 16 15 14 13 12 11 11 10 10 9 9 9 8 8 8 8 8 8 8 8 7 7 7 7 6 6 6 7 7 8 8 9 9 10 10 11 11 11 12 12 12 12 11 10 9 7 5 4 4 4 4 6 7 7 7 8 8 9 10 10 10 10 10 9 8 7 7 6 6 6 6 6 7 9 10 11 11 11 12 13 16 18 19 19 20 20 21 22 23 24 25 26 27 27 27 27 26 25 24 22 22 21 21 20 20 19 17 16 15 14 14 15 16 17 18 20 19 18 19 18 20 22 23 30 34 36 37 37 38 40 42 40 38 38 43 51 60 68 75 78 78 76 72 64 61 59 57 52 48 45 43 41 39 38 40 37 36 37 40 46 51 56 58 55 52 52 59 73 82 89 94 98 98 97 96 97 97 98 98 96 92 86 79 72 63 56 56 57 56 52 46 45 48 52 53 50 50 52 58 59 54 45 33 22 16 12 8 12 15 16 11 15 18 18 17 16 17 19 22 25 28 30 31 33 35 34 29 25 23 23 24 24 24 24 25 26 26 27 27 28 28 28 28 28 29 29 29 29 30 30 31 31 32 33 34 35 35 36 37 37 38 39 39 40 40 41 41 41 42 42 43 44 45 46 46 46 45 44 43 42 41 42 43 45 48 51 51 48 45 43 41 41 41 41 41 41 41 41 42 41 41 40 39 38 37 36 35 34 33 32 31 30 29 29 28 27 26 26 25 25 25 25 25 25 25 25 25 25 25 25 25 26 26 27 29 30 31 31 32 31 29 27 24 22 22 24 29 35 42 49 56 61 66 69 70 69 66 62 58 52 46 42 38 36 34 33 33 36 41 46 54 61 67 70 73 75 78 82 87 89 90 89 86 84 82 82 81 84 88 91 93 91 90 89 89 95 98 97 93 88 82 77 17 18 18 19 19 20 20 21 21 21 21 21 21 20 20 19 18 18 17 16 15 14 13 13 12 12 11 10 10 10 9 9 9 9 8 8 8 8 8 8 8 7 7 7 7 7 7 7 7 8 8 9 9 10 10 11 11 12 12 12 12 12 11 10 9 7 6 5 4 4 5 6 7 7 7 8 9 10 10 10 11 11 10 9 8 7 6 6 6 7 7 8 8 10 10 11 11 12 13 15 17 18 19 20 20 21 22 23 24 24 25 26 28 29 29 27 26 25 24 22 22 21 21 19 19 18 16 14 14 14 13 15 19 24 25 26 27 28 29 28 29 31 34 34 33 32 31 29 33 39 45 48 49 49 50 56 62 68 72 77 80 81 79 75 72 68 65 60 54 48 46 45 43 41 41 39 40 43 48 54 64 76 89 79 77 76 74 82 88 93 99 100 98 96 96 97 98 98 98 96 93 90 86 77 69 64 69 68 65 60 55 55 56 57 56 57 59 63 67 64 55 44 32 23 17 12 8 10 16 18 13 16 17 16 14 15 18 21 24 27 31 33 33 35 35 33 28 25 23 24 24 24 25 25 26 26 27 27 28 28 29 29 29 29 29 29 30 30 31 31 32 32 33 34 35 36 37 38 38 39 40 40 41 41 42 42 43 43 44 45 46 48 49 51 52 51 50 47 45 43 41 41 41 43 46 50 53 52 51 49 48 48 48 48 47 46 45 44 43 43 43 43 43 42 41 40 39 38 37 35 34 32 31 30 30 29 29 28 27 26 26 26 26 26 26 26 26 26 25 25 24 24 24 25 25 26 28 29 30 31 31 30 28 25 23 22 22 25 29 35 42 50 57 63 68 70 70 68 65 60 55 50 45 41 38 36 36 36 36 38 42 47 52 56 59 61 63 66 72 79 84 86 87 86 87 90 95 96 94 92 90 90 89 90 89 92 96 99 98 93 88 83 17 17 18 18 19 19 20 20 20 20 20 20 19 19 19 18 17 17 16 15 14 14 13 13 12 12 11 11 10 10 10 10 9 9 9 8 8 8 8 8 8 7 7 7 7 7 7 7 7 8 8 9 10 10 10 11 11 12 12 13 13 12 12 11 9 8 6 5 4 4 5 6 7 7 7 8 9 10 11 11 11 11 10 9 8 7 6 6 7 7 8 8 9 10 10 11 12 13 14 16 18 19 20 21 22 22 23 24 25 25 26 27 28 29 29 28 26 25 24 22 22 21 20 19 18 17 15 14 13 13 16 18 22 26 27 29 30 30 30 31 31 30 29 29 31 34 34 31 32 38 48 56 60 60 57 60 66 72 74 82 86 87 85 85 81 75 71 66 58 50 48 47 46 46 46 46 47 50 54 60 70 82 97 92 92 93 89 91 95 99 99 97 95 94 96 98 99 100 98 96 94 94 93 83 76 73 77 75 70 66 63 63 63 64 66 67 68 69 68 63 54 44 36 25 17 12 8 9 15 19 14 15 14 14 14 16 19 21 24 27 30 32 33 34 32 30 26 24 23 24 24 25 25 26 26 27 27 28 28 29 29 29 29 29 30 30 30 31 32 32 33 33 34 35 36 37 38 39 40 41 42 42 43 43 44 44 44 45 46 48 49 51 53 55 57 57 55 52 49 45 43 41 40 42 44 48 52 54 54 54 53 53 54 54 53 51 49 47 46 45 45 46 46 46 46 45 44 43 41 40 38 36 34 33 32 31 30 30 29 29 28 28 27 27 27 27 27 27 27 26 26 25 25 24 24 24 25 26 27 29 30 31 31 30 28 25 23 22 22 24 28 34 42 49 57 63 67 69 70 67 63 58 52 48 44 41 38 37 37 37 39 42 45 49 53 56 59 61 63 67 72 77 80 81 84 89 100 100 99 97 93 90 91 94 94 92 93 96 99 97 94 90 16 17 17 17 18 18 19 19 19 19 19 18 18 18 18 17 16 16 15 15 14 14 14 13 13 13 12 12 11 11 10 10 10 9 9 9 8 8 8 8 8 8 7 7 7 7 7 7 7 8 9 9 10 10 11 11 12 12 13 13 13 13 12 11 10 8 6 5 4 4 5 6 7 7 8 9 10 11 11 12 12 11 10 9 8 7 7 7 8 8 9 9 10 10 11 11 13 14 16 17 18 19 20 21 22 23 24 24 25 26 26 27 27 27 27 26 26 25 24 22 21 21 19 19 18 16 14 15 14 13 16 18 21 24 26 27 27 27 26 26 26 26 26 33 42 49 48 42 42 47 58 65 69 70 67 69 74 79 83 87 87 86 87 85 83 80 77 71 61 53 50 49 50 52 52 52 53 56 60 64 73 85 100 93 91 92 94 98 99 99 100 97 94 93 95 98 100 100 100 99 98 98 96 89 83 79 80 76 73 71 68 67 69 71 73 72 72 70 65 60 53 46 36 24 16 11 9 9 14 17 13 12 12 13 14 17 19 21 22 25 27 29 29 29 28 26 24 23 23 24 25 26 26 26 27 27 28 28 29 29 29 29 30 30 30 31 31 32 33 33 34 35 35 36 37 38 40 41 42 43 44 44 45 45 46 46 47 48 50 51 53 55 57 59 61 62 60 57 53 50 47 44 42 42 43 46 50 54 56 57 57 58 58 58 58 55 52 49 48 48 48 48 48 49 49 49 49 48 47 45 43 41 39 37 35 33 32 32 32 31 31 30 29 29 29 29 29 28 28 28 28 27 27 26 25 25 24 24 24 25 26 28 29 30 31 30 28 25 23 22 21 23 27 33 40 47 55 61 66 68 68 66 61 55 50 46 42 40 39 39 39 41 44 47 51 55 58 61 62 64 66 68 71 72 74 79 88 97 100 99 95 93 94 97 97 94 92 89 87 87 89 91 16 16 16 17 17 17 18 18 18 18 18 17 17 17 17 16 16 15 15 15 15 14 14 14 14 13 13 12 12 11 11 10 10 10 9 9 9 8 8 8 8 8 7 7 7 7 7 7 8 8 9 9 10 10 11 11 12 12 13 13 13 13 12 11 10 8 7 5 4 4 5 6 7 7 8 9 10 11 12 12 12 11 10 8 7 7 7 8 9 9 9 10 10 11 12 13 15 17 18 18 18 19 19 21 22 23 24 24 25 25 25 25 25 25 24 24 24 24 23 22 21 20 19 18 17 15 13 15 15 15 15 16 18 21 25 26 26 26 25 26 27 28 30 41 53 62 65 62 62 64 68 72 77 81 79 81 86 91 92 88 83 80 81 83 84 83 80 73 64 55 49 48 51 54 58 60 61 61 63 66 71 81 99 96 94 93 94 95 97 99 100 99 98 96 96 99 100 100 100 100 100 99 98 92 86 83 82 79 77 74 70 70 72 75 76 77 71 65 62 58 52 44 31 20 14 11 9 10 13 14 12 11 11 13 14 17 18 19 20 21 23 24 25 25 24 24 23 23 24 25 26 26 27 27 28 28 28 29 29 29 30 30 30 31 31 32 32 33 34 34 35 36 37 38 39 40 41 43 44 45 45 46 47 48 48 49 50 52 53 55 57 59 61 63 64 65 64 61 58 55 52 50 48 46 45 46 49 52 56 58 59 60 61 61 61 60 56 52 49 48 49 49 49 50 50 51 51 51 51 50 48 46 43 41 39 37 36 35 34 33 33 32 32 31 31 31 30 30 30 30 29 29 29 28 28 27 26 26 25 24 24 24 25 27 28 30 31 30 28 26 24 22 22 23 26 31 38 45 53 60 65 68 68 64 59 53 48 44 42 41 40 42 43 46 50 53 57 59 61 62 63 63 63 63 65 69 75 94 100 99 96 96 97 97 96 94 92 91 90 91 88 85 16 16 16 16 16 17 17 17 17 17 17 17 16 16 16 16 16 16 15 15 15 15 15 15 14 14 13 13 12 12 11 11 10 10 10 9 9 8 8 8 8 8 7 7 7 7 7 7 8 8 9 10 10 11 11 12 12 13 13 13 13 13 13 12 10 9 7 5 5 5 6 6 7 7 8 10 11 12 12 12 11 10 9 8 8 8 8 9 10 10 10 10 11 12 14 15 17 18 18 18 18 19 19 20 21 22 23 24 24 24 23 23 23 23 23 22 22 22 22 21 21 20 18 17 16 14 14 17 20 22 23 24 26 26 24 26 27 28 30 31 31 31 33 42 53 64 75 74 76 78 77 80 85 88 87 89 93 95 95 88 81 76 79 84 84 82 79 71 62 52 45 45 48 52 56 60 62 62 63 65 67 74 89 96 97 95 94 92 94 98 100 100 100 100 99 99 100 100 100 100 100 100 99 97 93 88 86 84 81 76 73 73 76 78 81 74 66 61 61 58 50 37 22 16 12 10 9 12 12 11 11 11 12 13 14 16 17 17 18 19 20 21 21 21 22 22 23 24 25 26 27 27 28 28 28 29 29 29 30 30 30 30 31 31 32 33 33 34 35 35 36 37 38 39 41 42 43 44 45 46 47 48 49 50 51 52 53 55 56 58 60 62 64 66 67 68 67 65 62 59 56 54 53 52 50 50 49 52 55 57 60 61 62 63 64 63 61 57 51 49 48 48 49 49 50 50 51 52 53 53 52 50 48 46 44 42 40 39 37 36 35 34 34 33 33 32 32 32 32 32 31 31 30 30 29 29 28 28 27 27 26 25 24 24 24 26 27 29 30 30 29 27 25 23 22 23 25 29 35 43 52 60 67 68 67 62 57 51 47 44 42 43 43 45 47 50 53 56 58 58 58 57 56 55 56 62 73 93 100 100 98 97 96 95 93 92 90 89 91 96 92 84 16 16 16 16 16 16 16 17 17 17 17 16 16 16 16 16 16 16 16 16 16 16 15 15 15 14 14 13 12 12 11 11 10 10 10 9 9 9 8 8 8 8 7 7 7 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 13 13 12 10 9 7 6 5 5 6 6 7 8 9 10 11 12 13 12 11 10 9 8 8 8 9 10 10 10 10 11 12 14 15 17 18 19 19 18 19 19 19 19 20 21 22 23 23 23 22 21 21 21 21 21 21 21 20 20 19 18 17 17 16 15 16 17 20 23 26 27 29 29 27 28 29 30 29 29 30 31 33 37 47 60 73 77 81 85 85 85 89 93 93 93 93 94 93 87 82 80 85 87 86 82 77 67 60 53 48 46 47 49 51 56 59 61 63 66 68 72 83 94 98 98 96 95 96 98 99 100 100 100 100 100 100 100 100 100 100 100 100 100 97 94 93 87 82 78 75 76 78 80 78 67 62 61 59 53 41 27 16 13 11 9 9 12 11 10 11 12 13 13 14 15 15 16 16 17 18 18 19 20 21 22 23 24 25 26 27 28 28 29 29 30 30 30 30 30 31 31 32 33 33 34 34 35 36 36 37 39 40 41 42 43 45 46 47 48 49 49 50 52 53 55 56 57 59 60 62 65 67 68 69 69 69 68 66 63 60 59 58 57 56 55 54 54 55 57 59 62 64 65 65 65 63 60 55 51 48 46 46 47 47 47 48 49 51 53 54 53 51 50 48 46 45 43 42 40 38 36 35 34 34 33 33 33 33 33 33 32 32 31 31 30 29 29 28 28 28 27 27 26 25 24 24 25 26 28 30 30 29 28 26 24 22 22 24 28 35 44 54 62 67 68 66 60 55 50 46 45 45 46 48 51 51 52 53 53 52 51 49 48 48 52 62 89 99 99 98 95 93 93 91 90 87 87 94 97 93 86 16 16 16 16 16 16 16 17 17 17 17 17 17 17 17 17 17 17 17 17 16 16 15 15 14 14 13 13 12 12 11 11 10 10 10 9 9 9 8 8 8 8 7 7 7 7 7 8 8 9 10 10 11 11 12 12 13 13 14 14 14 14 13 12 11 9 7 6 5 5 6 7 7 8 10 11 12 12 13 12 11 10 9 8 8 9 10 10 11 11 11 12 14 15 16 17 18 18 19 19 19 19 20 20 20 20 21 22 22 22 21 20 20 20 20 20 19 19 19 19 17 16 16 17 17 16 17 18 19 20 22 23 25 26 27 28 28 28 28 28 28 30 33 35 43 54 66 76 82 86 86 85 89 93 94 93 93 92 91 89 87 87 88 86 81 76 70 63 60 57 55 53 52 52 51 53 56 59 62 66 69 76 88 96 99 98 98 98 99 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 99 97 96 88 83 79 77 80 81 77 67 63 63 62 59 46 32 20 14 12 11 10 10 11 10 10 11 12 13 14 14 14 14 14 15 15 16 17 18 19 20 21 23 24 25 26 27 28 29 29 30 30 30 31 31 31 32 33 33 34 34 35 35 36 37 38 39 40 42 43 44 45 46 47 48 49 50 51 52 54 55 57 58 59 60 61 63 65 66 68 68 69 70 70 69 67 64 62 61 61 60 60 59 58 57 57 58 61 64 66 67 66 64 60 55 51 48 45 43 42 42 42 42 44 46 49 53 54 54 53 51 50 49 48 46 45 42 40 38 36 35 34 34 34 33 33 33 33 33 33 32 32 31 30 29 29 28 28 28 28 27 27 26 25 24 25 25 27 29 29 29 28 26 24 22 22 24 29 36 46 56 64 69 68 64 58 53 49 48 49 54 54 52 51 51 51 51 49 47 46 46 48 52 77 91 95 92 90 89 89 89 88 86 88 97 97 93 87 14 15 15 16 16 16 16 16 17 17 17 17 17 17 17 17 17 17 17 16 16 15 15 14 14 13 13 12 12 11 11 10 10 10 10 9 9 9 8 8 8 8 7 7 7 7 8 8 9 10 10 11 11 12 12 12 13 13 14 14 14 14 13 12 11 9 7 6 5 5 6 7 8 9 10 12 12 13 12 11 10 9 9 9 9 10 11 11 11 11 12 13 15 16 17 17 17 17 18 18 19 19 20 20 20 20 21 21 21 20 20 19 19 19 19 18 18 18 17 17 15 14 16 17 18 18 18 19 21 23 24 26 27 26 24 24 25 26 27 27 28 31 34 35 40 47 58 70 76 80 81 81 84 87 91 92 92 91 89 90 87 82 78 73 69 65 62 62 62 61 59 58 58 57 55 56 56 56 58 62 67 74 84 94 98 98 97 97 99 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 99 98 97 90 86 83 82 82 76 69 64 67 68 65 56 37 24 18 17 16 15 13 10 10 10 11 11 12 13 13 13 12 12 12 13 14 15 16 18 19 20 21 23 24 25 26 27 28 29 30 30 31 31 32 32 33 33 34 34 35 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 52 53 54 56 57 59 60 61 62 62 63 64 64 65 66 67 68 69 70 69 68 67 65 64 63 62 62 60 58 56 55 58 61 65 68 68 65 59 52 48 46 44 43 40 38 36 36 37 38 41 46 50 53 55 54 53 52 51 50 49 48 45 43 40 38 37 36 35 35 35 35 35 35 34 34 34 33 33 32 31 30 29 28 28 28 28 28 27 26 26 25 25 25 26 28 29 29 28 26 24 23 23 25 30 39 48 59 65 67 66 62 57 53 51 54 54 53 52 52 53 54 54 52 50 49 49 52 62 72 79 78 79 80 82 84 83 84 88 96 95 92 89 12 13 13 14 15 15 15 16 16 16 16 16 17 17 17 17 16 16 16 15 15 14 13 13 12 12 12 11 11 11 10 10 10 10 10 9 9 8 8 8 8 7 7 7 7 7 8 9 9 10 11 11 12 12 12 13 13 14 14 14 14 14 13 12 11 9 7 6 5 6 6 7 8 10 11 12 13 13 12 11 10 9 9 9 10 12 13 12 12 12 14 16 17 18 18 17 17 17 17 18 18 19 19 20 20 20 20 20 19 19 18 18 18 18 18 17 17 16 16 16 14 13 17 18 19 20 20 20 25 29 31 33 33 31 28 26 26 25 26 27 28 31 34 33 37 44 54 63 68 71 74 76 78 80 84 89 90 89 86 84 79 74 71 68 66 64 62 63 63 62 60 60 59 58 57 58 58 58 57 58 61 67 75 85 91 94 95 94 96 99 99 100 100 100 100 100 100 100 100 100 100 100 100 100 99 98 95 91 88 84 80 75 70 69 72 75 71 60 42 29 24 23 23 20 16 12 7 9 11 12 12 12 11 11 10 10 11 11 13 14 15 16 18 19 20 22 23 24 26 27 27 28 29 30 31 31 32 33 33 34 35 35 36 36 37 37 38 39 40 41 42 43 45 46 47 48 50 51 52 53 54 55 57 58 60 61 62 63 64 64 63 63 63 63 63 64 65 67 69 71 71 71 70 67 65 62 60 57 55 52 51 52 55 59 64 66 63 57 49 44 40 39 37 36 34 32 31 31 32 34 37 42 47 52 55 56 55 55 53 52 51 50 48 45 42 40 38 38 37 37 37 37 37 37 36 36 36 36 35 35 33 32 31 30 29 28 28 28 27 27 27 26 25 25 25 26 27 28 29 28 26 25 23 24 27 33 41 51 59 65 67 65 61 57 55 55 54 54 55 57 59 61 61 59 56 54 54 56 60 64 64 66 67 70 74 77 81 85 93 92 90 89 8 9 10 11 12 12 13 13 14 14 14 15 15 15 15 15 14 14 14 13 13 12 12 11 11 11 10 10 10 10 10 10 10 9 9 9 9 8 8 8 8 7 7 7 7 8 8 9 10 11 11 12 12 13 13 13 14 14 14 14 14 14 13 12 11 10 8 6 6 6 7 7 9 10 12 12 13 13 12 10 9 9 9 10 12 14 15 15 14 15 19 21 22 21 20 18 16 16 16 17 18 18 19 19 19 19 19 18 18 18 18 17 17 17 16 15 15 15 15 15 14 15 18 19 20 21 23 26 30 34 35 36 35 33 31 29 26 24 24 25 28 30 30 31 39 49 57 63 66 67 68 73 77 81 82 87 87 85 80 78 75 73 73 71 68 65 61 60 59 59 59 58 57 57 58 60 61 61 60 59 60 62 65 70 77 85 92 94 96 98 97 96 98 100 100 100 100 100 100 100 100 100 99 99 98 97 93 88 82 77 73 72 73 76 79 74 61 45 30 28 27 26 24 18 13 9 7 8 11 12 12 10 9 9 9 9 10 11 12 13 15 16 18 19 21 22 24 25 26 27 28 28 29 30 31 32 33 34 35 35 36 36 37 37 37 38 39 40 41 42 43 44 46 47 49 50 51 52 53 54 55 57 58 60 62 63 65 66 66 66 65 64 64 63 64 65 66 67 69 71 73 74 74 70 66 61 55 51 48 46 46 46 48 51 54 57 56 52 44 39 35 33 32 30 28 27 26 26 26 28 30 34 40 45 51 54 56 56 55 53 52 50 48 47 45 43 42 41 40 39 39 39 39 39 38 38 38 38 38 37 37 36 35 34 32 31 30 29 28 27 27 27 27 26 26 25 25 26 27 28 28 27 26 25 25 26 28 35 44 53 61 64 66 65 62 60 58 58 57 59 62 66 68 67 65 62 59 57 56 56 55 55 55 58 62 68 72 78 87 87 87 88 6 6 7 8 8 9 10 10 11 11 11 12 12 12 12 12 12 11 11 11 10 10 10 10 10 10 10 10 9 9 9 9 9 9 9 9 8 8 8 8 7 7 7 7 7 8 9 10 11 11 12 13 13 13 13 14 14 14 14 15 14 14 14 13 11 10 8 6 6 6 7 8 9 11 12 13 13 12 11 10 9 9 10 12 15 17 18 18 18 20 26 28 27 24 20 17 16 15 15 16 16 17 17 17 17 17 17 17 17 17 17 15 14 14 14 13 13 13 15 16 18 19 22 24 23 22 26 30 34 35 35 37 36 34 31 28 25 21 20 22 24 26 26 34 47 59 65 69 70 70 69 71 76 82 82 85 85 81 78 77 76 75 74 71 66 61 57 55 56 57 57 57 57 58 59 61 63 64 63 64 65 66 66 65 72 84 95 97 98 97 94 91 95 100 100 100 100 100 100 100 100 100 99 99 98 93 86 77 73 72 73 76 79 79 76 60 44 33 29 29 27 24 20 14 10 8 7 8 9 11 10 9 8 7 7 8 9 10 12 14 15 17 18 20 22 23 25 26 26 27 28 29 30 31 32 33 34 35 36 36 37 37 37 37 38 39 40 41 42 43 44 46 47 49 50 51 52 53 54 55 56 58 60 62 63 65 66 68 68 68 67 66 65 66 66 68 69 70 70 72 73 75 75 71 64 56 48 43 40 39 40 41 41 41 42 43 43 41 37 33 30 28 27 26 24 23 22 22 22 22 24 27 32 39 46 51 53 54 54 53 51 49 47 45 44 44 43 43 42 42 41 41 41 40 40 39 39 39 39 39 38 38 38 37 36 35 33 32 30 29 28 28 27 27 27 26 26 25 25 25 26 27 27 27 26 26 25 27 31 38 46 54 60 64 66 66 64 62 61 61 63 67 70 72 72 70 68 64 60 57 54 51 50 51 54 59 63 69 78 81 84 87 8 7 6 6 6 6 6 7 7 7 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 8 8 8 8 8 8 7 7 7 7 8 8 10 10 12 12 13 13 14 14 14 14 14 15 15 15 15 14 14 13 11 10 8 7 6 6 7 8 10 11 13 13 13 12 11 10 9 10 12 15 18 20 21 22 24 27 31 31 28 24 19 16 14 13 13 14 15 15 16 16 15 16 16 16 16 16 15 14 13 13 14 12 12 12 15 18 22 26 28 30 28 26 28 31 33 35 35 35 34 32 29 26 23 20 17 19 20 22 27 43 58 70 74 76 78 78 76 75 78 81 82 83 81 78 76 77 78 77 76 73 69 63 57 55 56 57 59 60 61 62 62 65 67 68 68 69 70 70 69 69 80 93 100 100 99 97 95 91 93 98 100 99 99 100 100 100 100 99 99 97 92 83 72 69 69 73 77 81 80 73 60 44 34 29 29 27 25 20 16 11 9 8 7 7 7 8 8 8 7 7 7 8 9 10 12 14 16 18 19 21 23 24 26 26 27 28 29 30 31 32 33 34 35 35 36 36 36 37 37 38 39 40 41 42 43 44 46 47 49 50 51 52 53 54 55 56 58 59 61 63 64 66 67 68 68 68 68 67 67 67 68 69 71 72 72 72 73 73 71 65 57 49 42 38 35 34 34 34 34 33 32 32 31 30 28 26 25 24 24 22 21 20 20 21 21 21 20 23 27 32 39 43 47 50 50 50 48 47 45 44 44 44 43 43 43 43 43 43 42 42 41 40 40 39 39 39 39 39 39 39 38 38 37 35 34 32 31 29 28 27 27 27 27 27 26 25 25 25 26 26 27 27 27 26 27 29 33 39 46 54 61 64 65 64 64 62 62 65 69 71 73 74 75 73 69 64 59 56 53 52 52 55 58 62 70 78 82 86 16 13 10 9 7 6 6 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 8 8 9 10 11 13 13 14 14 14 15 15 15 15 15 15 15 15 14 14 13 12 10 8 7 6 7 7 9 10 12 13 14 13 12 10 10 10 12 15 18 20 23 26 28 30 31 31 29 25 19 14 12 11 11 11 12 13 14 14 14 14 14 15 16 15 15 15 16 17 17 16 16 16 15 14 15 19 24 26 30 29 28 29 31 33 34 34 33 31 29 27 27 24 20 17 17 18 24 36 56 70 79 82 84 86 87 86 85 84 84 85 80 75 72 73 76 79 81 80 80 77 72 66 65 65 65 65 67 70 71 71 73 75 76 76 75 75 74 75 79 89 98 100 100 99 98 96 92 92 94 97 96 97 99 99 99 97 94 92 87 80 72 67 69 72 76 79 79 71 58 43 33 28 26 27 24 21 16 12 9 8 7 6 6 6 6 7 7 6 7 7 8 9 11 13 15 17 19 21 23 24 26 26 27 28 29 30 31 32 33 34 35 35 35 36 36 36 37 37 38 40 41 42 43 45 46 47 48 50 51 52 52 53 54 55 57 59 61 63 64 65 67 68 68 68 67 66 66 65 65 66 66 68 69 72 72 71 69 63 56 48 42 38 35 33 31 30 29 28 28 27 26 25 25 23 23 22 21 20 20 19 19 21 22 23 22 21 22 24 27 31 33 35 37 38 38 37 36 35 35 37 39 42 43 43 43 43 43 43 43 42 41 41 41 40 40 40 40 41 41 41 40 40 39 37 36 34 33 31 29 28 27 27 27 27 27 26 25 25 25 25 26 26 27 27 27 27 30 34 39 46 53 58 60 61 62 61 62 66 68 71 73 77 78 76 72 66 62 59 57 55 56 57 60 67 78 84 88 26 23 20 17 14 12 10 9 7 7 6 6 5 5 5 6 6 6 6 6 7 7 7 8 8 8 8 8 9 9 9 9 9 9 9 8 8 8 8 8 8 8 8 8 9 10 11 13 14 14 15 15 15 15 15 15 15 15 15 15 15 15 14 13 12 10 8 7 7 7 8 9 11 13 14 14 13 12 10 10 11 14 17 19 23 27 32 32 31 29 26 23 18 13 10 9 9 9 9 10 11 11 12 12 12 13 15 15 15 15 17 18 19 19 19 20 20 19 15 13 15 19 25 28 30 31 34 34 34 34 33 32 31 31 30 29 25 21 18 18 22 33 51 69 80 85 86 89 92 95 94 93 92 91 91 88 84 82 85 85 85 84 81 81 79 78 76 77 77 77 76 75 75 76 76 77 80 83 85 81 80 81 85 91 96 100 100 100 100 99 99 93 90 91 93 93 95 98 97 94 91 88 85 80 75 71 70 72 74 74 70 63 51 39 29 24 23 22 22 19 15 11 9 7 6 6 5 5 5 5 6 6 6 7 7 9 10 12 14 16 18 20 22 24 25 26 27 28 29 30 31 32 33 34 34 35 35 35 35 36 36 37 38 39 41 42 44 45 46 47 49 50 51 51 52 52 52 54 56 58 60 62 64 65 67 68 68 67 66 64 62 62 61 61 60 60 61 64 69 72 71 67 60 53 47 42 37 34 31 29 28 27 26 26 25 24 23 22 21 21 20 19 19 18 18 19 22 25 26 26 24 23 24 25 26 26 26 26 27 27 26 25 24 25 27 30 34 37 40 41 42 42 42 42 42 41 41 41 41 41 41 41 41 42 43 43 43 42 41 40 38 36 34 33 31 29 28 27 27 27 27 27 26 25 25 25 25 26 26 26 27 27 28 30 33 39 44 50 52 56 58 60 62 65 67 70 75 78 79 77 73 69 65 62 59 58 58 60 64 75 85 92 32 31 30 27 25 22 19 17 15 13 11 10 9 9 8 8 8 8 8 8 8 8 8 9 9 9 9 10 10 10 10 10 10 10 10 9 9 9 9 8 8 8 8 9 10 11 12 14 15 16 16 16 16 16 16 16 16 16 16 15 15 15 14 13 12 10 8 7 7 7 8 10 12 13 14 14 13 11 10 10 13 15 18 20 25 30 35 32 29 26 20 17 13 10 10 10 10 9 9 9 9 9 10 10 11 13 14 15 15 17 18 19 19 20 22 22 22 22 20 19 21 25 31 33 35 37 39 38 37 36 36 34 34 34 33 30 27 23 20 21 28 40 57 72 80 84 87 91 95 98 98 98 96 93 93 94 95 94 93 92 88 84 79 79 82 84 83 84 84 82 79 76 75 75 75 76 80 85 89 87 86 88 93 97 99 100 100 100 100 100 100 96 92 91 94 92 94 96 95 89 87 86 82 78 75 71 67 66 63 57 48 39 31 24 20 19 18 18 16 13 10 8 6 6 5 5 4 4 5 5 5 6 6 7 8 10 11 13 16 18 20 22 24 25 26 27 28 29 30 31 32 33 33 34 34 34 35 35 35 36 37 38 39 40 42 43 45 46 47 49 50 51 51 51 51 51 52 54 57 59 61 63 65 67 68 68 67 64 62 60 58 58 57 55 53 52 53 58 65 70 72 70 65 59 53 46 38 33 30 28 27 26 26 25 24 22 21 20 20 19 18 18 18 18 18 19 21 26 28 29 29 29 30 30 29 27 26 26 26 25 25 24 23 23 24 25 27 29 32 35 37 39 40 40 41 40 40 39 39 39 39 40 40 41 43 44 45 45 45 44 43 41 39 36 34 32 31 29 28 27 27 27 27 26 26 25 25 24 25 25 26 26 27 27 27 29 32 36 40 44 49 52 56 59 62 64 69 74 77 78 78 75 71 68 64 61 60 60 62 68 79 91 31 32 33 33 32 31 29 27 25 23 21 19 18 16 15 14 14 13 13 12 12 12 11 11 12 12 12 12 12 12 12 12 12 12 11 11 10 10 10 10 9 9 9 10 11 12 14 15 16 17 17 17 17 17 17 17 16 16 16 16 15 15 14 14 12 11 9 7 7 7 8 10 12 14 15 14 13 11 10 11 14 17 19 21 26 32 35 32 28 23 16 13 12 12 13 13 13 12 11 10 9 9 9 10 11 13 14 15 16 18 20 21 22 24 27 27 27 26 26 26 28 31 34 34 35 37 38 38 38 38 38 37 36 36 35 33 29 26 23 25 32 43 56 68 75 80 83 89 94 98 99 98 96 94 93 96 94 89 84 83 83 84 85 88 90 89 87 86 82 76 72 72 73 75 77 80 84 89 93 93 93 93 96 98 99 100 100 100 100 100 100 99 97 95 96 91 90 90 88 82 81 80 77 72 66 60 53 48 42 36 30 25 22 20 19 19 18 15 10 8 6 5 5 4 4 4 4 4 5 5 5 6 7 8 9 11 13 15 18 19 21 23 24 26 27 28 29 30 31 32 33 33 34 34 34 35 35 35 36 37 38 39 40 41 42 43 45 46 48 49 50 50 50 50 50 51 54 56 58 60 62 64 66 67 67 66 63 59 57 55 55 54 53 50 47 45 47 52 59 66 70 71 68 62 54 45 36 31 28 26 26 26 25 24 23 21 20 18 18 17 17 16 16 16 17 18 20 24 27 31 34 37 39 39 38 35 34 32 31 30 29 28 27 26 26 26 26 26 26 28 29 32 34 36 37 38 38 38 37 37 37 37 37 38 40 41 43 44 45 45 46 45 43 41 39 36 34 32 30 29 27 27 26 26 26 26 26 25 25 24 24 25 26 26 26 26 26 27 29 33 36 40 44 49 53 57 62 67 72 76 78 79 77 74 69 66 63 61 62 64 72 85 23 26 28 30 32 33 34 33 33 32 30 29 27 26 25 23 22 21 20 19 19 18 17 17 16 16 16 16 16 16 16 15 15 14 14 13 13 12 12 11 11 10 10 11 12 13 15 16 17 18 18 18 18 18 18 17 17 16 16 16 15 15 15 14 12 11 9 8 7 8 9 11 13 14 15 15 13 11 11 12 15 17 18 22 29 35 36 33 28 22 13 13 14 16 17 17 17 16 14 12 11 10 9 10 11 13 14 16 18 21 23 23 25 28 29 30 30 30 29 30 31 32 32 32 34 35 34 34 34 35 35 35 35 35 35 33 29 26 26 31 39 50 61 67 71 75 77 85 92 96 97 98 97 96 96 95 86 76 73 76 82 89 95 95 94 92 90 84 75 68 67 71 76 81 88 91 93 95 97 98 97 97 98 98 99 99 100 100 100 100 100 100 100 98 95 88 84 81 78 75 74 72 68 60 53 46 40 36 31 27 26 24 22 21 21 18 14 10 6 5 5 4 4 4 4 4 4 4 5 5 6 7 8 10 11 13 16 18 20 21 23 24 26 27 28 29 30 31 32 32 33 34 34 34 34 35 35 36 37 38 38 39 40 41 42 43 44 46 47 48 48 48 48 49 51 53 55 57 59 60 62 64 65 65 64 61 56 53 51 51 51 51 49 46 43 42 43 47 53 59 62 64 62 56 48 40 34 30 27 26 26 25 24 23 22 20 18 17 16 15 15 14 15 15 16 17 18 22 27 33 36 40 44 45 43 40 37 35 33 31 30 29 28 27 27 26 26 26 25 25 25 26 27 29 31 33 35 36 36 36 35 35 35 36 36 37 38 40 41 42 44 44 45 44 43 41 39 36 33 31 29 28 27 26 26 26 26 26 26 25 25 24 24 25 25 26 26 26 26 26 27 30 33 37 43 49 55 60 66 71 76 80 81 79 75 71 67 64 62 63 67 77 14 17 19 22 25 28 30 32 34 35 35 35 35 34 33 33 32 31 30 28 27 26 25 24 23 23 22 21 21 21 20 19 19 18 17 16 15 15 14 13 13 12 12 13 14 15 16 18 18 19 19 19 19 19 18 18 17 17 16 16 16 15 15 14 13 11 9 8 7 8 9 12 14 15 16 15 13 11 11 13 15 17 18 26 34 38 36 32 28 21 12 15 18 20 20 20 19 18 17 14 12 10 8 10 11 13 15 19 22 25 26 24 25 27 27 27 28 28 29 30 32 35 36 38 41 42 40 38 36 35 34 34 34 34 34 32 31 31 36 42 50 58 67 72 73 74 78 88 94 98 98 99 99 98 97 87 76 69 74 80 87 93 97 95 93 93 94 83 72 65 68 74 80 87 95 97 99 99 100 100 99 99 99 99 99 99 100 100 100 100 100 100 100 97 92 85 79 75 72 72 71 67 61 53 46 41 40 36 31 27 25 23 21 19 17 12 8 5 4 4 4 4 4 4 4 4 5 5 6 7 8 9 11 12 15 17 19 20 22 23 25 26 27 28 29 30 31 32 33 33 34 34 34 35 35 36 37 38 39 40 41 41 41 42 42 43 43 44 45 45 46 47 48 50 52 54 56 58 59 61 62 62 62 60 56 52 48 46 45 46 47 46 45 43 40 39 40 42 45 49 51 51 49 44 39 34 30 28 26 26 25 25 24 22 20 19 18 16 15 14 14 14 15 15 16 18 19 25 32 38 41 43 45 46 46 43 41 39 37 35 33 32 30 27 26 26 25 25 25 25 24 24 24 24 24 26 28 30 32 33 34 34 34 34 35 36 37 37 38 39 40 41 43 43 44 43 42 40 38 35 32 30 29 27 27 26 26 26 26 26 26 25 25 24 24 24 25 26 26 25 25 25 26 28 32 39 47 54 60 65 71 77 81 83 80 76 71 67 64 64 65 71 7 9 11 14 16 19 22 25 28 30 33 35 36 37 37 38 38 37 37 36 36 35 34 33 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 15 14 15 16 17 18 19 20 20 21 21 20 20 19 18 18 17 17 16 16 16 15 14 13 11 9 8 7 8 10 12 14 15 16 15 13 11 11 14 16 18 21 32 38 39 36 31 26 20 13 18 22 23 23 22 21 20 18 16 13 10 8 10 12 15 18 23 26 28 26 24 24 24 25 25 26 26 28 32 36 39 42 44 47 49 49 47 43 39 36 35 34 33 34 37 41 45 51 54 59 66 76 82 83 85 90 96 98 99 100 100 99 96 91 77 71 71 78 83 88 92 92 91 93 95 96 82 73 71 75 81 86 91 97 99 100 100 100 100 100 99 99 99 99 99 99 99 100 100 100 99 97 93 88 82 77 74 73 73 71 66 60 54 49 45 43 37 30 23 18 16 14 12 9 6 4 3 3 3 4 4 4 4 5 5 6 7 8 9 10 12 14 16 18 20 22 23 24 26 27 28 29 31 32 33 34 35 35 35 36 36 36 37 37 39 40 42 43 43 44 44 44 43 43 43 43 44 44 45 47 48 50 51 53 55 57 58 59 60 60 58 55 51 47 43 40 39 39 39 40 40 39 37 36 35 36 37 39 40 41 40 38 34 31 29 26 25 25 24 24 23 22 20 19 18 17 16 16 16 16 17 17 18 19 22 25 30 36 41 45 49 51 52 52 51 50 50 49 47 46 44 41 38 34 30 27 24 23 22 21 21 21 21 20 20 20 22 24 26 29 30 32 33 34 35 36 37 38 39 40 40 41 41 42 42 42 42 41 39 36 33 31 29 28 27 26 26 26 26 26 26 26 25 24 24 24 24 25 26 26 25 25 25 26 30 37 46 53 60 67 73 79 84 84 81 76 72 67 65 65 68 3 4 6 7 9 11 13 16 18 21 25 28 30 33 35 36 38 39 40 40 40 40 40 39 38 37 36 35 33 32 31 30 28 27 25 24 23 21 20 19 18 18 17 17 18 19 20 21 21 22 22 22 21 21 20 19 18 18 17 17 16 16 15 14 13 11 10 8 8 8 10 13 15 16 16 15 13 11 11 14 16 18 21 38 42 38 33 31 25 18 15 21 24 25 25 25 24 23 21 19 16 12 8 10 13 17 22 28 30 30 26 24 24 24 24 25 26 27 30 34 40 44 42 44 45 47 51 49 46 42 37 35 35 38 45 52 57 60 62 62 67 74 85 90 94 96 99 98 98 98 99 98 95 90 83 76 75 78 82 86 88 88 87 90 95 97 93 80 76 78 82 89 94 97 99 99 100 100 100 99 99 99 99 99 99 98 98 99 100 100 100 97 93 89 83 79 76 76 77 76 71 66 60 55 49 45 40 32 22 14 9 7 6 5 4 3 3 3 3 4 4 5 5 6 6 7 8 9 10 12 14 16 18 20 22 23 25 26 28 29 30 32 34 36 38 39 40 41 41 41 41 41 42 42 43 45 46 47 48 48 48 48 48 47 46 45 45 46 46 47 48 50 51 53 55 56 58 58 58 56 53 49 45 41 37 35 34 34 34 34 34 34 33 32 31 31 31 32 33 34 34 33 31 29 27 25 24 23 22 22 22 21 20 18 17 17 17 17 18 19 20 21 21 22 25 29 34 38 41 44 46 50 54 57 58 58 58 58 57 57 56 55 54 52 48 44 39 35 30 26 23 20 18 16 15 15 14 14 16 17 19 22 24 27 30 32 35 36 38 39 40 41 41 41 41 41 41 42 42 41 40 37 34 31 29 28 27 27 26 26 25 26 26 26 26 25 24 23 23 24 25 26 26 26 26 27 31 37 45 54 64 71 77 83 87 85 82 77 72 68 67 67 2 2 3 3 4 5 7 8 10 13 15 18 21 24 27 30 32 34 36 38 39 40 41 41 41 40 40 39 38 37 36 34 33 31 30 28 27 25 24 23 22 21 20 20 20 21 22 22 23 23 23 23 22 22 21 20 19 18 18 17 16 16 16 15 13 12 10 8 8 9 11 13 15 16 17 15 13 11 11 13 15 17 18 30 33 30 26 30 26 19 18 23 26 27 27 27 26 26 25 24 20 15 9 10 13 19 27 32 32 29 26 26 27 28 27 27 28 29 31 39 43 44 42 41 41 43 48 49 46 42 36 39 44 51 57 60 62 62 62 66 72 79 85 90 95 99 97 90 89 92 94 97 95 93 91 83 82 83 85 88 89 88 89 93 98 97 86 80 78 80 83 92 97 99 99 99 99 99 100 99 99 100 100 99 99 99 98 99 99 98 98 93 88 83 78 77 78 79 80 77 71 64 57 50 43 37 32 23 15 8 5 4 3 3 2 2 3 3 4 4 5 6 6 8 9 10 12 14 16 18 19 21 23 24 26 27 29 30 32 35 38 42 46 49 51 52 53 53 53 53 53 53 53 53 54 54 55 55 55 55 54 52 51 50 49 48 47 48 48 49 50 52 53 55 56 57 58 56 53 48 43 38 35 32 30 30 30 30 30 29 29 29 28 28 28 28 28 29 30 30 30 29 28 26 24 23 21 21 20 20 20 19 18 17 16 16 17 18 19 22 24 25 24 25 29 35 41 45 48 48 47 49 52 55 57 59 60 60 60 61 60 59 58 56 54 52 49 48 45 42 38 34 30 26 22 19 17 15 14 14 15 17 18 20 22 25 28 31 34 37 38 39 40 41 41 41 41 41 42 43 42 40 37 33 31 29 28 27 27 26 26 25 26 26 26 26 26 25 24 23 24 25 26 26 27 28 30 33 37 44 54 65 72 79 85 87 86 83 78 73 70 69 1 1 1 2 2 3 3 4 5 6 8 10 12 15 18 20 23 26 28 30 33 35 36 37 38 39 40 40 40 39 38 37 36 35 33 32 30 29 28 27 26 25 24 24 23 24 24 24 25 25 25 24 23 22 22 21 20 19 18 17 17 16 16 15 14 12 10 9 8 9 11 14 16 17 17 15 13 11 11 12 15 18 18 22 24 24 25 31 26 20 20 25 27 28 28 28 28 28 28 27 25 19 12 11 16 25 35 33 31 29 30 32 33 33 32 32 30 30 32 40 43 42 41 39 39 41 47 50 47 44 46 49 52 56 59 60 62 63 64 67 71 76 82 87 94 96 88 83 86 91 98 98 94 89 83 81 82 85 88 91 91 91 94 97 98 93 79 78 76 76 81 92 97 99 100 100 99 99 100 100 100 100 100 99 98 95 92 90 89 87 86 82 78 75 73 76 78 80 79 74 65 56 49 42 35 29 24 16 10 7 5 4 3 3 3 3 4 5 6 7 8 9 11 13 15 17 19 20 22 23 24 26 27 29 32 35 39 43 48 53 58 61 63 64 65 65 66 66 67 67 67 67 67 66 66 65 65 65 64 62 60 58 55 53 52 51 50 50 51 51 53 54 55 56 57 56 54 49 43 37 33 30 28 27 26 26 26 26 26 26 26 26 26 26 26 26 26 26 27 27 27 26 25 23 22 20 19 18 18 18 18 17 16 15 16 17 18 19 20 23 25 26 26 25 27 32 39 44 47 48 47 46 46 45 46 50 52 54 58 59 58 57 57 56 54 52 51 50 50 49 48 46 44 41 38 34 30 26 22 19 17 16 16 16 18 20 22 27 30 32 34 38 38 38 38 39 40 41 42 43 43 43 40 36 33 30 28 28 27 27 27 26 25 25 26 26 26 26 26 24 23 23 24 25 26 27 30 33 34 36 41 52 62 71 77 83 87 89 84 78 74 72 1 1 1 1 1 1 2 2 2 3 4 5 6 8 9 12 14 16 19 21 24 26 28 30 32 34 35 36 37 38 38 38 37 36 35 34 33 32 31 30 29 28 28 27 26 26 26 26 26 26 26 25 24 23 22 21 20 19 18 18 17 17 16 15 14 12 10 9 8 9 11 14 16 17 17 15 13 11 10 12 15 17 17 21 22 24 26 33 27 20 21 25 27 27 27 27 27 28 28 29 28 24 17 17 23 31 34 32 32 33 34 35 35 35 34 33 32 31 31 38 41 41 40 39 39 41 47 51 52 53 54 54 57 61 65 69 70 71 71 74 77 80 84 89 93 93 83 87 91 94 95 88 80 75 74 77 83 89 93 94 93 94 97 99 96 89 78 74 71 71 79 91 96 98 99 100 100 100 99 98 99 100 99 96 91 86 81 78 76 74 73 71 71 72 72 74 75 74 69 60 52 44 37 32 27 23 16 11 9 7 6 6 6 6 6 7 8 9 10 12 14 16 18 20 22 24 25 27 28 31 33 37 41 45 51 56 61 65 68 68 68 67 65 63 62 62 62 64 66 68 70 71 72 73 73 73 73 72 70 67 64 62 60 58 57 55 54 54 55 55 55 56 55 55 53 49 44 38 33 29 26 25 24 24 24 24 25 25 25 25 25 25 25 25 25 24 24 24 25 24 24 23 22 20 19 18 17 16 16 16 16 15 14 14 15 16 17 18 19 21 23 25 24 22 23 24 28 34 38 41 43 42 39 36 32 30 32 37 43 46 49 51 52 53 51 48 46 46 46 46 47 46 44 42 41 41 41 41 38 34 28 24 20 18 17 16 17 19 21 23 27 32 33 33 34 35 37 39 41 42 43 44 43 39 35 31 28 27 27 27 27 27 26 25 25 25 26 26 27 26 25 24 23 23 24 25 27 31 33 35 37 43 50 58 66 74 83 90 90 85 80 77 0 0 1 1 1 1 1 1 1 1 2 2 3 3 4 6 7 9 11 13 15 18 20 22 24 26 28 30 31 33 34 35 35 35 35 34 33 33 32 31 31 30 30 30 29 29 29 28 28 28 27 26 25 24 23 22 21 20 19 18 17 17 16 15 14 13 11 9 8 9 11 15 16 17 16 15 12 11 10 12 14 14 16 18 21 26 29 34 28 21 22 26 27 27 26 26 27 27 27 28 28 26 21 22 27 32 32 33 34 35 35 34 34 33 34 33 32 31 32 38 40 40 39 39 40 43 48 50 52 54 55 58 63 68 73 75 75 76 78 82 86 88 87 93 92 88 88 89 89 86 82 78 76 76 78 84 90 94 96 96 95 95 98 98 92 83 76 68 65 68 78 90 96 97 97 99 100 99 97 96 97 97 94 87 84 84 84 79 76 73 70 69 68 68 68 66 63 58 51 43 36 31 27 23 18 15 11 11 11 11 11 11 11 12 13 14 15 17 18 21 24 27 30 34 37 40 43 46 49 53 57 62 66 70 72 73 73 72 70 68 66 63 61 59 57 56 56 57 59 61 63 66 68 71 72 74 73 71 66 62 60 59 59 59 58 57 55 54 53 52 51 51 49 46 43 38 34 30 26 25 24 23 23 23 23 24 24 24 25 25 25 24 24 24 23 23 22 22 22 21 20 19 18 17 16 15 14 13 14 14 14 13 12 12 12 14 15 16 15 16 18 20 21 19 18 19 22 28 33 38 41 40 37 33 28 25 23 23 22 24 27 30 32 31 31 31 32 31 31 34 38 37 36 34 34 36 40 43 44 40 37 33 29 26 23 19 17 15 15 16 19 21 23 25 28 31 33 35 37 39 41 43 44 41 37 32 28 26 26 26 26 27 27 26 26 25 25 25 26 27 27 26 25 24 23 23 24 27 31 35 40 42 44 47 52 61 71 81 89 89 86 82 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 3 4 6 7 9 11 13 15 17 18 20 22 24 26 27 29 30 31 32 32 32 32 32 31 31 31 31 31 31 31 30 30 30 29 28 27 26 25 24 22 21 20 19 18 18 17 17 16 15 13 11 9 9 9 12 15 16 17 16 14 13 11 10 12 13 14 14 18 23 27 31 34 27 19 22 26 26 26 26 26 26 26 26 26 27 26 23 23 27 31 33 34 34 34 33 33 33 33 34 34 34 34 36 37 38 39 39 39 41 45 49 49 52 56 60 63 69 76 80 82 81 81 85 89 92 94 93 97 92 86 86 83 80 79 79 82 84 86 88 92 94 96 98 94 92 92 94 94 87 78 71 62 60 65 74 87 94 97 96 98 100 99 96 94 93 91 85 79 80 83 85 82 80 76 72 66 62 58 54 51 46 40 33 27 23 20 17 15 14 14 15 16 17 17 17 18 18 19 21 22 25 29 33 37 42 47 51 55 59 62 65 67 70 72 73 74 73 72 71 69 68 67 66 64 63 61 59 57 55 54 53 53 54 55 56 59 61 65 68 69 66 60 54 51 50 51 52 52 52 50 48 47 46 45 43 42 39 36 32 29 27 25 24 23 22 22 22 22 23 23 24 24 24 24 24 24 23 23 22 21 20 20 19 18 17 16 15 14 13 12 12 12 12 12 12 11 11 11 11 13 14 14 14 14 14 16 16 15 15 17 21 26 31 35 37 36 33 29 25 23 21 18 16 16 15 13 12 13 13 14 15 15 18 22 28 28 26 24 24 27 32 36 36 36 36 34 30 30 29 28 26 22 19 17 15 15 15 17 21 24 28 30 32 33 36 38 40 40 38 34 28 25 24 24 25 26 26 27 26 26 25 25 25 26 27 28 27 26 24 23 23 24 26 32 39 44 46 45 43 50 60 72 83 89 90 88 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 2 2 3 5 6 7 9 11 12 14 16 18 19 21 22 24 25 27 28 29 29 30 30 30 30 30 31 31 31 31 31 30 30 29 27 26 25 24 23 22 21 20 19 18 17 17 16 15 14 12 10 9 10 12 15 17 17 15 14 13 11 11 11 14 16 14 20 25 29 31 34 28 21 21 25 26 26 26 27 27 27 26 26 26 26 26 24 26 30 33 33 33 33 33 33 34 35 35 34 35 36 37 37 38 39 40 39 43 47 48 49 53 58 60 62 69 77 84 81 78 79 87 87 89 92 97 98 91 83 79 77 76 78 81 87 91 93 93 93 93 92 88 81 77 78 82 83 81 75 65 58 57 61 68 80 90 95 97 97 97 97 96 92 89 85 80 76 75 75 75 78 78 75 67 60 52 47 43 38 32 26 19 17 16 16 16 18 20 21 22 22 22 23 23 25 27 29 33 37 42 48 53 58 61 64 66 68 69 69 69 70 69 69 69 68 67 66 65 65 64 64 63 62 60 59 57 56 54 52 51 50 50 51 51 53 56 58 61 59 53 47 43 42 43 44 44 44 43 41 40 39 39 37 36 34 31 29 27 26 24 23 23 22 22 22 23 23 23 24 24 25 24 23 23 23 22 22 21 20 19 18 17 16 15 14 13 12 12 12 11 11 12 12 12 12 12 12 12 12 13 13 13 14 14 14 14 14 14 15 18 22 26 28 29 27 24 21 18 17 16 15 14 13 11 10 10 11 12 13 13 12 14 19 25 26 24 21 17 18 20 23 24 26 26 25 23 25 28 30 31 31 29 26 23 19 16 14 14 16 19 22 24 25 27 28 30 33 33 31 28 24 22 21 22 23 25 26 27 26 26 25 24 25 26 27 28 28 27 25 24 23 23 26 32 40 45 47 44 45 52 63 77 84 90 92 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 3 4 5 7 8 10 11 12 14 15 17 18 20 21 23 24 25 26 27 27 28 28 29 29 30 30 30 30 29 29 27 26 25 24 23 22 21 20 19 18 18 17 16 15 14 12 10 9 10 12 15 17 17 15 14 12 11 11 12 14 16 17 24 28 30 32 34 28 22 21 24 26 26 26 27 27 27 26 26 26 26 27 26 25 25 26 30 32 33 33 33 34 35 34 34 35 36 36 36 39 41 41 40 44 48 45 47 52 57 60 59 63 70 80 78 77 79 86 88 90 93 95 91 84 78 76 75 76 79 83 87 91 93 93 93 89 79 64 60 57 60 70 76 77 73 59 54 54 57 61 70 79 87 89 85 82 80 79 79 78 76 74 70 67 64 62 64 64 60 52 45 40 37 35 28 23 19 18 19 21 23 24 26 26 26 26 27 28 31 34 37 42 47 53 58 62 66 69 70 70 70 70 70 69 69 68 67 67 66 65 65 64 63 63 62 61 60 60 59 58 57 56 54 52 50 48 46 45 45 45 48 50 51 51 46 43 40 39 40 39 38 37 36 36 35 35 35 34 32 31 29 28 26 25 25 24 23 23 23 24 24 25 25 25 25 26 25 24 23 22 22 21 21 20 19 18 17 16 15 14 13 13 13 13 13 13 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 14 15 17 19 20 21 19 18 16 14 13 13 12 12 11 10 10 11 12 12 13 14 12 13 17 21 20 17 14 12 13 14 15 15 15 16 16 17 18 20 22 24 25 27 29 31 31 30 27 22 18 16 15 16 17 18 19 23 23 23 23 23 21 19 18 18 20 22 24 26 26 26 26 24 24 24 25 27 28 29 28 26 25 23 23 25 31 38 44 47 46 49 56 67 77 85 90 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 3 4 5 6 8 9 10 11 13 14 15 17 18 19 21 22 23 24 25 26 26 27 27 28 28 28 28 28 27 26 25 24 23 22 21 20 19 19 18 17 17 16 14 12 10 9 10 12 15 17 16 14 13 12 11 11 12 14 16 20 25 28 31 33 34 29 23 20 24 25 26 26 27 26 26 26 27 28 29 30 29 27 25 24 26 29 31 32 32 33 34 34 34 35 35 36 38 41 43 43 43 45 46 45 46 51 57 60 59 60 65 80 78 77 79 85 86 86 85 87 82 79 76 76 76 77 80 83 86 89 92 91 93 85 69 46 45 47 55 66 72 73 67 55 51 51 52 54 58 63 68 70 69 68 65 63 60 57 55 53 53 52 50 47 44 42 39 36 34 32 31 27 24 24 25 27 28 29 30 30 30 30 30 32 36 40 46 51 57 62 67 71 72 73 73 73 72 71 70 69 68 68 67 66 65 64 63 63 62 61 60 60 59 59 58 58 58 57 57 55 53 50 47 44 41 39 39 40 43 44 44 43 40 38 38 38 37 36 35 34 33 33 33 32 32 31 30 28 27 26 26 25 25 25 25 25 26 26 27 28 28 28 28 28 27 26 24 23 23 22 21 20 19 18 17 16 15 15 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 13 13 13 13 13 13 12 12 12 12 13 14 15 16 16 16 15 14 13 12 12 11 11 10 10 10 11 12 13 14 14 12 13 15 15 13 11 10 9 10 11 12 11 11 12 12 13 14 15 16 17 18 19 21 23 30 36 41 42 36 30 23 18 15 16 19 26 24 20 17 16 15 14 14 15 17 19 22 24 25 26 26 26 24 23 23 24 26 28 29 29 28 26 24 23 25 30 37 44 47 49 51 58 69 79 87 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 2 2 3 4 5 6 8 9 10 11 12 13 14 16 17 18 20 21 22 23 24 24 25 26 26 26 26 26 26 26 25 24 23 22 22 21 20 19 18 18 17 16 15 13 10 9 10 12 15 17 16 14 12 12 11 10 12 15 17 21 25 28 31 33 33 30 25 20 23 25 26 26 26 26 25 25 27 29 30 30 30 30 29 27 25 25 26 29 30 32 33 33 34 34 35 36 39 42 44 46 45 46 47 46 49 53 57 58 57 57 61 75 77 76 75 78 82 83 83 85 85 83 81 78 77 77 78 80 83 87 89 90 88 74 55 37 39 44 53 62 67 66 60 52 49 48 49 50 51 54 57 60 63 66 66 65 60 55 49 46 46 45 43 41 38 35 32 30 30 29 28 28 30 32 34 35 35 34 34 33 34 36 39 44 51 57 63 68 72 74 76 76 75 74 73 72 71 69 68 67 66 65 65 64 63 63 62 62 61 60 60 59 59 58 59 59 59 58 56 54 51 47 43 39 36 35 35 36 39 40 39 38 37 36 35 35 34 33 32 32 32 32 32 32 30 29 28 27 27 26 26 26 26 26 27 28 29 30 31 31 31 31 30 30 29 27 26 25 24 23 22 21 20 19 18 17 17 17 17 17 16 16 16 16 15 15 15 15 15 15 15 15 15 14 14 13 13 12 12 12 12 12 12 12 13 13 14 14 14 14 14 15 14 14 13 13 12 12 12 12 13 14 15 16 16 16 16 15 12 10 9 8 9 10 11 11 11 11 10 10 11 11 12 13 14 14 15 16 21 27 34 40 42 42 38 32 24 19 19 24 27 26 22 16 12 10 10 11 13 16 18 22 24 25 26 26 25 24 23 22 24 26 28 30 30 29 27 24 23 25 29 35 42 46 49 52 61 70 79 1 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 2 3 4 5 6 7 8 9 10 10 11 12 14 15 17 18 19 20 21 22 23 23 24 24 25 25 25 25 24 24 23 23 22 21 20 19 18 18 17 16 15 13 11 10 10 12 16 17 16 13 12 11 11 10 12 15 17 21 23 26 28 31 33 31 26 20 23 25 26 27 26 26 26 26 29 31 33 33 31 30 29 28 26 25 24 25 27 30 31 31 33 34 35 36 39 42 45 47 48 49 49 48 51 53 55 53 53 55 59 67 75 77 76 75 78 79 79 81 85 85 83 79 75 73 73 76 79 83 87 90 83 64 43 33 36 43 50 58 60 59 54 50 47 47 47 48 49 51 54 58 63 67 70 72 71 68 64 62 62 60 55 49 42 36 31 29 31 32 33 35 37 39 40 40 39 38 37 38 42 47 52 58 64 69 73 76 76 76 75 74 73 72 71 70 68 67 65 65 64 64 63 63 63 62 62 61 61 60 60 59 59 60 60 61 60 57 55 51 48 43 39 35 33 32 33 34 35 35 34 33 33 32 32 32 32 32 32 32 33 32 32 31 30 29 28 27 27 27 27 27 28 29 31 32 33 34 34 34 34 33 32 31 30 29 27 26 25 24 23 22 21 20 20 19 19 19 19 19 18 18 18 17 17 17 16 16 16 15 15 15 15 15 14 14 13 13 12 12 12 11 11 11 11 12 12 12 13 13 14 15 16 16 16 17 17 16 15 15 15 16 18 19 20 21 21 19 16 14 12 11 11 11 12 13 12 12 11 10 10 9 9 10 11 12 13 15 17 19 22 26 30 35 39 42 38 31 26 23 27 30 29 20 14 11 9 9 10 12 15 18 21 24 26 26 26 25 23 22 22 23 25 28 29 30 30 28 26 24 25 27 33 39 45 50 57 64 73 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 2 3 4 5 6 7 8 9 10 10 11 12 14 15 17 18 19 20 21 21 22 22 23 23 23 24 24 24 23 23 22 21 20 19 19 18 18 17 16 14 11 10 10 13 16 17 16 13 12 11 11 10 12 15 17 20 21 22 24 27 30 30 27 21 23 25 26 27 27 26 26 27 29 32 35 35 34 33 32 31 29 27 25 23 24 26 29 31 32 34 35 37 39 43 45 46 48 48 49 48 50 51 52 51 54 57 61 66 72 77 78 75 76 76 75 75 80 82 81 80 74 68 65 67 70 76 84 91 79 59 39 30 35 41 48 54 55 54 51 49 47 46 46 47 49 50 53 57 62 67 71 75 78 79 79 78 77 72 65 55 46 39 34 33 36 38 39 41 43 44 45 44 44 44 45 48 53 58 64 68 72 75 76 76 76 75 74 73 71 70 68 67 65 64 63 63 63 62 62 62 62 61 61 60 60 60 60 60 61 62 62 61 59 56 52 48 44 40 36 33 31 31 32 32 32 31 30 30 30 30 31 32 33 34 34 34 33 32 31 30 29 28 28 28 28 29 30 31 32 34 35 36 37 37 37 36 35 34 33 32 30 29 28 26 25 24 23 22 22 21 21 21 21 20 20 20 20 20 19 19 18 18 17 17 17 16 16 16 15 15 15 14 14 13 13 12 12 11 11 11 11 10 10 10 10 11 12 13 13 14 15 16 17 18 18 18 18 19 20 22 24 26 27 25 23 21 19 18 17 16 16 16 16 15 13 11 10 10 9 9 10 11 12 14 15 16 17 18 20 22 26 33 39 41 39 35 35 34 32 25 19 15 12 10 9 9 11 14 18 21 24 26 26 26 24 22 21 21 22 24 27 29 30 31 29 27 25 24 26 31 38 47 53 59 64 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 2 2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 20 21 21 21 22 22 23 23 23 23 22 21 21 20 19 18 18 17 16 14 11 10 10 13 16 17 15 13 11 11 10 10 13 15 18 18 19 19 20 23 27 29 28 23 23 25 26 26 27 26 26 27 29 32 35 36 35 35 35 34 33 30 28 25 25 26 27 30 32 34 36 38 39 43 47 45 46 47 48 47 48 49 50 52 58 63 67 72 75 78 79 75 72 75 77 73 75 76 78 79 76 65 55 56 61 72 83 91 76 56 38 28 33 39 44 49 50 50 50 48 47 47 47 47 48 50 52 55 60 65 69 73 77 80 81 81 79 75 68 59 49 43 39 38 41 43 44 46 47 48 48 49 50 52 54 58 63 67 71 74 76 76 76 75 74 73 72 70 68 67 65 64 63 63 62 62 61 61 61 61 61 61 60 60 60 61 61 62 63 63 62 60 56 52 48 44 40 37 34 31 31 31 30 30 30 29 30 30 31 32 34 35 35 35 35 34 33 32 31 30 29 29 29 30 32 33 35 36 37 39 39 40 39 39 38 36 36 35 34 32 30 29 27 26 25 24 24 23 23 23 22 22 22 22 22 22 21 21 21 20 19 19 18 18 17 16 16 16 15 15 15 14 14 13 13 12 12 11 11 10 10 10 10 10 10 10 10 10 11 12 13 13 14 16 17 18 19 20 22 25 27 30 31 32 31 30 28 27 26 24 22 22 21 18 16 15 14 13 12 12 11 11 12 13 14 14 15 15 15 16 17 19 27 35 43 47 48 45 41 33 27 22 19 16 13 11 10 10 13 16 20 24 25 26 26 24 22 21 20 21 23 26 28 31 31 30 28 25 24 26 31 40 47 51 55 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 2 3 3 4 5 6 7 8 9 10 11 13 14 15 16 17 18 19 19 20 20 21 21 22 23 23 23 22 22 21 20 19 18 18 17 16 15 12 10 10 13 16 17 15 13 12 11 10 10 14 16 17 17 18 18 19 21 24 27 28 25 24 25 26 26 26 26 26 27 29 32 34 35 35 35 36 36 35 33 30 28 27 26 26 28 32 35 37 40 41 44 46 45 46 47 47 47 49 49 50 53 60 67 73 77 78 81 80 71 66 68 72 70 70 73 76 78 77 66 55 54 60 72 83 89 74 55 37 27 31 36 41 43 45 47 49 50 49 48 48 47 48 49 52 55 59 63 66 69 73 76 78 80 79 76 70 63 55 48 44 43 45 47 48 51 51 51 51 53 55 58 62 65 69 72 75 76 76 75 74 73 72 71 69 67 66 65 64 63 62 62 61 60 60 60 60 60 60 60 61 61 62 62 64 65 65 63 60 56 51 47 43 40 37 34 32 30 30 30 30 30 30 31 32 33 34 35 36 36 36 35 34 33 32 32 31 31 31 32 33 35 37 38 40 41 42 42 42 41 40 39 37 36 35 34 33 31 30 28 27 26 26 25 25 24 24 24 24 24 23 23 23 23 22 22 21 21 20 19 19 18 17 17 16 16 15 14 14 13 13 12 12 11 11 10 10 9 9 9 9 9 9 9 9 10 10 10 11 12 12 13 14 15 16 18 20 23 27 30 34 36 37 36 36 35 33 31 30 29 27 25 23 22 21 19 17 16 15 15 14 14 14 13 13 13 13 13 13 14 17 23 32 42 47 49 46 39 31 26 22 21 19 16 12 10 10 12 15 19 23 25 26 25 23 22 20 19 20 22 24 27 30 31 31 29 26 25 26 31 38 43 47 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 2 3 4 4 5 6 7 9 10 11 12 13 15 16 17 18 18 19 19 20 21 21 22 22 22 22 22 21 20 19 19 18 18 17 15 13 10 10 13 16 17 15 13 12 11 10 12 15 16 17 18 19 19 19 19 22 25 26 26 24 25 26 26 26 26 27 28 30 32 34 34 35 35 35 36 35 33 31 29 28 27 26 27 33 35 37 41 43 44 45 46 48 47 47 47 47 48 50 53 58 62 67 72 76 78 75 61 59 63 67 66 68 71 74 76 76 71 63 58 62 72 82 84 70 52 35 25 28 33 37 39 42 46 50 53 53 51 50 49 49 50 52 56 59 63 66 70 73 76 78 80 80 79 75 70 63 55 50 48 50 51 52 54 55 55 56 57 60 63 67 70 72 75 76 76 75 74 73 71 70 68 66 65 64 63 62 62 62 61 60 60 60 60 60 60 60 61 62 63 64 65 65 66 63 60 55 50 46 42 39 36 34 32 30 30 30 30 31 32 33 34 35 36 36 36 36 36 36 35 35 35 34 34 34 34 35 37 39 41 42 44 44 45 44 43 42 41 40 38 37 35 34 33 31 30 29 28 27 26 26 25 25 25 25 24 24 24 24 23 23 23 22 22 21 21 20 19 19 18 17 17 16 15 15 14 13 13 12 11 11 10 10 9 9 8 8 8 8 8 8 8 9 9 9 10 10 10 11 12 12 13 14 15 16 19 23 27 31 35 36 37 38 38 38 37 37 37 37 36 35 32 29 27 25 23 22 21 20 19 17 16 15 14 13 12 12 12 13 16 21 29 36 40 40 36 30 25 22 22 22 20 17 13 10 10 11 14 19 22 25 26 25 23 21 19 18 19 20 23 26 29 31 31 29 27 25 25 29 33 38 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 2 3 4 5 6 7 8 10 11 12 13 14 16 17 18 18 19 19 20 21 22 22 22 23 22 22 21 19 19 18 18 17 16 13 11 10 13 16 17 15 13 12 11 11 14 15 17 19 21 21 20 20 20 22 22 23 24 24 25 26 27 26 27 28 30 31 33 33 34 34 34 35 36 36 34 31 29 29 28 27 28 33 35 38 42 43 43 44 46 49 48 46 47 46 47 50 50 52 56 60 61 62 65 64 55 57 59 61 62 65 69 73 75 77 73 66 58 63 72 79 77 64 48 33 24 26 30 35 38 42 48 54 59 59 57 54 52 51 52 54 58 61 65 70 74 78 80 81 81 81 81 79 75 68 61 55 53 55 55 56 57 59 60 61 63 65 68 70 72 74 75 75 74 73 72 71 69 68 66 64 63 62 62 62 62 61 60 60 60 60 60 61 61 61 62 63 64 65 66 65 63 59 54 49 44 41 38 36 34 32 31 30 30 31 32 33 35 36 37 38 38 38 38 38 39 39 38 38 38 37 37 38 39 41 43 45 46 47 47 47 46 44 43 42 40 39 38 37 35 34 32 31 29 28 27 26 26 26 25 25 25 24 24 23 23 23 22 22 22 21 21 20 20 19 18 18 17 16 16 15 14 14 13 12 11 11 10 10 9 9 8 8 7 7 7 7 7 7 7 8 8 8 9 9 9 10 10 11 11 11 12 13 14 17 20 24 27 30 32 35 38 40 42 43 45 46 46 46 45 43 40 37 35 32 30 28 27 25 23 20 17 15 14 13 13 13 15 18 22 27 30 31 29 25 22 20 20 21 21 20 18 14 11 9 10 14 18 22 25 26 25 23 21 19 18 18 19 21 25 28 30 31 30 28 26 25 26 30 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 2 2 3 4 5 6 8 9 10 11 13 14 16 17 18 18 19 20 21 21 22 22 23 23 22 21 20 19 18 18 18 17 14 11 10 13 16 17 15 13 12 11 12 15 17 20 24 25 24 23 22 23 22 21 20 21 23 24 26 27 27 27 29 30 32 33 33 33 33 33 34 35 36 35 32 29 30 29 28 28 32 36 39 43 43 42 43 46 49 48 46 45 44 46 48 48 49 51 54 54 53 55 57 55 57 57 58 60 64 68 71 74 77 74 67 57 66 73 76 72 58 42 29 22 23 29 35 40 45 51 58 65 67 66 62 58 57 57 58 61 65 69 74 79 83 84 83 81 81 80 80 77 71 65 61 59 59 59 59 60 62 64 66 68 69 70 71 72 73 73 73 72 71 70 69 68 66 65 63 62 62 62 62 61 60 60 60 60 61 62 62 62 62 62 63 65 65 65 62 58 53 48 43 40 38 35 34 32 31 31 31 31 33 35 37 38 40 41 41 41 42 42 42 43 42 42 41 41 42 43 44 46 48 49 50 49 49 47 46 45 44 43 42 41 40 38 36 34 33 31 29 28 27 27 26 26 25 25 24 23 23 22 22 21 21 20 20 19 19 19 18 18 17 17 16 16 15 14 14 13 12 12 11 10 10 9 9 8 8 7 7 7 6 6 6 6 6 6 7 7 7 8 8 8 9 9 9 10 10 10 11 11 13 15 18 20 22 24 28 33 38 42 46 49 51 54 56 57 58 56 53 49 46 43 40 40 39 35 30 25 21 19 17 16 15 16 18 20 23 24 24 24 22 21 20 20 20 21 21 20 17 14 11 9 10 14 18 22 25 26 26 24 21 19 18 17 18 20 23 26 29 30 30 28 26 25 25 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 0 0 0 0 0 0 0 0 1 1 1 2 2 3 5 6 7 9 10 11 13 15 16 17 18 19 20 21 21 22 22 23 23 22 21 20 19 19 18 18 17 15 12 11 13 16 17 15 13 12 12 13 16 19 24 28 29 27 27 27 27 22 19 17 18 21 23 26 27 27 28 29 31 32 34 34 33 33 33 33 33 37 36 33 30 32 30 28 28 32 36 40 43 43 42 41 44 47 46 45 46 45 45 46 47 47 49 51 51 50 53 55 54 55 57 58 59 62 65 68 70 72 69 63 56 68 73 73 69 60 45 30 20 21 27 35 43 49 55 61 68 72 73 71 67 65 64 64 66 69 74 79 83 85 85 84 81 79 78 79 79 76 72 68 65 63 61 61 63 66 68 70 71 71 71 71 71 71 71 71 70 69 69 68 67 66 64 63 62 62 62 61 60 60 60 60 62 63 63 63 62 61 61 62 64 63 61 58 52 47 43 39 37 35 34 32 31 31 32 32 34 36 38 41 43 43 44 45 46 46 46 46 45 44 45 45 46 47 49 50 51 51 51 50 49 48 47 47 46 45 45 43 42 40 37 35 32 31 29 28 27 27 26 25 25 24 23 22 22 21 20 19 19 18 18 18 17 17 17 16 16 15 15 15 14 14 13 12 12 11 11 10 10 9 9 8 8 7 7 7 7 7 6 6 6 6 6 6 6 6 7 7 8 8 8 9 9 10 10 10 11 11 13 14 15 16 18 21 26 32 36 41 46 51 57 62 67 68 68 67 65 62 60 59 59 57 53 46 38 33 29 26 24 22 21 21 21 23 23 23 23 23 22 22 22 22 21 21 20 19 17 14 10 9 11 14 19 24 26 27 26 23 21 19 18 17 17 18 21 24 27 29 30 29 26 24 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 0 0 0 0 0 0 0 1 1 1 2 3 4 5 7 8 9 11 13 15 16 18 19 20 21 21 22 22 23 23 23 22 20 19 19 19 18 18 15 13 11 13 16 17 15 13 12 12 13 16 23 27 30 30 31 31 30 27 21 18 16 15 19 22 26 27 27 28 29 31 33 34 35 33 33 32 32 33 38 37 34 30 32 31 29 29 33 36 40 42 43 42 41 44 46 45 45 48 50 49 47 47 46 47 49 49 48 50 52 51 53 55 58 59 61 63 64 64 65 64 60 55 63 66 66 66 63 53 38 20 20 26 35 45 52 57 62 66 71 74 75 74 72 71 71 72 75 78 81 84 85 85 83 80 77 76 76 79 80 80 77 74 68 63 60 62 67 71 72 73 72 71 70 70 70 69 69 69 68 68 68 67 65 63 63 62 62 61 60 59 59 60 62 63 64 63 63 62 61 60 60 61 60 57 52 47 42 39 36 35 33 32 32 31 32 34 35 38 40 43 45 47 47 48 48 48 48 48 47 47 48 49 50 51 53 53 54 54 53 52 51 51 51 50 50 49 47 45 43 40 37 34 32 30 29 28 27 27 26 25 24 23 22 21 20 20 19 18 17 17 16 16 16 15 15 15 15 14 14 14 13 13 13 12 12 11 11 10 10 9 9 9 8 8 8 8 7 7 7 7 6 6 6 6 6 6 6 6 6 7 7 8 8 9 9 10 10 11 12 12 13 14 14 15 18 22 27 32 36 41 47 54 62 69 74 77 78 78 77 77 77 78 76 73 67 60 52 46 41 36 32 29 27 27 27 26 25 26 26 26 27 27 26 24 22 21 20 19 17 14 10 10 12 17 22 25 26 26 25 23 22 20 18 17 16 17 19 22 26 28 29 28 27 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 0 0 0 0 0 0 1 1 1 1 2 3 5 6 7 9 10 13 15 17 18 20 21 22 22 23 23 24 23 22 21 20 19 19 18 18 16 13 12 13 16 16 15 13 12 12 13 17 24 28 29 32 33 31 27 23 20 17 15 15 18 22 26 27 28 29 30 32 34 35 35 34 33 32 32 32 38 40 37 31 32 31 30 31 33 35 38 40 41 42 43 45 45 44 44 46 53 54 51 48 47 47 48 49 48 49 49 48 50 53 56 58 59 60 60 60 59 59 57 53 54 57 60 61 62 58 47 26 21 26 36 48 54 58 61 63 67 72 75 77 77 77 77 77 78 79 81 82 82 81 79 77 74 73 72 75 80 83 84 82 76 69 63 60 65 69 71 72 71 71 70 69 68 68 68 68 68 68 68 66 64 63 62 62 61 60 59 58 60 61 63 64 63 62 62 61 61 60 59 58 56 52 48 43 39 36 35 33 32 32 32 33 35 38 40 43 44 46 47 49 49 49 49 49 49 49 50 51 52 54 55 56 56 56 56 55 55 55 54 54 52 51 49 46 44 41 38 35 33 32 30 29 29 28 28 27 26 25 23 22 21 20 19 18 17 17 16 16 15 15 15 15 14 14 14 14 14 13 13 13 12 12 12 11 11 10 10 10 9 9 9 9 8 8 8 8 7 7 7 6 6 6 6 5 5 5 6 6 6 6 7 8 8 9 10 11 12 13 14 15 15 15 17 20 25 30 35 40 45 51 58 66 74 79 83 85 85 86 86 86 86 85 82 79 74 68 60 51 44 39 37 36 35 33 30 29 30 31 33 34 32 28 25 23 22 21 20 17 13 10 10 14 20 24 26 25 24 24 23 22 20 18 16 15 16 18 20 24 27 28 28 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 0 0 0 0 0 0 1 1 1 2 3 4 5 6 8 10 13 16 18 20 21 22 23 24 24 24 23 22 21 20 19 19 19 18 17 14 12 13 16 16 15 13 12 12 14 19 23 26 30 34 34 29 24 19 17 15 14 15 18 22 26 27 28 29 31 33 35 35 35 34 33 32 32 32 38 42 41 35 33 32 32 33 34 34 35 36 37 38 41 44 44 44 43 44 49 53 54 52 50 50 50 51 50 49 47 46 47 51 54 56 56 56 56 58 54 53 51 49 49 52 57 60 62 61 54 36 25 28 38 51 55 58 60 61 64 68 72 76 78 79 79 78 78 77 77 77 76 76 75 74 73 71 70 72 77 81 85 85 82 76 69 62 62 64 66 68 68 68 67 66 66 65 66 67 67 67 66 64 63 62 62 61 60 59 59 60 62 64 65 63 62 60 60 59 59 59 58 55 51 48 44 40 37 35 34 33 32 33 34 36 40 43 45 47 47 48 49 49 49 50 51 51 53 54 55 56 57 57 57 57 57 57 56 56 55 55 53 51 49 46 43 41 38 36 35 33 32 31 31 30 30 29 28 27 26 24 23 21 20 18 18 17 17 16 16 16 15 15 15 15 15 15 14 14 14 14 13 13 13 12 12 12 11 11 11 10 10 10 10 9 9 9 8 8 7 7 7 6 6 6 5 5 5 5 5 5 5 5 6 6 7 8 9 10 12 13 14 16 16 17 18 20 24 29 35 42 47 52 58 64 72 79 84 88 89 89 89 88 87 86 85 83 84 81 75 66 58 51 45 44 43 40 36 33 34 36 39 41 39 35 30 26 24 23 21 20 16 13 11 11 17 22 26 28 25 24 24 23 22 20 18 16 15 15 16 18 22 25 27 0 0 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 0 0 0 0 0 0 0 1 1 1 2 3 5 6 8 10 13 17 19 21 23 24 25 25 24 24 23 22 20 19 19 19 18 18 16 14 13 15 16 16 13 12 12 15 21 24 27 31 35 33 28 23 19 17 15 14 14 18 22 26 28 29 30 31 33 35 35 35 34 33 32 32 33 37 42 44 41 36 33 32 33 33 34 34 34 33 35 38 42 43 44 44 45 47 50 54 55 53 52 51 50 50 50 49 48 46 48 51 54 55 53 52 53 50 48 46 45 47 51 55 60 64 64 59 49 36 35 42 54 57 59 60 61 63 65 68 72 75 76 76 76 74 73 71 70 69 69 71 73 73 72 70 70 74 77 81 83 83 80 75 66 61 60 60 61 62 63 63 63 63 63 64 65 66 65 64 63 62 62 62 61 60 60 61 63 65 65 63 61 60 58 57 55 55 55 54 51 47 43 40 38 36 35 34 33 33 35 37 42 45 48 50 51 51 51 51 52 53 55 56 58 59 59 60 59 58 58 57 56 55 54 54 53 52 51 49 46 44 41 39 37 36 35 35 34 33 33 32 32 31 30 28 27 25 23 22 20 19 18 17 17 17 17 16 16 16 16 16 16 16 15 15 15 15 14 14 14 14 13 13 13 12 12 12 11 11 11 10 10 9 9 9 8 8 7 7 6 6 5 5 5 5 5 5 5 5 5 5 5 5 6 7 8 10 11 13 15 17 19 20 21 24 29 36 46 53 59 64 69 75 80 85 89 90 90 90 89 87 86 84 83 83 80 76 71 67 62 57 51 48 44 40 35 35 37 41 45 44 41 36 31 27 25 23 22 19 16 13 11 13 18 25 30 29 27 25 24 23 22 20 18 16 15 14 14 17 20 23 1 0 0 0 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 0 0 0 0 0 0 0 0 1 1 2 3 4 6 8 11 15 18 21 23 24 24 25 25 24 23 22 21 19 19 19 19 19 17 14 13 13 14 14 12 11 13 16 22 25 29 33 36 33 29 25 22 21 18 16 15 18 21 25 28 29 30 31 32 34 35 35 34 33 32 32 34 37 41 44 45 41 36 32 32 32 32 32 32 31 33 36 40 42 44 45 45 46 48 50 51 51 50 49 49 48 48 48 48 46 45 47 50 53 53 51 49 46 44 43 43 45 49 53 57 63 65 63 58 49 46 49 57 59 60 62 63 63 63 64 66 68 69 70 70 68 66 65 63 63 65 68 72 74 73 72 70 72 74 76 79 80 79 75 67 61 57 56 55 56 57 58 60 61 62 64 64 64 64 63 61 62 62 62 61 61 62 65 67 66 64 62 60 60 58 57 55 53 51 49 46 42 39 36 35 35 35 35 35 36 39 43 47 51 53 55 55 56 56 57 58 60 61 62 62 61 60 60 59 57 56 55 54 52 51 51 50 49 47 45 43 41 40 39 38 38 38 37 37 36 35 34 33 32 30 28 26 25 23 21 19 18 18 18 17 18 18 18 17 17 17 17 17 17 16 16 16 16 15 15 15 14 14 14 13 13 12 12 12 11 11 10 10 9 9 8 8 7 7 6 6 6 5 5 5 5 5 4 4 4 4 4 4 4 5 5 6 7 8 10 12 15 18 20 22 24 30 37 47 55 64 72 79 83 85 86 88 88 89 89 89 87 85 84 83 81 77 71 66 67 68 68 65 58 50 43 36 34 36 40 45 46 44 41 36 32 28 25 23 22 19 17 13 11 14 21 31 37 36 32 26 24 23 22 20 18 16 14 13 14 15 18 1 1 1 0 0 0 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 0 0 0 0 0 0 0 1 1 1 2 4 6 8 12 17 21 24 24 25 26 26 25 24 22 21 20 19 19 19 19 16 13 11 12 12 13 12 12 14 18 23 27 31 35 37 34 31 28 26 24 22 20 18 18 20 22 25 27 29 31 32 33 34 34 34 33 31 32 34 38 41 43 45 44 39 34 32 31 31 31 31 32 34 36 39 42 43 44 44 45 46 46 47 47 47 47 46 46 45 45 45 44 44 45 47 50 51 51 48 44 42 41 42 44 47 50 53 61 64 64 62 59 57 58 60 61 61 62 63 63 62 61 61 61 62 62 62 60 59 58 57 59 62 66 70 73 73 72 71 71 72 73 75 77 76 71 64 58 54 52 51 52 53 55 57 60 62 63 64 63 62 62 61 62 62 62 62 64 67 69 68 65 63 61 60 59 59 58 58 55 51 46 42 39 37 35 35 35 35 36 38 41 45 49 52 55 57 58 59 60 61 63 64 63 63 61 60 59 58 57 56 55 54 53 52 51 50 48 47 46 45 44 43 42 42 42 43 43 42 41 40 38 36 35 33 32 30 28 26 24 22 20 19 19 18 18 19 19 19 19 19 19 18 18 18 18 17 17 17 16 16 16 15 15 14 14 14 13 13 12 11 11 10 10 10 9 9 8 7 7 6 6 6 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 5 5 6 7 9 12 15 18 22 29 37 45 52 62 72 82 89 91 91 90 91 91 91 91 90 88 87 88 87 84 79 71 67 68 73 77 72 62 51 39 34 34 37 42 45 45 43 40 35 32 28 26 23 22 20 18 14 13 17 28 43 47 43 35 28 24 22 21 20 18 17 14 13 13 14 2 2 1 1 1 0 0 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 0 0 0 0 0 0 0 0 1 1 2 4 6 10 14 20 24 26 26 26 26 25 23 22 21 20 20 19 19 18 16 13 11 11 12 13 13 12 15 18 24 29 32 35 36 35 33 30 27 26 26 26 26 26 25 25 24 25 27 29 32 33 33 34 34 33 31 31 35 39 41 43 45 44 42 38 33 31 31 32 33 35 37 39 40 41 42 43 44 45 45 45 45 45 44 44 44 42 40 40 40 41 41 42 42 46 49 49 47 43 42 41 41 43 45 48 49 57 62 64 65 64 64 65 65 63 61 60 59 60 60 59 59 58 57 57 55 54 53 52 52 56 60 64 68 70 71 71 70 70 71 73 74 74 71 65 59 54 50 49 48 49 51 53 56 59 61 63 63 63 62 62 62 63 64 64 66 69 71 71 68 64 62 60 58 57 57 57 56 54 50 44 40 38 36 35 35 35 37 39 43 47 51 54 57 59 61 63 64 66 66 66 65 63 60 58 56 54 53 52 52 52 52 51 51 50 49 48 47 46 45 45 45 46 46 47 48 47 46 44 42 39 37 35 33 32 30 28 26 24 22 21 20 20 20 20 20 21 21 21 20 20 20 20 19 19 18 18 18 17 17 16 16 15 15 14 14 13 13 12 11 11 10 10 9 8 8 7 7 7 6 6 6 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 5 6 8 10 15 21 28 35 43 54 66 77 85 91 93 93 93 93 93 93 92 91 90 90 90 88 86 83 77 74 74 79 80 75 64 50 40 36 37 41 43 44 43 42 39 35 32 28 25 24 23 23 18 15 14 21 38 48 52 48 38 30 24 21 21 20 18 17 14 13 12 3 3 2 1 1 1 0 0 0 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 0 0 0 0 0 0 0 0 1 1 2 3 7 12 19 26 27 27 26 26 25 24 22 21 20 19 19 19 18 16 14 11 11 12 13 13 13 16 20 25 29 33 36 37 37 35 31 26 27 29 32 34 34 32 30 28 26 26 28 30 31 32 33 33 32 31 31 35 39 42 43 44 43 42 40 37 33 32 33 35 38 39 40 41 41 42 43 44 44 43 43 43 43 42 42 43 41 38 36 37 37 38 40 41 44 46 47 46 45 44 43 41 41 43 47 49 55 60 65 66 65 64 63 62 60 58 55 54 54 54 55 56 56 56 54 53 51 50 49 50 55 59 62 63 65 67 68 68 69 70 72 73 70 66 60 53 50 47 46 46 48 50 53 56 59 61 63 63 63 64 64 64 65 66 67 71 74 73 70 66 63 60 58 57 56 56 55 55 53 49 43 38 36 36 36 36 38 41 45 48 51 55 59 62 65 67 68 68 68 66 64 61 59 57 54 52 50 50 49 50 50 51 51 50 49 48 47 47 46 46 46 47 48 49 50 51 50 48 46 42 39 36 34 33 31 29 28 26 24 23 22 21 21 21 22 22 22 22 22 22 22 22 21 21 20 20 19 19 18 18 18 17 17 16 15 14 13 13 12 11 10 10 9 8 8 7 7 7 6 6 6 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 7 10 13 18 26 38 51 64 75 84 90 93 93 93 93 93 93 92 92 91 91 90 89 87 87 85 82 81 82 81 75 64 54 46 42 42 43 44 43 43 41 38 35 31 28 26 26 26 23 18 15 17 28 41 52 58 53 44 35 27 24 21 20 18 16 14 13 3 3 3 2 2 1 1 1 0 0 0 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 0 0 0 0 0 0 0 0 1 1 2 5 11 18 26 28 27 26 26 25 24 22 21 20 19 18 18 17 16 14 11 11 12 13 12 13 17 22 26 30 34 37 38 37 34 30 26 27 30 33 35 36 36 33 31 28 26 26 29 30 31 31 31 31 29 30 34 39 42 43 42 42 41 40 40 40 38 36 36 37 38 39 40 41 42 42 42 42 42 42 42 42 42 41 41 40 37 36 36 36 37 38 40 43 44 45 45 45 45 44 41 40 43 48 51 55 61 65 66 60 54 50 49 49 47 46 46 47 49 51 53 54 54 53 52 50 49 50 53 55 56 57 58 59 61 62 64 65 67 68 68 65 60 54 50 47 45 44 46 48 50 53 57 60 62 63 64 64 65 66 66 67 68 71 76 77 74 69 65 62 59 57 56 56 56 56 56 53 48 42 36 35 36 37 39 43 47 51 55 58 61 64 67 68 69 68 67 64 61 59 57 55 53 51 50 49 48 48 49 49 50 50 50 49 49 48 48 47 47 47 47 48 49 50 51 50 47 44 40 37 35 34 32 31 30 29 27 26 25 24 23 23 23 24 24 24 24 24 25 24 24 23 23 22 22 21 21 20 20 19 19 18 17 16 15 14 13 12 11 10 10 9 8 8 7 7 6 6 6 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 7 10 17 27 40 56 71 82 90 92 93 93 93 93 93 92 92 92 91 90 90 90 89 87 86 84 82 80 76 67 59 52 48 46 44 43 43 42 39 36 33 31 29 28 27 25 22 19 19 24 33 45 58 62 60 52 42 33 27 22 20 18 16 15 3 3 3 3 3 2 2 1 1 0 0 0 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 0 0 0 0 0 0 0 0 0 1 3 9 17 26 28 27 26 26 25 23 22 22 22 21 19 18 17 16 15 13 11 12 13 13 13 17 22 27 31 35 38 37 36 34 31 27 28 29 31 33 37 36 34 31 27 24 23 26 27 29 29 30 30 29 28 32 36 39 40 41 40 39 38 39 40 39 37 35 35 36 36 37 38 39 39 40 40 41 41 42 41 41 40 38 37 35 34 34 35 36 37 40 42 43 44 45 44 44 43 39 40 44 50 55 58 61 64 63 54 47 42 42 42 41 40 40 42 45 48 50 50 51 51 51 50 50 50 50 50 49 50 51 54 55 57 58 59 61 63 62 58 54 50 47 46 46 46 46 48 51 54 58 61 62 63 64 66 66 67 68 69 71 74 78 77 73 68 63 60 58 57 56 57 57 57 56 53 47 41 37 36 37 39 41 46 50 54 57 60 63 65 67 68 67 65 62 58 55 53 51 50 49 49 48 48 47 48 48 49 49 50 50 50 50 50 49 48 47 46 45 45 45 46 46 44 42 40 37 35 35 34 33 33 32 31 30 29 28 27 26 26 26 27 27 27 27 27 27 26 26 25 24 24 23 23 23 22 22 21 20 19 18 16 15 14 13 12 11 10 10 9 8 7 7 6 6 6 5 5 5 5 5 5 5 4 4 4 4 4 4 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 5 6 9 14 27 43 61 77 87 92 93 93 93 92 91 91 91 91 91 90 90 90 89 88 86 85 83 82 77 71 64 57 51 46 44 43 42 41 39 36 34 32 30 28 27 25 25 27 27 30 37 49 61 67 66 59 47 37 28 21 19 18 16 3 3 3 3 3 3 2 2 1 1 1 0 0 0 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 0 0 0 0 0 0 0 0 0 2 8 16 25 27 27 26 25 24 23 23 22 21 21 20 21 21 19 17 14 12 11 11 13 14 18 24 29 32 35 37 37 36 34 32 30 29 28 29 31 36 36 35 33 30 26 24 24 24 25 26 29 29 28 28 29 33 36 38 40 39 38 37 38 39 40 39 37 35 34 34 35 37 37 38 38 38 38 39 39 40 40 38 35 34 33 33 33 34 35 38 40 42 44 45 44 41 40 38 37 41 47 53 58 60 61 62 62 57 53 50 49 48 46 43 43 43 44 45 46 46 46 47 48 49 49 48 45 44 44 45 47 50 51 53 53 55 57 57 57 53 50 47 46 46 46 46 47 49 51 55 58 61 62 64 65 66 68 69 70 71 72 75 79 77 72 67 62 59 57 57 57 57 57 56 55 51 47 41 36 36 37 40 43 48 52 56 59 62 65 67 67 66 63 60 56 53 51 49 47 47 47 47 47 47 47 47 48 49 51 52 53 53 52 51 49 47 44 43 41 41 40 40 39 38 37 36 36 35 36 36 36 36 36 35 35 34 34 33 32 32 32 32 32 31 30 30 29 28 28 27 27 26 26 25 24 24 23 22 21 20 19 18 17 15 14 13 12 11 10 9 8 7 7 6 6 5 5 5 5 5 5 4 4 4 4 4 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 8 15 26 43 64 80 91 94 93 92 92 91 91 91 91 91 91 90 90 90 90 88 87 85 83 79 73 65 57 50 45 43 42 42 41 40 38 36 33 31 28 27 27 30 29 28 30 39 51 62 69 70 60 48 35 24 20 18 17 2 2 3 3 3 3 3 3 2 2 1 1 1 0 0 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 0 0 0 0 0 0 0 0 0 1 6 14 23 26 26 25 25 25 24 24 23 22 20 19 18 20 21 20 17 14 12 11 12 13 19 25 31 35 37 38 39 38 35 32 30 29 28 27 29 34 36 37 35 35 33 30 28 25 23 23 25 26 26 26 27 31 33 36 38 38 39 39 39 39 39 39 40 39 38 35 34 35 35 36 36 36 37 37 38 39 38 36 34 33 34 34 33 34 35 38 40 42 44 45 43 37 35 35 38 45 51 56 60 61 62 63 65 64 62 59 57 55 53 51 49 48 45 42 39 39 41 43 44 46 45 44 42 41 41 42 43 46 48 50 51 52 53 53 52 49 46 44 43 43 43 44 46 49 51 54 57 60 62 65 66 67 69 70 71 72 74 77 80 76 71 65 61 59 57 57 57 57 56 55 54 51 47 42 37 36 38 41 46 51 55 59 62 65 67 67 66 63 59 56 52 50 48 46 45 45 46 47 47 47 47 47 49 51 53 55 57 56 55 53 51 48 46 44 43 42 41 40 40 40 40 40 40 41 41 42 42 42 43 43 43 42 42 41 41 40 39 38 37 36 35 34 33 31 30 30 30 29 28 27 27 26 26 25 25 24 22 21 19 18 16 15 13 12 10 9 8 7 7 6 6 6 5 5 5 5 5 5 4 4 4 3 3 3 3 3 3 4 4 4 4 4 4 4 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 8 12 26 46 67 85 92 93 93 92 92 92 91 91 91 91 90 90 90 90 90 89 86 83 78 70 61 54 49 45 44 44 45 45 43 41 37 34 31 29 28 29 26 25 25 29 38 51 64 75 71 59 44 31 24 21 19 2 2 2 2 3 3 3 3 3 2 2 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 4 12 21 25 25 24 25 25 25 24 23 22 21 20 19 19 19 19 17 15 12 11 11 14 19 26 33 37 39 40 39 38 35 33 31 29 27 26 27 33 36 38 37 37 36 35 33 30 27 25 23 22 22 23 26 29 31 34 36 37 39 40 41 40 40 40 40 40 39 38 36 35 34 35 35 35 36 36 37 37 36 35 34 33 33 33 34 34 36 38 40 41 43 42 38 35 35 39 43 50 55 59 61 63 64 65 67 68 67 65 62 60 58 56 55 53 50 46 43 42 43 45 46 45 44 43 41 40 39 40 41 44 46 48 49 50 50 50 48 45 42 41 42 42 43 44 46 49 52 54 57 60 63 65 67 69 71 72 73 73 76 78 80 75 69 64 61 59 58 57 56 56 56 55 53 51 47 43 39 38 39 43 48 53 57 60 64 66 67 66 64 60 56 53 50 48 47 45 45 46 47 47 47 47 47 48 50 53 56 58 60 60 60 60 58 57 55 54 53 52 52 51 51 51 51 51 51 51 51 51 50 51 51 51 52 52 52 51 50 48 46 43 41 40 39 38 36 35 34 33 33 32 31 30 30 30 29 28 27 26 24 22 20 18 16 14 12 11 10 8 7 7 6 6 6 6 6 6 6 5 5 5 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 6 6 6 6 6 7 7 7 8 8 8 8 8 8 7 6 14 22 35 52 71 83 89 90 91 91 92 91 91 91 91 90 90 90 90 90 89 87 82 74 65 59 54 51 49 50 50 51 49 46 43 39 35 32 30 28 26 24 23 24 28 36 50 68 75 70 58 43 34 28 23 2 2 2 2 2 2 3 3 3 3 3 2 2 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 5 11 19 22 24 25 25 25 25 24 23 22 20 20 19 18 18 18 16 15 13 11 10 13 19 27 35 37 40 40 39 38 36 34 32 29 27 26 27 33 36 37 37 37 37 37 35 33 30 28 26 25 23 23 25 27 30 31 32 34 36 38 39 40 40 40 41 40 39 39 38 37 36 35 35 34 34 35 35 36 36 35 35 34 33 33 37 36 36 38 39 42 42 39 35 36 42 50 53 55 58 60 62 63 64 66 68 70 70 68 65 63 62 60 58 57 55 53 51 51 51 51 49 46 43 41 39 38 38 38 40 42 43 45 45 46 46 45 44 43 43 43 43 43 43 45 47 50 52 55 58 61 64 67 69 71 73 74 74 74 76 78 79 74 68 63 61 59 58 57 56 55 55 55 54 51 47 43 40 40 41 45 50 54 58 61 64 66 66 64 61 57 54 51 49 47 46 46 46 47 47 48 48 48 48 48 50 52 54 57 60 61 63 65 65 65 65 65 65 64 64 63 63 62 62 61 61 61 60 60 59 58 58 59 59 59 58 56 54 51 49 46 43 41 39 37 36 36 36 35 35 35 34 33 33 32 30 28 27 25 23 21 19 17 15 13 12 10 9 8 7 6 6 6 6 6 6 6 6 5 5 4 4 3 3 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 8 8 8 9 9 9 10 10 10 10 10 10 11 11 14 19 26 33 42 57 73 82 85 87 89 90 90 90 90 90 90 90 90 90 90 89 87 83 76 69 64 61 59 58 57 56 54 51 48 44 39 35 32 30 28 27 26 24 23 27 37 53 68 73 70 60 50 41 32 1 1 1 1 1 1 2 2 3 3 3 3 3 2 2 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 2 6 11 16 21 24 26 26 26 25 24 23 22 21 20 19 19 18 18 16 14 12 11 9 12 18 25 31 35 38 39 39 38 37 35 31 29 27 27 28 33 36 37 38 38 38 37 36 34 33 31 29 27 26 24 24 26 28 29 30 30 32 34 36 37 39 40 41 41 40 39 37 36 35 35 35 34 33 33 34 36 36 36 36 35 33 33 36 36 37 38 40 41 40 37 35 38 48 58 63 62 61 61 63 64 64 66 68 71 72 70 67 65 63 61 59 58 58 58 58 58 57 54 48 44 42 42 42 41 40 39 38 38 39 40 41 42 43 43 44 45 44 43 42 42 43 44 47 51 54 57 59 62 65 68 70 72 74 74 73 74 77 79 78 72 66 63 61 60 59 58 58 57 55 54 54 52 48 44 42 42 44 48 52 56 59 62 64 66 65 63 59 56 53 51 49 48 47 47 47 48 49 49 50 50 50 49 49 50 52 53 56 58 61 64 66 67 68 70 70 70 70 69 68 67 66 65 64 64 63 62 62 61 61 61 61 59 58 56 52 50 48 46 44 42 40 38 36 35 36 36 37 37 35 34 34 32 29 26 25 23 21 19 17 16 14 12 11 9 8 7 6 5 5 6 6 7 7 6 6 5 4 4 3 3 4 4 5 5 6 6 6 6 6 7 7 7 7 8 8 8 9 9 10 10 10 10 10 11 11 10 10 10 11 12 16 21 26 31 35 36 42 51 62 72 78 82 85 86 87 87 86 88 89 90 90 90 91 91 90 87 83 78 73 69 66 64 61 58 55 51 47 42 37 34 31 30 29 28 27 25 25 29 40 56 68 74 74 66 56 44 1 1 1 1 1 1 1 1 2 2 3 3 3 3 2 2 2 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 2 5 10 15 20 24 26 26 26 25 24 23 23 22 22 20 19 18 18 17 15 13 11 9 12 16 22 29 34 36 37 39 39 37 35 31 30 29 28 30 34 36 38 38 38 38 37 36 35 34 32 30 27 25 24 25 25 26 27 28 29 30 31 33 35 36 38 40 41 40 39 37 35 35 35 35 34 33 33 35 36 36 36 35 35 34 33 36 36 37 38 40 39 37 36 37 39 46 57 67 63 62 63 66 66 67 68 70 71 71 70 68 66 65 62 59 59 59 60 62 61 58 53 48 45 44 44 44 43 43 42 41 41 41 41 42 43 45 46 47 46 44 42 40 41 42 45 49 53 56 58 60 63 65 68 71 73 74 74 73 74 77 79 77 70 66 63 62 61 61 60 60 59 57 55 54 51 48 45 43 44 47 51 55 58 60 63 65 65 63 61 57 55 53 51 50 49 49 49 49 50 51 51 52 53 53 52 52 51 52 52 53 55 57 60 63 65 68 69 71 71 71 71 69 68 65 63 61 61 60 60 60 60 60 59 58 56 54 51 50 48 46 46 45 44 43 42 40 39 37 36 35 35 33 32 32 30 28 25 22 21 19 18 16 14 12 11 10 8 7 6 5 5 5 5 6 6 6 5 4 4 3 3 3 4 4 5 5 6 6 6 7 7 7 7 7 7 8 8 8 9 9 9 10 10 10 10 10 10 11 12 15 15 15 16 18 25 28 32 38 42 45 49 54 61 68 74 78 80 80 80 81 84 85 87 88 88 89 90 91 91 89 87 83 79 74 69 65 62 58 54 50 45 40 36 32 30 29 29 29 27 26 27 32 44 56 68 76 76 68 57 1 1 1 1 1 1 0 1 1 1 2 3 3 3 3 3 2 2 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 3 6 10 14 19 23 26 26 26 26 25 24 24 25 24 22 19 18 18 17 16 14 12 10 11 15 20 25 30 33 36 38 39 37 35 33 33 32 31 31 34 37 39 38 37 37 37 37 36 35 33 30 27 26 25 25 25 26 26 27 28 30 31 33 34 36 37 39 40 39 37 35 34 34 35 35 34 33 33 35 36 35 35 35 35 33 33 35 36 37 37 38 36 35 35 38 37 40 46 58 59 62 66 69 68 69 70 71 71 71 70 69 68 66 64 62 62 62 63 64 62 59 56 53 51 49 48 46 45 45 45 46 46 46 46 46 47 47 48 47 45 43 41 40 41 44 48 52 55 57 59 60 63 65 68 71 72 73 73 72 73 77 79 76 70 66 63 63 63 63 62 61 60 58 57 55 52 50 47 46 46 50 53 57 60 62 63 64 63 61 59 57 55 54 52 51 50 51 51 51 52 53 55 56 57 57 57 57 57 56 55 55 55 57 59 61 64 67 69 71 71 70 69 67 65 63 61 59 59 58 58 58 57 56 55 53 52 50 49 48 48 47 47 47 46 45 43 42 40 38 36 34 31 31 30 28 27 26 25 23 19 18 16 14 13 11 10 8 7 6 5 5 5 5 5 5 5 4 4 3 3 3 3 4 4 5 5 5 6 6 7 7 7 7 7 7 7 7 7 7 8 8 8 9 9 9 9 9 10 12 15 17 16 15 15 15 19 21 25 32 40 46 50 53 58 62 67 71 73 72 71 72 74 77 79 81 83 85 87 89 90 90 89 87 85 80 75 71 67 63 58 54 49 44 39 35 31 28 27 28 29 28 28 29 35 44 55 67 73 73 68 1 1 1 1 1 1 1 1 0 1 1 2 3 3 3 3 3 3 2 2 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 2 4 7 11 15 19 23 25 26 26 26 25 25 26 26 25 22 20 19 18 17 17 16 13 11 11 13 17 21 26 31 35 38 38 35 32 32 34 34 33 32 34 37 38 38 37 36 36 36 36 35 33 30 28 26 26 26 26 26 26 28 30 32 34 35 36 37 38 39 39 38 36 34 33 33 34 33 32 32 33 35 34 34 34 34 34 33 33 33 35 36 36 36 35 32 32 37 37 36 37 42 49 57 63 66 66 68 70 71 72 72 72 71 69 68 68 67 66 66 66 67 65 63 61 60 58 55 52 49 47 45 44 44 45 45 46 46 46 46 45 44 43 42 41 42 43 46 50 53 56 58 59 60 63 66 69 71 72 73 73 72 73 77 79 76 70 67 65 65 65 65 63 62 60 59 58 56 55 53 52 51 51 53 56 60 61 63 63 63 62 61 59 57 56 54 53 52 52 52 53 54 55 57 59 60 61 62 62 62 62 61 61 60 59 60 61 63 66 68 69 70 69 68 66 65 63 62 60 59 59 58 57 56 56 54 53 51 50 50 50 49 49 49 49 48 46 44 42 40 38 37 35 32 29 27 26 24 23 22 22 21 19 17 14 12 11 10 8 7 6 6 5 5 5 4 4 4 4 4 3 3 4 4 4 4 5 5 5 6 6 7 7 7 7 7 7 7 7 6 6 6 6 6 7 7 7 7 8 8 8 8 9 10 10 10 12 15 17 19 20 23 30 37 45 50 52 53 55 59 63 65 65 65 66 67 69 71 73 76 79 84 87 89 89 89 88 85 82 78 73 68 63 59 55 51 46 41 35 30 27 27 28 29 30 29 30 35 42 53 64 72 75 1 1 1 1 1 1 1 1 0 0 1 1 2 2 3 3 3 3 3 2 2 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 3 6 10 13 16 20 23 26 27 26 26 26 26 27 28 27 21 18 18 18 17 17 16 14 12 11 12 14 18 23 28 33 35 33 30 28 31 34 35 35 34 35 36 38 37 36 36 36 35 35 34 33 30 27 26 26 26 26 26 27 29 32 33 35 36 36 37 37 37 36 35 33 31 31 31 31 32 30 31 32 33 33 33 33 34 33 33 34 34 34 34 35 35 33 30 31 35 37 36 34 32 38 46 54 58 59 65 70 73 74 75 74 73 72 71 70 70 70 70 70 70 68 67 65 63 61 59 55 52 47 44 41 40 40 41 42 43 43 43 43 42 42 42 43 44 46 49 52 55 56 58 59 61 64 67 70 72 73 73 73 72 73 76 79 76 71 68 67 68 67 66 64 62 60 59 58 58 57 56 56 56 56 57 59 61 63 63 63 63 62 61 60 58 57 55 54 53 53 54 56 57 59 61 63 65 66 66 67 67 67 66 66 65 64 64 65 66 68 68 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 52 52 52 51 50 49 47 45 42 40 38 36 34 32 29 27 25 23 20 19 18 18 18 17 16 14 11 10 8 7 7 6 6 6 6 5 5 5 5 5 5 4 4 4 4 4 4 5 5 5 5 6 6 7 7 7 7 7 7 7 7 6 6 6 6 6 6 6 6 6 7 7 7 7 6 6 7 9 13 15 18 20 21 23 26 31 36 40 41 42 42 46 52 57 61 61 60 60 62 63 66 69 75 81 85 88 89 89 88 86 84 79 73 68 64 61 58 53 48 41 35 31 28 28 29 30 31 31 31 34 40 51 62 72 1 1 1 1 1 1 1 1 1 0 0 1 1 1 2 2 3 3 3 3 2 2 2 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 3 6 12 15 17 18 21 24 27 27 27 26 26 26 30 35 34 21 17 16 16 15 16 15 14 12 11 12 13 16 20 24 27 28 26 25 26 32 33 33 33 34 33 35 36 35 35 36 35 35 35 34 32 30 27 26 26 26 26 26 28 30 32 33 34 34 35 35 35 35 34 33 32 32 33 33 33 32 31 32 33 33 32 33 34 34 32 32 33 34 34 33 33 34 32 30 30 35 37 36 34 32 36 38 41 46 51 61 71 77 76 77 77 76 75 73 72 71 72 72 72 73 71 69 66 62 59 56 53 50 46 42 40 38 38 38 39 40 41 41 42 42 43 43 44 46 49 51 54 56 57 58 60 62 66 69 72 73 74 74 74 72 74 77 79 76 72 69 69 70 69 67 64 62 60 59 58 58 58 58 58 58 59 60 60 62 63 63 63 63 63 62 61 59 58 56 55 54 55 57 59 61 64 66 68 69 70 70 70 70 70 70 69 68 67 66 66 67 68 68 68 68 67 66 66 65 65 64 63 62 61 60 59 57 56 55 55 55 54 53 53 53 51 49 47 45 42 40 37 35 33 31 29 26 24 22 20 18 16 15 14 14 14 13 12 11 10 9 8 7 7 6 6 6 6 6 6 6 6 5 5 5 5 4 4 4 4 4 4 4 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 8 9 9 8 8 7 8 10 13 16 20 23 25 25 24 24 24 24 25 25 29 35 44 55 57 57 55 56 57 59 62 67 75 81 84 86 88 88 88 86 83 77 72 67 64 61 58 52 47 42 37 34 30 29 30 32 33 32 32 32 39 50 62 2 1 2 1 1 1 1 1 1 0 0 0 1 1 1 2 2 2 3 3 3 3 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 2 5 11 18 21 22 22 23 26 28 28 28 27 27 26 36 45 43 20 18 17 16 13 13 13 13 12 11 12 13 14 18 20 23 24 24 25 27 30 29 29 29 30 31 33 35 34 35 35 35 35 35 34 32 30 27 26 25 25 26 26 28 29 31 32 33 33 34 34 34 34 33 33 33 35 35 35 33 33 32 33 34 35 35 35 35 33 30 29 30 32 33 32 32 33 32 30 30 34 36 36 35 34 45 40 32 35 43 56 68 78 78 76 75 74 72 70 68 67 68 70 71 71 70 67 63 57 53 51 49 46 43 41 39 38 38 38 39 40 41 42 42 43 44 46 47 50 52 54 57 58 59 61 63 66 69 71 73 73 74 74 74 73 75 77 78 76 72 71 71 71 69 67 64 61 60 59 58 57 58 59 59 59 60 60 61 62 63 63 64 63 63 63 62 60 58 57 56 57 58 60 63 66 69 71 73 74 74 74 73 73 73 72 71 70 69 68 68 69 69 70 70 70 69 69 68 68 67 66 65 63 62 61 60 58 57 57 56 57 56 55 54 53 50 48 45 42 39 37 35 32 30 28 26 24 22 20 18 16 14 13 12 12 12 11 10 10 10 9 9 8 8 7 7 7 7 6 6 6 6 5 5 5 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 7 9 10 12 12 11 10 10 11 13 17 20 23 23 23 21 18 17 15 15 17 22 30 43 51 53 53 52 52 52 55 61 70 75 78 80 83 85 86 85 83 78 73 68 65 62 59 54 49 45 41 38 34 32 31 32 34 34 33 31 33 39 51 5 3 2 1 1 1 0 1 1 1 0 0 0 0 1 1 1 2 2 3 3 3 3 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 3 7 13 19 24 27 27 27 29 30 30 29 29 29 30 39 44 39 16 18 18 16 13 12 12 12 13 12 12 13 14 16 18 21 24 24 25 26 28 27 27 27 28 30 32 34 34 34 34 35 35 34 34 33 30 27 25 24 24 25 25 27 28 30 31 32 33 33 33 33 32 31 32 34 36 35 33 32 33 33 34 35 35 36 35 34 32 29 28 28 30 32 32 31 31 31 30 31 33 33 34 35 36 48 42 32 31 37 48 61 75 79 74 67 61 59 58 57 58 61 63 65 65 64 61 57 52 49 47 45 43 42 40 39 39 40 41 42 43 44 45 47 48 49 51 53 55 58 60 61 62 62 63 64 67 68 69 70 71 72 73 73 74 76 77 77 75 72 71 71 71 69 66 63 61 60 58 58 58 58 59 59 60 60 61 62 63 63 64 64 64 64 63 62 61 59 58 58 59 61 63 67 71 74 76 77 77 77 76 76 76 76 75 75 74 74 74 74 74 74 74 74 74 74 73 72 70 69 67 65 63 62 61 60 60 59 58 58 58 57 55 54 52 49 46 43 40 37 35 32 30 28 26 23 21 20 18 16 14 13 12 10 10 10 10 9 9 9 8 8 9 8 8 7 7 7 6 6 6 5 5 5 4 4 4 4 3 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 8 10 12 14 14 13 11 10 10 11 13 15 17 18 18 17 16 15 14 15 17 21 28 40 48 50 50 47 47 49 54 61 67 71 73 75 77 78 79 78 75 71 67 64 61 59 55 51 46 42 39 36 33 32 33 35 36 36 34 32 34 40 10 7 4 2 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 3 3 3 3 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 4 9 12 18 25 31 33 34 34 34 31 31 32 34 37 44 39 28 17 18 17 16 14 12 11 12 13 13 13 14 15 16 17 19 22 24 24 25 26 27 27 28 28 29 31 33 34 34 34 34 34 34 34 33 32 29 27 25 24 24 24 26 27 28 29 30 31 31 31 31 31 31 32 35 37 35 34 33 33 34 34 34 35 34 34 34 34 31 29 28 29 32 31 29 29 31 31 32 31 30 31 32 34 43 41 35 30 33 39 49 65 70 62 51 45 46 47 49 51 56 60 60 60 58 55 51 48 45 44 43 42 42 41 41 42 43 44 46 48 49 51 53 54 56 58 60 63 65 66 67 66 64 63 62 63 63 64 66 68 70 72 73 75 76 77 76 73 71 71 70 70 67 65 63 61 59 58 58 58 59 59 60 61 62 63 64 65 65 66 66 65 65 64 63 61 60 60 60 61 64 68 71 75 78 80 81 80 80 79 79 79 79 79 79 80 80 81 81 81 81 81 80 79 78 77 75 72 69 67 64 62 61 61 60 60 60 59 59 58 57 55 52 50 46 43 41 38 35 32 29 27 25 23 21 19 18 16 14 13 12 11 10 10 9 9 9 9 8 8 8 8 8 8 7 7 6 6 6 5 5 5 4 4 4 3 3 3 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 5 5 6 6 6 6 7 7 7 8 8 10 11 13 14 13 12 11 10 9 9 10 11 12 13 14 15 16 16 16 17 18 20 32 42 47 45 45 47 49 51 55 59 63 66 68 68 68 68 69 68 66 64 62 60 58 55 51 47 43 39 36 34 33 34 36 38 38 37 34 32 35 17 13 9 6 4 2 2 2 1 1 0 1 1 1 1 1 1 1 1 2 2 2 3 3 3 3 3 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 3 6 8 9 15 25 34 40 41 39 37 35 36 39 43 48 47 36 23 18 17 17 17 14 12 12 12 12 12 14 15 16 16 17 18 20 21 22 22 23 25 27 29 29 29 30 32 34 34 34 34 34 34 34 33 32 30 28 27 26 25 24 24 25 26 26 28 28 29 29 30 30 30 31 33 37 37 35 34 34 35 35 36 34 31 33 36 37 33 29 28 29 32 30 28 28 33 34 32 27 27 29 31 32 38 40 37 30 31 33 38 46 45 40 36 37 40 41 43 45 49 52 53 52 50 47 45 42 41 40 40 40 40 41 41 42 43 45 47 49 52 55 58 60 63 65 67 69 70 70 70 68 64 61 58 57 58 59 62 65 68 71 74 76 77 76 74 71 70 69 68 67 65 63 62 61 60 59 58 58 59 60 62 63 64 65 66 67 67 67 67 67 66 65 64 63 61 61 63 65 68 72 76 79 82 83 83 83 82 82 82 82 83 83 84 84 85 85 85 86 86 86 85 84 81 78 75 71 68 65 63 62 61 61 60 60 60 60 59 57 55 52 50 47 44 41 38 35 32 29 26 24 22 20 18 17 15 14 13 12 11 10 9 9 9 9 9 8 8 8 8 8 7 7 7 7 6 6 5 5 5 4 4 4 3 3 3 3 3 3 3 3 4 4 4 4 4 5 5 5 6 6 6 6 6 6 7 7 8 9 10 11 12 12 12 12 13 13 13 12 11 10 10 9 10 10 10 11 12 13 15 17 17 17 16 16 26 36 42 42 45 49 54 58 59 59 60 61 62 62 61 60 59 59 59 59 58 57 56 54 51 48 44 41 38 36 36 36 38 39 40 40 37 35 34 26 21 16 12 8 5 3 4 3 2 0 0 0 1 2 2 1 1 1 1 2 2 2 3 3 3 3 3 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 6 6 6 13 25 38 46 44 43 41 40 43 47 52 55 39 30 24 20 16 16 16 16 14 12 12 12 14 15 17 18 18 18 18 18 18 19 19 19 22 26 29 29 29 30 31 32 33 34 34 34 33 33 33 31 30 29 28 27 26 25 24 24 24 24 25 26 27 28 29 29 29 29 31 35 37 37 36 35 36 37 36 31 30 35 39 39 35 33 32 34 33 31 31 34 39 37 31 23 24 26 28 30 35 41 42 32 30 30 30 31 30 31 32 34 35 36 35 34 35 36 37 37 37 36 35 36 36 36 37 38 39 40 41 41 42 43 45 48 51 55 58 61 64 67 69 71 72 71 70 67 63 59 55 52 53 56 59 63 67 71 74 76 76 75 72 70 69 68 66 64 62 61 61 61 60 60 59 59 60 61 63 65 66 67 68 68 68 69 69 69 68 67 66 65 64 64 66 70 74 76 79 83 85 86 86 85 84 84 84 85 85 86 86 85 84 84 85 87 88 87 86 85 81 77 72 69 66 64 63 62 61 61 61 60 60 59 57 55 52 49 46 43 40 37 35 31 29 26 23 21 19 18 16 15 14 13 12 11 10 9 9 8 8 8 8 8 8 8 8 8 7 7 7 7 6 6 5 5 4 4 3 3 3 3 3 3 3 3 3 4 4 4 5 5 5 5 5 6 6 7 7 7 7 8 8 9 11 13 15 17 17 17 16 16 15 15 14 13 11 10 10 10 11 11 11 12 12 13 15 16 17 16 14 13 19 26 34 40 45 52 59 66 66 64 61 60 59 58 57 56 54 52 51 52 52 53 53 52 51 48 46 43 42 41 40 40 41 41 41 41 40 39 37 35 30 25 19 15 10 6 5 5 4 2 1 0 1 2 3 3 2 1 1 1 1 2 2 3 3 3 3 3 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 3 5 5 4 4 13 27 41 51 49 49 49 48 48 51 53 49 28 27 31 24 17 15 16 17 15 14 13 14 16 17 18 19 20 19 19 18 17 17 16 17 19 23 27 29 30 30 31 31 32 33 33 34 33 33 31 30 29 29 29 28 28 26 25 24 23 24 24 25 26 26 27 29 29 29 29 32 36 38 37 35 35 35 33 29 30 35 40 40 40 39 38 39 38 40 43 48 45 38 31 26 27 27 27 29 37 43 43 34 29 27 27 26 28 30 31 32 32 32 31 29 27 26 25 26 27 27 28 30 31 33 35 37 39 40 41 41 41 42 43 46 49 52 55 58 61 64 67 69 71 71 69 66 61 56 52 50 51 54 58 63 67 70 73 75 74 72 70 69 67 65 63 61 60 61 61 62 62 61 60 60 61 63 65 67 68 68 69 70 71 71 72 72 71 70 69 68 67 68 71 76 79 81 83 86 87 88 88 87 86 86 87 87 88 87 86 83 80 80 82 85 87 86 85 83 79 75 71 68 66 64 63 62 62 61 61 60 59 57 54 52 49 46 43 40 37 34 31 28 25 23 20 18 17 15 14 13 12 11 10 10 9 8 8 8 8 8 8 8 7 7 7 7 7 7 7 6 6 5 5 4 4 3 3 3 3 3 3 3 3 3 4 4 4 5 5 5 5 6 6 6 7 7 8 8 9 10 11 12 15 18 20 23 24 24 23 22 21 19 18 16 14 12 11 10 11 11 12 13 13 13 14 15 15 14 13 11 13 17 24 35 45 54 62 68 68 65 61 59 58 57 56 55 53 51 48 47 47 49 51 52 51 51 49 48 47 47 47 46 45 43 43 42 42 41 40 44 39 34 28 23 17 12 9 8 7 5 3 1 1 1 3 4 4 3 2 1 1 2 2 2 2 3 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 4 5 5 5 5 13 30 48 56 56 58 61 66 60 58 55 45 31 34 36 24 18 15 16 18 17 16 15 16 17 19 21 23 23 22 21 19 18 17 16 15 17 20 25 29 30 31 32 32 32 32 32 33 33 32 30 30 29 29 29 29 28 26 25 24 23 24 24 25 25 25 26 28 29 29 29 29 33 35 36 34 33 32 31 29 29 32 38 43 45 45 45 47 50 51 53 56 52 40 32 37 38 37 37 39 45 45 40 30 26 25 25 25 27 29 30 30 30 30 30 30 28 26 24 23 24 25 26 28 30 31 34 36 38 39 39 38 39 40 42 44 47 50 52 55 58 62 65 69 72 72 70 67 61 56 51 49 51 54 59 63 67 70 72 73 71 70 68 67 65 63 61 60 60 61 62 64 63 63 62 62 64 65 67 68 69 70 71 73 74 76 76 76 76 74 72 71 72 74 78 82 85 86 87 89 89 90 90 89 88 88 89 89 89 88 85 81 78 78 79 83 85 85 84 81 78 75 72 69 67 65 63 62 62 61 60 59 57 54 51 48 45 43 40 37 34 31 28 25 22 20 18 16 15 14 13 12 11 10 9 9 8 8 8 8 8 8 8 8 7 7 7 7 7 7 6 6 5 5 4 4 3 3 3 3 3 3 3 3 3 4 4 4 4 4 5 5 5 5 6 6 6 7 8 9 10 12 14 16 19 23 26 30 31 31 30 30 28 27 25 22 19 16 14 12 11 11 12 12 12 12 12 13 13 13 11 10 10 10 14 23 39 51 60 66 64 61 58 56 56 55 54 53 52 50 48 46 45 46 49 52 53 53 52 52 53 54 54 53 50 48 46 44 43 43 42 50 47 43 38 32 26 20 15 12 10 8 6 3 1 0 2 5 6 6 4 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 3 5 6 7 7 15 34 53 61 63 67 73 82 69 60 52 40 37 37 35 24 21 18 17 19 19 19 18 18 20 23 26 28 28 26 23 21 19 18 17 16 17 19 23 27 30 32 33 33 32 32 32 32 32 31 30 30 30 30 29 28 27 26 24 23 23 23 24 24 24 24 24 26 28 29 30 29 30 32 33 31 30 30 31 30 28 33 44 60 50 45 45 47 51 56 60 63 57 45 37 44 45 45 46 48 48 43 36 31 30 29 28 28 28 28 28 28 29 30 30 31 30 29 27 26 26 26 27 28 30 32 34 36 37 37 37 36 38 40 42 44 46 49 51 53 57 61 66 70 74 76 75 71 65 58 52 50 52 55 60 64 67 69 70 70 69 68 67 66 64 62 60 59 60 62 64 65 65 64 63 64 65 66 68 69 70 71 73 75 77 79 80 80 79 78 76 76 77 81 85 89 90 90 91 91 91 91 91 90 89 90 90 91 89 87 84 81 79 78 80 82 83 84 83 81 78 76 73 70 67 65 64 62 62 60 59 57 54 51 48 45 42 40 37 34 32 28 26 23 20 18 16 15 14 13 12 11 10 9 9 8 8 8 8 8 8 8 7 7 7 7 6 6 6 6 6 5 5 4 4 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 5 5 5 6 6 7 7 8 8 10 12 14 17 21 25 29 33 35 36 36 36 35 35 33 29 25 22 18 16 14 13 12 12 11 10 10 10 10 10 10 10 9 9 10 12 24 36 47 55 57 56 55 55 53 51 49 47 48 48 47 46 44 45 46 50 53 54 56 57 60 61 62 60 57 54 51 48 46 45 44 54 53 51 47 42 37 31 24 18 14 11 9 6 3 1 1 4 7 8 6 4 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 2 5 7 8 10 17 35 54 66 70 73 75 79 60 50 44 39 35 34 32 29 25 21 19 21 22 22 21 21 23 26 29 32 31 30 27 25 24 22 21 20 19 19 21 25 29 31 33 33 33 33 32 32 32 31 31 30 30 29 28 27 26 25 23 22 22 22 23 24 23 23 24 25 26 28 29 29 29 30 31 30 29 29 30 30 27 35 47 60 50 44 42 45 50 57 62 61 59 47 38 43 45 46 48 50 45 40 37 35 35 34 33 32 31 31 31 31 31 32 32 32 32 31 31 30 29 29 29 30 31 33 34 36 36 36 36 37 38 39 41 42 44 46 48 50 55 60 65 71 75 77 78 75 68 61 54 51 53 57 61 65 67 68 68 68 67 66 66 65 63 61 60 60 61 64 65 66 65 65 64 65 66 67 68 68 69 71 73 76 79 82 83 83 83 82 82 82 84 88 91 93 93 93 92 92 93 92 92 90 90 91 91 91 90 87 85 82 81 81 81 83 83 83 82 80 78 76 74 71 68 66 64 62 61 59 57 54 50 47 45 42 40 37 34 32 29 26 24 21 19 17 16 14 13 12 11 10 10 9 9 8 8 8 8 8 8 7 7 7 7 7 6 6 5 5 5 4 4 4 3 3 3 3 3 2 2 2 3 3 4 4 5 5 5 5 5 6 6 7 8 9 9 10 9 9 9 10 12 15 18 22 26 31 35 37 39 40 40 39 38 35 31 28 25 23 20 17 15 13 12 10 9 8 8 8 9 9 9 9 9 9 12 18 27 37 45 51 55 57 54 50 47 45 46 47 47 47 46 45 46 48 52 55 58 61 65 67 68 67 64 60 56 53 50 49 47 57 56 55 53 50 46 42 35 28 22 16 12 8 5 2 1 2 5 9 8 7 5 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 4 7 10 13 19 38 60 73 78 80 78 70 52 41 37 39 34 30 30 36 28 25 24 26 26 26 26 26 27 29 31 32 32 32 31 30 29 28 26 25 22 21 21 24 27 30 32 33 33 33 33 32 32 31 31 31 30 29 28 26 25 24 23 23 22 22 23 23 23 24 24 25 25 26 27 27 27 27 28 29 29 28 28 28 28 30 33 36 42 43 42 43 49 53 56 56 51 41 36 44 46 50 52 51 44 40 37 34 33 32 32 31 31 32 34 35 35 35 35 35 35 34 34 33 32 31 31 31 32 34 35 37 37 37 37 38 38 38 39 41 42 44 47 49 52 58 64 71 75 77 78 76 70 63 57 53 55 58 62 66 66 66 66 65 65 66 65 65 63 61 60 60 62 64 66 67 66 66 65 65 66 67 68 68 69 71 75 78 82 84 86 86 86 86 87 89 92 94 95 95 95 94 93 93 93 92 92 91 91 92 92 92 90 88 86 84 83 83 83 84 83 83 82 80 78 76 74 71 69 66 64 62 60 57 54 51 48 45 42 40 37 35 32 29 26 24 22 19 17 16 15 13 12 12 11 10 10 9 9 8 8 8 8 8 7 7 6 6 5 5 5 5 5 4 4 4 4 3 3 3 3 3 2 2 2 2 3 4 5 5 6 7 8 8 9 10 11 12 13 14 14 14 14 13 12 11 11 12 14 17 20 24 29 33 37 40 41 41 40 38 35 33 32 30 28 25 21 18 15 12 10 8 8 7 7 8 8 9 9 9 9 10 13 20 30 42 53 60 60 57 54 51 51 51 52 53 52 51 50 49 51 54 58 62 66 69 70 70 68 65 62 58 54 52 51 60 58 57 57 55 53 50 46 40 33 25 18 13 8 4 1 1 3 8 10 9 7 4 3 2 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 3 6 10 15 26 46 68 83 90 91 83 61 46 37 35 38 34 28 27 35 32 30 28 30 30 31 31 31 32 33 33 33 33 33 33 33 32 31 30 30 27 24 22 23 26 28 31 32 33 33 32 32 32 31 31 31 30 29 27 26 25 24 23 24 23 22 23 24 24 24 25 25 25 25 26 26 26 28 29 29 28 28 29 29 31 33 34 33 36 39 43 48 58 59 57 54 48 42 39 45 49 52 52 48 41 37 35 32 31 30 28 26 26 27 30 32 35 36 37 38 38 37 37 36 35 34 33 33 34 35 36 38 39 39 40 40 40 40 41 42 43 46 48 50 52 57 63 69 73 75 76 76 72 65 59 54 56 59 63 65 65 64 64 64 64 65 65 65 63 61 60 61 63 65 67 68 67 67 66 66 67 68 69 70 72 75 78 81 85 87 89 89 89 89 91 94 95 96 95 95 95 94 93 93 93 92 92 91 92 93 93 92 90 88 87 86 85 85 84 83 82 81 80 79 77 76 73 71 69 67 64 61 58 55 51 48 45 43 41 38 36 33 30 27 24 21 19 18 16 15 14 13 12 11 11 10 10 9 9 9 9 8 8 8 7 6 6 5 4 4 4 4 4 4 4 4 3 3 3 3 3 2 2 2 2 3 4 5 7 8 10 11 13 14 16 17 18 20 21 22 23 22 21 19 17 16 14 13 13 14 16 19 23 28 33 37 40 41 40 39 37 36 35 34 33 31 28 23 19 16 13 10 9 7 7 7 7 8 8 8 8 8 8 10 17 29 42 56 62 65 65 62 61 62 63 64 63 61 58 54 54 55 57 61 65 68 70 71 70 69 66 63 59 56 54 63 61 60 59 58 57 56 53 49 44 37 29 21 14 8 3 1 1 5 10 11 10 7 5 3 2 1 1 1 1 1 1 1 2 2 2 2 2 2 1 1 1 1 1 1 0 1 2 6 11 18 34 57 79 90 92 85 73 56 44 38 36 37 33 28 26 34 36 35 33 32 32 33 34 34 35 35 35 35 35 35 35 34 33 32 32 31 30 27 25 23 25 26 29 31 32 32 32 32 32 31 31 31 30 28 26 26 25 24 23 23 22 22 24 25 25 25 25 25 25 25 25 25 26 27 28 30 30 29 30 30 33 35 35 32 32 33 37 44 51 52 50 48 52 51 50 52 49 46 43 37 33 31 30 27 26 24 21 19 19 21 25 30 33 36 38 40 40 39 39 39 38 36 35 35 35 36 38 39 40 41 41 42 42 42 43 44 46 48 50 51 52 55 60 65 69 72 74 74 71 65 59 55 57 60 63 64 64 63 63 63 64 65 65 65 64 62 61 61 62 64 66 68 68 68 68 67 69 71 73 75 76 78 81 84 88 91 92 92 92 93 94 96 96 96 95 95 94 94 94 93 93 93 92 92 93 94 93 92 90 89 88 87 86 85 83 81 80 79 78 77 76 74 73 71 69 66 63 60 56 53 50 47 44 42 39 37 34 31 28 24 22 19 18 16 15 14 13 13 12 12 11 10 10 10 9 9 9 8 8 7 7 6 5 4 4 3 3 3 3 3 3 3 3 3 3 3 3 2 2 3 3 4 6 9 11 13 15 18 20 23 25 27 29 31 32 33 33 32 30 28 26 24 22 19 17 16 15 16 20 24 29 34 38 41 41 40 38 36 35 34 34 33 31 28 24 19 15 12 10 9 8 7 7 7 7 8 8 8 7 7 10 18 29 42 54 62 67 69 70 72 74 75 74 71 68 63 60 58 58 60 63 66 69 71 72 71 70 67 63 60 57 67 64 62 61 60 59 59 58 55 52 46 39 31 23 16 9 4 1 2 8 11 12 10 8 6 4 2 1 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 2 6 12 21 42 68 90 96 91 77 61 49 42 38 37 37 33 28 26 29 34 36 35 34 34 34 35 36 37 37 37 38 37 37 36 35 35 33 32 31 31 29 27 24 24 25 26 29 31 33 33 32 31 31 31 30 30 28 26 25 24 24 23 24 23 24 25 26 27 26 26 26 26 26 25 25 26 27 29 31 30 29 30 31 34 35 34 33 33 35 37 39 48 53 55 58 57 53 50 50 42 39 36 30 28 26 24 20 18 16 15 14 15 17 20 25 30 34 37 39 40 39 39 39 39 39 39 38 39 39 40 41 42 42 42 42 43 43 44 45 47 49 51 52 51 53 55 60 64 68 70 71 68 63 58 55 57 60 63 64 63 62 62 62 63 64 64 64 64 62 61 61 61 63 65 67 68 69 70 71 72 75 77 80 81 83 85 88 92 94 95 96 96 97 97 97 96 96 95 94 94 94 94 94 93 93 93 94 94 94 93 90 89 88 88 87 85 83 81 79 77 76 75 74 74 73 72 70 68 65 61 58 55 51 49 46 43 41 38 36 32 29 25 22 19 18 17 15 15 14 14 13 13 12 11 11 10 10 9 9 9 8 8 7 6 5 4 3 3 3 3 3 3 3 3 3 3 3 3 3 2 3 4 5 5 7 9 13 17 20 23 26 29 32 35 37 39 41 43 44 44 43 41 38 36 34 32 30 27 24 21 19 19 22 26 30 35 38 40 39 37 35 33 33 33 33 32 29 25 21 17 14 12 10 9 8 8 7 7 7 7 7 7 6 8 12 19 30 41 51 60 67 71 76 79 81 80 78 75 71 67 64 63 63 64 67 69 71 72 72 71 69 66 63 60 70 68 66 63 62 61 60 60 59 57 54 48 41 33 24 16 10 4 1 5 10 14 13 11 9 7 4 2 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 0 0 2 6 13 23 44 72 95 99 95 76 53 40 38 37 36 36 34 30 27 26 31 34 36 36 35 35 35 37 38 38 39 39 39 38 38 36 35 35 34 32 31 30 29 26 24 24 25 27 30 32 33 32 31 31 30 30 29 28 27 26 24 23 23 23 23 24 25 27 28 28 27 26 26 25 25 25 26 26 27 30 29 29 30 34 31 33 36 38 40 41 40 41 45 53 60 63 56 52 50 47 37 34 33 28 26 24 21 17 14 12 13 16 17 18 20 22 26 31 34 37 38 38 38 38 39 39 39 40 40 41 42 42 43 42 42 42 42 43 44 46 48 50 51 51 49 49 51 54 58 61 63 64 62 59 56 55 57 61 63 64 63 62 62 62 62 63 63 63 63 62 61 60 61 62 63 66 68 70 72 75 77 80 82 85 86 87 89 92 94 96 97 98 97 97 97 96 96 95 95 95 95 94 94 94 94 94 94 95 95 93 91 87 86 86 86 85 83 80 78 76 75 74 73 72 72 71 70 69 66 63 59 56 53 50 48 45 43 40 37 34 30 26 22 20 18 17 16 15 15 14 14 14 13 12 12 11 10 10 10 9 9 8 7 6 5 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 6 8 10 12 14 18 23 27 31 34 38 41 44 46 47 49 51 52 52 51 49 47 45 44 43 42 40 37 33 28 25 23 24 26 30 33 35 36 35 34 32 32 31 31 29 27 24 20 16 13 12 10 10 9 8 8 7 7 8 8 7 6 6 9 14 22 32 43 52 60 68 75 79 81 80 79 77 75 72 70 69 68 69 69 70 70 70 70 70 69 67 64 62 73 71 69 67 65 63 61 61 61 60 58 54 49 41 33 24 16 10 3 2 7 13 15 14 12 10 7 5 4 3 2 1 0 0 1 1 1 1 1 2 2 1 1 1 1 1 1 3 7 13 23 39 67 92 97 78 56 39 36 36 36 35 36 36 33 29 24 27 30 33 34 34 35 35 35 37 38 39 39 38 38 38 37 36 35 34 33 32 32 31 27 26 25 25 25 27 30 32 33 32 31 31 30 29 28 28 26 25 23 22 22 22 23 25 28 28 28 28 27 26 26 25 25 26 27 28 29 30 30 31 32 28 30 35 35 36 39 40 39 44 47 48 52 49 44 39 33 29 30 30 23 21 22 22 17 13 15 20 24 25 25 26 27 30 32 34 36 37 38 38 38 37 37 37 38 39 41 42 43 43 42 42 42 42 43 45 46 48 50 50 49 49 49 50 51 52 54 56 57 57 55 54 54 58 61 64 65 64 63 63 62 63 63 63 63 63 63 62 61 60 61 62 64 66 69 72 76 81 84 87 89 90 92 93 95 97 98 98 98 97 97 96 96 96 95 95 95 95 95 94 94 94 95 95 95 94 91 88 84 84 84 84 82 80 77 75 73 73 72 72 71 71 71 69 68 64 61 57 53 51 48 46 44 42 39 35 31 27 24 21 18 17 17 16 15 15 15 15 14 14 13 12 11 11 10 10 9 8 7 6 5 4 3 3 3 3 3 3 3 4 4 4 4 4 3 3 3 4 6 9 11 16 20 23 25 30 35 39 42 44 47 49 51 52 53 54 55 54 53 52 51 51 50 50 51 50 49 46 42 38 34 30 28 27 28 29 30 30 31 30 30 29 28 26 24 21 18 15 13 11 10 9 9 8 8 7 7 8 8 7 6 6 7 10 16 27 38 49 57 64 71 76 80 79 78 76 74 73 73 73 73 74 73 71 70 69 69 68 68 67 65 63 74 74 73 71 68 66 63 62 62 61 61 58 54 49 41 32 23 15 8 3 4 9 15 15 15 14 11 9 7 6 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 3 8 15 24 41 65 82 81 48 42 45 44 40 37 37 38 38 35 30 25 25 27 29 31 31 32 33 33 34 35 37 37 36 36 37 36 35 35 35 33 32 31 30 27 28 28 27 24 26 27 29 31 31 31 31 30 29 29 28 26 25 24 22 21 22 24 26 27 28 29 30 29 28 27 26 26 26 27 28 29 30 31 31 30 29 29 30 30 31 37 43 43 43 43 42 40 43 40 37 36 27 24 23 20 19 22 25 20 20 24 27 27 27 27 27 28 31 33 35 35 36 37 38 37 36 35 35 36 38 40 41 42 43 43 44 44 44 45 46 48 50 51 51 51 51 51 51 51 51 51 51 52 53 53 53 54 58 61 64 66 65 65 65 64 64 64 65 65 65 65 64 63 61 61 61 62 64 67 71 76 80 84 88 90 92 94 95 97 98 98 98 98 97 97 96 96 96 96 96 96 95 95 95 95 95 95 95 94 91 88 85 82 82 81 81 79 76 74 72 71 71 71 71 70 70 69 68 66 63 59 55 52 49 47 45 43 40 36 32 28 24 22 20 18 17 16 16 16 15 15 15 15 14 13 13 12 11 10 10 9 8 7 6 5 4 3 3 3 3 3 3 3 3 4 4 5 5 4 3 4 7 11 14 15 21 27 32 35 38 41 45 48 50 51 52 52 52 52 53 53 52 52 51 51 51 51 51 52 53 54 55 54 52 49 45 40 36 32 29 26 26 25 25 25 25 24 23 21 19 16 14 12 10 9 9 8 8 7 7 7 7 7 7 6 6 7 9 13 22 33 45 56 62 68 73 77 78 77 76 73 71 71 72 74 75 75 73 71 69 68 67 68 67 66 65 75 75 75 74 72 69 67 64 62 62 61 60 58 55 49 40 31 22 14 7 4 6 13 15 17 17 15 12 12 11 6 2 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 6 12 21 29 58 69 63 41 29 37 49 46 37 36 39 39 40 38 34 29 27 27 28 28 29 29 28 29 30 32 34 35 34 34 34 34 34 35 34 33 31 30 29 27 28 28 28 25 26 27 27 28 27 27 27 27 28 28 28 27 26 24 23 22 23 24 25 27 29 31 32 32 31 30 28 28 28 29 29 29 30 30 30 29 29 29 28 26 24 27 33 38 40 44 45 42 43 41 40 45 35 28 24 23 21 22 24 23 26 28 27 25 26 27 29 31 32 33 34 35 34 34 34 34 34 34 34 35 37 39 41 43 43 44 44 44 44 44 45 47 49 51 52 52 52 53 55 55 54 52 51 51 51 52 53 55 58 61 64 66 66 66 66 66 67 67 67 68 68 67 66 64 63 61 61 61 63 67 70 75 78 82 86 89 91 93 96 97 98 97 97 97 97 97 97 97 97 96 96 96 96 95 95 96 95 95 94 92 89 85 82 80 79 79 78 76 74 72 70 69 69 69 69 69 69 68 67 64 61 58 54 51 49 46 43 40 36 32 28 25 22 20 19 18 17 16 16 16 16 16 16 16 15 14 13 12 11 10 10 9 8 7 5 4 4 3 3 3 3 3 3 3 4 4 4 6 7 6 5 5 11 17 22 23 27 33 39 44 46 48 50 51 52 52 52 51 51 50 49 49 48 48 48 47 47 48 48 49 50 52 54 57 58 58 56 53 49 45 40 35 31 28 26 24 24 23 23 21 18 16 13 11 10 9 8 8 8 7 7 6 6 6 6 6 7 8 9 12 18 28 40 52 62 68 72 75 76 76 75 73 70 68 68 70 73 74 74 72 69 68 67 67 67 67 65 74 75 76 76 75 73 70 67 64 62 61 61 60 58 55 48 39 29 20 12 6 4 9 14 17 18 19 16 20 23 15 5 1 1 0 0 0 1 1 1 1 1 1 1 1 2 4 12 20 32 49 70 70 56 38 36 41 44 40 29 30 36 39 41 40 36 32 29 28 28 28 28 27 26 25 26 28 30 32 32 31 31 32 33 33 33 31 30 29 29 28 28 28 28 27 27 26 26 25 25 25 26 26 26 27 28 28 26 25 23 22 23 23 24 27 29 32 35 35 35 34 33 32 32 32 31 30 30 30 30 30 29 28 26 25 22 20 21 27 35 46 51 43 41 38 37 43 44 41 38 43 35 30 28 29 29 27 26 24 26 30 34 36 36 35 33 31 30 29 28 28 29 31 33 34 36 38 40 42 43 43 43 43 44 45 46 47 49 50 51 51 53 57 60 62 60 57 54 53 53 54 55 56 58 61 63 65 66 67 68 68 69 69 70 69 69 68 67 66 64 63 62 63 65 67 70 74 78 81 85 88 90 91 93 94 94 94 93 93 93 94 94 95 96 96 96 96 96 96 96 95 95 93 92 89 86 83 81 79 78 77 76 74 72 70 69 68 68 68 68 68 68 67 66 63 60 57 53 50 47 44 40 36 32 28 25 22 21 19 18 17 17 16 16 16 16 16 17 17 16 15 14 12 11 11 10 9 8 6 5 4 3 3 3 3 3 3 3 3 4 4 5 6 8 9 9 8 13 22 29 33 35 38 43 48 51 51 52 52 52 51 50 49 48 47 46 46 45 45 44 44 44 44 44 45 46 47 49 51 54 56 58 58 57 55 52 49 45 41 36 33 30 28 26 23 20 17 14 12 10 9 9 8 8 7 7 6 6 6 6 6 7 9 11 12 16 23 33 47 59 68 73 75 75 75 75 73 70 67 66 67 70 72 74 73 71 69 68 67 67 66 66 73 75 76 77 77 76 73 70 68 65 63 61 60 59 58 53 46 36 26 17 9 5 6 13 17 20 21 23 33 41 36 17 8 5 4 2 1 1 1 1 1 1 1 1 1 3 8 21 36 54 79 85 76 61 50 43 38 35 35 30 30 33 36 39 39 37 34 32 33 33 32 29 29 29 28 27 27 28 29 30 30 31 31 31 31 30 30 29 29 29 29 29 29 29 27 27 26 26 26 26 26 26 26 27 27 28 28 28 26 24 21 22 22 22 26 30 34 36 37 37 36 35 35 34 33 32 31 30 30 30 31 30 28 27 26 25 23 22 22 25 32 38 41 43 43 42 44 49 46 42 43 34 30 29 27 27 27 26 25 28 32 36 39 38 36 33 31 30 29 28 28 28 30 31 33 35 37 39 40 41 43 44 45 47 48 50 51 51 51 52 55 59 63 65 65 62 59 56 55 55 55 56 57 59 61 63 65 67 68 69 70 71 71 71 71 71 70 68 68 67 66 65 66 67 69 71 74 77 81 84 86 87 88 88 89 88 88 88 88 89 90 91 93 94 95 96 96 96 95 94 94 93 92 89 86 84 82 80 79 77 76 74 72 70 69 68 67 67 67 67 67 67 66 64 62 59 55 52 48 45 41 36 32 28 26 23 21 20 19 18 17 17 16 16 16 17 17 17 18 17 16 14 13 12 11 10 9 7 6 4 3 3 3 3 3 3 3 3 3 4 5 6 7 10 11 12 12 16 24 33 40 41 44 47 51 52 53 52 52 51 50 48 47 46 45 45 44 44 43 43 42 42 42 42 42 42 43 44 45 48 51 54 56 57 58 58 57 55 52 49 45 41 36 32 28 23 20 17 14 12 11 10 10 9 8 7 6 6 6 6 6 7 9 11 12 14 20 28 40 53 64 71 75 75 75 74 74 72 68 66 65 68 71 74 74 72 70 68 67 66 65 65 74 74 76 78 79 78 76 73 71 68 65 63 61 60 59 57 51 42 31 21 12 6 5 11 17 20 23 31 44 55 55 34 26 23 17 8 2 1 1 1 1 1 1 1 3 10 27 44 60 74 84 69 56 45 37 31 33 37 40 34 30 29 31 37 39 39 36 34 35 35 35 34 35 36 37 35 32 30 28 29 29 30 31 30 30 30 29 29 28 28 28 27 27 27 26 27 27 27 27 27 27 27 27 27 27 27 28 28 26 24 21 21 21 22 24 29 33 36 38 38 37 36 35 34 33 32 32 31 30 31 32 31 30 29 28 26 25 24 23 26 30 34 38 43 45 45 45 46 49 51 51 32 26 26 25 26 27 27 26 30 33 36 38 38 37 35 35 34 32 31 30 30 31 32 33 35 36 37 39 40 42 44 45 46 48 49 51 52 54 56 60 64 67 67 65 62 59 56 54 55 56 57 58 59 61 63 65 67 68 70 72 73 74 74 74 74 73 72 71 70 69 68 68 68 69 71 73 76 78 80 81 82 83 84 84 84 84 85 86 87 89 91 92 94 95 95 95 94 93 93 93 91 89 87 85 83 82 81 79 76 74 72 70 68 68 67 67 67 67 67 67 66 65 63 60 57 53 50 45 41 37 33 29 26 24 23 21 19 18 17 17 16 16 16 17 17 18 18 18 18 16 15 14 13 11 10 8 7 5 4 3 3 3 3 3 3 3 4 4 4 5 7 8 11 14 15 16 19 26 34 42 46 48 50 52 53 53 52 51 50 49 48 46 46 45 45 44 44 43 43 42 41 41 40 40 40 40 41 42 43 46 49 51 54 57 58 59 59 58 56 54 50 45 40 34 29 25 22 19 17 16 15 14 12 10 9 7 6 6 6 6 7 8 9 10 13 17 24 35 47 58 67 72 73 74 74 74 73 71 68 66 67 71 75 76 73 71 69 67 65 64 63 75 75 77 79 80 80 79 76 73 71 68 65 63 61 60 60 56 48 38 25 15 7 4 10 16 22 26 40 58 70 69 58 48 39 28 12 3 0 1 1 1 1 1 1 6 24 63 79 88 86 70 37 25 24 28 26 32 40 41 34 30 27 28 34 38 39 37 35 35 37 39 41 42 43 43 41 38 35 32 30 29 29 30 30 30 30 30 29 29 28 28 26 26 26 27 26 27 27 27 28 28 28 28 28 28 28 28 27 26 25 22 22 22 22 21 27 33 37 39 38 37 36 35 35 34 32 31 31 31 31 31 30 30 30 28 27 27 26 26 27 29 32 32 33 39 45 47 43 41 40 37 27 24 23 21 23 25 26 26 30 34 37 38 39 37 35 32 32 32 32 32 32 33 34 34 35 37 39 41 42 43 44 45 47 49 51 52 54 57 60 64 67 68 67 63 59 55 52 51 51 53 55 57 59 60 62 64 66 67 69 71 74 76 77 78 77 76 75 73 72 70 69 68 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 86 88 90 92 93 93 93 92 92 92 92 91 89 87 86 85 84 83 81 78 75 72 69 68 67 66 66 66 66 67 67 67 65 64 61 59 55 51 47 42 37 33 30 27 25 24 23 21 19 18 17 16 16 16 16 17 18 18 19 19 18 17 16 15 13 12 10 8 6 4 3 3 3 3 3 4 4 4 4 4 4 5 7 9 12 15 18 20 22 27 34 42 47 50 51 52 53 53 52 51 51 50 49 47 46 45 45 45 44 44 43 42 41 40 40 39 39 39 39 40 41 43 45 48 51 54 57 59 59 60 59 58 55 51 46 41 36 33 30 27 25 23 21 19 17 15 12 9 8 7 7 7 7 8 8 9 10 14 20 29 41 51 61 67 70 71 72 73 74 73 71 68 66 70 76 79 74 71 70 68 66 64 63 78 78 79 80 81 81 80 78 76 73 71 68 65 63 62 62 60 55 46 31 18 8 4 10 17 24 31 53 71 78 72 66 56 46 39 19 6 0 1 1 1 1 1 6 18 42 81 91 92 81 55 27 18 20 30 33 36 38 37 35 32 29 25 29 34 37 37 35 36 38 42 45 46 47 46 45 43 42 40 37 35 33 32 31 31 31 30 30 29 29 28 27 26 26 27 25 25 26 27 27 27 28 28 28 28 28 27 27 26 25 23 21 22 22 21 25 31 36 39 38 37 36 36 35 35 34 33 31 30 30 30 29 29 28 28 28 28 29 30 32 30 29 31 30 31 36 47 45 40 34 34 24 19 18 16 18 21 24 25 28 31 35 37 37 32 25 19 21 25 30 33 35 35 35 36 37 38 40 42 44 45 47 48 51 53 54 55 58 61 64 67 68 66 62 57 51 47 44 44 46 48 50 53 55 57 59 60 62 64 66 69 71 73 75 76 75 73 71 70 69 68 68 67 68 68 69 70 70 71 72 73 74 75 76 77 78 79 81 83 85 87 88 90 91 91 91 90 91 91 90 89 87 87 87 87 85 83 81 78 74 70 67 66 65 65 65 65 66 66 67 66 64 62 60 57 52 48 43 38 34 30 28 26 25 24 23 21 19 18 17 16 15 15 16 17 18 19 20 20 19 18 17 15 13 11 9 7 5 4 3 3 3 3 4 4 4 4 4 4 4 5 7 10 13 16 19 23 26 29 34 41 46 49 51 52 53 53 53 52 51 51 50 49 47 47 46 46 45 44 43 42 41 41 40 40 40 40 40 41 42 43 45 48 51 54 56 59 60 60 61 60 58 55 51 47 44 41 39 36 34 32 29 26 23 19 16 13 10 9 8 8 8 7 7 7 9 12 16 24 34 44 53 61 65 68 68 70 72 73 72 70 67 68 71 75 73 71 70 70 67 65 63 82 82 82 81 81 81 80 79 78 76 74 71 68 65 63 64 64 61 53 38 22 10 5 11 18 28 44 65 75 76 72 71 69 68 69 38 15 1 2 1 1 1 0 15 40 65 84 84 81 74 64 51 40 33 33 37 37 36 35 36 35 32 26 26 30 35 36 36 36 38 42 45 47 48 48 48 47 46 45 43 40 37 35 33 32 31 31 31 30 29 28 27 26 25 25 24 23 24 26 26 27 27 28 28 28 27 26 26 25 24 23 22 23 23 23 24 28 32 35 36 36 36 36 36 35 34 34 33 32 31 31 30 29 28 27 27 27 29 35 43 37 28 28 28 27 26 27 29 31 33 34 21 16 14 14 17 19 22 24 25 27 30 32 31 26 20 13 13 16 22 29 33 36 38 38 39 40 42 43 45 46 48 49 52 54 56 58 60 62 64 63 59 54 49 43 39 36 35 36 39 41 43 45 47 50 52 54 56 58 60 62 64 65 66 66 65 65 64 64 64 65 65 66 66 67 68 69 70 71 71 72 73 73 74 75 76 78 79 81 83 85 86 88 89 89 90 90 91 90 89 87 87 88 88 88 86 84 81 77 72 69 66 64 64 64 64 65 65 66 66 65 63 61 58 54 49 44 39 34 31 28 27 26 25 24 23 21 19 18 17 15 15 15 16 17 18 19 20 21 20 19 17 16 13 11 9 6 5 3 3 3 3 3 4 4 4 4 4 4 4 5 7 10 13 17 20 24 28 31 36 41 46 49 51 52 53 53 53 53 53 52 51 50 49 48 47 47 46 45 43 42 42 41 41 42 42 43 43 43 44 46 47 49 52 55 57 60 61 62 62 61 60 58 55 52 50 48 47 45 43 40 37 33 29 25 21 17 13 11 9 8 7 7 6 6 7 10 13 19 27 36 45 53 60 63 65 66 68 71 72 71 68 66 67 70 70 70 70 70 68 66 63 85 83 83 83 82 81 81 80 79 78 76 73 70 67 65 66 66 65 60 44 28 14 8 14 23 38 62 75 77 74 72 77 81 82 81 40 16 4 4 3 2 1 0 19 50 76 80 75 75 74 70 49 32 23 23 32 35 35 38 39 38 34 30 26 27 31 35 35 36 38 42 46 47 48 48 48 48 47 45 44 41 38 35 34 32 31 31 31 30 29 28 26 25 24 23 23 23 23 25 26 26 26 26 26 26 25 24 23 23 23 23 23 24 25 25 24 26 29 32 35 36 36 36 36 35 34 34 33 33 32 31 31 30 29 28 27 26 27 32 35 33 31 29 28 27 26 25 26 28 31 32 22 17 16 17 18 19 21 23 23 24 26 27 28 27 24 18 14 13 15 20 27 33 37 39 41 42 44 45 47 48 50 50 51 52 54 56 57 55 51 46 41 36 32 28 26 26 26 27 30 32 34 35 38 40 42 44 46 47 49 51 52 53 54 54 56 58 59 59 59 60 61 62 63 65 66 68 69 70 71 72 73 73 74 75 76 76 78 79 81 83 85 87 88 89 89 90 90 89 88 88 89 90 90 89 86 84 81 76 72 68 66 64 64 63 64 64 65 66 66 65 62 59 55 51 45 40 35 31 29 28 27 26 25 24 23 21 19 18 16 15 15 15 16 17 19 20 21 21 21 20 18 16 13 11 8 6 4 3 3 3 3 4 4 4 4 4 4 4 4 5 7 9 13 17 21 25 28 32 36 41 46 49 51 52 53 54 54 54 54 53 52 51 50 50 49 48 47 46 44 43 43 43 43 44 45 46 47 48 48 50 51 53 55 58 60 62 63 64 64 63 62 60 58 56 55 53 52 51 49 47 44 40 36 31 26 21 17 13 10 8 7 7 6 6 6 8 10 15 20 28 36 44 52 57 60 62 64 68 70 70 68 66 65 66 67 68 69 69 68 66 63 86 85 85 84 84 83 82 81 80 79 78 75 72 69 67 68 68 68 65 51 34 20 12 21 35 51 70 77 76 74 74 83 85 78 61 29 14 9 9 6 4 2 0 20 47 69 75 80 83 78 55 23 11 15 28 36 40 40 41 40 37 35 34 29 26 27 33 34 36 39 43 45 46 46 48 48 47 46 45 44 42 41 39 38 35 31 29 29 30 29 27 26 24 24 23 23 23 23 24 25 25 25 25 24 24 23 23 22 22 23 24 24 25 25 25 25 26 29 32 35 36 37 37 37 36 35 34 34 34 33 33 32 31 30 28 27 26 26 27 29 30 31 31 30 29 29 28 29 29 29 28 25 22 21 20 20 20 21 22 23 23 24 25 26 27 27 25 21 18 15 15 20 25 31 35 38 40 43 45 47 48 48 46 45 45 45 45 43 39 34 28 25 22 20 19 18 18 19 20 21 23 24 26 27 29 30 32 33 35 36 38 40 41 43 45 48 51 52 52 53 54 56 58 60 62 63 65 67 68 70 71 72 73 74 75 76 76 77 78 80 83 85 87 88 89 89 90 89 89 89 90 91 91 90 88 85 83 80 76 72 69 66 65 64 64 64 64 65 65 65 64 61 57 52 47 41 36 32 29 28 27 27 27 26 24 22 20 18 17 16 15 14 15 16 18 19 20 21 22 21 20 18 16 13 10 8 5 4 3 3 3 3 4 4 4 4 4 4 4 4 5 6 9 12 17 21 25 29 33 37 41 45 49 52 53 54 55 55 55 54 53 52 52 51 51 50 49 48 47 45 44 44 45 46 47 48 50 51 52 53 54 55 57 59 61 63 65 66 66 66 66 64 63 61 59 58 56 55 54 53 51 49 46 42 37 32 26 21 16 12 10 10 9 8 7 6 7 9 12 16 21 28 36 43 50 54 57 59 63 66 68 67 65 64 64 65 66 67 67 66 64 62 87 86 86 85 85 84 83 82 81 80 79 77 74 71 69 69 70 71 69 57 40 25 17 34 52 69 78 79 77 77 82 88 87 77 58 41 32 26 19 15 10 5 2 31 60 80 82 88 89 78 52 26 26 38 49 45 43 43 41 39 37 37 38 34 29 26 29 31 34 37 40 41 42 44 47 47 46 45 45 44 44 43 43 43 40 35 30 29 28 27 26 25 24 24 24 23 23 23 24 24 24 23 23 23 23 23 22 21 21 22 24 26 26 26 27 28 30 32 34 35 36 37 38 39 38 38 36 37 37 36 35 34 34 33 31 29 28 27 26 28 29 31 32 31 31 30 29 30 31 30 29 27 25 23 21 20 20 21 23 24 24 24 25 27 28 29 29 27 24 21 17 17 19 23 27 30 32 35 37 37 38 37 34 33 32 32 31 29 27 24 21 20 19 19 19 19 19 18 18 18 19 20 21 22 23 24 25 26 28 30 32 33 36 38 40 42 43 44 45 47 49 52 54 56 58 59 61 63 65 66 68 70 72 73 75 76 76 77 79 81 83 85 87 88 89 89 89 89 89 90 92 92 92 90 87 84 82 80 77 74 70 68 66 65 64 64 65 66 65 64 62 59 54 48 42 37 32 29 27 27 27 27 27 26 24 22 19 18 16 15 14 14 15 16 18 19 21 22 22 22 20 18 16 13 10 7 5 3 3 3 3 4 4 4 4 4 4 4 4 4 5 6 9 12 16 20 25 29 33 37 41 45 49 52 55 56 56 55 55 54 53 53 52 51 51 50 50 49 48 47 46 46 47 48 50 51 52 54 55 55 56 58 59 61 63 65 67 68 68 68 68 67 65 63 62 60 58 57 56 55 53 52 50 46 43 38 32 25 20 16 14 16 15 13 10 8 7 8 10 13 17 22 28 35 42 47 51 54 57 61 63 63 63 62 62 62 63 63 63 62 61 59 86 86 86 86 86 85 84 83 82 81 80 78 76 73 71 71 73 73 71 59 41 26 20 43 63 78 82 78 76 78 86 89 88 84 75 68 60 49 36 27 19 11 5 37 63 80 83 84 81 73 56 46 50 57 56 45 43 43 42 40 39 39 40 36 29 24 24 26 30 34 36 38 39 41 44 45 45 45 45 45 45 45 44 45 43 38 31 29 28 26 26 25 24 24 24 24 24 24 24 24 23 23 22 21 21 20 20 19 19 21 24 24 25 27 30 32 36 39 40 39 38 37 39 40 40 39 39 39 39 38 36 35 35 34 33 31 29 28 27 28 30 31 33 33 32 31 31 31 32 33 30 27 24 22 20 19 19 21 24 26 26 26 26 28 29 30 31 31 30 27 24 19 17 17 19 21 22 23 24 24 24 24 23 22 22 23 24 24 23 23 22 24 25 26 27 27 27 26 26 27 27 28 28 29 30 32 33 34 36 37 38 40 42 44 46 46 47 47 46 47 48 50 53 54 56 57 58 60 61 63 65 67 70 72 74 76 77 78 80 82 84 86 88 89 89 89 88 89 91 92 93 93 91 89 85 83 81 80 78 75 73 70 67 66 65 65 66 66 65 63 60 56 50 44 38 34 30 28 27 27 27 28 28 26 24 21 19 17 15 14 14 14 15 17 19 20 21 22 23 22 20 18 16 13 10 7 4 3 3 3 3 4 4 4 4 4 4 4 4 4 5 7 9 12 16 20 25 29 34 37 41 45 49 52 56 57 57 56 55 54 54 53 52 51 50 49 49 48 48 48 48 48 49 51 52 53 54 55 56 56 57 58 59 61 64 66 68 69 70 70 69 68 67 65 64 61 59 58 56 55 54 53 51 49 46 42 36 30 25 21 21 23 22 20 15 11 9 9 10 12 14 18 22 27 34 39 44 47 51 54 58 59 60 60 60 60 59 59 59 58 57 56 86 85 86 86 86 86 85 85 84 82 81 79 77 74 72 73 75 75 72 57 38 23 23 51 69 78 81 77 78 81 87 88 89 88 85 84 76 65 53 44 31 19 9 24 40 54 59 67 70 68 64 61 63 64 60 54 52 51 47 42 39 37 37 35 30 25 21 20 24 29 34 34 35 37 38 41 43 44 45 45 45 45 45 46 45 41 34 30 28 26 25 25 24 24 25 25 24 24 24 24 24 23 22 20 19 19 18 17 18 19 22 22 24 28 34 40 44 46 46 45 44 42 40 40 40 39 39 38 38 36 35 34 33 32 31 30 29 28 28 30 31 33 33 31 30 30 31 30 31 31 28 26 25 22 20 18 18 20 24 27 28 29 29 30 31 32 33 34 33 32 30 25 20 17 15 16 17 18 18 18 18 18 19 19 20 21 22 23 24 25 27 29 31 33 34 34 35 36 37 39 40 42 43 44 46 48 49 50 50 51 51 52 53 55 56 57 57 56 54 53 53 54 56 58 60 61 63 64 64 65 66 68 70 73 76 77 79 80 81 83 85 87 88 89 89 88 88 89 92 94 94 93 90 87 84 82 81 80 79 77 75 72 69 67 66 65 65 65 63 61 57 52 46 41 35 32 29 27 26 27 28 28 28 26 24 21 18 16 15 14 14 14 16 17 19 21 22 23 23 22 20 18 16 12 9 7 4 3 3 3 4 4 4 4 4 4 4 4 4 5 6 7 10 13 17 21 25 30 34 38 42 46 50 53 56 58 57 56 55 55 55 54 54 52 51 49 48 48 48 48 49 50 52 53 54 54 54 54 55 56 57 58 59 61 63 66 68 70 70 70 69 69 68 66 65 62 60 58 57 56 55 53 52 51 48 45 40 34 29 26 26 28 28 25 20 15 12 10 10 11 13 15 18 22 26 32 37 41 43 47 51 53 55 56 56 56 56 55 55 54 53 52 85 85 86 87 87 87 86 86 85 84 82 80 78 76 74 75 77 76 70 52 33 22 30 59 76 82 82 77 79 84 89 89 89 90 89 90 83 74 64 59 44 27 14 9 14 24 35 48 56 60 62 65 66 67 65 61 60 57 51 42 36 33 33 36 34 29 22 18 20 25 32 31 31 32 34 36 39 41 43 44 44 44 44 45 45 44 40 34 29 26 25 25 25 25 25 25 24 24 24 24 24 23 22 21 20 19 18 17 17 17 19 20 22 27 33 43 49 52 56 50 50 48 37 38 38 39 38 37 36 35 35 33 32 30 29 29 29 29 30 31 32 32 31 29 28 29 29 29 29 28 27 26 25 22 20 18 17 18 21 26 30 33 33 34 34 34 35 35 35 34 33 29 25 21 18 18 19 21 21 22 21 21 22 22 22 22 23 25 27 29 31 32 33 35 36 39 41 43 45 47 49 51 52 54 56 58 59 60 60 60 60 60 60 61 62 62 63 62 62 62 63 65 66 68 70 72 72 72 72 72 72 73 75 76 78 79 80 82 83 85 86 88 89 89 88 88 87 89 92 94 94 93 90 87 83 82 81 81 80 79 77 74 71 68 66 65 65 64 62 59 55 49 44 39 34 30 28 27 27 28 29 29 28 26 24 21 18 16 14 14 14 15 16 18 20 22 23 23 23 22 20 18 15 12 9 6 4 3 3 3 4 4 4 4 4 4 4 4 4 5 7 9 11 15 18 22 26 31 35 39 43 48 51 55 57 58 58 57 55 54 55 55 55 54 52 51 49 48 48 48 49 51 52 54 55 54 53 52 53 54 56 58 59 61 63 66 68 70 70 70 69 68 67 66 64 62 60 59 57 56 55 53 52 51 49 47 42 37 32 31 32 34 34 31 26 20 16 13 12 12 12 14 15 17 21 25 31 34 36 39 43 46 48 50 50 51 51 52 52 51 50 49 86 85 86 87 87 87 87 87 86 85 83 81 78 76 75 77 78 75 66 46 30 26 43 67 79 84 82 78 82 87 90 91 91 91 91 91 86 77 67 68 55 36 20 10 8 14 27 37 48 57 62 68 70 68 62 58 58 58 52 44 37 34 35 37 36 32 27 22 19 20 26 28 30 32 35 35 36 37 39 41 42 42 42 43 43 44 43 37 31 27 25 25 25 25 25 25 24 24 23 23 23 23 23 22 21 20 20 19 18 17 18 19 21 23 27 32 38 43 49 39 37 36 29 32 35 37 38 37 37 36 35 33 32 31 30 30 30 31 31 31 31 30 30 29 29 29 29 29 28 27 26 26 25 23 20 18 18 18 20 25 30 34 36 36 35 35 34 35 35 35 35 32 29 26 24 24 24 26 27 28 29 29 29 30 30 30 31 33 34 35 35 35 37 39 42 45 48 50 52 53 55 56 57 58 60 61 62 63 63 63 63 62 62 63 63 63 64 64 65 68 71 74 76 78 79 80 81 81 80 79 78 79 79 80 80 81 82 83 85 87 88 89 90 89 88 87 88 90 92 94 94 92 90 87 84 82 81 81 80 80 78 76 72 69 66 65 64 63 61 58 53 48 43 38 34 30 28 27 28 30 31 31 29 26 23 20 17 15 14 14 14 15 17 19 21 22 23 24 23 22 20 18 15 11 8 6 4 3 3 3 4 4 4 4 4 4 4 4 5 6 8 10 13 16 20 24 28 32 36 40 45 50 54 57 59 59 58 57 56 55 54 55 56 55 54 53 52 51 50 49 49 50 51 53 54 53 52 51 50 52 55 57 59 61 63 66 68 70 71 71 71 69 68 66 64 62 60 59 58 56 55 53 51 51 49 47 43 38 35 35 38 42 42 38 32 25 20 16 13 12 12 13 13 14 17 20 25 28 30 32 34 38 41 43 43 45 46 48 49 49 49 48 86 86 86 87 88 88 87 87 87 86 84 81 79 77 76 78 78 73 60 42 34 39 58 75 84 86 84 80 84 89 91 92 92 91 91 92 89 84 74 75 65 49 28 16 13 18 32 42 52 60 65 71 73 70 60 59 60 60 53 46 41 38 35 37 36 33 29 26 22 19 21 27 32 35 38 37 36 36 38 39 40 40 41 42 43 42 41 36 31 27 25 25 25 25 25 25 24 23 22 22 22 23 23 22 21 20 20 19 19 18 19 19 21 22 23 24 26 28 29 26 27 28 28 30 34 37 38 38 37 35 34 33 32 31 31 31 31 31 31 30 30 30 30 30 31 31 31 30 29 28 26 25 25 23 22 19 18 19 20 24 28 33 37 36 35 34 34 35 35 35 35 35 33 31 30 30 31 32 33 35 36 37 37 39 39 40 40 41 40 40 40 42 45 47 49 51 53 55 56 58 59 59 60 60 60 61 62 62 63 63 62 62 62 63 64 65 65 66 67 68 70 73 77 80 83 85 85 86 85 85 84 83 82 82 82 82 84 85 87 89 90 90 90 88 88 88 89 90 91 93 94 92 90 88 85 83 82 81 81 81 79 76 72 69 66 65 63 62 60 57 53 49 43 39 34 31 29 29 30 32 33 32 30 26 23 19 17 15 14 14 14 15 17 19 21 23 24 24 23 22 20 17 14 11 8 5 4 3 3 4 4 4 4 4 4 4 4 5 5 7 9 11 14 18 22 26 30 34 38 42 47 51 55 58 59 58 57 56 55 55 54 54 55 54 54 54 54 54 54 53 51 50 49 49 50 49 49 49 49 50 53 55 58 60 62 64 67 69 71 72 72 71 70 68 66 64 62 60 58 57 55 53 51 50 49 47 44 40 39 42 47 50 49 44 36 29 22 18 14 13 12 12 13 13 15 17 20 23 24 25 27 30 33 35 37 39 41 43 46 47 48 48 85 85 85 87 88 88 88 88 87 86 85 82 79 77 77 79 78 70 56 44 45 55 72 81 86 87 85 80 83 89 91 91 91 91 90 91 91 89 86 86 82 68 39 22 19 26 41 50 56 60 61 66 68 64 57 59 60 56 46 46 45 43 38 38 37 33 27 26 24 23 22 26 31 35 38 39 38 38 39 39 38 38 39 40 42 42 40 35 30 26 24 24 24 23 23 23 23 22 21 21 22 22 22 21 21 20 20 20 20 20 21 21 22 22 23 24 24 23 22 25 28 31 32 33 35 37 38 37 35 34 32 31 31 31 31 31 31 31 32 32 33 33 33 33 33 33 32 31 30 28 27 26 25 24 23 20 18 18 19 23 27 31 34 33 32 32 33 35 35 36 36 36 35 35 35 35 36 36 37 39 40 41 42 42 42 43 44 44 44 45 46 48 50 51 53 53 54 56 57 59 59 60 60 60 60 60 61 61 61 61 60 60 62 64 67 69 71 72 72 71 71 72 73 76 80 84 87 88 88 87 87 86 85 84 83 84 86 88 89 91 91 91 90 89 89 89 89 90 91 93 93 92 91 89 87 85 84 83 82 81 78 75 71 68 66 64 63 62 61 58 54 49 44 39 34 31 31 32 34 35 34 33 29 26 22 19 16 15 14 14 14 16 18 20 22 23 24 24 23 22 19 17 14 10 7 5 4 3 3 4 4 4 4 4 4 4 4 5 6 8 10 13 16 20 24 28 32 36 40 44 49 54 57 59 59 58 57 56 55 55 54 54 54 53 52 52 52 53 54 54 52 49 47 46 44 44 44 46 48 50 52 54 56 57 58 60 63 67 70 72 73 73 72 71 69 67 64 60 58 56 54 52 50 49 48 47 44 43 46 51 57 57 54 47 38 31 24 19 14 13 13 13 14 14 15 16 17 19 20 20 21 24 27 29 31 33 36 39 42 45 46 47 84 84 84 87 88 89 89 88 88 87 85 82 79 78 78 80 76 68 55 53 60 71 81 85 87 87 85 80 82 86 90 91 91 91 89 90 89 88 88 90 90 82 59 38 30 31 42 50 54 56 57 62 60 56 50 54 54 51 45 49 50 48 42 37 33 28 24 24 26 28 28 26 30 35 38 38 39 39 41 40 40 40 39 39 40 41 41 37 32 27 25 24 23 22 22 21 21 20 20 20 21 21 21 20 20 20 21 21 21 21 21 21 21 21 23 25 25 25 25 28 31 33 34 34 35 36 36 35 33 32 30 30 31 32 33 34 35 35 35 36 35 35 34 34 34 33 32 31 29 28 26 25 24 24 22 20 18 16 16 18 22 26 30 30 29 29 31 33 35 36 37 37 37 37 38 38 39 39 40 41 42 43 43 44 44 45 45 46 46 47 48 50 51 52 53 53 54 55 56 58 58 58 59 60 60 60 60 60 60 60 60 60 62 64 68 72 75 76 76 76 76 75 73 73 75 78 82 86 88 88 88 88 87 85 85 86 88 90 92 92 92 91 90 90 90 90 90 91 91 92 93 92 91 90 88 86 85 84 83 81 77 73 69 67 66 65 64 63 62 59 55 49 44 39 34 33 33 34 36 36 35 32 28 24 21 18 16 15 14 14 14 16 18 21 23 24 24 24 23 21 19 16 13 10 7 5 4 4 4 4 4 4 4 4 4 4 4 5 7 9 11 14 17 22 26 31 35 38 43 47 52 56 58 59 59 57 57 56 56 56 55 54 54 52 51 50 49 50 51 51 49 47 45 43 42 41 41 42 44 48 51 54 55 55 55 56 59 62 66 69 71 71 71 71 69 66 63 60 57 55 52 50 48 48 47 47 46 48 54 59 64 61 55 47 39 31 25 19 15 14 15 16 17 17 16 16 15 16 16 17 18 20 22 25 26 28 30 33 37 40 43 45 83 83 83 86 88 89 89 89 88 87 85 83 80 78 79 80 75 66 59 67 77 85 87 88 88 88 87 86 86 88 91 92 91 90 88 89 88 85 82 86 87 82 67 45 31 24 26 40 48 54 58 63 61 56 51 54 53 51 49 51 50 47 43 40 35 30 28 30 32 35 40 34 33 34 35 36 37 38 41 43 43 43 41 40 40 41 42 39 35 30 26 24 23 22 21 21 20 19 19 19 20 20 20 20 20 21 23 23 22 21 20 20 21 21 23 25 26 27 30 31 32 32 32 32 33 34 36 36 35 34 32 33 34 35 37 37 37 37 37 36 35 35 33 33 33 33 32 30 28 27 26 24 23 21 20 19 17 16 14 14 16 20 25 27 28 28 29 31 34 36 37 38 39 39 40 40 40 41 42 43 43 44 44 45 46 47 47 47 48 48 49 50 51 51 52 52 53 54 56 57 58 58 60 60 60 59 59 59 60 61 62 63 64 65 67 69 71 72 73 74 76 76 76 74 74 75 77 81 86 89 89 88 87 87 86 88 90 92 93 93 93 92 92 92 92 92 92 92 92 92 92 92 91 90 88 87 85 84 83 80 76 71 68 66 66 65 65 64 62 59 54 49 43 38 35 34 35 36 36 35 33 30 26 23 20 18 16 15 14 14 15 17 19 21 23 24 24 24 23 21 18 16 13 10 7 5 4 4 4 4 4 4 4 4 4 4 5 6 7 9 12 15 18 23 28 33 37 41 45 50 54 57 59 59 58 57 57 58 58 58 57 56 54 52 51 50 49 49 49 48 46 44 43 43 42 40 40 40 42 46 50 52 53 52 51 52 54 58 62 65 67 67 67 66 64 62 59 56 54 53 51 49 47 47 48 49 51 56 61 65 66 61 54 45 37 30 24 18 15 16 17 19 19 19 18 16 15 15 16 17 18 19 20 21 22 23 25 28 31 35 39 42 82 83 83 85 88 89 89 89 89 88 86 83 80 79 80 80 73 66 66 78 86 89 89 88 88 88 88 88 89 90 91 90 90 89 88 89 90 89 86 86 81 68 47 27 15 11 14 31 44 54 59 63 63 59 55 56 54 51 49 46 41 36 36 39 41 40 38 35 32 34 41 38 33 29 29 31 34 37 41 44 46 45 43 43 43 42 41 39 36 33 28 25 24 23 22 22 21 20 19 19 19 19 20 20 22 24 26 25 24 22 21 21 22 22 23 26 29 31 33 32 31 30 29 29 30 31 33 35 37 37 35 34 34 35 36 37 37 37 36 35 34 33 32 31 30 30 29 28 27 26 26 24 22 21 19 18 18 16 15 14 13 15 20 25 27 28 28 30 32 34 36 38 39 40 41 42 43 44 44 45 46 46 46 46 47 47 47 47 48 48 49 50 51 51 52 53 54 55 57 58 58 59 60 60 59 59 60 61 63 64 66 67 67 68 68 68 68 68 69 70 71 73 75 75 74 74 74 78 83 88 90 89 87 87 88 90 92 93 94 94 94 93 93 93 93 93 93 92 92 92 92 92 91 90 88 87 85 84 82 77 73 69 67 67 67 67 66 64 62 58 53 48 43 39 36 36 36 36 35 34 31 28 24 21 19 17 16 15 15 15 15 17 20 22 24 24 24 23 22 20 18 15 12 10 7 5 4 4 4 4 5 5 4 4 4 4 5 6 8 10 12 15 19 24 29 34 40 44 48 52 56 58 59 58 58 57 58 59 60 60 59 57 54 52 51 50 49 48 48 47 45 44 43 43 42 40 39 39 41 46 50 51 50 48 47 47 48 53 57 61 63 62 61 59 57 56 54 52 51 50 48 47 46 47 49 52 56 62 67 68 66 59 51 43 34 27 21 17 16 18 20 21 21 20 18 17 16 16 18 20 21 20 20 20 20 21 22 23 26 29 32 36 81 82 82 85 88 90 89 90 89 88 86 84 81 80 81 79 72 66 70 85 90 90 89 88 87 87 89 88 89 89 90 90 90 89 86 87 90 92 90 90 83 68 45 26 15 13 19 34 47 57 60 64 65 63 59 57 54 51 48 40 31 26 31 37 43 46 45 35 26 24 32 34 29 24 24 27 31 35 39 43 46 46 44 44 44 43 41 38 36 33 29 27 25 23 23 22 22 21 21 20 20 19 20 22 25 27 28 28 26 25 24 24 25 26 27 30 33 33 32 30 29 28 28 28 28 29 30 33 35 36 35 34 33 34 35 36 36 36 34 33 32 31 30 30 30 30 30 29 28 27 26 24 22 20 18 18 18 18 17 15 15 16 18 23 26 27 28 29 30 32 34 37 40 42 43 45 46 47 47 47 47 47 47 46 46 46 46 46 47 48 49 50 51 52 54 55 56 58 59 60 60 60 61 60 60 60 61 63 66 68 70 71 71 71 70 69 69 69 69 69 70 71 73 73 74 73 73 76 83 88 91 89 88 88 88 91 93 94 94 94 94 94 94 93 93 93 93 93 93 92 93 92 91 90 88 87 85 83 80 75 71 68 67 68 68 68 67 64 61 57 53 48 44 41 39 37 36 35 34 31 28 26 23 20 18 17 16 16 15 16 17 18 20 23 24 25 24 23 22 20 17 15 12 9 7 5 4 4 5 5 5 5 5 4 4 5 5 6 8 10 12 15 18 24 30 36 42 47 51 55 58 59 59 58 58 58 58 60 61 61 59 57 54 51 50 49 48 47 47 47 47 47 46 45 44 42 40 39 40 46 50 52 50 46 44 43 43 48 52 56 59 58 55 53 51 50 49 49 48 47 46 45 46 49 53 57 63 68 71 70 66 58 49 39 30 23 18 15 15 18 20 20 20 20 19 19 18 20 23 25 25 24 23 22 21 21 20 21 22 24 26 29 81 81 82 85 88 90 90 90 90 89 87 84 82 81 81 79 72 66 71 85 90 89 89 87 86 86 88 88 89 89 89 90 91 90 87 85 89 93 92 92 88 79 61 44 35 34 41 49 58 64 66 67 68 66 59 55 51 48 44 39 36 37 41 42 43 44 44 35 26 23 27 27 23 20 23 27 30 33 36 40 43 43 40 41 42 42 41 37 33 30 27 26 24 23 22 22 21 21 21 20 20 19 20 24 27 29 30 30 29 28 27 28 29 30 31 33 33 32 31 29 28 28 28 27 27 28 28 30 31 33 33 33 32 32 32 34 35 35 34 32 31 30 30 30 30 30 30 30 29 29 28 26 22 19 18 18 18 17 17 16 16 17 19 22 25 26 27 28 30 31 33 36 39 42 44 46 47 47 47 46 46 45 45 45 45 45 45 45 46 47 49 51 52 54 55 56 58 60 62 62 62 62 61 60 60 61 62 65 68 71 72 73 72 72 71 70 69 68 68 69 70 72 73 73 74 74 73 77 84 90 91 89 88 88 90 92 93 94 94 94 94 94 94 94 93 93 93 93 93 93 93 92 90 89 87 86 85 82 77 72 68 67 68 69 69 69 68 64 60 57 53 49 46 43 41 39 37 35 32 30 27 24 21 19 18 17 17 16 16 17 18 20 22 24 25 25 24 23 21 19 17 14 11 9 7 5 4 5 5 5 5 5 5 5 5 5 6 7 8 10 13 16 20 25 31 38 45 50 54 57 58 58 58 58 58 58 59 60 61 60 59 56 53 51 50 49 49 48 49 50 51 52 51 50 49 47 45 43 41 44 49 52 51 47 44 42 42 45 48 52 54 53 51 49 47 47 46 46 46 45 45 46 49 53 58 64 70 74 74 72 66 57 47 36 26 19 14 12 13 16 17 18 19 20 21 22 23 26 28 30 30 28 26 25 24 23 21 21 20 21 24 26 80 80 81 85 88 90 90 90 90 89 88 85 83 82 82 79 71 65 70 85 90 89 88 87 86 86 88 88 89 89 86 88 88 87 84 84 88 92 93 93 92 86 74 64 57 55 58 63 68 72 72 72 70 65 56 52 50 47 44 40 41 44 45 41 38 37 38 35 31 27 27 21 14 13 20 28 33 35 37 38 39 38 36 37 40 41 42 39 34 29 25 24 23 22 22 22 21 21 20 20 20 20 21 25 29 31 32 32 32 31 30 31 31 32 32 32 31 30 29 29 28 28 28 28 28 28 28 28 29 30 31 31 31 30 29 31 32 33 33 32 30 30 29 30 30 31 31 31 30 29 28 28 26 22 19 18 18 17 16 16 17 19 21 23 25 26 28 29 30 31 32 35 38 41 43 44 45 44 44 43 43 43 42 42 43 43 43 44 45 46 49 51 52 53 55 57 59 62 64 64 64 63 62 61 61 62 63 66 69 71 72 72 72 71 70 69 68 67 67 69 71 72 73 74 74 74 74 80 86 91 90 89 88 89 91 92 93 93 93 93 94 94 94 94 93 93 93 93 93 93 93 91 90 88 87 86 83 79 74 69 68 67 68 69 70 69 68 64 60 57 53 51 48 45 43 40 37 34 31 29 26 23 21 19 18 18 17 17 17 18 19 21 23 25 27 26 25 23 21 19 16 14 11 9 7 5 5 5 5 5 5 5 5 5 5 6 7 8 10 12 14 18 22 28 34 41 47 52 56 58 58 58 58 58 58 58 59 60 61 60 58 55 53 51 50 49 48 50 51 54 56 57 57 56 55 54 52 51 48 48 50 53 52 48 45 43 42 44 47 49 50 49 47 46 45 45 45 45 45 46 48 51 56 61 66 72 76 76 75 71 65 55 43 32 22 15 11 10 11 14 16 17 19 22 24 27 30 33 35 36 35 33 31 30 28 26 25 23 22 22 24 28 81 80 81 85 89 91 91 91 90 89 88 85 84 82 82 79 70 64 68 83 89 89 88 87 86 86 88 88 89 89 88 86 85 84 82 84 89 93 93 93 93 91 83 77 71 66 63 66 72 77 80 78 72 63 54 52 52 50 46 39 35 35 39 34 33 33 33 31 29 25 20 12 7 7 15 25 32 37 40 40 38 36 35 36 39 41 41 39 36 32 27 24 23 22 22 22 22 22 20 20 20 20 22 26 29 32 33 33 33 32 32 32 32 31 31 31 30 30 30 29 29 29 29 29 29 28 28 28 28 28 29 29 29 29 28 28 29 31 32 32 31 29 28 28 29 30 31 31 31 30 29 28 28 27 25 23 22 20 18 17 18 20 21 24 26 27 29 30 31 32 32 34 36 39 41 41 41 41 41 41 40 40 39 39 39 39 40 40 42 43 46 48 51 53 56 59 62 64 66 68 68 67 65 65 65 66 68 69 71 72 72 72 72 71 71 71 70 70 69 70 72 73 73 74 74 74 76 83 88 91 89 88 88 90 92 92 92 93 93 93 94 93 93 93 93 93 93 93 93 93 92 91 89 87 86 84 81 77 71 68 68 68 70 71 71 70 68 65 61 58 55 53 50 47 44 41 37 34 31 28 25 23 20 19 18 18 18 18 19 20 21 23 25 27 28 27 26 23 21 18 16 13 11 9 7 6 5 5 5 6 6 5 5 5 5 6 7 9 10 13 16 19 24 31 38 45 51 54 57 58 58 57 57 58 59 59 59 60 60 59 56 54 52 51 49 48 47 48 51 55 59 61 62 62 61 61 61 60 58 55 55 55 54 51 48 46 45 46 49 51 50 47 46 45 46 46 45 45 47 52 57 62 67 72 76 78 78 76 74 69 61 50 39 27 17 12 10 9 9 11 14 17 19 23 27 32 35 39 42 43 41 39 37 35 33 31 29 27 26 26 27 29 81 81 82 86 90 91 91 91 90 89 88 86 84 82 82 79 70 63 65 82 88 89 88 88 88 88 88 89 89 89 88 85 85 84 80 86 90 93 94 94 93 91 86 82 75 68 65 69 76 81 83 74 64 56 50 49 49 47 41 37 37 40 46 42 38 34 31 27 25 23 18 11 7 7 13 20 27 33 40 40 37 34 32 35 38 40 41 39 37 35 32 28 25 23 22 23 24 24 22 20 20 20 22 26 29 32 33 33 33 32 32 32 31 30 30 30 31 31 30 30 30 30 30 30 29 29 30 30 29 28 27 26 26 26 27 26 26 28 30 31 31 30 28 28 28 28 29 31 32 32 31 29 27 26 26 26 26 24 21 20 20 21 23 24 26 28 29 30 31 32 33 34 35 37 38 39 39 39 39 38 38 37 36 36 37 37 38 38 39 41 42 44 47 49 52 55 58 61 64 68 70 71 72 71 72 72 74 74 74 74 74 73 73 72 71 70 69 69 70 71 72 72 73 74 74 76 79 85 89 89 88 88 89 90 91 92 93 93 94 93 92 92 92 92 92 92 92 92 92 92 91 90 88 87 85 83 79 74 69 68 68 70 71 72 72 71 69 65 62 59 57 55 52 49 46 42 38 34 31 27 25 22 20 19 19 19 19 20 21 22 23 26 27 29 29 28 26 24 21 18 16 13 11 9 7 6 5 5 5 6 6 5 5 5 5 6 7 9 11 13 16 20 25 32 40 47 53 56 58 58 57 56 56 57 59 59 59 59 59 58 56 54 52 51 49 48 47 48 51 57 61 62 62 62 64 68 69 69 67 64 61 60 59 56 54 52 52 55 60 62 57 54 54 55 56 53 53 54 59 65 71 76 79 80 79 78 76 73 69 63 55 44 33 23 14 11 10 10 10 13 15 18 22 27 33 37 41 45 48 49 48 46 43 41 39 36 34 34 34 34 34 33 81 82 83 87 90 91 91 91 90 89 88 86 84 82 81 78 69 61 62 78 87 90 88 88 88 88 88 89 89 88 86 84 82 81 79 86 90 92 93 93 93 91 88 84 80 76 74 75 75 74 70 56 51 51 49 46 44 41 36 37 40 44 50 48 42 35 32 28 26 25 24 19 15 13 15 18 22 27 33 32 30 29 30 34 38 40 41 40 39 38 37 34 30 27 24 24 24 25 26 24 22 21 22 25 28 31 32 32 32 32 31 31 30 29 29 30 30 30 29 30 30 30 30 30 30 30 31 34 31 27 25 24 24 25 25 25 25 25 27 29 29 29 29 29 29 29 29 30 30 31 31 29 26 24 23 24 25 25 25 24 23 24 25 26 27 28 30 31 32 33 34 34 35 36 37 38 38 38 38 37 36 35 35 35 36 36 36 36 37 38 39 41 43 45 47 49 52 55 59 63 67 70 72 72 72 71 72 72 72 72 72 72 70 69 68 67 68 68 69 71 72 73 74 74 75 78 82 87 88 88 87 88 89 90 91 92 93 93 92 89 88 89 91 91 92 92 92 92 92 91 90 88 87 85 84 80 76 71 68 69 70 72 73 73 73 72 70 67 64 61 59 57 54 51 47 43 38 34 30 27 24 22 20 19 19 20 21 22 23 24 26 28 29 30 30 29 27 24 21 18 15 13 10 8 7 6 5 6 6 6 6 6 5 5 5 6 8 9 11 13 16 20 25 33 41 48 54 57 58 57 56 55 55 57 59 58 58 58 59 57 56 55 52 51 50 49 48 49 53 58 62 61 60 59 62 70 73 74 73 71 69 67 67 66 65 64 64 69 75 77 74 73 73 73 72 70 71 73 76 79 82 82 81 79 77 74 71 67 61 55 48 38 28 19 13 12 12 15 17 21 25 28 32 38 42 46 49 53 56 56 55 53 52 50 48 46 46 46 47 47 45 42 79 82 84 88 90 92 91 91 90 89 88 86 84 82 81 77 67 59 58 75 85 89 89 88 87 87 88 87 87 86 85 83 79 76 73 84 90 93 94 94 94 93 90 87 84 82 80 74 67 59 52 51 53 54 52 48 45 43 41 42 43 43 43 41 36 32 33 29 26 23 25 26 24 21 19 18 17 17 20 22 24 26 30 35 39 42 42 41 41 40 39 37 35 31 27 25 24 25 26 26 25 23 23 25 27 30 31 31 31 31 30 30 29 28 28 29 29 29 28 27 28 28 29 29 31 34 38 36 30 24 25 24 24 25 25 26 26 26 26 27 28 29 30 30 31 31 31 28 27 27 28 27 26 23 21 21 22 25 26 26 26 26 26 27 28 29 31 32 33 34 35 35 36 36 37 37 37 37 36 35 35 35 35 35 35 35 35 35 35 36 37 38 39 41 42 44 46 48 50 52 54 56 57 57 57 58 59 60 60 61 61 61 61 62 63 65 66 67 69 71 72 74 75 76 78 81 85 87 87 87 87 88 89 90 91 92 91 89 85 84 85 88 91 92 92 93 93 92 92 90 89 87 86 85 82 78 74 70 68 70 73 75 76 75 75 74 72 68 65 63 61 59 56 52 48 43 38 34 30 26 24 22 20 20 20 21 22 23 25 26 28 29 30 31 31 29 27 25 22 18 15 12 10 8 7 6 6 6 6 6 6 6 5 5 5 6 7 9 10 12 15 19 25 33 41 48 54 56 57 57 55 54 55 56 57 57 58 58 58 57 56 55 52 51 51 49 48 50 55 59 62 60 57 55 57 68 75 78 76 75 74 73 73 72 73 73 74 78 81 82 83 82 82 82 82 82 82 83 84 83 81 78 76 73 70 67 63 58 52 47 41 31 23 16 12 13 16 21 26 33 39 44 47 51 54 57 61 64 66 65 63 62 61 61 60 61 63 62 60 57 53 50 78 81 84 87 90 92 91 91 91 90 88 86 85 83 81 76 66 56 54 72 84 89 88 87 88 87 86 84 83 83 81 76 72 69 68 81 89 93 94 94 95 94 92 89 85 83 80 73 63 56 53 58 59 59 55 52 49 46 44 44 41 36 30 29 28 28 30 26 22 20 23 27 26 24 22 22 17 12 12 17 22 27 33 38 42 43 43 42 41 40 40 39 37 34 30 27 25 24 25 26 26 26 25 26 27 28 30 30 30 30 29 29 29 28 28 29 28 27 26 25 26 26 28 31 35 38 36 31 27 25 25 25 25 26 27 28 29 30 31 31 31 31 31 31 32 33 35 35 33 31 28 26 25 24 22 22 23 26 27 28 28 28 28 29 30 30 31 33 34 34 35 35 36 36 36 36 36 35 35 35 35 35 35 36 36 36 36 36 36 37 37 38 38 38 38 39 39 40 40 41 42 43 43 43 43 44 44 44 44 44 44 44 47 51 58 61 64 67 69 71 73 75 76 78 81 84 86 86 86 86 87 88 89 90 91 89 87 84 81 84 87 90 92 93 93 93 93 92 91 89 88 87 85 83 80 76 72 70 70 73 76 77 78 77 76 75 74 70 67 64 62 60 57 53 49 43 38 33 29 26 23 22 20 21 21 23 24 25 26 28 29 30 31 31 31 30 28 25 22 18 15 12 9 8 7 6 6 6 6 6 6 6 5 5 5 6 7 9 10 12 15 19 25 32 40 47 53 56 57 56 54 54 54 55 56 57 57 58 58 58 56 55 54 53 51 50 49 53 59 62 63 60 57 53 52 61 71 78 79 78 77 76 77 77 77 78 79 81 82 82 84 83 82 82 82 82 82 82 82 80 77 73 68 64 60 56 52 48 44 40 35 26 19 15 16 19 25 30 35 42 48 54 59 63 65 68 71 74 76 75 72 70 69 70 70 74 76 76 71 64 58 53 78 81 84 86 89 91 92 91 91 90 88 87 85 83 81 76 64 54 50 68 82 89 88 89 88 87 85 82 80 78 75 71 68 67 68 81 90 94 94 94 94 94 93 90 86 82 77 69 62 58 57 60 60 58 55 53 50 46 43 40 35 30 23 23 25 27 28 25 22 20 22 24 25 26 27 26 20 14 12 18 25 31 37 42 44 45 44 43 42 42 41 40 38 36 32 28 26 25 25 27 28 28 27 27 28 28 28 28 28 28 28 29 29 29 29 29 28 26 25 25 25 27 34 39 41 38 31 28 26 26 26 27 28 29 31 32 33 33 33 32 32 31 30 30 30 31 33 36 36 34 30 26 24 23 23 24 26 27 29 29 29 29 29 30 31 32 32 33 34 35 35 35 35 35 35 34 34 34 34 34 35 36 37 37 37 37 37 37 36 36 36 35 35 35 34 35 35 36 37 38 39 39 39 39 39 38 36 35 33 32 32 34 39 46 56 60 64 68 70 72 74 76 79 81 84 85 85 85 85 86 87 88 89 89 88 85 83 81 83 87 90 92 92 93 93 93 92 91 90 89 87 86 84 81 78 74 71 70 72 76 78 79 78 77 76 75 75 72 68 65 63 60 57 53 49 43 37 32 28 25 23 22 21 21 23 24 25 27 28 29 30 31 32 32 31 30 28 25 22 18 15 11 9 8 7 6 6 6 7 7 6 6 6 5 6 6 7 9 10 12 16 20 25 31 38 45 52 55 56 55 54 54 54 55 56 57 57 57 57 56 56 55 55 54 52 50 50 56 62 67 68 63 58 53 51 55 63 72 78 79 80 80 80 80 80 80 81 82 82 83 83 83 82 82 82 81 81 81 81 79 77 74 68 61 56 51 47 42 39 36 31 23 20 22 27 33 39 44 48 50 54 59 65 69 72 75 78 81 82 81 80 76 75 74 75 79 82 81 77 68 60 55 81 83 85 86 88 91 91 91 91 90 89 88 86 84 81 75 63 52 47 64 79 89 89 89 89 87 85 82 78 74 71 68 66 66 68 81 90 94 93 94 94 94 92 90 87 82 75 69 65 62 61 60 60 59 58 55 51 46 42 38 34 30 26 26 27 29 31 29 27 24 21 20 21 22 24 19 14 13 17 25 32 37 42 45 46 45 44 43 42 41 41 40 38 36 34 30 27 25 25 27 29 31 30 29 29 29 29 28 28 28 28 28 29 29 29 28 27 26 26 27 27 31 40 42 39 33 27 27 27 27 28 29 31 32 33 33 33 32 30 28 27 26 25 25 26 28 31 34 35 35 32 28 25 24 25 26 28 29 30 30 30 30 30 31 31 32 33 34 34 34 34 34 34 33 33 33 33 34 35 36 37 38 38 37 35 33 32 31 30 29 29 30 30 31 31 32 33 34 35 36 37 37 37 37 36 35 33 30 29 28 28 31 38 48 59 62 66 69 71 73 76 79 82 83 84 84 84 84 85 86 87 88 88 87 85 83 82 84 87 90 92 93 93 93 93 92 92 91 89 88 86 85 82 79 75 72 71 71 74 79 80 80 79 77 76 75 75 73 69 66 63 60 57 53 48 42 36 32 27 25 23 22 21 22 23 25 27 28 30 31 32 32 33 33 32 31 28 26 22 18 14 11 9 7 7 6 6 7 7 7 7 6 6 6 6 7 8 9 10 12 15 19 25 31 38 45 51 55 56 55 53 53 54 55 56 57 57 56 56 55 55 55 55 55 53 52 53 60 66 70 70 64 59 54 52 54 58 65 74 79 81 81 81 82 82 82 82 82 83 83 83 83 82 82 82 82 81 80 79 77 77 77 75 72 66 60 51 44 41 38 32 29 34 43 52 57 60 61 60 62 63 65 68 72 75 78 81 83 83 84 83 80 77 75 74 77 78 78 73 66 60 54 86 86 85 86 87 90 91 91 91 90 89 88 86 84 81 75 63 51 43 59 75 87 89 89 89 87 85 81 76 72 68 65 64 66 70 83 91 94 94 94 94 94 92 90 86 82 76 73 71 69 66 64 63 62 61 58 53 49 45 42 38 35 32 32 31 32 33 33 30 26 20 16 14 13 12 10 11 15 22 30 37 42 45 46 46 45 44 43 41 40 39 39 38 36 35 32 29 26 25 27 30 32 32 31 31 30 30 29 29 29 28 28 29 29 30 28 27 27 28 28 29 33 44 36 30 27 27 27 28 29 30 31 32 32 33 32 31 30 28 26 26 25 24 24 25 26 29 31 33 33 32 30 27 26 26 28 29 30 31 31 31 31 31 31 32 33 33 34 34 34 34 34 34 34 34 35 36 37 39 39 37 35 32 29 26 25 24 24 25 26 27 28 29 30 30 31 31 32 32 32 33 33 33 33 32 30 27 25 24 24 26 32 42 53 63 65 68 71 73 75 78 80 82 83 83 83 83 85 85 86 87 87 86 85 83 83 85 88 91 92 93 93 93 93 92 92 91 90 89 87 85 83 81 77 74 72 72 74 77 80 82 82 81 79 77 76 75 74 70 66 63 60 57 53 48 41 36 31 27 24 23 22 22 23 25 26 28 30 32 33 33 34 34 34 33 32 29 26 22 17 14 11 8 7 7 7 7 7 7 7 7 7 7 7 7 7 8 9 10 12 15 19 24 30 38 45 52 55 56 55 53 53 54 55 56 56 56 55 54 54 55 56 57 56 55 55 57 63 68 70 69 64 60 58 56 55 57 62 70 77 81 82 82 82 82 82 82 82 83 83 83 83 83 82 82 81 80 79 78 78 79 80 81 82 78 71 59 51 47 44 39 43 55 68 77 79 79 77 74 71 69 68 66 68 72 76 80 81 82 83 83 81 79 76 74 74 73 70 66 61 56 52 90 88 86 85 87 89 91 91 91 90 89 88 87 85 82 76 64 52 42 53 68 82 87 88 89 87 84 79 74 69 64 63 63 65 71 84 91 94 94 94 94 94 93 90 86 82 79 78 78 76 73 69 66 64 62 59 56 53 50 47 43 40 38 37 35 34 33 33 30 25 18 14 12 10 8 8 12 17 25 33 40 44 46 44 43 43 43 42 41 39 38 37 36 35 34 32 29 27 25 27 31 33 34 33 32 31 30 30 30 30 29 29 28 28 29 28 27 27 28 27 28 29 30 27 26 27 28 29 30 31 32 33 33 32 32 31 31 30 30 29 28 28 27 26 26 27 29 31 31 31 32 31 30 28 28 29 30 31 32 32 32 32 32 32 33 34 34 34 34 35 35 35 36 37 38 39 39 39 37 33 30 27 24 23 22 22 22 23 25 26 27 28 28 28 27 27 27 27 27 27 28 28 28 27 26 24 22 21 21 24 29 38 49 60 68 68 70 72 76 78 79 80 81 81 82 83 84 85 86 86 86 86 85 84 84 86 89 91 93 93 93 93 93 92 92 91 90 89 88 86 84 81 79 76 74 73 74 76 79 81 82 83 83 81 78 76 76 75 71 67 62 60 56 52 46 40 34 30 26 24 23 23 23 25 26 28 30 33 34 35 35 35 35 35 35 33 30 26 21 17 13 10 8 7 7 7 7 7 7 7 7 7 7 7 7 7 8 9 10 11 13 17 23 30 39 47 54 56 56 55 54 53 54 54 55 56 55 55 54 54 55 57 58 59 59 60 62 66 68 70 68 65 62 61 61 59 58 60 67 74 80 82 82 82 82 82 82 82 82 82 83 82 81 80 80 79 78 78 78 79 81 82 84 85 84 79 67 57 55 54 50 56 68 80 85 83 81 80 79 78 72 66 61 65 70 74 76 78 78 79 79 79 78 76 74 74 71 67 62 59 55 52 90 89 87 86 86 88 91 91 91 90 90 88 87 85 82 77 67 54 43 48 61 75 83 86 88 87 84 77 70 64 60 61 62 64 69 82 89 93 94 94 94 94 94 92 89 85 84 82 81 80 76 72 69 67 64 62 60 57 53 49 45 43 42 40 37 34 32 32 29 24 18 14 11 9 8 10 15 21 30 38 44 46 45 43 42 41 40 40 39 38 37 36 36 35 34 31 30 28 27 29 32 34 35 34 33 32 31 31 30 30 29 28 28 28 29 28 28 27 27 26 26 27 28 29 30 35 43 35 32 33 34 33 33 33 32 32 32 32 32 31 30 30 29 29 29 30 31 31 31 31 31 31 31 30 29 29 30 31 33 33 34 34 34 34 35 35 36 36 36 36 37 38 38 39 39 38 36 33 30 27 25 24 22 21 20 19 18 20 22 24 26 26 26 26 24 24 23 23 23 24 24 24 23 22 21 20 19 19 22 27 36 46 56 66 72 72 72 73 77 78 79 79 80 81 82 84 85 86 86 86 86 86 86 86 88 90 92 93 94 93 93 93 92 92 91 91 90 88 86 84 82 80 78 76 74 74 75 76 79 81 82 83 84 82 80 78 75 74 71 66 61 59 55 50 44 38 33 28 25 24 23 24 24 26 27 30 32 35 36 37 37 38 37 37 36 33 30 26 21 17 13 10 8 7 7 7 8 8 8 8 8 8 8 8 8 8 8 9 10 10 12 16 21 29 39 48 54 57 57 56 55 54 54 54 55 55 55 55 54 55 56 57 59 61 62 64 66 68 68 68 67 65 63 63 62 61 59 59 63 71 78 82 82 82 83 83 83 82 82 82 81 79 77 76 75 75 75 75 76 78 80 82 84 84 85 83 75 64 61 61 62 67 76 83 85 84 83 81 78 79 75 70 66 72 76 79 79 78 76 74 72 73 74 74 73 73 70 66 61 59 57 55 90 90 89 86 86 88 91 91 91 91 90 89 87 85 83 79 70 59 47 47 55 67 77 83 86 87 85 77 68 60 57 60 61 63 67 80 88 92 94 94 94 94 94 94 92 88 84 81 80 79 78 75 73 70 68 66 64 60 55 50 47 45 43 41 38 36 36 35 30 24 17 14 12 10 10 12 18 26 36 43 47 48 46 44 42 40 38 38 37 37 36 35 35 35 34 31 30 30 31 33 34 35 35 34 33 31 30 30 29 29 29 28 28 27 27 27 27 27 27 26 26 28 34 36 39 47 60 39 32 33 34 34 34 33 33 33 33 33 32 31 31 31 30 30 31 32 32 31 31 30 30 31 31 31 30 30 31 32 33 34 35 35 36 36 37 37 37 38 38 38 39 39 38 37 35 33 31 29 28 26 25 23 20 18 18 17 18 19 21 22 24 24 23 23 22 22 21 21 21 21 21 21 21 20 20 19 18 19 24 31 42 52 61 68 73 75 75 76 77 78 79 79 80 82 84 85 87 86 86 86 87 87 88 90 92 93 94 94 93 93 93 92 92 92 91 90 89 87 85 83 80 79 77 76 76 75 76 76 79 81 83 84 84 83 81 78 75 73 69 65 60 57 52 47 41 35 30 27 24 24 24 24 25 27 29 31 35 37 39 40 40 40 39 38 36 33 29 25 21 16 13 10 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 10 11 14 18 27 37 46 54 56 58 57 56 55 55 55 55 55 55 55 55 55 56 57 59 61 64 66 67 68 68 67 66 64 62 62 62 62 60 60 62 69 76 81 83 83 83 83 82 82 81 80 78 76 73 70 68 68 69 69 70 71 73 76 79 81 83 84 82 71 66 65 71 75 79 83 84 84 83 81 80 80 79 78 76 80 81 82 83 83 81 77 69 68 67 68 69 68 66 63 60 58 57 55 90 90 90 87 87 88 91 91 91 90 90 89 87 85 83 80 74 66 55 51 54 62 72 79 84 87 86 79 68 60 55 58 60 62 65 77 86 93 93 94 94 95 95 95 92 88 83 80 79 79 80 78 76 74 72 69 66 62 57 51 48 45 44 42 42 42 42 38 32 26 19 16 14 13 12 14 20 29 40 46 49 49 48 45 43 40 38 37 36 36 35 35 34 34 33 30 29 30 32 34 35 35 34 33 32 30 29 28 28 28 28 28 28 27 26 25 26 27 28 27 27 30 39 45 47 47 46 35 32 34 35 35 34 34 34 33 32 32 30 32 32 31 31 31 32 32 32 30 29 29 29 30 30 30 30 31 31 32 34 35 36 37 37 37 37 37 37 37 38 37 37 36 35 33 32 31 30 30 29 26 24 21 18 17 17 17 18 20 21 22 22 22 22 21 21 21 21 20 21 21 21 21 21 21 20 19 19 21 26 35 46 56 64 70 73 76 78 78 78 79 80 81 82 84 86 87 87 87 87 87 88 89 91 92 94 94 94 93 93 93 92 92 92 91 91 90 88 86 84 81 79 79 78 77 77 77 76 77 78 80 83 84 84 82 80 77 73 70 67 63 58 54 49 43 37 32 28 25 23 23 24 25 26 28 30 33 37 40 42 43 43 42 41 39 36 33 29 25 20 17 13 10 9 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 11 13 16 23 33 44 52 56 57 58 57 57 56 55 54 54 55 55 54 55 55 57 59 61 63 65 66 67 67 66 65 63 62 61 62 62 61 60 62 69 76 81 83 83 83 82 82 82 80 78 75 73 69 64 61 60 60 59 58 60 62 65 69 74 79 83 84 78 71 68 72 76 78 81 83 84 83 82 82 82 82 83 83 81 81 80 81 83 85 84 77 70 66 64 63 62 60 58 56 55 54 53 89 90 90 88 88 88 91 91 91 90 90 89 87 85 83 81 77 71 64 60 60 64 71 77 83 86 86 81 71 61 54 55 56 59 63 73 83 90 93 94 95 95 95 95 92 87 83 81 80 80 81 81 79 77 74 71 67 62 57 52 48 46 45 46 46 46 43 39 34 28 22 18 15 13 13 16 23 31 41 47 50 51 50 47 44 40 37 36 35 35 34 34 34 34 34 30 29 30 32 34 34 34 33 32 31 29 28 27 27 27 27 27 27 26 25 24 25 26 28 28 28 30 36 42 42 38 34 32 33 34 35 35 35 34 34 32 31 31 30 32 32 32 32 32 33 33 31 29 27 27 27 28 29 30 30 31 31 32 32 34 35 36 36 35 35 35 35 35 35 35 34 33 33 32 33 33 33 31 29 26 22 19 17 17 18 19 21 22 22 23 23 23 22 22 21 21 20 20 20 21 21 22 22 21 20 20 20 24 31 39 49 60 67 73 75 77 79 80 80 81 82 83 85 86 87 88 88 88 88 89 90 91 92 93 94 94 93 93 93 92 92 92 91 91 90 89 87 85 82 80 79 79 79 78 78 78 77 77 76 78 81 82 82 80 77 73 69 66 63 60 54 49 44 38 33 28 25 23 23 23 24 25 27 29 32 35 39 42 44 45 45 43 41 39 35 32 28 24 20 17 14 11 10 9 9 9 9 9 9 9 10 10 10 10 10 9 9 9 9 9 10 12 14 21 30 40 50 55 57 58 58 58 58 57 55 54 54 54 54 55 55 57 58 60 62 63 65 65 65 64 64 62 61 61 61 62 61 61 63 71 77 82 83 83 83 82 82 81 79 76 71 68 63 59 56 55 54 54 55 57 59 61 63 67 72 77 80 81 76 70 69 72 74 77 80 83 84 84 83 84 85 85 84 82 80 80 80 82 84 85 83 78 71 65 60 57 54 53 52 52 51 50 89 90 90 89 88 88 90 91 91 90 90 89 87 84 82 81 78 74 69 67 68 70 74 78 81 84 85 82 74 64 55 52 52 55 59 69 79 88 93 93 94 94 95 94 92 88 85 83 82 82 82 83 82 80 78 74 70 64 58 52 48 46 47 48 47 45 39 35 32 28 23 17 14 13 14 18 24 32 41 46 49 51 50 47 43 39 36 34 34 33 33 33 33 34 34 31 30 31 33 33 33 33 34 32 31 29 27 27 27 27 27 26 26 26 26 25 24 25 27 29 30 31 34 35 34 32 31 31 33 34 35 35 35 34 34 32 31 31 31 37 37 34 30 32 33 33 32 29 27 26 26 27 28 29 29 30 30 30 31 32 33 34 34 32 31 32 32 33 33 33 33 33 34 35 36 35 33 30 26 23 20 18 18 19 20 22 23 24 24 24 23 22 22 21 20 20 19 20 20 21 22 22 22 22 21 22 23 28 35 43 53 62 70 75 77 78 80 81 83 84 85 86 87 88 89 89 89 89 90 91 92 92 93 93 93 93 93 92 92 92 91 91 91 90 89 87 85 83 82 80 80 79 79 79 80 79 78 76 75 76 77 78 77 75 71 67 63 60 57 54 49 43 38 33 28 25 23 22 22 23 24 26 28 30 33 37 42 45 46 47 46 44 41 38 34 30 27 23 20 18 15 13 11 10 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 12 19 28 38 48 54 56 57 57 58 58 58 57 55 55 54 55 56 57 58 59 60 61 62 63 63 63 62 62 61 60 59 60 61 60 61 65 74 80 83 83 83 83 83 82 79 76 71 67 62 58 55 52 52 52 54 58 61 64 65 65 63 65 68 69 75 75 72 69 70 71 74 78 81 83 85 84 84 85 85 84 82 81 80 81 82 83 84 85 83 77 71 63 58 54 52 52 53 52 51 89 90 90 88 88 88 90 91 91 90 90 89 86 83 81 80 78 75 70 69 70 73 76 78 80 82 83 81 75 65 55 51 49 50 55 65 76 86 92 92 93 93 94 94 93 92 89 86 85 83 83 84 84 82 79 76 71 65 59 54 49 46 46 46 44 42 36 34 32 29 24 17 14 14 16 19 24 32 41 48 51 52 51 46 42 38 35 34 33 32 32 32 33 34 34 32 32 32 33 33 33 32 33 33 32 31 29 29 29 29 29 27 26 27 27 26 25 25 27 30 32 33 33 32 32 32 33 33 34 35 35 35 35 35 34 33 32 32 33 40 39 34 28 31 33 33 32 30 28 27 27 28 28 29 29 29 29 30 30 31 32 32 33 31 31 32 32 33 33 34 36 37 38 37 36 34 30 26 23 20 19 19 19 20 22 23 24 24 24 23 22 21 20 20 19 19 20 20 22 23 24 24 24 24 24 25 27 33 40 48 56 65 71 74 76 78 81 83 85 86 87 88 89 89 90 90 90 91 92 92 92 92 93 93 93 93 93 92 92 91 91 91 90 89 88 86 84 82 81 81 81 81 81 80 80 79 77 75 73 72 72 72 70 67 63 60 56 53 49 46 42 36 31 27 24 22 21 21 21 23 24 26 29 31 34 39 44 47 49 48 47 43 40 37 33 29 26 23 20 18 16 14 12 10 10 9 9 9 10 10 10 11 11 11 11 11 11 10 10 10 9 9 10 16 25 35 46 52 56 57 57 57 58 58 57 57 56 56 57 58 59 60 61 61 61 62 62 62 62 61 60 59 58 57 58 59 60 61 67 76 81 83 83 83 83 82 81 79 75 70 64 57 53 50 49 49 49 50 52 56 60 63 65 62 60 60 60 65 69 72 74 75 75 75 76 79 82 84 85 84 85 85 84 84 82 81 81 82 84 84 85 84 81 76 69 65 61 59 57 57 57 57 90 90 89 88 87 87 89 90 90 90 90 88 85 83 81 80 77 74 69 68 69 72 76 77 77 78 78 78 72 64 55 50 47 48 51 62 73 84 90 92 93 93 94 95 95 94 92 89 86 83 83 81 80 79 76 73 69 64 60 57 53 50 48 46 45 43 41 40 37 32 24 17 14 14 17 21 25 32 43 51 54 54 51 46 41 37 35 33 32 32 31 31 33 35 35 35 34 32 32 32 32 31 31 32 32 31 29 30 31 32 33 31 29 27 27 27 27 27 29 33 35 36 35 35 35 35 35 35 36 37 37 37 36 36 35 34 33 32 33 34 32 30 28 31 34 35 34 33 31 30 30 30 30 30 30 30 30 30 31 31 32 32 33 33 34 34 35 36 37 39 40 39 37 35 32 29 26 22 20 19 19 20 21 22 22 23 23 23 22 22 21 20 19 19 20 20 22 23 25 26 27 27 27 27 27 29 32 38 44 51 60 67 71 74 76 80 83 85 87 88 89 90 90 90 90 90 91 92 92 93 93 93 93 93 93 93 93 93 92 91 90 90 89 88 86 85 83 83 82 82 82 82 82 81 80 78 75 72 70 68 66 64 62 58 54 51 48 45 41 37 33 28 25 22 20 19 20 20 22 23 25 27 29 32 36 41 46 50 51 50 48 44 41 37 33 29 25 22 20 19 17 15 13 11 10 10 9 10 10 10 11 11 12 12 12 12 12 11 11 10 10 9 10 14 22 32 43 50 55 56 56 57 57 57 58 58 58 59 60 62 63 64 64 64 64 63 63 62 61 60 59 58 56 56 57 58 59 61 66 75 80 83 83 83 83 82 82 81 76 68 60 53 49 47 47 47 46 46 45 47 50 54 60 61 59 56 56 58 62 67 74 78 80 79 77 79 82 84 85 85 85 85 85 85 84 83 82 83 84 84 85 84 82 78 74 72 70 69 68 67 66 66 90 89 88 86 85 85 88 89 90 90 89 87 85 83 81 80 77 73 68 65 66 69 73 74 73 72 71 71 67 61 54 49 47 47 49 59 71 82 90 92 93 93 93 94 95 94 93 90 87 84 81 78 76 75 74 70 67 63 60 57 54 51 50 50 49 49 50 47 40 30 21 16 13 12 15 24 29 35 44 52 56 56 54 48 42 37 35 34 32 32 31 31 33 35 37 36 35 33 33 33 32 31 30 31 31 31 31 34 36 37 37 35 33 31 31 32 32 33 34 36 38 39 38 38 38 37 37 37 37 38 38 38 37 37 36 35 33 32 33 31 29 28 28 31 34 37 38 37 36 35 34 33 33 32 32 32 32 32 33 33 34 35 35 36 37 38 40 41 41 40 38 34 31 28 26 24 22 20 20 20 21 21 22 22 23 23 23 22 22 21 21 20 20 21 22 23 25 26 28 30 31 31 32 32 32 34 37 43 49 56 64 69 72 76 79 83 85 87 88 89 89 89 89 89 90 90 91 92 93 93 93 93 93 93 93 93 93 92 92 91 89 88 87 86 85 84 84 83 84 84 84 83 82 81 80 76 73 69 65 62 59 56 52 49 45 42 40 36 33 29 25 22 19 18 18 18 19 20 22 24 26 28 30 33 37 42 47 51 52 52 49 45 41 37 33 29 25 22 20 19 18 16 14 12 11 10 10 10 11 11 12 12 13 13 13 13 13 12 12 11 10 10 10 13 19 27 38 47 53 55 56 56 57 57 58 58 60 61 63 64 66 66 67 66 66 65 64 62 61 59 58 56 55 55 56 57 59 62 65 71 77 81 82 83 83 82 82 78 70 61 54 51 48 47 46 45 44 43 43 43 44 47 52 57 57 57 57 59 60 62 67 74 79 81 80 80 82 84 85 85 85 85 85 85 85 85 84 84 84 84 85 84 82 80 76 75 76 77 78 78 77 76 89 89 87 85 83 84 86 88 89 89 88 87 85 83 82 80 77 72 65 62 62 64 68 68 67 66 65 65 64 61 55 51 48 47 49 58 70 81 89 91 92 92 91 93 93 93 94 91 87 84 82 79 77 76 75 71 67 63 60 57 53 51 50 51 51 51 51 48 40 30 20 17 15 15 16 26 34 39 43 51 56 58 56 49 43 38 35 35 34 32 31 31 32 34 36 36 35 34 34 33 32 31 30 31 32 33 33 35 37 39 38 38 38 39 38 39 39 40 40 40 41 41 40 40 40 40 40 39 39 38 38 37 37 36 36 34 34 34 33 31 30 30 30 33 36 39 41 41 40 39 37 36 35 35 34 34 35 35 35 36 37 38 39 40 42 43 43 41 37 33 29 26 24 22 22 21 21 21 22 22 22 22 22 22 22 23 23 23 23 23 23 23 23 23 25 27 29 31 32 34 35 36 37 37 39 40 43 48 54 61 67 71 74 78 82 84 86 86 87 87 87 88 88 89 90 91 91 92 93 93 93 93 93 93 93 93 92 92 91 90 88 87 86 85 85 85 85 85 85 85 85 84 83 81 78 74 68 64 59 54 50 47 43 40 37 34 31 28 25 22 19 17 16 16 16 18 19 20 22 24 26 28 31 34 38 43 48 52 54 53 51 46 42 38 34 29 26 22 21 20 19 17 16 14 12 11 11 11 11 12 12 13 14 14 14 14 14 13 13 12 11 11 10 12 16 23 33 43 50 54 55 56 57 57 58 58 60 61 63 65 66 67 67 67 66 65 64 62 60 58 56 55 55 55 55 57 59 62 65 68 72 76 78 80 82 82 81 74 66 59 54 51 49 47 45 42 41 40 41 42 42 43 46 51 54 58 61 61 60 59 60 65 72 78 82 82 83 84 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 83 82 80 81 82 82 83 83 82 89 88 85 83 81 82 85 88 88 88 88 86 85 84 83 81 77 71 63 58 56 58 62 65 67 67 68 68 68 65 59 53 50 48 49 58 69 80 88 90 91 91 89 92 94 95 95 93 88 84 82 80 78 77 75 71 67 63 60 58 55 52 50 49 48 47 46 45 41 35 26 31 34 31 23 28 36 43 45 52 57 60 58 51 44 39 36 35 35 34 33 32 32 32 33 35 35 35 36 34 33 32 31 31 31 31 30 32 34 36 37 39 40 41 41 41 43 45 46 47 46 46 49 51 49 44 40 40 40 39 38 37 37 37 36 35 35 35 34 33 32 31 32 35 39 42 43 43 42 41 40 39 38 37 37 37 37 38 38 39 40 42 43 44 44 42 39 34 28 24 21 21 21 21 22 22 23 23 23 23 23 23 22 22 22 23 24 24 25 25 26 26 26 27 29 31 33 35 37 39 40 41 42 43 45 47 50 55 60 65 69 72 76 79 82 83 83 83 83 84 84 85 86 88 90 91 92 93 93 92 92 92 92 92 92 92 92 91 90 89 87 86 85 85 85 85 86 86 86 85 85 84 82 80 76 69 63 57 51 45 41 37 34 32 29 26 23 21 18 17 15 14 14 15 16 18 19 21 23 25 27 29 32 35 39 44 49 53 55 56 54 49 45 40 35 30 27 24 22 21 20 18 17 15 14 12 12 12 12 12 13 14 14 15 15 15 15 14 14 14 13 12 11 11 14 20 29 39 47 51 54 55 56 57 57 58 58 59 61 62 64 65 66 66 66 65 64 62 60 58 57 56 55 54 54 57 60 64 65 65 66 69 73 76 79 81 80 72 64 58 55 53 51 48 45 41 39 38 40 41 42 44 44 48 54 61 65 63 60 57 56 58 63 70 79 81 83 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 84 84 88 86 83 80 79 81 85 87 88 88 87 87 86 85 84 82 77 70 61 56 55 59 65 71 75 77 79 77 75 70 63 55 51 50 51 58 68 79 88 89 90 90 89 91 94 96 96 93 89 85 81 79 77 76 75 71 67 62 58 56 53 51 50 47 45 43 42 42 42 41 36 45 47 40 23 27 38 48 50 55 59 61 59 52 45 40 37 36 35 35 34 33 32 32 32 34 36 38 38 36 34 33 31 31 31 31 31 30 30 31 33 37 39 40 41 41 44 47 50 50 50 51 57 57 50 42 37 38 39 39 39 38 38 37 36 35 35 36 35 34 33 34 36 38 41 43 44 43 43 42 41 41 40 40 40 40 40 40 41 43 44 46 47 45 42 37 30 25 21 20 20 21 22 23 24 24 24 23 23 23 22 22 22 22 23 24 25 26 27 28 29 30 31 33 35 37 39 41 43 44 45 46 47 48 49 51 53 57 60 64 68 70 73 75 76 76 76 77 78 80 81 83 84 86 89 91 93 93 93 92 92 92 91 92 92 91 91 90 89 87 86 85 85 85 85 86 87 87 86 86 85 84 81 77 71 63 55 48 42 36 32 28 25 24 22 19 17 15 14 13 13 14 14 15 16 18 19 21 23 25 27 29 32 36 40 44 49 53 57 59 59 55 50 44 38 33 29 26 24 22 21 20 18 17 15 14 13 12 12 13 13 14 15 15 16 15 15 15 15 15 14 13 12 11 13 17 25 34 42 48 52 54 56 57 57 57 57 57 58 59 61 62 63 64 65 65 64 63 62 61 60 57 55 53 53 58 62 65 65 63 64 65 68 71 74 77 78 73 67 61 57 55 53 51 48 44 41 40 41 41 43 44 46 48 56 65 72 68 63 59 56 57 60 65 73 78 82 84 85 85 85 85 84 84 84 84 85 85 85 85 85 85 85 85 85 85 86 86 86 85 85 85 86 83 79 77 78 81 85 87 87 87 87 87 87 86 85 82 77 70 63 59 60 65 73 78 81 81 81 80 76 71 62 54 51 52 53 59 68 79 89 90 90 91 91 91 93 95 96 93 89 85 81 78 76 74 73 71 67 62 57 52 49 46 45 45 44 43 42 43 44 43 40 40 33 22 11 21 34 45 51 54 58 60 58 53 46 41 37 36 35 35 34 34 34 34 34 35 36 38 38 36 36 35 34 32 32 32 33 32 31 31 33 37 40 42 42 43 44 46 49 50 49 47 47 44 40 37 37 38 39 39 38 38 37 36 36 36 36 36 36 35 35 36 38 41 43 44 45 45 44 44 43 43 42 42 42 41 42 43 45 47 48 48 45 40 34 28 22 20 20 21 22 23 24 24 24 24 23 23 22 22 22 22 23 23 25 26 28 29 30 31 32 34 36 39 42 44 45 47 48 49 50 51 52 52 53 54 54 55 57 59 61 63 65 67 68 69 70 72 74 77 79 81 83 86 89 92 93 93 92 92 92 92 91 91 91 90 90 89 88 87 85 84 84 85 86 87 88 87 87 86 85 83 79 73 64 55 47 39 33 28 24 20 18 17 15 14 13 13 12 12 13 14 15 16 17 18 20 21 23 25 27 29 32 36 40 44 48 52 56 60 63 62 58 51 44 38 33 29 26 24 22 21 20 18 17 15 14 13 13 13 14 15 15 16 16 16 16 15 16 16 16 15 14 12 13 15 20 29 37 44 50 53 55 57 58 57 57 56 56 57 58 59 60 62 63 64 64 65 65 64 63 60 56 54 56 60 64 66 66 64 63 62 63 65 68 70 72 71 69 65 61 58 56 53 51 48 46 43 42 42 43 44 45 49 57 66 73 71 67 63 59 58 59 61 67 74 80 84 85 85 85 85 84 84 84 84 84 84 85 85 85 85 85 85 84 85 85 86 86 85 85 85 84 80 76 76 78 82 85 86 87 88 88 88 88 87 85 81 76 71 66 64 66 70 76 79 80 80 78 76 73 68 60 55 54 57 59 63 72 82 91 91 91 91 92 90 92 94 96 93 90 86 82 79 76 73 72 70 67 63 58 53 50 47 45 45 45 44 44 45 44 41 34 23 15 10 9 16 26 36 44 51 56 59 59 53 48 42 38 36 35 35 35 35 35 36 35 35 35 36 37 38 39 39 36 35 34 34 36 39 38 35 34 36 37 37 39 41 42 43 45 46 44 40 38 37 37 38 40 40 40 40 40 40 40 39 39 39 38 38 38 37 37 37 39 42 44 46 47 46 46 45 44 42 42 42 43 44 46 48 50 50 47 42 35 29 24 21 20 22 23 24 24 24 24 24 23 23 23 22 22 23 23 24 25 25 27 29 31 32 33 35 36 38 42 45 50 52 53 53 54 54 55 56 56 56 57 57 58 58 59 59 60 61 62 63 64 66 67 69 71 74 77 79 81 85 88 91 93 92 92 92 92 91 91 90 89 89 88 88 87 86 85 84 84 86 87 88 88 88 87 86 85 81 74 65 54 45 37 30 24 20 17 15 13 12 11 11 11 11 12 13 13 14 16 17 18 19 21 22 24 26 28 30 32 35 39 42 45 49 54 59 65 67 65 61 54 46 40 35 31 27 25 23 21 20 18 17 15 14 14 14 14 15 15 16 16 16 16 16 16 17 17 17 16 15 14 14 17 24 32 40 47 51 54 57 58 58 57 56 55 55 56 57 58 59 60 61 62 64 66 66 65 60 56 55 58 61 65 67 67 64 60 57 57 58 60 62 64 64 64 63 61 59 57 56 54 52 50 47 45 44 43 43 45 48 56 65 74 74 72 68 62 60 60 63 65 73 79 84 85 85 85 84 84 84 83 83 82 82 83 84 84 84 83 82 82 82 83 85 85 85 85 84 82 78 76 77 80 83 85 87 88 89 89 89 88 86 84 80 76 72 69 69 71 73 76 78 78 77 75 72 68 65 61 57 59 64 67 71 77 85 90 91 92 91 89 88 91 93 95 94 90 86 81 78 75 73 71 70 68 64 59 55 53 51 50 50 49 49 47 46 44 40 32 23 19 17 17 18 24 32 41 51 58 61 60 54 48 43 38 37 35 35 35 36 37 37 37 36 36 35 36 39 40 39 37 36 36 36 37 38 36 34 32 33 34 34 35 38 38 39 39 37 36 36 37 38 38 39 39 40 41 42 42 42 41 41 40 40 40 40 41 42 42 42 43 45 47 49 49 47 44 42 40 39 39 40 41 44 46 46 45 40 35 29 23 21 20 21 23 24 25 25 25 24 24 23 23 23 23 23 23 24 25 26 27 28 30 32 34 35 37 38 40 43 46 51 55 59 60 61 61 60 61 61 60 60 60 60 60 61 61 61 61 61 62 62 63 65 67 69 71 73 76 78 81 83 86 90 92 92 92 92 91 90 89 88 87 87 87 86 86 85 85 85 85 87 88 88 88 88 87 85 83 76 67 55 43 35 27 22 18 15 13 12 11 10 10 10 10 11 12 13 14 15 16 18 19 20 22 23 25 27 29 31 33 35 38 41 44 47 51 57 63 69 70 69 64 57 50 44 37 32 27 24 22 21 19 18 16 15 15 15 15 15 16 16 16 16 16 16 16 17 18 18 18 16 15 14 14 20 27 35 43 49 53 56 58 58 57 56 55 54 54 55 55 56 56 57 59 62 65 66 64 58 54 54 60 64 68 69 67 61 56 53 52 53 53 54 55 55 56 56 55 54 53 53 53 51 50 48 47 46 44 43 43 46 53 62 72 76 77 73 65 61 61 64 67 73 79 83 84 84 84 83 82 81 80 78 77 77 78 80 81 83 82 81 80 79 80 82 84 85 85 85 81 78 77 79 82 84 85 87 89 90 90 89 87 85 82 79 76 74 73 74 76 77 78 78 78 77 74 70 67 64 61 60 65 72 78 81 84 86 88 90 89 88 85 86 89 93 95 95 92 88 83 79 76 74 72 71 68 65 61 57 54 52 52 51 50 50 50 49 47 43 35 28 25 24 23 21 24 30 38 48 55 60 60 54 49 43 39 37 36 35 35 36 37 37 36 36 36 36 36 37 37 37 37 37 37 36 34 33 33 33 33 34 34 35 36 37 36 36 35 35 35 35 36 38 39 40 40 39 40 40 41 40 40 40 39 40 41 42 44 46 47 48 49 50 51 51 49 45 42 40 38 38 37 36 36 37 37 35 31 28 25 22 21 21 23 24 25 25 25 25 24 24 23 23 23 23 23 24 25 26 27 28 30 32 33 35 37 39 41 42 44 47 51 56 60 64 66 68 68 68 68 68 67 66 65 64 63 61 60 60 60 60 61 63 65 67 69 71 73 74 76 78 80 82 85 87 90 91 91 91 90 89 88 87 86 86 85 85 84 84 84 85 87 88 88 88 88 87 85 83 77 67 55 43 32 24 19 15 13 11 10 10 9 9 9 10 10 11 12 13 14 15 17 19 21 22 23 25 26 28 30 32 34 36 38 41 44 47 51 55 61 68 72 74 73 68 62 55 47 39 33 27 24 22 20 19 17 16 15 15 15 16 16 16 16 16 16 16 17 18 18 19 19 18 16 14 13 17 23 31 39 46 51 55 58 58 58 56 55 54 53 53 53 53 53 53 54 57 60 61 60 55 53 55 62 68 72 73 71 67 61 56 52 50 49 49 49 49 48 49 49 49 48 48 48 48 47 46 45 45 44 43 42 44 49 57 68 76 79 76 66 60 60 62 65 72 76 80 82 83 83 82 81 79 76 73 71 71 72 75 77 79 81 81 81 79 78 78 81 83 84 85 79 78 79 82 83 85 86 88 90 90 90 88 86 83 80 77 75 75 76 79 80 81 81 81 81 80 77 72 68 65 64 66 73 80 85 85 84 85 86 87 87 86 87 88 91 93 94 95 95 93 88 83 78 75 73 72 70 68 63 59 55 53 53 52 51 50 50 50 49 46 39 31 26 25 26 24 27 32 38 45 51 56 57 54 50 45 40 38 36 35 35 35 35 35 35 36 37 38 39 39 39 38 37 36 35 34 34 34 34 34 34 35 36 37 38 37 36 36 36 37 36 35 36 38 39 39 38 38 38 38 38 38 39 39 40 41 43 44 45 47 49 51 52 52 51 50 46 43 40 38 36 36 35 34 33 32 31 29 27 25 23 22 22 23 25 26 26 26 25 24 24 23 23 23 23 24 25 26 27 29 30 32 34 35 37 39 41 43 45 47 49 52 56 60 64 68 71 73 75 76 76 76 74 73 72 70 66 63 61 61 61 62 64 66 68 69 71 74 75 77 78 80 81 83 85 88 91 91 90 90 89 88 87 86 85 84 84 83 83 83 84 86 88 88 88 88 87 85 82 76 66 53 40 30 21 16 13 11 10 10 9 9 9 9 9 9 10 10 11 13 14 16 18 20 22 24 25 26 28 29 31 34 36 38 41 44 48 51 54 57 61 68 73 76 76 75 72 67 60 49 40 32 26 23 21 20 18 17 16 16 16 16 16 17 17 17 17 17 17 18 19 19 20 19 18 16 14 15 19 26 35 43 49 53 57 58 58 57 55 54 52 52 52 51 50 50 50 52 54 55 55 53 52 54 60 66 70 72 74 75 72 67 60 55 51 50 50 51 52 53 53 53 51 50 48 47 46 45 44 44 43 43 41 43 45 51 61 70 78 79 67 60 59 62 64 67 71 76 79 80 81 81 81 79 76 72 68 68 69 71 74 76 78 80 81 80 78 77 78 80 82 84 79 80 82 83 85 86 87 89 90 90 89 87 84 80 76 73 73 74 78 80 82 83 84 84 84 82 79 75 72 70 71 75 79 83 84 83 83 85 86 86 86 86 90 91 92 93 93 94 95 94 92 85 80 76 74 72 71 68 65 61 57 55 53 52 51 50 49 49 50 48 44 35 29 25 26 30 34 37 42 45 50 54 57 56 51 46 42 39 38 36 36 34 34 35 35 36 37 37 39 40 40 38 37 36 36 35 35 35 35 34 34 34 35 36 36 35 35 36 38 38 35 33 34 35 36 37 37 37 38 38 39 40 41 42 43 45 45 46 46 47 49 51 51 51 49 46 43 40 38 36 35 35 34 33 32 31 29 28 25 23 23 23 24 25 26 26 25 25 24 24 23 24 24 24 25 26 27 29 30 32 34 36 37 39 41 43 44 46 48 51 53 56 60 63 67 71 74 78 81 82 81 80 79 76 75 73 70 68 66 65 65 65 67 68 70 72 75 77 80 81 82 83 84 86 88 90 91 90 89 88 87 86 85 84 83 82 81 81 83 84 86 87 88 88 87 87 85 81 74 63 49 37 26 18 13 11 10 9 9 8 8 8 8 8 9 9 9 10 11 13 15 17 19 22 24 26 28 29 30 31 33 35 37 40 44 49 55 59 61 62 64 69 73 76 76 76 75 74 70 60 49 39 31 26 23 21 20 18 18 17 17 17 17 17 17 17 17 17 18 18 19 20 21 21 20 18 15 14 17 22 30 39 46 52 56 58 59 58 56 54 52 51 51 51 50 49 49 50 51 52 53 52 52 53 55 59 63 67 70 72 74 75 73 66 61 58 57 59 61 64 66 66 64 60 55 52 49 47 45 45 44 44 42 43 45 48 53 61 70 73 68 61 58 59 59 60 63 68 73 75 77 79 80 79 77 75 71 69 70 71 74 76 77 78 79 79 79 78 78 79 81 82 80 82 84 85 86 87 88 89 89 89 89 85 80 74 69 67 69 72 75 78 81 84 85 86 86 84 81 77 74 73 76 81 84 84 81 82 84 85 87 88 89 90 91 91 92 93 93 93 94 94 93 89 84 80 76 73 71 69 67 63 60 57 54 52 51 50 49 47 48 49 47 40 32 26 25 31 36 39 40 44 49 53 56 55 52 48 43 41 39 37 36 35 35 35 35 36 36 36 35 38 38 37 36 37 37 36 35 35 35 35 33 33 33 33 33 32 33 34 35 35 33 32 32 33 34 35 36 38 39 40 42 44 46 47 48 47 47 47 46 47 48 49 49 48 46 43 41 39 37 36 36 35 33 32 31 29 27 25 23 23 23 24 26 26 26 26 25 24 24 24 24 25 25 26 27 29 30 32 34 35 37 39 41 43 45 46 48 50 51 54 57 60 63 66 69 72 76 80 84 84 84 82 81 78 75 73 71 70 69 68 68 69 70 72 75 77 79 81 83 84 84 85 87 89 90 90 90 89 88 87 86 85 85 84 82 81 81 82 84 86 88 89 88 87 85 83 79 70 57 44 31 22 16 12 10 9 8 8 8 8 8 8 8 8 9 9 9 10 11 13 15 18 21 24 26 29 30 31 33 34 35 36 37 41 48 56 66 70 70 68 67 69 72 74 75 75 76 76 75 68 59 48 38 31 26 23 20 19 18 17 17 17 17 17 17 17 18 18 18 19 19 20 21 21 21 20 17 15 15 18 24 35 43 50 54 58 59 59 57 54 53 52 52 51 50 50 49 50 51 52 52 51 51 51 52 54 57 60 63 65 68 70 73 72 70 67 65 66 67 70 73 74 73 69 63 57 52 50 48 47 46 46 44 44 45 48 51 56 61 65 66 60 57 55 55 53 54 57 63 67 70 73 75 76 77 77 76 75 75 76 77 78 79 80 79 79 79 79 78 79 80 81 81 83 85 86 87 87 88 89 89 88 87 83 76 68 62 63 68 72 75 77 81 85 87 87 86 85 82 78 75 76 80 84 85 85 82 83 83 84 85 88 89 91 91 90 91 93 93 94 94 94 93 91 87 83 77 74 72 71 69 65 61 58 54 52 51 51 50 47 46 45 46 45 40 34 29 32 36 40 43 45 49 53 56 55 53 49 45 42 39 38 37 36 35 35 34 35 36 36 35 36 36 36 36 36 36 35 34 34 34 34 32 32 32 33 32 32 32 33 33 32 32 32 33 33 34 35 37 39 40 43 45 48 50 51 50 49 47 46 46 47 48 48 47 46 44 42 40 39 38 37 36 34 33 31 30 27 25 24 23 24 25 26 26 26 26 25 25 25 25 25 26 27 28 29 31 32 34 36 37 39 41 43 45 47 48 50 51 53 55 57 60 62 65 68 71 74 77 80 84 84 83 82 80 77 74 72 72 71 71 70 70 71 73 76 78 80 81 83 84 85 86 88 90 90 90 90 89 88 87 86 85 85 84 83 83 83 84 85 87 88 89 88 88 85 82 75 64 50 37 25 16 12 10 8 8 8 8 8 8 8 8 9 9 9 9 9 10 10 11 13 16 19 23 26 28 30 32 33 35 36 36 38 40 49 60 70 76 75 73 70 68 69 69 70 71 72 74 76 77 74 67 57 46 37 30 25 22 20 19 18 18 18 18 18 18 18 18 18 19 19 20 21 21 22 22 21 19 17 15 15 19 29 38 46 52 56 59 59 58 56 54 53 52 52 52 52 51 52 53 53 53 52 51 51 51 51 53 55 57 60 61 64 66 68 69 69 68 69 71 74 76 74 70 65 59 55 52 51 50 49 48 48 47 45 46 49 51 55 57 58 58 56 54 52 51 48 47 49 54 59 62 64 66 69 72 74 74 76 77 78 79 79 79 80 80 80 80 79 78 77 78 78 82 84 85 86 87 87 88 87 87 86 85 81 75 68 64 66 71 76 78 81 84 86 87 86 85 84 81 78 77 79 84 86 86 85 84 83 83 83 83 85 87 89 91 92 92 92 90 93 94 94 93 92 89 85 80 76 73 72 70 67 63 59 55 52 51 50 50 49 47 45 46 49 49 47 43 40 39 41 44 46 50 54 56 55 53 51 47 44 41 39 39 37 36 35 35 35 36 37 36 35 35 35 35 35 35 35 34 33 32 31 30 31 32 32 32 31 32 32 32 32 32 33 34 35 37 38 40 41 43 45 48 51 52 52 51 50 48 47 45 46 47 47 47 46 44 43 41 40 38 37 36 35 34 31 28 26 24 24 24 25 26 26 26 26 26 26 25 25 26 27 28 30 31 33 35 36 38 40 42 43 45 47 49 50 51 52 54 55 57 59 61 64 67 69 72 75 77 79 81 82 82 81 78 75 73 72 71 71 71 71 71 73 75 77 79 80 82 83 85 86 88 89 90 90 90 89 88 87 86 85 85 84 84 84 84 86 87 88 89 89 88 86 84 79 69 57 43 30 20 13 9 8 8 8 8 8 8 8 9 9 10 10 10 10 9 10 10 11 12 14 17 20 23 26 28 30 32 34 36 37 38 42 51 65 74 77 76 72 69 68 69 70 70 69 68 68 71 74 77 76 71 64 54 44 36 29 25 22 20 19 19 18 18 18 18 19 19 19 20 20 21 21 22 22 23 22 21 19 16 15 17 25 34 43 50 54 57 60 60 58 56 55 54 54 54 54 55 55 56 56 55 54 53 53 53 54 56 58 58 59 60 61 63 64 65 65 65 68 73 77 77 70 63 55 51 50 51 52 53 52 51 50 49 46 47 49 53 56 55 52 50 51 52 52 50 46 43 42 45 51 54 56 56 58 61 64 65 68 71 74 76 77 77 77 78 79 80 80 80 78 76 75 82 84 85 86 86 86 86 85 85 84 84 82 80 77 74 73 75 78 81 83 85 86 85 85 84 81 79 78 80 83 86 86 85 84 83 83 83 82 81 83 86 89 90 92 92 91 89 93 94 94 94 93 90 87 82 78 75 72 70 67 64 60 56 53 51 50 49 49 49 49 50 52 53 54 52 47 44 43 46 49 52 54 56 55 54 52 50 48 45 43 41 39 38 37 36 36 36 37 36 36 35 35 35 35 35 35 34 33 32 31 31 31 31 31 30 31 32 33 32 32 32 33 34 37 40 42 44 45 46 47 49 51 51 51 51 50 49 49 49 48 48 48 47 46 44 42 40 39 38 38 38 36 34 30 27 25 24 24 26 27 28 28 27 27 27 26 26 26 28 29 31 33 35 37 39 41 42 44 46 48 49 51 52 53 53 54 55 57 58 60 62 65 67 69 72 74 76 76 77 79 80 80 78 76 74 73 73 73 72 72 72 73 75 77 79 80 81 83 85 87 88 89 90 90 89 89 88 87 86 85 84 84 85 86 87 89 89 89 89 87 85 80 73 60 46 33 22 15 10 9 8 8 8 8 8 8 8 9 10 10 10 11 11 11 11 11 11 12 13 15 18 20 23 26 28 30 32 34 36 37 40 45 54 62 64 63 61 62 64 68 72 73 72 70 67 66 68 71 76 77 75 69 61 51 42 34 27 24 22 20 20 20 19 19 19 19 20 20 20 21 21 22 22 23 23 23 23 21 19 17 16 21 29 38 46 51 55 59 60 60 58 57 55 55 56 56 57 57 58 59 59 58 58 57 58 63 68 71 69 66 64 64 66 66 64 64 64 69 74 77 76 68 59 51 48 49 51 54 55 54 53 52 50 47 46 50 57 61 58 53 51 55 56 54 49 44 40 38 40 45 48 50 49 50 51 53 55 57 60 64 68 72 73 74 74 75 76 78 79 78 77 75 83 85 86 85 84 84 83 83 82 82 83 83 83 81 77 74 75 78 81 83 84 84 84 83 81 79 79 81 84 87 87 86 84 82 82 82 81 79 77 81 85 89 88 91 92 90 88 92 93 94 93 92 89 86 83 80 76 73 71 68 65 62 59 56 53 51 50 50 51 52 53 54 54 54 53 50 47 46 48 51 53 55 57 56 55 54 54 52 49 46 44 42 41 39 39 38 38 37 37 37 36 36 36 36 35 35 34 33 33 32 32 31 31 30 30 32 33 32 29 27 27 28 31 36 40 42 43 43 44 45 47 48 49 49 49 49 49 49 49 48 47 46 45 43 42 40 40 39 39 39 39 36 33 29 26 25 25 26 27 29 29 29 28 28 27 27 27 29 31 33 35 37 40 42 43 45 47 48 50 52 53 54 55 56 56 56 56 57 59 60 62 64 66 68 71 74 75 75 75 76 77 78 79 78 77 76 76 75 75 74 74 75 76 78 79 81 82 84 86 87 88 88 89 89 88 88 87 86 85 85 85 86 87 88 89 89 88 87 86 82 75 64 51 35 23 14 8 7 6 7 8 8 8 8 8 9 9 10 10 11 11 12 12 12 13 13 13 14 15 16 18 21 23 25 27 29 31 33 35 37 41 44 47 49 51 53 55 58 63 69 75 74 73 70 67 65 66 69 75 77 77 73 67 57 48 39 31 26 23 21 21 20 20 20 20 20 21 21 21 22 22 22 23 23 24 24 24 23 21 18 16 18 24 33 42 49 53 57 60 61 60 59 57 56 56 57 58 58 59 60 62 63 64 65 67 71 76 77 75 69 67 67 68 68 68 69 70 71 74 77 76 66 56 49 47 50 53 55 56 55 53 52 50 47 47 52 64 69 65 60 62 63 58 51 44 40 37 35 36 40 43 44 44 44 45 46 48 49 51 53 57 62 65 68 68 68 69 71 72 73 73 74 84 85 85 82 80 79 79 81 81 81 83 81 79 76 68 66 69 74 79 82 83 83 81 81 80 80 81 85 87 88 88 87 85 83 82 81 79 77 75 80 85 88 88 91 91 89 87 92 94 95 94 92 88 85 84 82 80 76 73 70 67 64 61 58 55 52 51 51 52 54 55 56 55 54 52 51 49 48 49 52 54 56 57 57 57 56 56 54 51 48 46 44 43 42 41 40 39 38 38 37 37 37 36 36 36 35 34 33 33 32 32 31 30 30 30 31 30 27 23 20 21 23 28 33 36 38 39 39 41 42 44 46 47 47 47 48 48 48 47 46 45 43 42 41 41 41 40 40 40 40 39 35 32 28 25 26 27 29 30 31 31 30 29 29 29 29 30 32 35 37 39 42 43 45 47 49 50 52 54 55 57 58 59 59 59 59 59 59 60 61 63 65 66 67 70 73 74 74 74 73 74 75 76 78 78 78 77 76 76 76 76 77 78 79 80 82 84 85 86 86 87 88 88 88 87 86 85 85 85 86 87 88 89 89 88 87 85 81 76 65 51 38 25 16 10 6 5 5 6 7 8 8 9 9 10 10 10 11 12 12 13 13 14 14 14 15 16 16 17 18 20 22 24 26 27 29 30 32 34 36 40 43 47 50 52 54 56 58 63 70 76 74 71 67 64 63 64 68 73 77 77 75 71 63 54 44 35 29 25 22 21 21 21 21 21 21 21 22 22 22 23 23 23 24 24 24 25 24 23 21 18 17 20 26 36 44 50 54 58 60 61 61 59 58 57 58 58 58 59 60 63 65 68 69 70 71 74 77 77 72 69 69 69 69 72 75 76 74 76 79 76 64 55 50 48 51 54 55 55 53 52 50 48 47 51 59 73 76 72 68 70 66 59 53 53 52 48 43 37 37 38 39 39 39 40 40 41 42 43 44 46 49 53 56 58 58 58 59 60 61 63 64 85 85 81 75 71 69 71 74 75 75 75 71 66 61 54 55 61 69 77 80 81 82 81 81 81 83 85 86 87 88 89 88 86 84 82 80 78 77 76 79 83 86 88 88 88 87 86 91 94 95 95 93 90 86 84 85 83 79 75 73 70 67 63 60 56 54 52 52 53 55 57 58 58 56 54 52 51 50 49 52 55 57 57 57 57 56 56 55 53 51 49 47 45 44 43 43 42 40 39 38 38 38 38 37 36 35 34 33 32 32 31 30 30 29 29 27 25 22 19 18 19 22 27 32 36 39 40 42 43 44 45 45 45 46 45 45 45 44 44 43 42 41 41 41 41 41 42 42 41 41 39 36 32 29 26 28 30 32 34 34 33 32 31 31 32 33 34 37 39 41 43 45 47 49 50 52 53 55 57 59 60 61 62 62 62 62 63 63 64 65 66 67 68 68 70 73 74 74 73 72 71 71 72 74 76 77 76 76 77 77 78 78 79 80 81 83 85 86 86 86 87 87 87 87 86 85 84 85 85 87 88 88 88 87 85 81 74 64 51 37 25 15 8 6 5 5 6 7 7 8 8 9 9 10 10 11 12 12 13 14 15 16 17 17 17 17 18 19 20 21 23 25 26 28 29 29 30 32 34 36 40 43 47 50 52 55 57 59 62 67 72 70 67 63 61 62 64 67 71 76 77 76 74 68 59 50 40 33 27 24 22 22 22 22 22 22 22 23 23 23 23 23 23 24 24 25 25 26 25 24 21 18 18 22 29 38 46 51 55 59 61 62 62 60 58 58 58 58 59 60 61 63 66 69 71 72 74 76 78 73 70 68 67 68 70 73 75 77 80 81 75 64 57 52 49 51 53 55 54 52 50 48 47 50 57 67 79 79 76 72 72 65 62 65 74 76 74 69 58 47 40 36 35 35 35 36 36 36 35 35 35 37 40 43 45 45 45 46 47 48 50 51 85 81 74 64 58 56 58 57 57 56 54 51 47 44 42 46 53 62 71 75 78 80 81 83 85 86 86 86 87 88 89 89 88 85 82 80 79 78 77 77 79 82 86 87 86 85 86 92 94 95 96 95 91 87 85 87 87 85 80 77 74 70 66 62 59 56 53 53 54 55 57 59 60 60 58 55 53 51 51 52 55 56 57 57 56 56 56 55 54 53 51 49 47 46 45 44 43 42 41 40 40 39 39 37 35 34 33 32 32 31 31 30 29 28 27 25 23 21 19 20 21 24 29 34 38 42 44 45 45 45 45 44 44 43 42 42 42 41 41 41 41 41 41 41 42 42 42 43 43 42 40 37 34 30 28 30 33 36 38 38 37 36 35 35 35 37 39 41 43 45 47 48 50 51 52 54 56 58 60 61 63 65 66 67 67 68 68 69 69 69 70 70 70 71 72 73 74 73 72 71 70 69 69 70 72 73 75 75 76 77 78 78 79 80 81 82 84 85 86 86 86 86 86 85 84 84 84 85 86 87 87 85 83 78 73 61 48 35 22 14 8 6 5 5 6 7 8 8 9 9 9 9 10 10 11 12 13 14 15 16 17 19 20 20 20 20 20 21 22 24 26 28 29 31 31 32 32 33 34 36 39 43 46 49 52 55 58 60 62 64 66 65 62 61 62 64 65 67 70 74 76 77 76 71 64 55 45 37 31 26 23 22 22 22 22 23 23 24 24 24 24 24 24 24 25 25 26 27 27 26 24 21 19 19 23 31 40 47 53 56 59 62 63 62 61 59 58 59 59 60 61 62 65 69 73 74 75 76 76 74 70 67 65 66 67 69 71 76 81 82 76 66 59 55 51 50 52 54 53 51 50 49 49 55 64 73 81 78 76 73 71 65 65 70 80 83 84 82 78 64 50 40 34 33 33 33 34 34 33 32 31 33 37 39 39 37 36 36 36 38 39 41 83 76 64 53 48 47 48 45 45 48 52 53 51 48 45 46 49 55 61 67 72 77 82 85 86 86 85 86 88 88 89 89 89 87 84 83 82 80 77 75 75 78 82 85 86 87 91 94 95 95 94 91 88 86 88 90 90 89 85 82 78 74 69 65 61 57 54 53 53 55 57 60 61 62 61 59 58 57 57 56 57 58 58 57 56 56 57 56 55 54 53 51 49 47 46 45 44 43 43 41 40 39 38 36 35 33 33 32 32 31 31 30 29 28 26 24 23 22 23 24 26 28 31 36 40 44 46 46 46 45 44 42 41 40 39 39 39 39 39 39 40 40 41 41 41 42 42 43 43 43 43 40 36 32 30 32 36 39 42 42 41 40 38 38 39 41 43 44 46 48 49 51 52 53 55 56 58 60 61 63 65 67 68 70 71 72 73 73 74 74 73 73 73 74 74 74 73 72 71 69 68 67 67 68 69 70 72 73 74 75 76 77 78 79 80 82 83 84 85 85 85 85 84 83 82 82 82 83 84 82 79 74 66 56 43 31 20 12 7 5 5 6 7 8 8 8 8 9 10 10 10 10 11 11 12 13 14 15 17 18 20 22 23 24 25 25 25 24 25 26 28 31 32 34 35 35 35 35 35 36 38 41 44 48 51 54 57 60 61 62 62 61 61 64 68 70 69 69 69 71 74 76 77 74 68 60 51 42 35 29 25 24 23 23 23 23 24 24 25 25 24 24 24 24 25 26 27 28 28 28 26 24 21 19 20 25 32 41 49 53 57 59 62 63 63 62 60 60 60 61 62 63 65 67 70 74 76 78 78 76 74 71 68 66 65 66 67 71 78 81 77 69 65 61 59 52 51 52 53 51 50 49 51 60 69 76 78 76 74 72 70 67 65 68 77 82 83 83 83 71 59 47 38 34 33 33 35 36 37 37 39 41 44 45 43 41 38 36 34 34 34 34 80 70 57 48 45 44 42 43 50 59 68 71 70 66 61 58 57 57 60 64 69 76 82 86 86 86 86 88 88 89 89 89 89 88 85 83 82 80 76 72 71 73 77 81 85 89 94 95 95 95 91 90 90 91 93 93 93 91 89 86 82 77 72 68 63 59 56 53 53 54 56 59 62 64 65 64 64 64 63 61 61 60 60 58 56 56 57 57 56 54 53 52 50 48 47 45 44 43 42 42 41 40 38 37 35 34 33 32 32 32 31 30 29 27 26 25 26 27 29 31 33 35 38 41 44 46 46 45 44 43 41 40 40 39 38 38 38 38 38 38 38 39 40 40 41 41 42 43 44 45 45 42 37 34 32 35 39 43 46 45 44 43 42 42 43 44 46 47 49 50 51 53 54 56 57 58 60 61 62 64 65 67 68 70 72 73 74 75 75 75 75 74 74 74 74 73 72 70 68 67 65 64 65 66 67 68 69 71 72 72 74 75 77 78 80 81 82 82 83 83 82 82 81 79 78 77 76 75 71 65 57 47 36 25 16 10 7 5 5 6 8 8 9 9 10 9 9 9 10 10 11 12 13 13 14 15 16 18 20 22 24 26 27 29 29 30 30 29 29 30 32 34 36 38 39 39 39 38 38 38 38 40 42 44 48 51 53 55 56 57 58 59 64 70 76 76 75 72 70 70 72 75 76 75 72 66 57 48 40 33 28 26 24 24 24 24 24 25 26 25 25 24 24 24 25 26 28 30 30 30 29 26 24 21 19 21 26 33 42 49 54 57 59 62 63 64 63 61 61 61 63 64 65 65 66 69 73 77 79 79 77 75 72 68 65 64 64 67 75 80 78 74 73 72 70 62 55 50 49 51 51 51 52 61 69 76 77 75 72 71 69 69 66 65 70 77 81 82 80 72 62 53 46 39 37 37 40 41 41 43 45 48 51 51 50 49 47 44 40 36 34 32 76 66 52 45 43 41 39 45 58 71 80 83 83 81 77 74 71 69 70 70 74 78 83 86 87 87 87 89 89 89 89 90 90 89 84 82 80 78 75 71 69 71 75 79 83 87 91 93 95 95 93 94 94 95 96 95 95 94 93 90 85 80 74 69 65 61 57 54 53 53 55 59 61 64 66 68 69 69 68 66 65 64 62 59 57 55 55 56 55 54 53 52 50 49 47 46 44 43 42 42 42 41 40 38 37 35 34 33 32 32 31 30 28 27 26 28 31 35 38 39 41 42 44 45 45 45 45 43 42 41 40 39 39 39 38 38 38 37 38 38 38 39 40 41 41 42 43 44 47 48 47 42 37 34 34 38 43 48 50 49 47 46 46 45 46 47 48 50 51 52 54 55 57 58 59 60 61 62 63 64 65 66 68 69 71 72 73 74 74 73 73 73 73 72 72 71 70 68 66 65 63 63 64 66 67 68 69 69 70 71 72 74 75 76 77 78 78 78 78 77 76 74 72 70 67 64 59 53 44 36 26 18 12 8 6 6 6 7 8 9 10 10 10 10 10 10 9 9 10 10 11 12 13 15 16 18 20 23 25 27 30 32 34 35 35 35 35 35 35 36 37 39 41 43 44 45 45 44 43 42 41 40 40 41 42 43 44 46 48 51 54 62 70 76 80 80 78 76 72 70 70 73 76 76 74 70 64 55 46 38 32 28 26 25 24 25 25 26 26 26 26 25 24 24 25 27 29 31 33 33 32 30 27 24 21 20 22 26 33 42 49 54 57 59 61 63 64 64 63 63 63 64 65 65 65 66 69 73 77 78 77 76 74 71 67 64 63 65 71 77 79 79 79 80 79 75 67 57 47 49 50 51 53 59 66 72 75 74 72 70 68 69 68 65 62 69 76 79 78 71 64 58 52 48 45 45 48 49 49 50 50 52 54 55 55 54 52 49 46 41 37 33 73 62 50 45 42 40 40 52 65 75 82 84 84 84 82 81 80 79 79 78 79 81 84 85 86 87 88 89 89 89 88 87 88 86 80 75 75 75 74 70 69 70 75 80 84 87 91 93 95 96 96 96 95 95 95 96 96 95 94 91 86 81 75 69 65 61 58 55 53 53 54 58 61 65 68 70 72 73 72 71 69 67 64 61 58 55 54 54 54 53 52 51 50 49 48 46 45 43 42 42 42 42 41 40 38 36 35 34 33 32 31 29 27 27 28 32 37 41 44 45 46 46 46 45 44 43 43 42 41 40 39 38 38 38 37 37 37 38 38 39 39 40 40 41 42 43 45 47 49 49 46 40 36 35 37 43 48 52 53 51 50 48 48 48 48 49 51 52 53 55 56 58 60 61 62 62 63 63 64 65 66 66 67 68 70 71 72 72 72 71 70 70 69 69 68 68 67 66 65 63 63 63 66 68 69 69 70 69 69 70 71 72 73 74 75 74 73 71 69 67 64 60 56 51 46 40 33 25 19 13 9 7 6 6 7 8 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 11 12 13 15 18 21 26 30 34 37 40 42 44 45 44 43 43 42 42 43 45 47 49 50 51 52 52 51 50 47 44 42 40 39 38 37 38 41 48 58 71 78 81 82 81 79 77 74 70 69 71 74 75 75 73 69 62 54 45 37 32 28 26 25 26 26 26 26 26 26 26 25 25 26 27 30 33 35 36 36 33 30 27 24 21 21 22 26 33 42 49 55 57 58 60 61 63 64 64 64 64 65 65 65 65 67 70 74 76 76 75 74 73 70 66 63 64 68 73 77 79 81 83 83 82 79 74 64 56 51 49 50 53 59 64 68 68 67 66 64 64 65 63 57 62 68 73 74 69 64 60 55 53 53 54 55 57 57 57 56 55 55 55 56 56 55 53 50 46 41 37 70 60 49 45 42 41 45 55 63 69 78 81 82 82 81 82 82 82 83 82 81 81 83 85 86 87 88 88 87 86 83 80 78 76 72 70 71 74 73 69 68 70 76 81 86 90 92 93 95 96 97 97 96 95 95 96 96 95 93 90 86 80 75 69 65 62 60 57 55 54 54 57 61 65 69 71 73 74 74 73 71 69 66 63 60 58 56 55 54 53 52 51 50 49 48 47 45 44 43 43 43 43 42 41 39 37 35 34 33 31 30 28 28 29 31 36 40 44 47 47 47 47 46 44 43 42 41 41 41 39 38 36 35 35 35 36 37 38 39 39 40 40 41 41 43 45 48 51 51 48 43 37 35 37 42 48 52 55 55 54 52 51 50 50 51 52 53 55 56 58 60 61 63 64 65 65 65 65 65 65 66 67 67 68 68 69 70 70 70 69 68 67 66 65 65 64 63 63 62 62 62 64 67 68 68 68 68 68 68 68 68 69 70 71 70 68 65 60 56 51 46 41 35 29 23 18 13 10 8 6 6 7 8 8 9 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 12 12 12 13 14 16 19 23 29 35 40 44 48 51 54 55 55 54 52 51 51 52 54 56 57 59 60 60 60 60 57 54 49 44 40 37 35 35 38 47 60 75 81 82 82 81 80 78 75 71 70 71 73 75 75 75 73 68 61 53 45 37 32 28 26 26 26 27 27 27 27 26 26 26 26 28 30 34 37 40 40 38 34 30 27 24 22 21 22 26 33 41 49 55 57 58 58 59 61 63 64 65 65 65 64 64 65 67 70 72 73 73 73 72 70 67 63 62 65 68 72 75 77 79 81 82 83 83 81 75 69 62 52 51 51 53 56 57 57 57 56 55 56 55 52 54 60 66 68 66 63 60 56 53 55 58 60 60 60 58 56 55 55 55 56 58 58 56 54 50 46 41 67 57 49 45 42 41 44 46 52 60 71 78 81 81 81 81 81 81 83 83 82 82 83 84 85 86 86 85 84 82 79 77 75 73 71 71 73 73 71 67 68 71 77 80 85 90 93 94 94 95 96 96 96 95 95 95 94 93 92 89 85 80 75 70 66 62 61 59 57 55 55 57 60 64 68 71 74 75 75 74 72 69 67 66 64 62 59 57 55 54 53 52 50 49 47 46 45 44 43 43 43 43 43 42 40 39 37 35 33 31 29 28 29 31 34 38 41 44 46 47 47 46 45 44 43 42 41 40 40 39 38 36 34 34 34 35 36 37 39 40 40 40 41 43 46 49 53 53 49 44 37 35 36 41 47 53 56 58 57 55 54 52 51 51 53 54 56 58 60 61 63 65 66 67 68 67 67 66 66 66 66 67 67 67 67 68 68 68 68 68 67 66 64 63 62 60 60 59 58 58 59 60 62 63 63 63 63 64 65 66 66 67 66 64 61 56 50 43 37 31 26 21 17 13 10 8 7 7 7 8 9 9 10 10 11 11 11 11 11 11 11 12 12 12 12 12 12 13 13 13 14 14 15 15 16 17 19 22 26 32 38 44 49 53 58 62 66 67 67 65 64 63 63 64 66 67 68 69 70 70 68 65 60 53 46 40 36 35 37 43 52 65 73 79 81 81 80 78 75 72 71 71 72 74 75 75 75 72 68 62 54 45 37 32 28 27 27 27 28 28 28 27 27 27 27 28 31 35 39 43 45 43 39 35 31 27 24 22 21 22 26 31 39 47 54 58 59 58 57 58 60 62 64 65 65 64 63 63 64 67 68 69 69 70 69 67 63 61 62 65 69 72 73 74 74 76 78 81 82 80 79 76 68 61 56 51 49 48 48 48 48 46 46 46 46 47 53 59 62 61 60 58 55 52 53 57 61 61 60 59 58 58 59 60 61 62 61 60 58 55 51 48 64 55 48 45 42 40 39 39 44 52 64 75 81 84 83 82 81 80 81 82 82 82 82 82 82 82 81 80 79 79 79 79 78 76 73 74 74 72 67 66 69 73 75 77 82 87 93 93 93 93 93 93 94 95 93 93 93 92 90 89 86 82 76 72 67 62 60 59 58 56 55 57 59 62 66 71 74 75 75 74 72 70 69 68 66 64 61 59 57 55 54 52 50 49 47 46 45 44 43 43 43 43 44 43 42 40 38 35 33 31 29 29 31 33 36 39 41 43 45 46 46 45 44 43 41 39 37 36 36 37 37 37 37 36 36 36 37 38 39 40 41 42 43 47 51 54 55 50 43 37 33 35 40 47 53 57 59 59 57 55 53 52 51 53 55 57 59 60 63 65 67 68 69 69 70 69 69 68 68 67 67 67 67 67 67 67 67 67 66 66 65 63 62 61 59 58 57 56 55 55 55 56 57 59 60 61 62 63 64 63 62 59 54 49 43 36 30 24 19 15 12 10 8 8 8 8 8 9 10 10 10 11 11 11 11 12 12 12 12 12 12 13 13 13 13 13 14 15 15 16 17 18 19 20 21 21 22 24 26 30 35 41 46 51 57 63 70 75 76 76 74 73 72 73 74 75 76 77 78 77 76 74 71 65 57 48 40 37 37 39 45 53 62 70 75 77 78 77 76 73 72 71 72 74 75 76 76 75 72 68 62 54 45 37 32 29 28 28 28 28 28 28 28 28 28 29 31 35 41 45 49 48 45 40 35 31 28 25 23 22 23 25 29 37 45 52 58 59 58 56 55 56 59 62 64 64 63 62 61 62 62 64 65 66 66 65 63 60 60 62 66 70 73 73 72 70 71 73 75 74 73 72 71 70 66 59 53 50 47 46 45 42 41 41 41 43 48 53 57 58 57 56 53 52 52 55 59 60 61 62 63 65 66 67 68 68 67 65 63 60 58 56 61 54 48 44 43 41 38 38 41 50 64 76 82 83 82 82 81 80 78 80 80 80 80 80 80 79 79 79 79 79 82 84 82 80 80 77 76 75 68 68 69 72 73 76 81 87 93 94 93 92 90 92 94 96 95 95 94 93 90 90 88 83 77 75 71 66 60 60 59 59 57 58 59 62 66 73 76 77 76 74 73 72 72 69 66 64 62 61 59 56 54 52 50 48 47 46 45 44 44 43 43 43 44 44 43 41 39 36 33 31 30 31 33 35 38 40 42 43 43 44 44 43 41 38 35 33 31 30 30 32 34 36 38 39 39 40 40 41 42 43 44 46 49 52 54 52 47 40 35 33 35 41 47 54 59 60 60 58 56 54 53 52 53 55 57 60 62 64 66 67 69 70 71 72 72 72 72 71 70 70 69 68 68 67 67 66 66 65 64 63 62 61 60 59 58 57 57 56 56 56 57 58 59 61 63 63 63 61 57 52 47 40 34 28 22 18 15 12 10 9 8 8 8 9 9 10 10 10 11 11 11 11 12 12 12 12 13 13 13 13 13 13 13 14 14 15 16 17 18 20 21 23 25 27 28 28 29 29 30 31 33 36 41 47 53 60 68 76 79 80 78 77 77 77 78 80 81 82 82 81 80 78 77 73 66 58 47 40 37 38 42 49 56 63 69 72 74 75 75 73 72 72 74 75 76 77 77 76 75 72 68 62 54 45 37 33 30 28 28 29 29 29 29 29 29 29 31 36 42 47 52 53 51 47 41 36 32 29 26 24 22 23 25 29 35 42 50 56 59 59 57 54 54 55 58 61 63 63 62 61 60 60 60 61 62 62 61 59 58 59 62 67 71 73 73 71 70 70 71 70 68 65 63 70 72 69 62 57 53 51 48 44 41 40 40 43 48 52 56 57 56 53 50 50 51 55 59 61 63 64 66 68 70 72 74 73 72 71 69 67 66 64 58 51 46 45 46 46 43 45 50 59 70 78 81 81 79 79 78 78 77 77 78 80 81 82 83 83 83 82 80 79 81 85 85 85 86 84 81 77 71 69 70 71 72 76 81 86 92 93 92 90 88 90 93 97 97 97 96 94 91 91 89 86 79 79 77 73 64 63 64 65 64 65 66 68 70 76 80 80 77 74 72 70 69 68 68 66 64 61 59 56 54 52 51 48 46 45 45 44 43 43 43 43 43 43 42 41 38 35 33 32 32 32 34 35 37 39 39 39 39 39 38 36 34 32 30 29 28 27 28 29 32 34 36 37 39 40 41 43 45 47 48 50 52 51 48 43 37 33 33 35 41 47 53 58 61 60 58 56 54 53 53 54 55 58 60 62 65 66 68 69 70 71 72 73 74 75 75 75 74 73 71 70 69 68 67 66 65 63 62 61 60 59 59 58 58 58 59 59 60 61 61 62 63 63 61 58 53 46 40 33 27 22 18 14 12 10 9 9 9 9 9 9 10 10 10 10 11 11 11 11 12 12 12 13 13 13 13 13 13 13 13 13 14 14 15 16 18 19 21 24 26 29 32 34 35 36 37 37 37 35 33 33 34 41 48 56 64 71 77 80 81 80 80 79 80 81 82 83 83 82 81 80 79 77 72 65 55 45 39 37 40 47 54 61 66 68 70 71 72 71 72 74 77 78 78 78 78 78 77 75 73 68 62 54 46 39 34 31 29 29 30 30 30 30 30 31 33 37 43 49 55 57 56 53 48 42 37 33 30 27 25 23 23 25 28 32 38 47 54 59 61 59 56 53 53 56 59 62 63 63 61 59 58 57 58 58 58 57 56 56 58 63 67 71 73 73 72 72 71 69 67 64 59 67 73 75 69 63 60 57 54 49 46 44 44 48 52 57 60 60 57 53 49 48 50 54 62 65 67 68 68 69 71 73 74 74 74 73 73 72 71 70 55 49 45 51 57 60 57 56 58 61 65 69 71 71 70 71 74 76 78 79 81 83 85 86 87 87 86 85 83 82 83 86 87 88 89 88 85 80 73 72 73 74 76 78 82 86 88 91 91 90 87 88 92 95 96 98 97 95 92 92 91 90 86 84 83 80 73 71 72 74 74 74 74 75 75 78 81 84 83 77 75 73 69 69 69 68 64 61 59 57 56 53 51 49 48 47 46 44 43 42 42 43 43 42 41 40 38 36 34 32 32 33 34 34 34 33 33 32 32 31 30 29 27 27 26 26 26 27 28 29 30 31 33 34 36 37 39 41 44 46 47 47 46 43 38 34 31 33 36 40 45 50 55 58 60 58 56 55 54 53 54 56 58 61 63 65 67 69 70 71 72 73 74 75 76 77 78 77 77 75 74 72 70 68 67 66 64 63 62 61 60 60 60 61 62 62 63 63 63 63 62 60 57 53 48 42 35 29 23 19 16 13 12 10 10 9 9 9 9 10 10 10 10 10 11 11 11 11 12 12 12 13 13 13 13 13 13 13 13 13 13 13 13 14 16 18 20 22 25 28 31 35 38 41 43 44 46 46 46 43 38 35 34 40 49 58 65 70 75 79 82 81 81 80 79 80 80 81 81 81 81 81 80 78 75 69 60 50 43 39 39 45 52 59 64 66 68 68 68 68 71 75 80 80 80 78 78 78 78 77 76 73 68 63 56 48 42 37 33 32 31 31 31 31 32 33 35 39 44 51 57 60 60 59 54 49 43 39 35 31 28 26 24 24 25 27 30 36 43 51 58 60 60 57 53 52 54 58 62 63 63 61 59 57 56 55 54 53 53 52 54 58 62 66 69 70 71 72 71 69 67 64 60 67 75 79 72 66 65 64 61 57 54 52 53 57 61 64 66 64 60 55 51 51 51 56 67 71 72 73 73 72 71 72 73 73 73 71 70 71 71 71 52 48 48 57 64 67 63 60 59 58 58 58 59 60 62 66 71 77 80 82 83 84 86 87 88 88 88 87 85 84 86 87 87 87 87 86 83 80 75 77 77 78 77 79 82 85 86 87 88 87 85 86 89 92 94 97 97 96 93 92 91 91 89 88 87 85 80 77 77 78 79 78 78 78 80 83 87 91 91 86 83 80 76 73 70 68 64 61 59 57 56 55 53 51 49 48 46 44 42 42 42 42 43 42 41 40 39 36 33 31 30 30 29 28 27 26 26 26 26 25 25 25 25 25 25 26 26 27 27 28 29 30 32 33 35 35 36 38 40 41 40 39 36 33 32 31 33 36 40 44 49 53 56 58 58 57 56 55 54 55 56 58 61 64 66 68 70 71 72 73 74 75 76 78 79 79 80 80 79 77 75 73 71 69 68 66 65 64 64 63 63 64 64 64 65 64 63 62 60 57 53 49 44 39 33 28 23 19 17 14 13 12 11 10 10 10 10 10 10 10 10 11 11 11 11 12 12 13 13 13 13 13 13 13 12 12 11 11 11 11 11 11 12 13 16 18 21 25 29 33 37 40 43 46 49 51 54 56 57 55 50 44 41 48 58 68 73 75 77 80 82 82 81 80 79 79 79 79 79 79 80 81 81 79 76 72 64 54 46 41 40 44 50 57 63 66 67 67 67 67 69 74 81 81 80 79 77 78 78 79 78 76 73 70 65 59 53 46 41 38 35 34 34 34 34 35 37 42 47 52 58 62 64 63 60 55 50 45 41 37 33 30 27 26 25 25 26 29 34 40 48 55 60 60 58 54 53 54 57 61 63 64 62 59 56 54 52 51 51 50 51 54 57 60 64 67 69 70 71 70 68 65 62 68 76 79 71 68 68 70 71 68 66 65 65 68 69 70 70 67 62 58 55 56 59 64 75 78 75 71 75 73 72 72 74 74 73 71 69 68 68 69 51 49 50 57 62 65 66 65 65 64 63 61 61 62 63 67 74 80 84 83 83 84 86 88 89 89 87 85 84 84 84 85 85 84 85 82 79 77 75 76 77 78 78 80 81 82 83 85 85 85 83 83 86 88 88 94 97 97 96 94 92 92 92 91 89 85 83 81 81 82 82 84 86 89 93 93 95 96 97 95 92 87 81 76 72 69 65 62 60 57 55 56 55 53 51 48 45 43 43 43 42 42 42 42 41 40 39 36 32 28 26 25 24 23 23 23 23 23 23 23 24 25 26 26 26 26 27 28 28 29 30 31 33 34 35 35 34 34 34 33 32 30 30 30 32 35 38 41 44 48 52 56 59 60 59 58 57 56 56 57 59 61 64 66 68 71 73 74 75 75 76 77 78 79 80 80 81 80 79 78 76 74 73 71 69 68 67 66 66 65 65 65 65 64 62 60 58 55 51 46 42 37 33 29 25 21 18 16 14 13 12 11 10 10 10 10 10 10 10 11 11 12 12 13 13 14 14 14 14 14 13 13 12 11 10 10 9 9 9 9 9 10 11 12 14 18 21 27 32 37 42 44 46 48 51 57 63 68 70 70 66 60 54 57 66 76 81 82 84 84 84 83 83 82 82 81 81 82 82 82 83 82 82 80 77 73 66 56 49 43 41 45 50 56 62 66 68 68 68 68 70 73 78 80 80 79 77 77 78 79 79 79 77 75 72 68 63 57 51 46 43 40 38 38 38 39 41 45 50 55 60 65 66 66 64 60 56 51 47 43 39 36 33 30 27 26 26 26 28 31 36 44 52 58 61 59 56 53 53 57 61 64 65 63 60 56 53 51 50 49 49 51 53 56 60 64 67 69 70 70 69 67 65 69 76 80 75 69 69 74 77 78 78 77 77 77 76 75 72 68 64 60 59 61 64 70 80 83 76 68 68 69 71 73 74 74 72 70 69 68 68 68 49 48 50 55 60 65 69 71 73 74 73 73 72 72 72 74 77 80 82 81 80 80 82 85 85 85 84 83 83 84 84 83 82 81 80 78 76 75 76 76 77 79 83 86 85 82 80 80 81 81 80 81 83 86 89 94 97 98 97 98 97 96 96 95 93 91 90 90 92 93 92 95 96 97 98 97 98 98 99 98 94 89 82 76 72 68 64 62 60 58 55 55 54 52 50 47 45 44 44 43 42 42 42 41 40 39 37 34 30 27 25 25 25 24 24 23 23 22 23 24 25 26 28 28 28 28 29 29 30 31 31 32 33 33 32 31 30 30 29 29 29 29 31 34 37 40 43 45 48 51 55 59 60 61 60 59 58 57 58 60 61 64 66 68 71 73 74 75 76 76 77 78 78 79 80 80 80 80 79 78 76 75 74 72 71 69 68 67 66 65 64 63 61 59 56 52 49 44 40 36 32 29 25 22 19 17 15 13 12 11 11 11 10 10 10 11 11 11 12 12 13 14 14 15 15 15 15 15 14 13 12 11 10 9 8 7 7 7 7 7 8 9 10 11 15 19 26 35 43 50 55 57 57 58 61 67 72 76 78 78 76 73 68 63 65 72 82 84 84 85 84 84 84 84 84 83 83 83 83 83 82 82 82 80 77 72 65 57 50 45 43 46 50 56 63 67 68 69 69 71 73 76 78 80 81 80 79 77 77 78 79 80 79 77 75 73 69 66 61 57 52 48 45 44 43 43 45 48 53 58 63 67 69 69 67 64 61 57 53 50 46 43 39 36 33 30 28 27 26 27 29 33 40 48 56 59 59 56 52 53 57 61 65 66 64 61 57 53 51 49 49 50 51 54 57 62 65 68 69 70 70 70 70 72 77 81 81 72 71 73 77 80 82 83 83 83 81 79 75 71 67 64 64 66 69 73 80 84 81 75 69 70 73 74 74 73 71 70 69 68 67 67 48 48 51 55 60 65 69 73 76 77 78 79 79 79 79 79 79 79 79 77 77 77 78 80 80 79 80 79 79 78 76 75 73 73 76 79 82 83 83 80 78 78 80 85 87 87 86 83 80 77 76 80 83 85 84 90 94 97 97 98 98 98 98 97 97 97 97 97 97 96 96 96 96 96 97 97 98 98 98 97 93 88 81 75 70 66 62 61 61 61 59 55 53 52 50 48 46 45 44 43 42 41 40 39 37 35 33 30 28 27 27 27 27 26 26 25 24 24 24 26 27 29 30 31 31 31 31 31 31 32 32 32 32 32 31 30 29 29 29 29 31 33 36 39 42 45 48 50 52 55 58 60 61 61 60 59 59 59 60 62 64 66 68 71 73 74 76 76 77 77 77 78 78 79 80 82 82 81 79 78 76 75 74 73 71 70 68 67 65 63 60 57 54 50 46 43 39 35 31 29 26 22 19 17 15 14 12 12 11 11 11 11 11 11 12 12 13 13 14 15 16 16 17 17 16 16 15 14 13 11 10 9 7 7 6 6 6 6 7 7 7 8 8 11 18 29 42 53 61 66 70 72 72 73 74 77 79 80 80 80 79 78 76 72 67 64 67 73 78 82 84 84 84 84 84 84 83 82 82 82 82 82 81 79 76 71 64 56 50 46 44 46 51 57 64 68 70 71 71 74 76 78 79 81 82 82 80 79 78 78 79 79 79 78 77 76 74 72 69 66 62 59 55 53 51 50 51 54 58 62 67 70 71 71 70 68 65 62 59 56 53 50 47 43 40 37 34 31 29 27 26 27 31 36 45 53 58 59 56 53 53 56 62 66 67 65 61 57 53 51 50 50 51 53 55 60 63 66 67 69 70 71 71 72 75 79 83 81 79 78 78 80 82 83 83 83 83 82 80 77 74 71 70 72 74 75 77 81 82 82 78 77 77 78 78 76 75 73 71 69 68 67 49 50 53 56 60 64 67 70 73 76 77 78 78 79 79 81 82 82 82 78 76 76 75 75 74 74 75 75 73 70 68 67 66 68 72 81 86 89 91 89 85 82 82 85 88 90 91 88 84 80 79 82 84 84 81 83 90 95 96 97 98 98 97 96 96 96 97 97 97 96 96 97 97 97 97 97 98 98 98 96 91 85 78 72 68 65 63 63 63 64 64 59 54 51 48 47 46 45 44 42 40 38 37 35 33 31 29 28 28 28 28 28 28 28 27 27 27 27 27 27 29 30 31 31 32 32 33 33 34 34 34 34 34 34 33 32 32 31 32 33 35 37 41 44 47 50 53 55 57 59 60 60 60 60 60 59 60 60 62 64 66 68 71 73 74 76 77 77 78 78 78 78 80 82 84 85 84 83 81 78 77 75 74 73 71 69 67 64 61 58 54 50 46 42 38 35 31 28 25 23 20 17 15 14 13 12 12 11 11 11 11 12 12 13 14 14 15 16 17 18 18 18 17 16 15 14 12 11 9 8 7 6 5 5 5 5 6 6 6 6 6 6 7 14 27 42 56 63 69 74 77 80 81 81 81 82 81 81 81 81 81 81 80 77 74 69 63 60 61 66 72 77 81 84 84 84 84 83 83 83 82 81 80 77 73 67 60 54 49 46 45 47 52 58 65 70 72 74 74 76 77 79 80 81 82 82 82 81 80 79 78 79 79 78 78 78 77 76 74 72 70 68 65 63 61 59 59 61 64 68 71 73 73 73 72 70 68 66 64 62 60 58 55 52 49 46 43 39 36 33 30 28 27 29 33 41 50 56 59 56 54 53 55 61 66 68 66 63 59 55 52 51 51 52 54 58 62 65 66 66 68 69 69 70 71 74 76 80 82 83 83 83 83 83 82 82 82 82 81 80 79 77 76 77 77 77 76 77 79 79 79 79 79 79 78 77 76 74 72 71 69 68 51 52 54 57 60 62 65 68 70 73 76 76 77 78 79 81 83 82 80 76 75 75 76 74 73 73 74 71 69 68 68 65 63 63 68 80 88 93 94 94 92 90 89 89 88 88 89 87 84 81 80 82 83 81 77 78 84 90 92 94 96 96 95 95 95 95 96 97 97 97 96 97 97 97 96 96 96 96 94 91 86 80 74 69 67 66 66 65 64 64 63 60 56 52 49 46 45 44 42 40 37 35 33 32 31 31 31 31 31 30 30 30 30 29 29 28 28 27 27 27 27 28 29 31 32 33 33 33 34 35 36 37 38 38 37 36 35 34 34 35 38 40 44 47 50 53 55 57 59 60 60 60 60 60 60 60 61 62 64 66 68 70 72 74 76 77 77 78 78 78 79 82 84 86 87 86 85 83 81 79 77 75 74 72 69 66 63 60 56 52 48 43 40 36 32 29 26 23 20 18 16 15 14 13 12 12 12 12 12 12 13 14 15 16 16 17 18 18 18 18 17 16 15 13 12 10 9 8 7 6 5 5 4 4 5 5 5 5 5 5 5 5 7 17 33 48 59 64 70 75 79 82 83 83 83 82 81 80 79 79 80 80 80 80 80 78 75 69 63 58 57 62 68 75 81 83 83 83 83 82 81 80 77 74 69 63 58 53 49 47 46 48 53 59 65 70 73 75 76 77 78 79 81 82 82 82 82 82 81 79 79 78 78 79 79 79 78 78 77 76 75 73 71 70 68 68 68 69 71 73 74 75 74 74 72 70 69 68 67 66 65 64 62 60 59 56 53 49 46 42 38 35 31 29 28 32 38 46 55 58 57 54 51 55 60 65 68 67 64 60 56 54 53 53 54 57 60 63 65 65 66 66 67 68 68 68 69 74 77 80 82 82 82 82 81 80 79 78 78 77 77 76 75 75 75 75 75 75 75 75 75 76 76 75 75 74 73 72 71 70 69 69 51 52 53 55 58 60 62 65 70 75 78 80 81 82 82 81 78 75 73 72 75 79 79 75 74 74 75 70 68 68 69 67 64 63 68 79 86 90 93 93 94 94 93 89 86 84 84 83 81 79 78 79 78 77 74 74 78 85 91 94 95 95 96 96 96 96 96 95 96 96 96 96 96 96 94 91 90 88 85 84 83 79 74 69 68 68 67 65 64 63 60 57 53 50 47 45 43 42 41 38 36 33 32 31 32 33 34 34 35 34 34 33 33 32 31 30 28 27 26 26 26 25 25 26 27 29 31 32 34 35 36 38 40 40 40 38 37 36 36 38 41 44 47 50 53 56 58 60 61 62 62 62 62 61 61 62 63 65 66 68 70 72 74 76 77 78 78 79 79 81 83 86 88 89 88 86 85 83 82 79 77 74 72 70 67 63 59 54 50 46 42 38 34 30 27 24 21 19 17 16 15 14 13 13 13 13 13 13 14 15 16 17 18 18 19 19 19 18 18 16 15 13 12 10 9 8 7 6 6 5 5 5 5 5 5 5 5 4 5 5 6 6 7 13 22 33 44 52 57 63 69 72 75 78 79 79 77 73 68 63 63 65 69 72 75 77 79 78 75 69 61 55 54 59 67 76 81 83 83 81 80 77 74 70 66 61 56 52 49 47 47 50 54 60 65 69 72 74 76 76 78 80 82 81 81 82 82 82 81 80 79 79 79 79 79 79 79 79 79 79 78 78 76 76 75 75 75 76 76 76 76 75 75 73 72 71 69 69 68 68 68 68 68 67 66 64 62 59 55 51 48 43 39 35 31 29 31 35 43 52 57 58 55 53 54 58 64 67 67 65 62 59 56 54 54 56 58 61 63 65 66 66 65 64 65 66 65 66 69 73 76 78 79 78 77 76 75 75 74 74 74 73 73 73 72 72 71 72 72 72 71 71 71 71 71 70 70 69 68 68 68 68 51 52 53 55 57 59 62 65 72 78 81 80 81 83 82 76 72 69 70 76 80 81 77 74 74 74 75 72 69 69 71 71 68 66 68 77 83 87 90 93 93 92 91 86 83 82 81 78 77 76 77 77 76 75 74 73 78 85 93 93 94 95 96 96 96 95 94 92 90 89 88 88 88 87 85 83 81 80 78 79 80 79 74 71 69 68 67 66 64 61 58 53 48 45 44 43 42 41 40 38 36 35 34 34 35 36 37 38 38 38 38 37 36 35 34 33 32 31 30 31 32 33 34 35 35 35 35 36 37 38 40 41 42 42 42 41 40 40 40 41 44 46 50 53 56 59 61 62 64 64 65 65 65 65 65 65 66 68 69 71 73 75 77 78 79 80 80 81 83 85 88 90 90 89 88 86 84 83 81 78 76 73 70 67 63 58 54 49 45 41 37 34 30 27 23 21 18 17 15 14 14 14 13 14 14 14 15 16 17 18 19 19 20 20 20 19 18 16 15 13 11 10 9 8 7 6 6 6 6 6 6 5 5 5 5 5 5 5 5 5 6 7 7 8 10 12 15 19 24 28 34 39 46 53 60 65 65 60 54 47 41 37 36 40 47 55 62 65 67 66 62 53 47 45 49 62 74 82 82 80 78 76 73 69 64 60 55 51 49 48 48 51 55 60 65 69 72 74 74 76 79 81 82 81 81 82 82 82 81 80 79 79 79 79 78 78 79 79 80 81 81 81 81 80 80 80 79 79 78 77 76 75 74 73 72 70 69 69 68 69 69 70 70 70 70 69 67 65 62 59 55 51 47 43 38 34 31 30 33 41 50 56 59 55 53 52 54 60 65 67 67 65 62 59 56 56 57 58 60 63 65 66 65 64 63 63 63 63 64 65 68 71 73 73 72 72 72 72 72 72 72 72 72 73 72 71 70 69 69 69 68 68 68 68 68 67 66 66 66 66 66 66 51 52 54 56 60 64 68 68 72 75 75 73 73 73 72 68 67 70 76 81 79 75 72 73 74 75 76 76 74 74 77 77 74 72 71 77 82 87 90 91 91 91 89 84 82 82 78 76 77 78 79 78 78 77 77 74 77 85 93 94 94 95 96 96 95 93 87 84 80 77 75 75 75 75 74 74 75 74 72 71 72 73 73 72 69 67 65 65 63 61 57 51 45 41 41 41 42 42 41 40 39 38 37 37 38 39 40 41 41 41 41 40 40 38 37 36 36 35 36 37 40 42 43 43 43 43 43 43 43 44 45 47 48 49 50 50 49 47 46 46 47 48 51 54 56 59 62 63 65 66 67 68 68 68 68 69 70 71 73 75 76 78 80 81 82 83 85 86 88 90 91 91 90 88 87 85 84 82 80 76 73 70 67 63 58 54 49 44 41 37 34 31 27 24 20 18 16 15 14 14 14 14 15 15 16 17 18 18 19 20 21 21 20 19 18 16 15 13 11 10 9 8 7 6 6 6 6 6 6 6 6 6 5 5 5 5 5 5 5 5 5 5 6 6 7 7 6 6 6 7 9 13 19 26 30 33 36 36 34 30 26 21 17 17 19 23 27 31 35 37 39 38 36 35 36 50 66 78 81 79 77 75 72 68 63 59 55 52 51 51 52 55 59 63 67 71 74 75 75 76 79 81 82 82 82 82 82 82 82 81 80 80 80 79 79 79 79 80 81 82 83 83 83 83 82 82 81 80 78 77 75 74 73 72 70 69 68 68 68 68 69 70 70 71 71 71 70 68 66 63 60 56 52 49 46 41 36 32 30 33 39 47 56 58 57 53 51 52 57 61 66 68 67 65 62 60 58 57 57 58 60 62 64 65 65 63 62 62 62 63 64 66 67 68 69 69 68 68 69 69 70 71 72 72 71 70 69 69 68 68 67 67 67 67 66 65 64 64 63 63 63 63 47 47 48 51 57 62 65 63 62 63 62 60 60 62 64 64 68 73 79 79 76 72 71 78 81 81 81 81 80 79 81 83 81 78 77 76 79 84 89 89 89 88 84 80 78 78 79 79 82 84 83 80 79 80 81 80 83 87 94 94 95 95 95 95 93 87 79 76 73 71 67 66 66 65 65 66 68 69 68 65 66 68 69 68 67 66 63 63 62 60 57 50 44 41 41 42 43 43 44 43 43 42 41 41 41 42 43 43 43 43 43 42 41 40 39 38 37 37 37 38 40 43 45 46 46 46 47 47 48 49 51 52 55 57 58 59 57 55 53 51 51 51 53 55 57 60 62 64 66 68 69 70 70 71 72 73 74 75 77 79 81 83 84 86 87 89 90 91 92 93 92 91 89 87 86 85 83 81 77 73 70 67 63 59 54 50 45 41 37 34 31 28 25 21 18 16 15 15 15 15 15 16 17 18 18 19 20 21 21 21 21 20 18 17 15 13 11 10 8 7 7 6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 5 5 4 4 4 4 4 5 5 5 6 5 5 4 4 4 5 6 7 9 10 12 14 15 15 13 10 8 8 9 10 11 12 13 14 17 20 25 33 48 62 72 78 78 77 75 71 67 62 59 56 55 55 56 57 60 64 68 72 75 77 77 77 79 81 82 82 82 83 83 83 83 83 83 83 82 82 81 81 81 82 82 83 83 84 84 84 84 83 83 82 80 79 77 75 73 72 70 69 68 67 66 66 67 68 68 69 70 71 72 71 70 68 67 64 62 59 56 52 48 43 38 33 31 32 37 45 53 58 59 56 52 51 52 56 61 64 66 67 65 64 61 59 58 57 58 59 61 62 63 62 62 62 62 62 63 64 66 67 67 66 66 66 67 67 68 70 70 69 68 68 67 66 65 65 64 64 64 63 62 61 60 60 60 60 61 39 37 36 36 39 42 44 45 47 49 50 51 55 60 65 68 72 77 80 78 74 73 79 85 87 87 84 84 85 85 85 86 85 83 83 82 82 84 86 87 87 85 79 76 75 76 79 81 81 81 80 78 79 82 83 85 88 90 94 94 95 95 95 95 91 84 77 75 72 69 66 66 66 66 63 63 64 66 65 63 62 63 64 63 63 62 61 60 58 57 55 50 46 43 43 45 46 47 48 48 47 45 44 44 44 44 45 45 45 45 44 44 43 42 41 40 40 40 39 40 41 42 44 46 47 48 49 50 51 52 53 55 58 60 62 63 63 61 59 56 55 54 55 57 59 61 64 66 68 70 72 73 74 76 77 78 79 80 81 83 85 87 89 91 93 93 94 94 93 93 91 90 88 87 85 84 81 77 73 69 66 62 59 54 50 46 42 38 34 30 26 25 22 19 17 16 16 15 16 16 17 18 19 20 21 22 22 22 21 20 19 17 15 13 11 9 8 7 7 6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 5 4 4 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 4 4 5 6 7 9 11 19 23 24 21 20 22 24 25 23 20 15 11 11 13 21 36 57 69 74 77 77 76 73 69 66 63 61 61 60 61 62 63 66 70 74 77 79 80 80 80 81 82 83 83 83 83 84 84 84 84 83 83 83 83 83 83 83 83 83 84 84 84 84 84 84 83 83 82 81 79 77 75 73 72 70 68 67 66 65 65 65 66 67 67 68 69 71 72 72 72 71 70 68 65 63 60 55 50 45 38 34 32 32 36 43 51 58 62 60 54 50 49 51 55 60 65 67 67 66 65 63 61 59 58 58 58 59 60 60 61 61 60 60 61 62 64 64 64 64 64 64 64 65 66 66 65 64 63 63 62 61 60 60 59 59 58 58 58 58 58 58 59 60 30 29 28 28 29 32 35 40 44 49 52 56 61 66 71 74 76 77 75 75 75 77 86 90 92 92 91 89 88 86 85 87 86 85 85 87 87 87 86 85 84 82 79 76 77 79 84 82 78 76 75 78 82 85 88 91 93 93 94 95 95 95 95 93 88 83 79 76 73 71 71 72 73 72 68 65 64 63 61 60 60 60 61 61 61 60 59 57 56 55 54 52 50 47 46 48 49 51 52 52 51 49 48 47 47 47 47 47 47 46 46 46 45 44 43 42 42 42 43 43 44 45 46 48 49 50 51 52 53 54 55 57 60 62 65 66 67 66 63 61 58 57 57 59 61 63 66 69 71 73 75 77 79 81 82 83 84 85 86 87 89 92 94 94 95 94 94 94 93 92 91 89 88 86 84 81 77 73 69 65 62 59 55 51 47 42 38 34 30 26 24 23 21 18 17 16 17 17 18 19 20 21 22 23 23 23 22 20 18 17 15 13 11 9 8 7 7 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 4 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3 4 4 5 5 6 7 8 10 13 22 28 32 37 48 54 57 53 46 37 28 21 17 16 23 39 63 76 80 79 77 75 72 70 69 68 68 68 68 68 68 70 73 76 79 80 81 82 82 82 83 83 83 84 84 84 84 84 84 83 83 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 83 82 81 79 77 75 73 72 70 68 67 66 65 65 64 64 65 65 66 67 69 71 72 73 74 73 72 70 69 67 63 59 53 46 40 35 33 32 35 42 50 58 62 61 58 52 49 49 51 55 59 62 65 67 67 66 64 62 60 59 58 58 59 59 58 57 56 56 57 58 59 60 60 60 60 60 60 60 60 59 58 57 57 57 56 55 55 55 55 57 58 59 59 59 59 60 60 24 26 28 33 39 46 55 61 66 68 70 71 72 73 75 78 77 75 74 80 82 84 89 91 92 93 93 93 93 93 90 90 89 86 85 84 85 85 82 79 78 80 83 85 88 90 90 84 80 77 80 85 89 92 93 94 94 94 94 95 95 95 94 91 86 82 79 77 75 75 77 79 78 77 73 70 68 65 61 60 59 60 63 63 61 59 57 56 55 54 54 53 52 51 49 49 50 51 52 53 53 52 51 49 48 48 48 48 48 48 48 47 46 45 44 43 43 43 44 46 48 49 50 51 52 53 54 55 55 56 57 59 62 64 67 69 70 69 68 66 63 62 61 62 64 66 68 71 74 76 79 82 84 86 87 89 89 90 91 92 93 94 95 95 94 94 93 93 92 91 89 88 86 84 81 77 73 69 65 62 60 56 53 49 44 39 34 30 26 23 22 21 19 18 17 18 18 20 21 22 23 24 24 23 22 21 19 17 14 12 10 9 8 7 7 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 4 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3 4 5 6 6 7 7 8 9 9 10 11 13 14 18 26 39 54 65 71 70 63 53 42 32 26 24 29 46 67 77 81 80 79 77 76 76 76 76 75 74 74 74 75 76 78 79 81 82 82 82 82 82 82 82 82 83 83 83 83 83 83 83 83 83 83 83 83 84 84 84 84 84 84 84 84 84 84 84 83 82 81 79 78 76 75 73 72 70 69 68 67 66 65 65 64 64 64 65 67 69 71 73 74 74 74 73 72 71 69 66 61 56 49 43 38 34 33 36 41 49 56 61 63 61 56 51 48 47 49 52 56 60 63 65 66 66 65 63 62 61 60 59 58 56 54 53 53 54 55 55 56 57 57 56 56 56 55 54 53 53 52 52 52 53 53 54 56 59 61 62 62 61 60 60 60 29 35 43 54 65 75 83 86 86 85 84 84 82 80 80 83 80 78 85 90 86 81 84 88 91 92 91 91 93 94 92 88 85 84 84 81 81 82 80 75 78 84 89 93 94 92 86 81 79 80 86 91 93 94 94 94 93 93 93 93 93 93 92 89 86 83 81 79 79 80 82 83 82 80 79 74 72 70 67 64 62 63 66 63 60 57 56 55 55 55 55 54 54 53 52 51 50 50 51 52 54 54 54 51 50 48 47 48 48 48 48 48 47 47 46 45 44 44 45 47 49 51 53 54 55 55 56 57 57 58 60 61 64 66 69 71 72 72 71 70 68 67 67 67 68 70 72 75 78 81 84 86 89 90 92 93 94 94 95 95 95 95 95 94 93 93 93 92 91 89 87 86 84 81 78 74 70 66 64 61 58 55 51 46 41 35 30 26 24 22 20 19 18 18 19 20 22 23 24 24 24 24 23 21 19 17 14 12 10 9 8 7 7 7 7 7 7 7 7 6 6 6 6 6 5 5 5 5 5 4 4 4 4 3 3 3 3 3 3 2 2 3 3 3 4 5 6 7 8 10 11 12 13 14 15 15 16 16 16 17 20 24 30 41 53 64 72 70 63 53 43 35 34 39 54 69 78 81 82 82 82 82 81 80 79 78 77 76 76 76 77 78 79 80 81 82 82 82 82 82 82 82 82 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 84 84 84 84 84 84 83 83 82 81 80 80 79 77 76 75 74 73 72 71 69 68 67 66 65 66 67 69 71 73 74 76 76 75 75 74 72 70 67 64 59 52 46 39 35 35 36 41 48 54 60 63 62 59 55 50 47 46 47 50 53 57 61 64 66 66 67 66 65 64 62 60 58 56 56 55 55 55 56 56 56 55 54 53 53 53 53 52 51 52 53 55 56 57 59 62 63 62 60 57 55 54 53 55 63 72 80 87 91 91 90 87 85 86 89 88 86 89 85 82 82 89 89 80 73 77 85 88 88 86 88 90 92 90 85 83 83 85 80 81 83 80 78 84 91 94 95 90 84 78 75 75 78 85 89 90 90 91 89 88 87 88 89 89 89 90 90 88 86 85 85 85 85 85 83 82 81 80 75 73 72 70 69 68 66 65 62 59 56 55 55 55 55 55 55 55 54 53 51 50 50 51 53 55 57 57 54 52 50 48 48 48 48 48 48 48 47 47 47 47 47 48 49 51 53 55 56 57 58 58 58 59 60 62 64 66 68 71 73 74 75 74 73 73 72 72 72 73 75 77 80 83 85 88 91 93 94 95 96 96 95 95 95 95 94 94 93 93 92 91 90 89 87 85 83 80 78 75 71 68 65 63 60 56 51 46 41 36 31 26 23 21 20 19 19 20 21 23 24 25 25 25 24 23 21 19 17 14 12 10 9 8 7 7 7 7 7 7 7 7 7 7 6 6 6 6 5 5 5 5 4 4 4 4 3 3 3 3 3 3 3 3 3 3 4 5 6 7 9 10 13 15 17 20 22 23 25 26 27 27 27 27 26 26 26 27 35 46 58 69 71 69 63 56 49 46 49 57 68 76 81 82 83 83 83 82 81 80 79 78 77 76 75 74 74 74 75 76 78 80 81 82 82 82 82 82 82 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 82 82 81 80 79 79 78 77 75 74 72 70 69 69 69 70 72 74 76 77 77 77 76 76 75 73 71 69 66 61 55 48 41 37 35 36 41 47 53 59 62 63 62 58 52 47 43 42 44 47 51 56 61 64 67 68 69 69 68 67 66 64 63 61 60 60 60 61 60 59 57 56 57 58 58 56 55 56 58 60 61 62 63 63 60 56 51 46 43 43 44 82 87 90 92 93 93 87 85 85 87 90 91 92 91 92 85 80 81 88 84 77 74 80 88 91 90 88 89 92 93 93 91 91 92 92 86 87 89 90 90 92 94 94 92 85 79 77 76 76 77 80 84 85 86 86 85 83 84 86 88 89 89 91 93 93 91 89 89 88 87 84 81 77 74 74 72 71 72 72 72 71 68 64 61 59 57 56 55 54 54 54 54 54 53 52 51 51 52 55 57 60 62 64 62 59 55 52 50 48 47 47 47 48 48 49 50 50 51 52 53 54 55 56 57 58 59 59 60 61 62 64 67 69 71 74 76 77 78 78 77 77 76 76 77 78 80 82 84 86 89 92 93 95 96 96 96 95 95 95 94 94 94 93 93 92 91 89 88 87 85 83 80 78 75 73 70 67 63 60 56 51 45 39 35 30 26 23 21 20 20 21 22 24 25 26 26 26 25 23 21 19 17 15 12 11 9 8 8 7 7 7 7 7 7 7 7 7 7 6 6 6 6 5 5 5 5 4 4 4 4 3 3 3 3 3 3 3 4 4 5 6 7 9 11 13 16 18 22 25 28 31 34 36 38 40 41 42 42 42 40 38 35 34 38 48 60 73 76 76 74 70 65 61 61 66 73 78 81 82 83 83 83 82 81 81 80 80 79 78 76 75 73 72 71 72 74 76 78 80 82 82 83 83 82 82 82 82 81 82 82 82 82 82 82 82 82 82 82 82 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 82 82 82 81 80 79 77 76 75 74 74 74 75 76 78 79 78 78 77 77 76 76 74 73 71 68 63 57 49 42 37 35 37 41 47 52 57 61 63 63 59 54 48 43 41 40 41 45 50 55 60 64 68 70 72 72 72 71 70 68 68 68 68 67 67 66 65 64 64 65 64 62 61 61 64 66 66 65 62 59 52 44 38 33 34 36 40 92 92 92 93 93 91 87 87 88 91 93 93 93 92 91 84 82 83 89 84 82 83 85 91 94 94 93 94 95 96 95 94 93 92 91 89 90 91 92 90 89 88 88 87 85 84 85 85 84 82 80 83 86 89 90 90 89 87 88 91 93 93 93 95 95 93 91 89 88 85 81 76 71 68 69 69 70 71 72 70 69 67 63 61 60 58 58 56 55 54 54 53 52 51 50 50 51 53 57 60 62 65 68 70 68 65 59 54 50 48 47 47 48 50 51 52 54 55 56 57 57 58 58 59 59 60 60 62 64 66 68 71 73 75 77 80 81 82 82 81 81 80 81 82 83 85 87 89 91 93 95 96 96 96 96 95 95 94 94 94 93 93 92 92 90 89 88 87 85 83 81 79 76 73 70 67 63 59 54 50 44 39 33 30 27 25 23 23 23 24 25 26 26 27 27 26 24 22 20 17 15 13 11 10 9 8 7 7 7 7 7 7 7 7 7 7 7 6 6 6 6 5 5 5 4 4 4 4 3 3 3 3 3 3 3 4 5 6 7 9 10 12 15 18 22 26 29 33 37 40 44 47 49 51 53 55 56 57 57 55 52 49 46 49 57 67 77 79 79 78 76 74 74 74 76 79 80 81 82 83 83 83 82 82 82 82 83 82 82 81 79 77 76 75 75 76 77 78 80 81 82 83 83 83 82 82 82 81 80 80 80 80 80 81 81 81 81 81 81 81 81 81 81 82 82 82 82 82 83 83 83 83 83 83 83 83 83 82 82 82 82 81 80 79 79 78 78 79 80 80 80 80 79 78 77 77 76 76 75 74 72 70 66 58 50 43 38 37 38 42 46 51 56 60 63 63 60 56 51 45 41 38 37 39 43 47 53 59 64 68 71 73 74 75 75 75 75 75 74 73 73 72 71 71 70 69 67 66 66 66 65 63 60 55 49 40 32 27 24 27 33 40 93 93 93 93 92 91 90 91 92 93 93 92 90 88 88 85 85 88 91 85 84 86 90 93 95 96 96 95 94 93 91 89 86 84 83 83 83 82 79 77 77 78 81 82 84 86 87 89 89 88 87 88 91 94 95 95 94 93 92 94 95 95 94 93 92 91 88 86 83 81 79 75 72 71 72 72 73 73 72 70 68 66 64 61 59 58 57 56 54 53 53 51 50 50 50 52 53 55 58 60 62 64 67 71 73 72 68 62 56 52 49 49 51 52 54 55 57 58 59 59 59 59 60 60 61 62 64 67 70 72 75 77 79 80 82 84 85 86 85 85 84 84 85 86 88 90 92 94 95 96 96 96 96 96 95 95 94 94 94 93 93 92 91 90 89 88 87 85 83 81 79 76 74 70 66 62 58 52 47 43 38 33 29 27 26 26 25 25 26 27 27 28 27 26 25 23 21 18 16 13 12 10 9 8 8 7 7 7 7 7 7 7 7 7 7 7 6 6 6 6 5 5 5 4 4 4 4 4 3 3 3 3 3 4 5 6 7 9 11 13 17 20 23 26 30 35 40 44 48 52 55 58 60 62 64 66 67 68 69 68 66 63 61 62 67 73 79 80 79 79 78 77 77 78 79 80 81 81 82 82 82 82 82 82 83 83 83 83 83 83 82 82 81 81 80 80 81 81 82 82 82 82 82 83 83 83 82 82 82 81 81 80 80 80 80 79 79 79 79 79 78 78 78 79 79 80 80 81 81 81 81 81 81 82 82 82 82 82 82 82 82 82 82 81 81 81 81 81 82 82 81 81 80 79 78 77 77 77 77 76 75 74 72 67 60 51 43 38 37 38 42 46 51 56 60 62 63 61 58 53 48 43 38 36 35 37 40 45 50 56 61 66 70 73 75 76 76 76 76 76 76 76 75 74 72 71 68 66 64 62 57 53 48 43 36 29 24 21 20 23 29 37 94 94 93 93 92 92 93 94 93 92 90 86 84 83 85 85 86 89 93 91 90 91 94 96 96 95 93 90 87 84 81 79 76 74 72 71 69 67 64 64 67 71 74 75 77 80 85 91 93 93 93 93 94 95 95 95 95 95 95 95 95 93 91 88 86 85 84 80 78 77 79 78 77 77 78 77 77 78 78 76 73 70 67 62 59 57 56 55 55 54 53 51 51 52 53 55 57 59 61 61 61 62 63 67 70 73 74 70 65 59 55 54 54 55 57 58 60 60 61 61 62 63 64 66 68 71 74 76 79 81 83 84 85 87 88 89 89 88 87 87 86 87 88 90 92 94 95 96 96 96 96 96 95 95 94 94 93 93 93 93 92 91 90 89 88 87 85 83 81 79 76 73 69 65 60 56 51 46 41 37 33 30 27 27 27 27 27 28 28 28 28 27 26 24 22 19 17 15 12 11 10 9 8 8 7 7 7 7 7 7 7 7 7 7 7 7 6 6 6 5 5 5 4 4 4 4 4 4 4 4 4 4 5 6 7 9 11 13 16 19 23 27 31 35 39 43 48 53 57 60 64 66 68 69 71 72 73 74 75 75 74 73 72 72 74 77 79 79 80 79 79 79 79 79 80 80 80 80 80 80 80 81 81 82 82 83 83 83 83 83 83 83 83 82 82 82 82 82 82 82 82 82 82 82 82 82 82 83 83 82 82 82 82 82 82 81 81 80 79 79 78 78 77 77 77 77 78 78 79 79 79 79 79 79 79 80 81 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 81 80 79 78 78 77 77 77 76 75 75 72 67 60 51 43 39 37 39 43 47 51 55 59 61 62 62 59 55 50 45 41 37 34 33 35 37 42 47 53 58 62 66 68 69 70 70 70 69 68 67 66 64 62 60 57 54 50 45 40 36 31 27 24 22 21 20 21 24 29 94 94 93 93 93 93 95 94 91 88 84 82 81 82 86 88 90 92 95 95 95 95 95 94 92 90 85 81 77 73 70 68 66 64 63 61 59 57 57 58 61 65 68 69 71 75 81 88 90 89 87 88 89 90 92 93 94 94 94 93 92 90 87 84 82 81 81 77 77 78 81 81 81 80 79 76 76 79 80 78 76 72 69 63 59 58 56 56 55 54 53 53 53 54 55 57 59 61 62 62 62 62 62 64 67 70 74 73 70 66 62 61 61 62 63 65 66 67 68 69 71 73 76 78 80 82 84 85 87 89 90 90 91 92 92 92 91 90 89 88 89 89 91 93 94 95 96 96 96 95 95 95 94 94 93 93 93 93 92 92 91 90 88 87 86 85 83 81 78 75 72 67 63 58 54 49 45 40 36 33 31 29 28 29 29 29 29 29 29 28 27 25 23 21 18 16 14 12 10 9 8 8 8 7 7 7 8 8 8 8 7 7 7 7 7 6 6 6 5 5 5 4 4 4 4 4 4 4 4 5 5 6 7 8 10 12 15 19 23 27 31 35 40 44 47 51 55 60 63 66 68 69 70 71 72 74 74 75 76 76 76 77 78 79 79 80 80 80 80 81 81 81 81 81 80 79 79 79 79 80 80 81 81 82 82 82 83 83 83 83 83 83 83 83 83 82 82 82 82 82 82 82 82 83 83 83 83 83 82 82 83 83 83 83 82 82 82 82 82 81 81 80 79 79 78 78 78 78 78 78 78 78 78 78 78 78 79 80 81 82 82 82 82 82 82 82 82 82 82 82 82 82 81 80 79 79 79 78 78 77 76 76 76 75 72 68 61 52 45 39 38 40 43 47 51 55 58 60 62 61 60 57 53 48 43 39 35 32 32 33 35 39 43 48 52 55 57 57 58 58 56 54 52 51 49 47 45 43 40 37 34 30 28 25 24 23 23 23 23 22 22 23 93 93 93 93 93 94 94 92 88 84 80 82 84 86 91 93 94 95 95 96 95 94 92 89 86 82 77 74 70 67 65 63 62 61 60 58 57 56 55 56 59 62 64 65 66 68 72 77 79 78 75 74 74 76 79 84 87 88 89 89 89 88 86 83 81 79 79 78 78 80 82 84 83 81 78 74 74 76 77 77 76 73 69 64 60 58 56 55 55 54 54 54 54 54 55 57 58 60 61 61 62 63 64 64 66 68 72 74 73 72 70 69 70 72 73 75 76 77 79 80 82 84 86 88 89 90 91 92 93 93 94 94 94 93 93 92 92 91 91 91 92 93 94 95 96 96 95 95 95 95 94 94 94 93 93 93 92 92 91 90 89 88 87 85 84 82 80 77 73 69 65 61 56 52 48 44 40 37 34 32 31 30 30 31 31 31 30 29 28 27 25 22 20 18 15 13 12 10 9 9 8 8 8 8 8 8 8 8 8 8 7 7 7 7 6 6 6 5 5 5 4 4 4 4 4 4 5 5 6 6 7 8 10 12 14 17 21 25 29 34 38 43 47 51 55 58 61 64 67 69 70 71 71 72 73 73 74 74 75 76 77 78 80 80 80 80 80 80 79 79 78 78 78 78 78 78 79 79 80 81 81 81 81 82 82 82 82 82 82 82 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 82 82 82 81 81 80 80 79 79 78 78 78 77 77 77 77 77 78 79 80 81 82 82 82 82 82 82 82 82 82 82 82 81 81 80 80 80 79 78 77 77 76 76 76 75 73 69 62 53 45 40 39 40 44 48 52 55 58 60 61 61 61 59 55 50 45 41 37 33 31 31 32 33 35 38 41 42 42 43 43 42 41 39 38 38 37 36 34 32 30 27 26 25 25 25 25 25 25 25 25 24 23 92 93 93 93 93 93 92 89 87 86 87 91 93 94 95 95 95 95 95 95 93 91 88 85 81 77 74 71 68 66 64 63 62 61 61 60 59 58 57 57 59 61 64 64 64 64 65 68 69 69 67 65 64 63 64 69 74 78 79 84 86 87 87 85 83 81 80 78 78 78 79 80 81 80 76 73 73 75 76 76 75 73 69 64 61 58 56 55 55 55 55 54 54 55 55 56 57 58 59 60 61 62 64 65 66 67 68 70 71 73 74 75 76 77 79 80 82 83 85 87 89 91 93 94 95 95 95 95 95 95 95 95 95 94 94 94 93 94 94 95 95 96 96 96 95 95 95 95 94 94 93 93 93 92 92 92 91 90 89 88 87 86 85 83 80 78 75 71 67 63 59 54 50 47 43 40 37 35 34 33 32 32 33 33 32 31 30 28 26 24 22 19 17 15 13 11 10 9 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 6 6 5 5 5 5 4 4 4 5 5 5 5 6 7 7 8 10 11 13 15 18 22 26 30 35 39 44 49 53 57 60 63 66 68 70 71 73 73 74 74 74 74 74 75 75 76 77 78 79 79 79 79 79 79 79 78 78 77 77 78 79 80 80 80 81 81 81 81 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 81 81 81 80 80 81 81 82 82 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 82 82 82 82 81 81 81 80 79 79 78 77 77 76 76 76 77 78 79 81 82 82 82 82 82 82 82 82 82 82 81 81 81 81 81 80 79 78 77 77 77 77 77 76 75 70 63 54 45 40 39 41 45 49 52 55 57 59 61 62 62 60 56 52 48 43 39 36 33 31 30 30 31 32 32 32 32 31 31 31 30 30 30 30 30 29 28 27 26 26 26 26 26 27 27 27 26 26 26 25 90 91 93 93 93 93 93 92 92 93 95 96 96 96 95 95 95 95 95 93 91 88 86 82 79 75 73 71 70 68 66 65 64 64 64 64 62 61 60 60 61 63 65 66 66 65 64 64 64 64 64 64 64 63 64 67 70 73 76 82 86 89 90 85 84 84 84 80 77 75 73 74 74 74 72 72 73 75 77 77 76 73 69 65 62 60 57 57 56 56 56 55 55 56 56 57 57 58 59 60 61 62 63 65 66 67 68 70 71 73 74 76 78 81 83 85 86 88 90 92 94 95 96 97 97 97 96 96 96 96 95 95 95 95 95 95 96 96 96 96 96 96 95 95 95 95 94 94 93 93 93 92 92 92 91 90 90 89 88 86 85 83 81 78 75 72 68 65 60 56 52 48 45 42 40 38 36 36 35 35 35 35 35 33 32 30 27 26 23 21 19 17 15 13 11 10 9 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 6 6 5 5 5 5 5 5 5 5 5 6 6 7 8 9 10 11 12 14 16 18 21 25 30 34 38 43 48 52 56 61 64 67 69 71 72 74 76 76 76 76 76 76 76 77 77 77 77 77 77 78 78 78 78 79 79 79 78 78 79 80 80 80 80 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 80 80 80 79 78 77 76 76 76 76 78 79 81 82 82 83 83 83 83 83 83 83 83 83 82 82 82 82 82 82 82 82 82 82 81 81 81 80 80 79 79 78 77 77 77 78 79 80 81 82 82 82 82 82 82 82 82 82 82 82 82 82 81 80 79 79 78 78 77 78 77 77 77 74 70 63 54 46 41 40 42 45 49 53 56 57 59 61 63 62 60 57 54 50 46 42 38 35 32 31 30 29 29 29 28 28 28 28 28 28 28 28 28 28 28 28 27 28 28 28 28 28 27 27 27 26 26 25 91 93 94 94 94 94 94 94 95 95 95 94 94 95 95 94 93 93 92 90 88 86 84 81 79 77 76 74 73 71 70 68 68 68 68 68 67 65 64 64 64 64 66 67 68 68 67 66 65 64 64 65 67 69 71 72 73 74 76 80 84 87 88 86 86 86 85 82 78 75 72 71 71 71 70 70 71 73 76 78 77 74 70 66 63 61 59 59 59 59 58 58 58 58 58 58 59 60 60 61 62 63 65 66 68 70 72 74 76 78 80 83 85 88 90 92 93 94 95 96 97 97 97 97 97 97 96 96 96 96 96 96 96 96 96 96 96 96 96 96 95 95 95 95 94 94 93 93 93 92 92 92 91 90 90 89 88 87 85 84 81 79 76 72 69 66 62 58 54 51 48 45 43 41 39 38 38 38 38 38 37 36 34 32 30 27 25 23 21 18 16 14 12 11 10 9 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 6 6 6 5 5 5 5 5 5 6 6 7 7 8 9 10 11 12 14 15 17 19 21 24 28 32 36 40 45 49 53 58 62 66 69 71 71 73 74 76 78 78 79 79 79 79 79 79 79 79 78 78 78 78 78 78 78 78 79 79 79 79 80 80 80 80 80 81 81 81 81 80 80 80 80 79 79 79 78 78 78 78 78 77 77 77 76 75 74 73 73 72 73 74 75 77 79 80 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 81 81 81 80 80 79 79 78 78 79 80 81 82 82 82 82 82 82 82 82 82 82 82 82 82 82 81 81 80 79 79 79 78 78 78 78 77 76 74 70 63 54 47 42 40 42 46 51 54 56 58 59 61 63 62 61 58 56 53 49 45 41 38 35 33 32 31 31 30 30 30 30 30 30 30 30 30 30 30 30 29 29 29 29 28 28 27 27 26 26 26 26 93 94 95 95 94 93 93 95 95 95 93 91 91 92 94 93 92 90 88 86 85 85 84 82 81 79 78 77 76 74 73 71 70 70 71 71 69 68 67 66 65 65 66 68 69 71 72 71 70 69 69 70 71 73 74 75 76 78 80 82 86 89 90 88 87 87 88 87 84 80 78 73 69 67 67 68 69 71 74 77 78 76 72 67 64 63 62 62 62 62 62 62 62 61 61 61 61 61 61 62 64 65 67 70 73 76 79 82 85 88 91 93 94 96 96 96 96 96 96 97 97 97 97 97 96 96 96 96 96 96 96 96 96 96 95 95 95 95 95 95 95 95 94 94 93 93 93 92 92 92 91 90 90 89 88 86 85 84 82 79 76 73 70 67 63 60 57 54 51 48 46 44 43 41 41 41 41 40 40 38 37 35 32 30 28 25 23 20 18 16 14 12 10 9 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 6 6 6 5 5 5 5 5 6 6 7 8 9 9 10 11 12 14 15 16 18 19 21 24 26 29 32 36 40 44 48 52 56 61 65 67 68 68 69 70 73 75 77 78 79 79 80 80 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79 80 80 80 80 80 79 78 77 76 75 74 73 73 72 72 72 73 73 74 74 74 74 74 74 74 74 73 72 71 71 72 73 74 76 78 80 81 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82 81 81 80 80 79 79 78 78 79 80 80 81 81 82 82 82 82 82 82 82 82 82 82 82 82 81 81 81 80 80 80 80 79 79 78 78 77 76 74 70 63 55 48 43 43 44 48 52 56 58 59 60 61 62 62 62 60 58 55 52 48 45 42 39 37 36 35 34 34 33 33 33 33 33 33 32 32 32 31 31 31 31 30 29 29 28 28 28 27 27 27 94 94 94 94 94 94 95 95 96 95 93 91 90 90 91 91 89 86 84 84 84 84 84 82 81 79 79 78 77 76 74 72 72 72 73 73 72 71 70 69 68 67 66 68 70 73 76 76 75 75 75 75 75 75 76 79 82 85 86 89 93 95 94 89 88 88 88 88 87 84 80 74 68 65 65 68 68 68 70 73 76 77 76 72 70 68 68 68 68 68 67 67 66 66 65 65 65 65 66 67 68 70 73 76 79 83 87 91 93 95 95 95 95 95 95 95 96 96 96 96 97 97 97 97 96 96 96 96 96 96 95 95 95 95 95 95 95 95 95 94 94 94 93 93 92 92 92 91 91 90 89 89 87 86 85 83 81 79 76 73 71 68 65 62 59 56 53 51 49 47 45 44 44 44 43 43 42 40 39 37 34 32 30 27 25 23 20 18 15 13 11 10 9 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 6 6 5 5 5 6 6 6 7 8 9 10 11 12 13 14 16 17 18 20 21 23 24 26 27 30 32 35 37 40 43 47 51 55 58 60 62 62 63 64 65 67 69 70 72 73 75 76 78 79 79 79 79 79 79 80 80 80 80 80 80 80 80 80 80 80 80 80 79 78 76 75 74 72 71 70 69 69 69 69 69 70 71 73 74 75 75 75 76 76 75 74 73 72 72 72 73 74 76 78 79 81 82 82 82 82 82 82 82 82 82 82 81 81 81 81 81 81 81 81 81 81 80 80 79 78 78 78 77 78 78 78 79 79 80 81 81 82 82 82 82 82 82 82 81 81 81 81 81 81 81 81 81 80 80 79 78 77 77 76 74 69 63 56 49 45 45 46 50 53 56 58 60 60 61 62 63 62 62 60 58 56 52 50 47 44 43 41 40 39 38 38 37 37 37 36 36 35 35 35 34 34 33 33 32 32 31 31 31 31 31 31 94 94 94 95 95 95 96 96 95 95 94 94 93 91 91 91 90 88 86 85 85 85 83 81 78 77 76 76 75 74 73 72 73 73 75 75 75 74 74 75 74 72 71 71 72 72 73 74 75 76 78 82 84 84 85 87 88 87 85 90 93 95 96 94 93 92 90 90 90 89 86 79 73 68 67 67 67 67 68 70 72 74 75 74 73 73 72 72 72 72 72 71 71 70 69 69 70 71 72 75 77 79 81 84 86 89 93 95 96 96 95 95 95 95 95 95 95 96 96 96 96 96 96 96 96 96 96 95 95 95 95 95 95 95 95 95 94 94 94 93 93 93 92 92 92 91 91 90 89 88 88 86 85 83 81 79 76 74 72 69 66 64 61 58 56 53 51 50 48 47 47 46 46 46 45 43 41 39 37 34 32 30 27 25 22 20 18 15 13 11 10 9 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 6 6 6 6 6 6 6 7 8 9 10 11 12 13 14 16 17 19 20 22 23 24 26 27 28 29 31 32 34 35 37 40 42 44 47 49 51 53 55 56 57 58 59 59 59 59 60 62 63 66 68 70 73 75 77 78 79 79 80 80 81 81 81 81 81 81 80 80 80 80 80 80 80 79 79 78 76 75 74 74 73 73 73 74 74 74 75 75 75 76 76 76 75 75 74 73 73 73 74 75 76 78 79 79 80 81 81 81 82 82 81 81 81 81 81 81 81 80 80 80 80 80 80 80 79 79 78 77 77 77 77 76 76 76 77 77 78 79 80 81 81 81 81 81 81 80 80 80 80 81 81 81 81 81 81 80 79 78 77 77 77 76 74 70 64 57 51 47 46 47 50 53 56 58 60 60 61 62 63 63 63 62 61 59 57 55 53 51 49 48 47 46 45 44 43 43 42 42 41 41 40 39 38 38 37 37 37 36 36 36 36 36 36 95 95 95 95 95 94 94 94 93 92 92 93 93 93 92 91 91 90 89 86 84 82 81 78 75 73 73 73 73 73 73 74 76 77 79 80 80 80 80 81 81 80 79 77 75 73 70 71 73 77 83 91 95 96 92 89 86 84 87 91 94 96 96 96 97 96 94 92 91 91 91 86 80 76 72 71 70 70 69 70 71 73 73 73 73 73 73 74 74 75 75 75 75 75 75 76 76 78 80 83 85 88 89 91 93 95 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 95 95 95 94 94 94 94 95 94 94 94 94 93 93 93 92 92 92 92 91 91 90 89 88 88 87 85 84 82 79 77 75 73 70 68 66 63 60 58 56 54 52 50 49 49 49 49 48 47 46 45 43 40 37 34 32 30 27 25 22 20 18 15 13 11 10 9 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 6 6 6 6 6 7 7 8 9 10 11 13 14 16 17 19 20 22 24 25 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 47 49 50 51 51 51 51 50 50 50 50 51 52 54 56 58 61 64 66 68 71 73 75 76 77 77 78 79 80 81 81 81 81 81 81 81 80 80 80 80 79 79 78 78 77 77 76 76 76 75 75 75 75 75 75 75 75 76 76 76 76 76 76 76 76 77 78 78 79 79 80 80 81 81 81 81 81 81 80 80 80 80 80 80 80 79 79 79 78 77 77 76 76 76 76 75 75 75 76 76 77 78 79 80 80 80 79 79 79 79 79 81 81 81 81 81 81 80 79 78 77 77 77 77 76 75 71 65 58 52 48 46 47 49 52 56 58 60 61 61 62 63 63 64 63 63 62 61 60 58 57 56 55 54 53 53 52 51 51 50 50 49 48 47 46 46 45 44 44 44 43 43 43 43 43 95 95 95 95 94 94 93 92 93 93 93 94 95 94 93 92 91 90 89 87 85 83 81 78 76 74 73 73 73 73 74 76 78 81 83 84 85 85 85 85 85 85 84 82 80 78 75 74 76 80 86 92 93 90 84 83 84 86 91 93 95 96 96 96 97 96 95 91 90 90 90 86 82 78 77 76 75 74 74 74 75 75 76 75 74 73 73 74 76 77 78 79 80 81 83 84 87 90 92 93 93 94 95 95 95 96 95 96 96 96 96 96 95 95 95 94 94 94 94 95 95 95 95 95 94 94 94 94 94 94 94 94 93 93 93 93 92 92 92 92 91 91 91 90 89 88 88 87 85 84 82 80 78 76 74 72 70 67 65 63 60 58 56 54 53 52 51 50 50 49 49 49 47 45 42 40 37 35 32 29 27 25 23 20 18 16 13 12 10 9 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7 7 7 7 7 8 9 10 11 12 14 15 17 18 20 22 23 25 26 28 30 31 32 33 34 35 36 37 38 39 40 41 41 42 43 43 43 44 44 45 45 46 46 46 46 46 46 46 45 45 45 45 46 47 49 51 52 53 55 56 58 59 61 62 64 66 67 68 70 71 73 74 76 77 77 78 78 77 77 77 77 77 77 77 76 76 75 74 74 73 73 72 72 72 72 72 71 70 68 66 64 63 63 63 64 66 68 70 72 74 76 77 79 79 80 80 80 80 80 80 80 80 79 79 79 79 78 78 77 76 76 76 76 75 75 75 75 75 75 76 77 78 78 78 78 78 78 78 79 80 81 81 81 81 81 80 80 79 78 77 77 77 78 77 76 73 67 60 53 48 47 47 49 52 55 58 60 61 62 62 63 63 64 64 64 64 63 63 62 61 61 60 60 60 60 60 60 59 59 58 58 57 56 55 55 54 54 53 53 52 52 52 52 96 96 96 96 96 96 94 94 95 95 95 95 96 96 96 95 94 93 92 90 88 86 85 82 79 77 75 74 75 75 75 77 80 83 85 86 86 87 86 86 85 85 85 84 84 83 82 82 84 86 89 89 86 83 80 86 91 94 96 95 95 96 97 96 96 96 95 90 87 86 86 84 80 78 79 78 77 76 76 76 77 78 80 80 79 78 78 78 80 81 83 84 86 88 91 93 94 95 95 94 93 93 93 94 94 95 96 96 96 96 96 95 95 95 94 95 95 95 95 95 95 94 94 94 93 93 94 94 94 93 93 93 92 92 92 92 92 92 91 91 91 90 90 89 88 87 85 84 82 80 78 76 75 73 71 69 67 65 63 61 59 57 55 54 53 53 52 51 51 50 48 47 45 43 40 37 35 33 30 28 25 23 21 18 16 14 12 10 9 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7 7 7 8 8 9 10 11 13 14 16 17 19 20 22 24 25 27 28 30 31 32 33 35 35 37 38 39 40 41 42 43 44 45 46 46 47 47 47 47 47 47 47 46 46 45 45 44 44 44 44 44 44 45 47 48 49 50 51 51 52 52 52 52 53 53 54 55 56 57 58 59 60 61 62 63 64 64 64 64 64 64 63 63 63 62 63 62 62 62 61 61 60 59 58 56 54 52 50 49 48 47 47 47 47 48 50 52 55 59 62 66 69 72 74 76 77 77 78 78 78 78 78 78 78 78 78 77 77 77 76 76 76 75 75 75 75 75 75 76 76 77 78 78 78 78 78 78 79 80 81 81 81 81 81 81 80 80 79 79 78 79 79 79 78 77 73 68 61 54 50 48 48 49 52 55 57 59 61 62 63 63 63 64 64 64 65 65 64 64 64 64 64 64 64 64 64 65 65 65 64 64 64 64 63 63 62 62 61 61 60 60 60 96 97 96 96 97 97 96 96 96 96 96 96 96 96 96 96 96 95 95 94 92 91 89 87 85 82 79 78 77 78 78 79 82 85 87 87 86 85 85 84 83 83 84 85 86 88 89 90 91 90 89 87 86 87 89 93 95 96 97 96 96 95 93 90 89 88 87 85 83 82 85 85 84 83 82 81 81 80 80 79 79 80 82 83 83 83 84 85 86 88 89 91 93 95 96 96 95 95 95 95 94 94 94 94 95 95 96 96 96 96 96 96 96 95 95 95 95 94 94 93 93 93 93 93 93 93 93 93 92 92 92 92 92 92 92 91 91 91 91 90 90 89 88 87 85 84 82 81 79 77 75 73 71 70 68 66 64 62 61 59 57 56 55 55 54 54 53 52 51 49 47 45 43 41 38 35 33 31 28 26 24 21 19 16 14 12 10 9 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 10 11 12 13 15 16 18 19 21 22 23 25 26 27 28 29 31 32 33 34 35 36 37 39 40 41 43 44 45 46 47 48 49 50 51 51 51 52 51 51 50 50 49 48 47 46 46 46 46 46 47 48 49 50 52 53 54 55 55 56 56 55 55 55 54 54 53 53 53 52 52 52 52 51 51 51 50 50 49 49 48 48 48 47 47 47 46 46 45 45 44 44 43 43 42 41 40 40 39 40 40 41 41 43 44 46 49 52 56 59 63 67 70 72 73 75 75 76 76 76 76 76 76 76 76 76 76 75 75 75 75 75 75 75 75 76 76 77 78 79 79 79 79 79 79 79 80 80 81 81 81 81 80 80 80 80 80 80 80 80 79 78 76 73 68 63 56 52 49 48 49 52 54 57 59 61 62 63 64 64 65 65 65 65 66 66 65 65 65 65 65 65 66 66 66 66 67 67 67 67 67 66 66 66 65 64 63 62 61 96 96 97 97 97 97 96 96 96 96 96 96 96 96 96 96 97 97 96 96 95 94 93 91 89 87 85 83 82 82 82 83 85 88 91 91 89 87 85 84 82 81 82 83 85 87 90 93 94 94 94 93 93 94 93 93 94 96 97 96 95 93 91 88 87 87 87 86 85 86 89 91 91 90 90 90 89 89 89 90 89 88 87 89 90 90 91 93 94 95 95 96 96 96 96 95 95 95 95 95 95 95 95 95 95 96 96 96 96 96 96 95 95 94 94 93 93 92 92 92 92 92 92 92 92 92 92 91 91 91 91 91 91 91 91 91 91 90 90 89 88 87 86 84 83 81 79 77 75 73 72 70 68 67 65 64 62 60 59 58 57 56 56 55 55 54 53 52 51 49 46 44 41 39 36 34 32 29 27 24 22 19 17 15 13 11 10 9 8 8 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 10 11 11 13 14 15 17 18 19 21 22 23 24 25 26 27 28 28 29 30 30 31 32 33 34 36 37 39 40 42 43 45 46 47 48 49 51 52 53 53 54 54 54 54 54 53 53 52 51 51 50 49 48 48 48 48 49 51 53 54 56 58 59 60 60 60 60 59 59 58 57 57 56 55 54 53 52 52 51 50 49 48 47 46 45 45 44 43 43 42 41 41 41 40 40 40 40 40 39 39 39 39 40 41 42 43 44 45 46 47 49 51 54 58 61 64 67 69 71 72 73 74 74 74 74 74 74 74 74 74 74 74 74 75 75 75 75 76 76 77 78 79 80 80 80 80 79 79 79 79 80 80 80 80 80 80 81 81 81 81 81 80 80 79 77 75 73 70 64 59 54 51 50 50 52 54 56 58 60 62 63 64 64 65 65 65 66 66 66 66 66 66 66 65 65 65 65 64 64 64 64 64 63 63 62 61 60 59 57 55 53 96 97 97 97 96 96 96 96 96 96 95 95 95 95 96 96 96 96 96 96 96 96 95 94 93 92 91 89 88 88 88 89 91 93 95 95 93 90 88 86 84 82 82 82 83 85 87 90 93 95 96 97 97 97 96 95 95 96 97 95 94 93 93 93 94 94 94 94 94 94 93 95 95 94 93 94 95 95 94 94 95 96 96 95 95 95 96 96 96 96 96 96 96 96 96 95 95 95 95 95 95 95 95 96 96 96 96 96 95 95 94 93 93 92 91 91 91 91 91 91 91 92 92 92 91 91 91 91 91 91 91 91 91 91 90 90 89 89 88 87 86 85 83 81 80 78 76 74 72 71 69 68 66 64 63 61 60 59 58 57 57 57 56 56 55 54 53 51 49 47 45 43 40 38 35 33 31 28 25 23 20 18 16 14 12 10 9 8 8 8 7 8 8 8 8 8 9 9 9 8 8 9 9 9 9 9 9 9 10 10 10 11 12 13 14 16 17 19 20 21 23 24 25 25 26 26 27 27 27 27 27 28 28 29 30 31 32 34 35 37 38 40 41 43 44 45 46 47 48 49 50 51 52 52 53 53 54 54 54 54 53 53 52 51 50 50 49 49 50 50 51 52 53 54 55 56 57 58 59 59 59 59 60 60 60 60 60 60 60 60 59 59 58 57 56 55 54 53 52 51 50 49 49 48 47 47 46 46 45 45 44 44 44 44 45 46 48 49 50 51 51 51 52 53 55 57 60 62 65 67 69 70 71 72 73 73 73 73 73 73 73 73 73 73 73 73 74 74 74 75 75 77 78 80 81 81 81 80 80 79 79 79 79 79 80 80 80 80 80 81 81 81 81 80 79 78 76 75 74 71 67 62 57 54 52 52 52 54 56 57 59 60 61 62 62 63 63 64 64 65 65 65 65 64 63 62 62 61 60 59 58 57 56 55 54 52 51 49 48 45 43 41 94 96 96 96 95 95 96 96 96 96 95 95 95 95 96 96 96 96 96 96 96 96 96 96 96 96 96 95 95 95 95 95 95 95 95 95 94 93 91 89 87 85 84 83 84 85 86 88 90 93 95 96 96 97 97 97 97 97 97 96 96 96 96 97 97 96 96 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 95 95 95 94 93 92 92 91 91 90 90 90 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 90 90 90 89 88 88 87 86 85 83 82 80 79 77 76 74 72 70 68 67 65 64 62 61 60 60 59 59 58 58 58 58 57 55 54 52 50 48 46 44 42 39 37 35 33 30 27 25 22 19 17 15 13 11 10 9 8 8 7 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 10 10 11 11 12 13 14 15 16 18 19 20 22 23 24 25 26 26 26 26 26 26 26 26 25 26 26 27 27 28 30 31 32 34 35 37 38 39 41 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 49 50 50 50 50 50 49 49 49 49 48 48 48 48 47 47 47 47 47 48 49 49 50 51 52 53 54 55 56 57 58 59 59 60 60 60 59 59 59 59 59 58 58 58 57 57 56 56 55 54 54 53 52 52 52 52 53 54 55 56 57 57 57 58 58 58 59 61 63 65 67 68 70 71 72 73 73 73 73 73 73 72 72 71 71 70 70 70 71 71 72 74 76 79 81 81 81 81 80 79 79 79 78 78 79 79 80 80 80 80 80 81 80 80 80 79 78 77 76 75 73 70 66 62 58 56 54 54 54 54 54 55 55 56 56 57 58 59 59 60 60 60 59 59 58 57 56 55 53 52 50 48 47 45 43 41 39 37 35 33 31 29 92 95 96 96 95 95 95 95 95 95 95 95 95 95 96 95 96 96 96 96 96 96 96 97 97 97 97 97 97 97 97 97 96 96 97 97 96 95 93 91 89 88 86 86 86 87 88 88 90 91 93 95 96 96 96 96 97 96 96 97 96 96 96 96 96 96 96 96 96 96 96 96 96 97 97 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 95 95 95 94 93 92 92 91 91 90 90 90 90 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 90 90 89 89 88 87 86 85 85 83 82 80 79 77 76 74 73 71 69 68 66 65 64 63 62 61 61 61 61 61 60 60 59 58 57 55 54 52 50 48 46 43 42 40 37 35 33 30 27 25 22 19 16 14 12 10 9 8 8 8 7 8 8 8 8 9 9 9 9 9 9 9 9 10 10 10 10 11 11 12 13 14 15 16 17 18 19 21 22 23 24 25 26 26 26 26 26 25 25 25 25 25 25 25 26 26 28 29 30 31 33 34 35 36 37 38 39 40 40 40 41 41 41 41 41 41 41 41 41 41 42 42 42 42 43 43 43 43 43 43 43 43 42 42 42 41 41 40 39 38 37 37 37 37 37 37 37 37 38 38 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 57 58 58 58 58 58 58 58 58 58 59 60 60 61 61 61 61 62 62 62 63 64 66 67 69 70 72 72 73 73 73 73 72 72 71 70 69 68 66 66 66 67 68 70 73 76 78 80 81 81 80 80 79 79 78 78 78 78 79 79 79 79 80 80 80 80 80 80 80 79 79 78 77 76 73 70 66 63 59 57 54 52 50 49 48 48 49 50 51 52 52 52 52 51 51 50 49 49 48 46 45 43 41 39 38 36 34 31 29 27 26 25 24 23 90 93 95 95 96 95 95 95 95 95 95 95 95 95 95 95 95 96 96 96 96 96 96 96 96 97 97 97 97 97 97 96 97 97 97 97 96 96 95 94 93 91 90 89 89 89 90 91 92 93 93 94 95 96 96 96 96 96 96 96 96 96 95 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 95 95 95 94 94 95 95 95 95 95 95 95 95 95 95 95 94 94 94 93 92 92 91 90 90 89 89 90 90 90 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 90 90 89 88 88 87 86 85 84 83 82 80 79 77 76 74 72 71 69 68 67 66 65 64 64 64 63 63 63 62 63 63 62 60 59 58 56 55 53 51 50 48 46 44 42 40 38 36 34 31 28 25 22 19 16 14 12 10 9 8 8 7 7 8 8 8 8 9 9 9 9 9 9 10 10 10 10 11 11 12 13 14 15 15 16 18 19 20 21 22 24 25 26 26 27 27 27 26 26 25 25 25 25 25 25 25 26 27 28 29 30 32 33 34 35 36 37 37 38 38 39 39 38 38 38 38 38 38 37 37 37 37 37 36 36 36 36 36 35 35 35 35 35 34 34 34 34 33 33 33 32 32 32 31 31 31 31 30 29 29 28 28 28 27 27 27 27 27 28 29 30 30 31 32 33 34 36 37 39 41 43 44 46 47 49 51 52 53 54 55 56 56 57 58 59 59 60 61 61 62 62 63 64 65 66 68 69 70 71 72 72 72 71 71 70 70 69 67 65 63 62 62 62 63 64 66 69 73 76 79 80 81 80 80 79 79 78 78 77 77 78 78 79 79 79 80 80 80 80 80 80 80 80 79 79 77 76 73 70 67 62 58 54 51 48 47 46 45 46 46 46 45 44 43 42 41 41 40 39 38 37 36 35 33 32 30 28 26 25 24 23 22 22 22 23 89 90 93 95 96 96 95 95 95 95 95 95 95 95 95 95 95 95 96 96 96 96 96 96 96 96 97 97 97 97 97 97 97 97 97 96 95 95 95 94 94 94 93 93 93 93 94 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 95 95 95 95 94 94 93 93 93 93 93 92 92 92 92 92 92 91 91 90 90 89 89 89 89 89 90 90 90 91 91 91 91 91 91 92 92 92 92 91 91 91 91 91 91 90 90 90 90 89 88 87 86 85 85 84 82 81 80 78 77 76 74 72 71 69 68 67 67 66 66 66 65 65 66 66 66 65 64 64 64 63 61 60 58 56 55 53 51 50 48 46 44 43 41 39 37 35 32 29 25 22 19 16 13 11 10 9 8 8 7 8 8 8 8 9 9 9 9 10 10 10 10 10 11 11 12 12 13 14 15 16 17 18 19 21 22 23 24 26 27 27 28 28 28 27 27 26 26 25 25 25 25 25 26 27 28 29 30 32 33 34 35 36 37 38 38 38 38 38 38 38 38 37 37 37 37 36 36 36 35 35 35 34 34 33 33 32 32 31 30 30 29 29 28 28 27 27 26 26 26 26 26 26 26 26 26 26 25 25 24 24 24 24 24 24 25 25 25 25 25 26 26 26 26 26 26 26 27 28 29 30 31 32 34 36 37 39 41 43 44 46 47 48 50 51 52 54 55 56 58 59 60 62 63 65 66 67 68 68 69 69 68 68 67 66 64 62 60 59 58 57 57 58 59 61 64 68 73 77 80 80 80 80 79 79 78 77 77 77 77 78 79 79 80 80 80 80 80 80 81 81 80 80 80 79 77 76 73 69 66 62 58 55 52 50 48 46 45 43 42 40 38 37 35 34 33 32 31 30 29 28 27 26 25 24 23 22 22 22 23 24 26 28 88 89 91 93 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 96 96 96 96 96 96 96 97 97 97 97 97 97 97 97 96 96 96 96 95 94 93 93 93 93 93 93 94 94 94 94 94 94 94 94 94 94 94 94 95 95 95 95 95 95 95 95 96 96 96 96 96 96 96 96 96 95 95 95 94 94 94 94 94 94 93 93 93 93 93 92 92 92 92 91 91 91 90 90 90 90 91 91 91 91 92 92 92 92 92 92 92 92 92 92 92 91 91 91 91 91 90 90 90 89 88 88 87 86 85 84 83 82 80 79 78 76 75 74 72 71 70 68 68 68 68 68 68 68 68 68 68 68 68 68 67 66 65 65 64 62 60 58 56 55 53 51 50 49 47 46 44 43 41 38 36 33 29 26 22 19 16 13 11 10 8 8 8 8 8 8 8 9 9 9 10 10 10 10 11 11 11 11 12 13 13 14 15 16 18 19 20 22 23 24 25 26 28 29 29 29 29 29 28 27 27 26 26 26 26 26 26 27 28 29 30 32 33 35 36 37 37 38 38 39 39 38 38 38 38 37 37 37 37 36 36 36 36 35 35 34 34 33 32 31 30 30 29 28 27 26 26 26 25 25 24 24 24 24 24 24 24 24 24 25 25 25 25 25 26 26 26 26 27 27 28 28 29 29 30 30 31 31 30 30 30 29 28 28 27 26 26 26 26 27 27 28 29 31 32 33 35 36 38 39 41 43 44 46 48 50 52 54 55 57 58 60 61 61 62 62 62 62 60 59 58 56 55 53 52 51 51 51 52 54 58 64 70 75 78 80 80 80 79 79 78 77 76 77 78 79 80 80 80 80 80 80 80 80 80 80 80 80 80 79 78 77 75 72 70 68 64 61 58 55 53 50 47 45 42 40 37 35 33 31 29 27 26 25 24 24 23 22 22 22 22 23 25 26 29 32 35 88 89 89 91 93 94 95 95 95 95 95 95 95 95 95 95 95 95 95 95 96 96 96 96 96 96 96 96 96 96 96 96 97 97 97 97 97 97 97 96 96 95 94 93 93 93 93 93 93 93 93 93 93 93 93 93 93 93 94 94 94 94 94 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 94 94 93 93 93 93 93 94 94 93 93 93 93 93 93 92 92 92 92 91 91 91 91 91 92 92 92 92 92 92 92 92 92 91 91 91 91 91 91 91 90 90 90 89 89 88 87 86 85 84 83 82 81 80 78 77 75 74 73 72 70 70 69 69 69 69 69 70 71 71 71 71 70 70 70 70 70 69 68 66 65 64 63 61 59 57 55 54 52 51 50 49 47 46 44 42 39 36 33 29 25 22 18 15 13 11 9 8 8 8 8 8 8 8 9 9 10 10 10 11 11 11 12 12 12 13 13 14 15 16 18 19 20 22 24 25 26 28 29 30 31 31 31 31 30 29 28 27 27 26 26 26 27 28 28 29 31 32 34 35 36 37 38 38 39 39 39 39 39 38 38 37 37 37 36 36 36 36 35 35 34 34 33 32 31 30 29 28 27 26 26 25 25 25 25 25 25 26 26 27 27 28 28 29 29 29 30 31 32 33 33 34 34 35 35 36 37 37 38 39 39 40 40 41 41 41 41 41 40 39 38 36 35 34 32 31 30 29 28 27 27 27 27 27 27 28 28 29 31 32 33 35 36 38 40 42 44 45 47 49 50 51 52 52 53 53 52 52 51 50 49 47 46 45 44 44 45 48 53 60 67 73 77 80 80 80 79 79 78 77 77 77 78 79 80 80 80 80 80 80 80 80 80 80 80 80 80 80 79 78 77 76 75 73 71 68 66 63 60 57 54 51 48 45 41 37 34 31 29 27 25 24 23 23 23 23 24 25 27 29 32 36 39 43 89 89 89 90 92 94 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 96 95 95 96 96 96 96 96 96 96 95 95 96 96 96 96 96 96 96 96 96 96 95 95 95 94 94 94 93 93 93 93 93 93 93 93 93 93 93 93 94 94 94 94 94 94 94 94 95 95 95 95 94 94 94 94 94 94 93 92 91 91 92 93 93 93 93 93 93 92 92 92 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 90 90 90 89 89 88 87 87 86 85 84 83 82 81 80 79 77 76 74 73 72 71 70 70 69 69 70 71 71 72 72 73 73 73 73 73 73 72 72 72 71 70 69 67 66 65 63 62 60 58 56 55 54 53 52 50 49 47 45 43 40 36 33 29 25 21 17 14 12 10 9 8 8 8 8 8 8 9 9 10 10 10 11 11 12 12 12 13 13 13 14 15 16 18 19 20 22 24 26 27 29 30 32 33 33 33 33 32 31 30 29 28 27 27 27 28 28 29 30 31 32 34 35 36 38 38 39 39 39 39 39 39 38 37 37 36 36 36 36 35 35 35 34 33 32 31 30 29 27 26 26 25 24 24 24 25 26 26 28 29 31 32 34 35 36 37 38 39 40 40 41 42 43 44 44 45 46 46 47 47 48 48 49 49 50 50 49 49 50 50 50 50 49 48 48 47 45 44 43 42 40 38 37 35 34 32 31 29 28 27 26 25 25 25 25 26 26 27 28 30 31 33 34 36 37 39 40 41 42 43 43 44 44 44 43 42 41 39 38 37 37 40 44 50 57 65 71 76 79 79 79 79 79 78 78 78 78 79 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 79 79 78 77 75 74 72 70 68 66 63 60 56 51 47 43 39 36 33 30 28 26 25 25 25 26 29 31 35 38 42 46 50 91 90 89 89 91 93 94 94 94 94 94 94 95 95 95 95 95 94 95 95 95 95 95 95 95 95 95 95 96 95 95 93 93 94 94 95 94 94 93 94 95 96 96 95 95 94 94 93 93 93 93 93 93 92 92 92 92 92 92 93 93 93 93 94 94 94 94 94 94 94 94 94 94 93 93 93 93 93 93 92 91 90 91 92 93 93 93 93 93 92 92 91 91 90 90 90 90 90 90 91 91 91 91 91 91 91 91 91 91 91 90 90 90 89 89 88 88 87 86 85 85 84 83 82 80 79 78 77 76 75 73 72 71 71 70 70 70 70 71 72 73 74 74 75 75 75 75 75 75 75 75 74 74 73 72 71 69 68 66 65 64 62 61 59 58 57 56 55 53 52 50 48 45 43 40 36 32 28 24 20 16 13 11 10 9 8 8 8 8 8 9 9 10 10 10 11 11 12 13 13 13 14 14 14 15 16 17 18 20 22 24 26 28 30 32 33 34 35 35 35 34 33 32 31 30 29 29 28 29 29 30 30 32 33 34 35 37 38 39 39 40 40 40 39 38 38 37 36 36 35 35 35 35 34 34 33 32 31 30 28 27 26 25 24 24 24 24 26 27 29 31 34 36 39 41 43 46 47 49 50 51 51 52 52 52 52 52 53 53 54 54 55 55 55 55 55 55 54 54 54 53 52 52 52 52 51 51 51 51 50 50 49 48 47 46 45 44 43 42 40 39 37 35 33 31 29 27 26 25 24 23 23 23 23 23 24 24 25 26 27 29 30 32 33 34 36 37 37 38 37 36 34 33 32 31 33 36 40 46 54 62 68 74 77 78 79 79 79 79 79 79 79 80 80 80 80 80 80 80 80 80 80 80 81 81 81 80 80 80 80 80 79 79 78 78 77 76 75 74 72 69 66 62 59 55 51 47 43 39 35 32 30 29 29 30 33 36 39 43 48 52 55 92 91 90 89 90 92 93 94 93 93 93 94 94 95 95 95 93 93 94 95 95 95 95 95 95 95 95 95 95 95 93 92 92 93 93 93 93 93 91 92 93 95 95 94 93 93 93 93 93 93 93 93 93 92 92 92 92 92 92 92 92 93 93 93 93 93 93 93 93 93 93 93 93 93 93 92 92 92 92 91 91 92 92 92 92 92 92 92 92 92 91 91 90 90 90 90 90 90 91 91 91 91 91 91 91 91 90 90 90 89 89 88 88 87 86 86 85 84 83 82 81 80 79 77 76 75 74 73 72 72 71 71 71 71 71 72 72 73 74 75 76 76 77 77 77 77 77 76 76 76 76 75 74 73 72 71 70 68 67 66 64 63 62 61 60 59 58 57 55 53 51 48 45 43 40 36 32 27 23 18 15 12 10 9 9 8 8 8 9 9 9 10 10 10 11 12 12 13 14 14 15 15 15 16 16 17 18 19 21 23 25 27 30 32 34 35 37 37 37 37 36 35 33 32 31 30 30 30 30 30 31 32 33 34 35 37 38 39 40 40 40 40 39 38 38 37 36 35 35 34 34 34 34 33 32 31 30 29 27 26 25 24 24 25 26 27 29 32 35 38 41 44 47 50 52 54 56 57 58 58 59 59 59 59 58 58 58 58 58 58 58 58 58 57 57 56 55 55 54 53 52 52 51 51 50 50 50 50 50 50 49 49 48 48 47 47 46 45 45 44 43 43 42 40 38 36 34 32 30 27 26 24 23 22 21 21 21 20 21 21 22 22 24 25 26 28 30 31 32 31 31 29 28 27 26 27 29 32 37 43 51 58 65 71 75 77 78 79 79 79 79 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 79 79 79 79 79 79 78 78 77 75 74 72 70 68 66 64 60 55 51 46 41 37 35 34 35 37 40 44 48 53 57 60 92 92 91 91 91 92 93 93 93 93 93 94 94 95 95 94 92 91 93 94 95 95 94 94 93 94 94 94 94 94 93 92 93 93 93 93 92 92 89 89 91 93 93 92 92 93 93 93 92 92 93 92 92 92 92 92 92 92 92 92 92 92 93 93 93 93 93 93 93 93 93 93 92 92 92 92 92 92 91 91 91 92 92 92 92 92 92 91 91 91 91 91 90 90 90 90 91 91 91 91 91 91 90 90 90 90 89 89 88 88 87 87 86 85 84 84 83 82 81 80 78 77 76 75 74 74 73 72 72 72 73 73 74 74 75 76 76 77 77 78 78 79 79 79 78 78 78 77 77 76 76 75 74 73 72 71 70 69 67 66 65 64 63 62 61 60 59 58 56 54 51 48 45 42 39 35 30 26 21 17 14 12 10 9 9 8 8 9 9 9 10 10 11 11 12 13 13 14 15 15 16 16 16 17 17 18 19 21 22 24 27 29 32 34 37 38 39 40 39 38 37 36 35 33 32 32 31 31 32 32 33 34 35 36 37 38 39 40 40 40 40 39 39 38 37 36 35 34 34 34 33 33 33 32 31 29 28 26 25 25 25 26 27 30 32 35 39 43 46 49 52 54 56 58 59 60 60 60 61 61 61 61 60 60 60 60 60 60 60 59 59 59 58 58 57 56 55 55 54 54 53 53 52 52 52 51 51 51 51 51 51 50 50 49 48 47 46 45 45 44 44 43 43 43 42 41 40 38 36 34 32 30 28 26 25 24 23 22 21 21 20 20 20 20 21 23 24 25 26 26 26 25 24 23 23 23 24 26 29 34 41 48 55 62 68 72 75 77 78 79 79 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 79 79 79 79 79 79 79 78 78 77 75 74 74 74 74 73 72 70 67 63 58 52 48 45 43 42 43 45 49 53 58 61 64 92 93 93 92 93 93 93 93 93 94 94 94 94 95 95 93 91 89 91 92 93 93 92 92 92 92 92 92 92 91 91 91 92 93 93 92 91 89 85 86 89 91 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 93 92 92 92 92 92 92 92 92 92 92 92 92 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 90 90 90 90 90 90 90 90 90 90 89 89 88 88 87 86 86 85 84 84 83 82 81 80 79 79 78 77 76 76 75 75 75 75 76 76 77 78 79 79 80 80 80 80 80 81 81 81 80 80 79 79 79 78 77 76 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 58 56 53 51 47 43 40 37 33 28 24 19 16 13 11 10 9 9 9 9 9 10 10 10 11 11 12 13 14 14 15 16 17 17 18 18 18 18 19 20 22 24 26 28 31 34 36 39 41 42 42 42 40 39 37 36 35 34 33 33 33 33 34 34 35 36 37 38 39 40 40 40 40 40 39 38 37 36 35 34 34 33 33 33 32 32 31 29 28 26 25 25 26 28 30 34 38 42 46 50 53 56 58 60 61 61 62 62 62 61 61 61 61 61 61 61 61 61 61 61 61 61 61 60 60 59 58 58 58 57 57 57 57 57 57 57 56 56 56 55 55 55 55 54 54 53 52 51 50 48 47 45 44 43 43 42 42 42 42 41 41 40 39 38 36 35 33 32 30 29 28 26 25 23 22 20 20 20 20 20 21 21 21 21 21 21 20 20 20 21 22 24 27 32 38 45 52 58 64 69 72 75 77 78 79 80 80 81 80 80 80 80 80 80 80 80 80 80 80 80 79 79 79 79 79 79 79 79 78 78 77 76 75 74 74 75 75 76 76 75 74 71 68 64 60 56 53 51 51 53 55 59 62 66 68 93 94 94 94 94 94 94 94 94 94 94 94 94 94 95 94 92 90 91 91 91 91 91 91 90 90 91 92 91 90 90 91 91 92 92 90 88 86 85 85 87 89 91 91 91 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 91 91 91 92 92 91 91 90 90 90 91 90 90 91 91 91 91 91 91 91 91 91 90 90 90 90 90 90 90 90 90 89 89 89 88 88 87 86 86 85 84 83 83 82 81 80 80 79 79 79 78 78 78 78 78 78 79 80 81 82 82 83 83 83 83 83 83 82 82 83 82 82 81 80 80 79 79 78 77 76 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 59 58 55 53 49 45 41 37 33 29 25 21 17 14 12 10 9 9 9 9 10 10 10 11 11 11 12 13 14 15 16 17 17 18 18 19 19 19 20 20 21 23 25 27 30 33 36 39 41 43 44 44 43 42 41 39 37 36 35 35 35 35 35 35 36 36 37 38 39 40 41 41 41 40 39 38 37 36 35 34 34 33 33 33 32 32 31 30 28 27 26 26 27 29 33 37 42 47 51 55 58 60 62 63 63 64 63 63 63 62 62 62 61 61 61 62 62 62 62 62 62 62 62 61 61 60 60 60 60 61 61 62 63 63 62 62 61 60 60 59 59 59 58 58 57 57 56 55 54 53 51 50 48 46 45 43 42 42 41 41 41 41 41 41 41 40 39 39 38 36 35 34 33 31 29 27 25 23 21 20 20 20 19 19 19 19 18 18 18 19 19 19 20 23 26 31 36 43 49 55 61 65 69 72 75 76 78 80 80 80 80 80 80 80 80 80 80 80 80 80 79 79 79 79 79 79 79 79 79 78 77 76 75 75 75 75 75 76 76 76 76 76 74 73 71 68 66 64 62 61 62 63 65 67 69 70 94 94 94 94 94 94 94 94 94 94 94 94 94 94 95 93 91 90 92 92 91 90 90 91 90 90 90 91 91 91 90 91 91 92 90 88 87 86 86 86 87 88 89 90 90 91 91 91 91 91 92 92 92 91 91 91 92 92 92 92 92 92 92 92 92 92 92 91 91 91 91 91 91 92 92 91 91 91 91 91 91 91 90 90 90 90 91 91 91 91 91 90 90 90 90 90 90 90 89 89 89 88 87 87 86 86 85 85 84 83 82 82 81 81 80 80 81 81 81 81 82 82 82 82 82 83 83 84 84 85 85 85 85 85 85 84 84 83 83 82 82 81 81 80 80 79 79 78 77 77 76 75 75 74 73 72 70 69 68 67 66 65 64 63 62 61 59 57 55 51 47 43 38 33 29 25 21 18 15 12 11 10 9 9 10 10 10 11 11 12 12 13 13 14 15 16 17 18 18 19 20 20 21 21 21 22 22 24 26 28 31 34 38 41 44 45 46 46 45 44 42 41 39 38 37 36 36 36 36 36 37 38 38 39 40 41 41 41 41 40 39 38 37 36 35 34 33 33 33 32 32 31 30 28 27 26 27 28 31 35 40 45 50 54 58 61 63 64 65 65 65 65 64 64 64 63 63 63 63 63 63 63 63 63 63 63 62 62 62 61 61 60 61 61 63 64 65 66 67 66 66 65 64 63 62 62 61 61 61 61 61 60 60 59 58 57 55 53 51 49 47 46 44 43 42 41 41 41 41 41 41 41 42 42 41 41 40 39 38 37 35 33 31 29 26 24 23 22 21 20 19 19 18 18 18 18 18 18 19 20 22 25 29 35 40 46 52 57 61 65 69 72 74 77 79 79 80 80 80 80 80 80 80 79 79 79 78 78 78 78 79 79 79 78 78 77 76 76 75 75 75 75 76 76 76 76 76 75 74 73 73 72 72 71 70 69 69 70 70 71 71 71 93 94 94 93 92 92 93 93 94 94 93 93 93 94 94 93 91 91 92 92 91 90 90 90 90 90 90 91 91 91 91 92 92 92 90 88 87 87 88 88 88 88 88 89 90 91 91 91 91 91 91 91 91 91 91 91 91 91 92 92 92 92 91 91 91 91 91 90 90 89 89 90 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 90 90 90 90 90 90 90 90 89 89 88 88 87 86 85 84 84 83 83 83 83 83 83 83 83 83 84 84 84 85 85 85 85 85 85 85 86 86 86 85 85 85 85 85 85 85 84 84 83 83 82 82 81 81 80 80 79 79 78 78 77 77 76 76 75 74 73 72 71 70 69 68 67 66 65 63 62 61 59 56 53 49 44 39 34 29 25 21 18 15 13 11 10 10 10 10 10 10 11 11 12 13 13 14 15 16 17 18 18 19 20 21 21 22 22 23 23 23 24 26 27 30 33 36 40 43 46 48 48 48 47 46 44 43 41 40 39 39 38 38 38 38 38 39 39 40 41 41 42 42 41 40 39 38 37 35 35 34 34 33 33 32 32 31 29 28 27 27 29 32 36 41 46 51 56 60 62 64 65 65 66 66 65 65 65 65 65 64 64 64 64 64 64 64 64 64 64 63 63 62 62 61 61 61 62 64 66 67 68 68 68 67 67 66 65 64 64 64 64 64 64 64 64 64 64 64 63 62 60 58 55 53 51 49 48 46 45 44 43 42 41 41 41 42 42 42 43 43 43 43 42 41 40 39 37 35 33 31 29 27 25 24 22 21 20 20 19 19 19 18 18 19 20 22 24 28 33 38 43 49 53 58 62 66 69 72 75 77 79 80 79 80 80 80 79 79 78 78 78 78 78 78 79 78 78 76 75 75 75 75 75 75 76 76 76 76 76 75 75 74 73 73 73 73 73 73 73 73 73 73 73 73 72 71 91 93 92 89 87 87 90 92 93 93 92 93 93 93 93 92 91 91 93 93 93 92 92 92 91 90 90 90 91 92 92 92 92 91 90 88 88 87 88 89 89 89 89 89 90 90 90 91 91 91 90 90 90 90 90 90 90 91 91 91 91 91 91 91 91 91 90 89 88 87 88 89 90 91 91 91 91 91 91 91 91 91 90 90 90 90 90 90 90 90 90 90 90 90 89 89 88 87 86 86 85 84 84 83 83 84 84 85 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86 85 85 85 85 84 84 84 83 83 83 82 82 81 81 81 80 79 79 78 78 78 77 77 76 76 75 75 74 73 71 70 70 69 68 67 65 64 62 60 58 55 51 46 41 35 30 26 22 19 16 14 12 11 10 10 10 11 11 11 12 12 13 14 14 15 16 17 18 19 20 21 22 22 23 23 24 25 25 26 26 28 30 32 35 38 41 45 48 49 50 50 50 48 47 45 43 42 41 41 41 40 40 40 40 40 40 41 41 42 42 42 41 40 39 38 36 35 35 34 34 33 33 32 32 30 29 28 27 29 32 36 41 47 52 57 61 63 64 65 66 66 66 66 66 66 66 66 66 65 65 65 65 65 65 65 65 65 64 64 63 63 63 63 63 63 64 65 67 69 70 70 69 68 67 66 65 65 65 65 66 66 66 66 66 66 66 66 66 65 64 62 60 59 56 54 53 51 49 48 46 44 43 42 42 42 42 43 43 43 44 44 44 44 43 43 42 41 39 37 35 33 31 29 28 26 24 23 22 21 20 19 19 19 19 20 21 24 27 31 36 41 46 50 55 59 63 66 69 73 76 78 79 80 80 79 79 78 78 78 78 78 78 78 78 77 76 74 73 73 73 74 75 75 75 75 75 75 75 75 74 73 72 72 72 72 72 72 73 73 73 73 73 72 72 71 89 91 91 87 84 83 86 89 91 92 92 92 93 93 92 90 90 91 92 93 92 91 91 91 91 90 89 90 91 91 90 91 92 91 90 89 88 88 89 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 89 89 90 90 91 91 91 91 91 91 91 90 89 87 86 86 87 88 89 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 89 89 89 89 88 87 87 86 86 85 85 85 85 86 86 87 87 87 86 86 86 86 87 87 87 87 87 87 86 86 86 86 86 86 86 86 85 85 84 83 83 83 83 83 83 83 83 83 82 82 81 81 80 80 79 79 78 78 77 76 76 75 75 75 74 73 72 71 70 69 68 67 65 63 61 59 56 52 47 42 36 31 26 23 19 17 14 13 11 11 11 11 11 12 12 13 13 14 14 15 16 17 18 19 20 21 22 22 23 24 25 25 26 26 27 28 29 30 32 34 37 40 43 47 50 51 52 52 52 51 49 47 46 45 44 43 43 43 42 42 42 41 41 42 42 43 43 42 42 40 39 38 36 36 35 34 34 33 33 32 31 30 29 28 29 32 35 41 46 52 57 61 63 65 65 66 66 66 66 67 67 67 67 67 67 66 66 67 67 66 66 66 66 66 65 65 65 65 65 65 64 64 65 66 68 70 71 70 69 67 66 65 64 65 65 66 67 68 68 69 69 69 68 68 67 66 66 65 65 64 62 60 58 56 54 52 50 47 46 44 43 43 42 43 43 43 44 44 44 45 45 45 45 44 43 42 41 39 37 35 34 31 29 27 26 24 23 22 21 20 19 19 20 21 23 26 30 34 38 43 48 52 56 60 63 67 72 76 79 79 79 79 78 78 78 78 79 78 78 77 76 74 73 72 71 72 73 74 75 75 75 75 74 74 74 73 73 72 71 71 71 71 71 71 72 72 73 73 73 72 71 70 92 92 92 90 88 88 89 91 92 93 93 93 93 92 91 90 90 91 92 93 92 90 88 89 89 89 90 91 91 90 89 90 91 91 91 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 89 89 90 90 90 90 90 90 90 91 91 91 90 89 87 86 86 86 86 87 88 89 90 90 90 90 90 89 89 89 89 89 89 89 89 89 89 89 89 89 88 88 87 87 87 87 87 88 88 87 87 87 87 87 87 87 87 86 87 87 87 86 86 86 86 86 86 86 86 86 86 85 84 83 82 82 81 82 82 83 83 83 83 83 83 82 82 82 81 81 80 80 79 79 78 78 77 76 76 75 75 74 73 73 72 71 69 68 67 65 61 58 55 52 47 42 36 31 26 23 19 17 14 13 12 11 11 12 12 12 13 13 14 14 15 16 16 18 18 20 21 22 23 23 24 25 26 26 27 27 28 29 30 31 32 35 37 40 43 46 49 51 53 54 55 54 53 52 51 49 48 47 46 45 45 44 44 43 43 43 43 43 43 43 43 42 41 39 38 37 36 35 34 34 33 33 32 31 30 29 29 31 34 39 45 51 56 60 63 65 65 66 66 66 67 67 67 67 67 67 68 68 68 68 68 68 68 67 67 66 66 66 66 66 66 66 66 66 65 66 67 69 70 71 70 68 66 65 64 64 65 66 67 69 70 71 72 73 72 71 70 69 68 68 68 68 67 66 65 63 60 58 55 53 50 48 46 44 43 43 43 43 43 44 45 45 46 46 47 47 47 46 46 45 44 42 41 39 37 35 33 31 28 26 25 23 22 20 20 19 20 21 23 26 29 32 36 40 44 48 52 56 61 66 71 76 77 78 77 77 77 78 78 78 78 76 75 73 72 71 71 72 73 74 74 74 73 73 73 73 72 72 71 71 71 71 71 71 71 71 71 72 72 72 73 72 72 71 69 93 93 93 93 93 93 93 93 93 93 93 93 93 92 92 91 91 92 92 92 90 88 87 88 89 90 91 91 90 89 88 89 90 90 90 90 90 90 90 89 89 89 89 89 89 89 89 89 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 89 88 87 86 86 85 86 87 88 89 89 89 89 89 89 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 87 87 87 87 87 87 87 86 86 85 85 85 85 86 86 86 86 86 86 85 85 84 83 82 81 81 82 82 83 83 84 84 84 84 83 83 83 82 82 82 82 82 81 81 80 80 79 79 78 76 76 75 75 74 74 72 71 69 67 64 61 58 54 50 46 41 35 30 26 22 19 16 14 13 12 12 12 12 13 13 14 14 15 15 16 17 17 18 19 20 21 22 24 24 25 26 27 28 28 29 30 31 32 32 33 35 37 39 42 45 48 51 54 55 57 57 57 56 55 54 52 51 50 49 48 47 47 46 45 45 45 44 44 44 44 43 43 41 40 39 37 36 35 35 34 33 33 32 31 30 29 30 32 37 42 48 55 59 63 65 66 66 66 66 67 67 67 68 68 68 69 69 70 70 70 70 69 69 68 67 67 66 66 66 66 67 67 67 67 67 67 69 70 71 71 69 68 66 65 64 65 66 68 70 72 73 74 75 75 74 74 73 72 72 72 72 72 71 71 70 68 67 65 62 59 56 53 50 48 46 45 45 45 45 46 46 47 47 48 48 48 48 48 48 47 47 46 45 44 42 40 38 36 34 31 29 26 24 23 21 20 20 20 21 23 25 28 31 34 37 41 44 48 53 59 64 70 73 75 76 77 77 78 78 77 76 75 73 72 71 71 71 73 73 73 72 71 71 71 71 71 71 71 71 71 71 71 71 72 72 72 72 72 73 72 72 72 72 70 69 92 92 92 92 92 92 92 92 92 92 92 92 92 91 91 91 91 91 91 91 90 88 86 88 90 90 91 90 90 89 88 89 90 90 90 90 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 90 90 90 90 90 90 90 90 90 90 90 90 89 88 88 87 87 86 86 86 87 88 88 89 89 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 87 87 87 87 87 87 87 87 86 86 85 85 85 85 84 84 84 84 84 83 83 82 82 82 81 82 83 84 85 85 84 84 84 84 84 83 83 83 83 83 83 83 83 83 82 82 81 80 80 79 78 77 76 75 74 72 71 69 67 64 61 57 53 48 44 38 33 28 24 21 18 16 14 14 13 13 13 14 14 14 15 15 15 16 17 18 18 19 20 21 22 23 24 25 26 27 28 29 30 31 31 32 33 34 35 36 38 40 42 45 48 51 54 56 58 59 60 60 59 58 57 55 54 53 52 51 50 49 48 47 47 46 46 46 45 45 44 43 42 41 39 38 37 36 35 34 34 33 32 31 30 30 31 34 39 45 52 58 62 64 66 66 66 67 67 67 68 68 68 69 70 71 71 72 72 72 71 71 70 69 68 67 67 67 67 67 68 68 68 68 68 69 70 72 72 71 70 68 66 65 66 67 70 72 74 76 76 77 76 76 75 74 74 75 75 75 75 75 74 74 73 73 71 70 68 65 62 59 55 52 51 49 49 49 49 49 49 49 49 49 49 49 49 48 48 48 48 48 47 47 46 44 43 40 38 35 33 30 27 25 24 22 21 21 21 22 23 25 27 29 31 34 37 41 45 51 57 63 68 72 74 76 77 77 77 76 74 72 71 70 70 71 71 72 71 71 70 69 69 69 69 69 70 70 71 71 72 72 72 73 73 73 73 73 72 72 72 72 71 69 67 92 92 92 92 92 92 92 92 92 92 92 91 91 90 90 90 91 91 91 91 90 88 87 89 90 91 90 90 89 89 89 89 89 90 89 89 89 88 88 88 88 88 88 88 88 88 89 89 89 88 88 88 89 89 89 89 89 89 89 89 89 89 89 89 89 89 88 88 88 88 88 87 87 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 87 87 87 87 87 87 87 87 86 86 85 84 83 83 83 82 82 82 82 82 82 83 83 84 84 85 85 85 85 85 85 85 85 85 84 84 84 84 84 84 84 84 84 84 84 83 83 82 81 80 79 78 77 76 74 72 70 67 65 63 60 56 51 46 41 36 31 27 23 20 18 16 15 14 14 14 14 15 15 15 16 16 16 17 18 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 33 34 35 36 37 39 40 42 45 47 51 53 56 59 60 62 62 62 62 61 60 58 57 56 55 54 53 52 51 50 49 48 48 47 47 46 45 44 43 41 40 38 37 36 35 35 34 33 32 31 30 31 33 36 42 48 55 60 64 66 66 67 67 67 68 68 69 69 70 71 71 72 72 73 73 73 72 72 71 70 69 68 68 68 68 68 69 69 69 69 70 71 72 73 73 73 72 71 69 69 69 70 72 74 75 77 78 78 78 77 76 75 75 76 76 76 76 76 75 75 74 74 73 71 69 67 65 63 60 58 56 54 53 52 51 51 50 50 49 49 48 48 48 48 48 48 48 48 48 48 48 46 45 43 41 38 36 33 30 28 26 25 24 23 22 22 23 24 24 26 27 29 32 35 39 45 51 58 64 69 73 76 76 76 75 74 72 70 70 69 69 69 69 69 69 68 68 68 68 68 69 69 70 71 71 72 72 73 73 73 73 73 72 72 72 71 71 70 69 67 64 91 91 91 91 91 91 91 91 91 91 91 90 90 90 90 90 90 90 90 90 90 90 89 90 90 91 90 90 89 89 89 89 89 89 89 88 88 88 88 87 87 87 87 88 88 88 88 89 89 89 88 88 88 88 88 88 88 89 89 89 89 89 89 88 88 88 88 88 89 89 88 88 88 88 88 88 88 88 88 88 87 87 87 87 88 88 88 88 88 88 88 88 88 88 87 87 87 87 87 87 87 87 87 87 87 87 86 86 85 85 85 84 83 83 83 84 84 84 84 85 85 85 85 85 86 86 86 86 86 86 86 85 85 85 85 85 85 84 84 84 84 84 84 84 84 83 83 82 81 79 78 77 75 73 71 68 66 63 60 57 53 49 44 39 34 29 25 22 19 18 16 16 15 15 15 16 16 16 16 17 17 18 18 19 20 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 37 38 39 41 43 45 47 50 53 56 59 61 63 64 65 65 65 64 62 61 60 59 58 57 56 55 53 52 51 50 49 49 48 47 46 45 44 42 40 39 37 36 35 35 34 33 32 31 31 32 34 38 44 51 57 62 65 67 67 67 67 68 69 70 70 71 71 72 72 73 73 73 73 73 73 72 72 71 70 70 69 69 69 70 70 71 71 72 72 73 74 74 74 74 74 74 74 74 74 75 73 72 73 75 77 78 78 78 77 76 76 76 76 76 76 76 75 75 75 74 73 72 71 69 68 66 64 62 60 58 56 55 53 52 51 50 49 48 48 47 47 47 48 48 48 48 48 49 48 47 46 45 43 41 38 36 33 31 29 27 26 25 24 23 23 23 23 24 24 26 28 32 37 42 49 55 62 68 72 74 75 74 73 71 70 69 68 68 67 66 66 66 66 66 67 67 67 68 69 70 71 72 72 73 73 73 73 73 73 72 72 71 71 70 69 68 66 64 61 91 91 91 90 90 90 90 90 90 89 88 87 88 88 89 89 89 89 89 90 90 90 90 90 90 90 90 89 89 89 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 89 89 89 88 88 88 88 88 89 89 89 89 89 88 88 87 87 87 88 88 88 88 88 88 88 88 88 88 88 88 87 87 87 87 87 87 87 87 87 88 88 88 88 88 87 87 87 87 88 87 87 87 87 87 87 87 87 87 87 87 87 86 86 87 87 86 86 86 86 86 86 86 86 86 86 86 86 86 85 85 85 86 86 85 85 85 85 85 85 85 84 84 84 84 84 83 83 82 81 79 77 76 73 71 68 65 62 60 56 53 49 44 40 36 31 27 24 21 19 18 17 16 16 16 16 17 17 17 18 18 19 19 20 20 21 22 23 23 24 25 26 27 28 29 30 31 32 33 34 34 35 36 37 38 39 40 41 43 45 47 50 52 55 58 61 63 65 66 67 68 67 66 65 64 62 61 60 59 58 57 56 55 53 52 51 50 50 49 47 46 44 43 41 39 38 37 36 35 34 34 33 32 32 33 36 40 47 53 59 64 66 67 67 67 68 68 69 70 71 72 72 73 73 73 73 74 74 74 74 73 73 72 71 71 71 71 71 71 72 72 73 74 74 74 75 75 75 75 75 76 76 77 77 77 75 72 70 73 76 77 78 78 78 78 77 77 77 77 76 76 76 75 75 74 74 73 72 71 69 68 67 65 63 61 59 57 55 53 51 50 49 48 47 46 46 46 46 47 47 48 49 49 49 48 47 46 44 43 40 38 36 34 32 30 28 26 25 25 24 24 24 24 25 27 30 34 39 44 50 56 62 66 70 72 72 71 69 68 66 65 64 64 63 63 63 64 66 67 67 68 68 70 71 72 72 72 73 73 73 73 73 73 73 72 72 71 70 69 67 66 63 61 58 Wind_Speed nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan Wind_Direction nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan