Skip to content

Instantly share code, notes, and snippets.

@stefanv
Created September 27, 2012 23:10
Show Gist options
  • Select an option

  • Save stefanv/3797003 to your computer and use it in GitHub Desktop.

Select an option

Save stefanv/3797003 to your computer and use it in GitHub Desktop.
Modularity
*Vertddices 198
*Arcs
*Edges
1 8 1
1 24 1
1 35 1
1 42 1
1 46 1
1 60 1
1 74 1
1 78 1
1 81 1
1 95 1
1 98 1
1 99 1
1 100 1
1 101 1
1 103 1
1 104 1
1 108 1
1 131 1
1 132 1
1 154 1
1 159 1
1 168 1
1 171 1
2 14 1
2 54 1
2 150 1
3 115 1
3 153 1
3 167 1
3 172 1
4 5 1
4 13 1
4 26 1
4 77 1
4 85 1
4 102 1
4 138 1
4 147 1
4 153 1
4 156 1
4 167 1
4 169 1
4 172 1
4 173 1
4 176 1
4 189 1
4 5 1
5 13 1
5 19 1
5 21 1
5 26 1
5 27 1
5 28 1
5 29 1
5 51 1
5 53 1
5 54 1
5 57 1
5 73 1
5 75 1
5 76 1
5 77 1
5 79 1
5 85 1
5 86 1
5 90 1
5 96 1
5 97 1
5 102 1
5 124 1
5 126 1
5 128 1
5 136 1
5 138 1
5 140 1
5 144 1
5 147 1
5 149 1
5 153 1
5 155 1
5 156 1
5 163 1
5 167 1
5 169 1
5 172 1
5 173 1
5 176 1
5 189 1
5 191 1
5 194 1
5 196 1
5 197 1
6 152 1
6 157 1
7 10 1
7 11 1
7 14 1
7 19 1
7 36 1
7 49 1
7 53 1
7 55 1
7 56 1
7 57 1
7 60 1
7 61 1
7 67 1
7 69 1
7 70 1
7 71 1
7 72 1
7 74 1
7 81 1
7 83 1
7 87 1
7 93 1
7 94 1
7 95 1
7 103 1
7 108 1
7 111 1
7 112 1
7 113 1
7 114 1
7 122 1
7 125 1
7 127 1
7 129 1
7 130 1
7 132 1
7 136 1
7 141 1
7 146 1
7 150 1
7 151 1
7 158 1
7 161 1
7 164 1
7 168 1
7 170 1
7 171 1
7 177 1
7 178 1
7 185 1
7 190 1
7 192 1
7 193 1
7 194 1
7 195 1
7 196 1
7 197 1
1 8 1
8 35 1
8 46 1
8 60 1
8 89 1
8 95 1
8 98 1
8 99 1
8 100 1
8 101 1
8 110 1
8 118 1
8 121 1
8 131 1
8 132 1
8 136 1
8 142 1
8 154 1
8 168 1
8 171 1
8 174 1
9 11 1
9 23 1
9 32 1
9 38 1
9 71 1
9 80 1
9 111 1
9 116 1
9 117 1
9 118 1
9 121 1
9 122 1
9 135 1
9 137 1
9 139 1
9 153 1
9 162 1
9 168 1
9 179 1
9 189 1
7 10 1
10 11 1
10 14 1
10 49 1
10 53 1
10 57 1
10 60 1
10 61 1
10 69 1
10 70 1
10 71 1
10 74 1
10 87 1
10 103 1
10 112 1
10 113 1
10 114 1
10 127 1
10 130 1
10 141 1
10 151 1
10 158 1
10 161 1
10 164 1
10 192 1
10 195 1
10 196 1
7 11 1
9 11 1
10 11 1
11 23 1
11 32 1
11 38 1
11 49 1
11 53 1
11 57 1
11 71 1
11 80 1
11 112 1
11 113 1
11 114 1
11 135 1
11 139 1
11 158 1
11 161 1
11 162 1
11 164 1
11 179 1
11 189 1
11 196 1
12 18 1
12 19 1
12 31 1
12 49 1
12 53 1
12 54 1
12 55 1
12 56 1
12 57 1
12 60 1
12 61 1
12 71 1
12 73 1
12 83 1
12 114 1
12 129 1
12 170 1
12 194 1
12 195 1
12 196 1
12 197 1
4 13 1
5 13 1
13 25 1
13 26 1
13 28 1
13 73 1
13 85 1
13 86 1
13 92 1
13 102 1
13 128 1
13 140 1
13 147 1
13 148 1
13 149 1
13 153 1
13 155 1
13 156 1
13 167 1
13 169 1
13 172 1
13 173 1
13 176 1
13 189 1
13 191 1
2 14 1
7 14 1
10 14 1
14 54 1
14 60 1
14 61 1
14 69 1
14 70 1
14 87 1
14 96 1
14 112 1
14 114 1
14 127 1
14 130 1
14 141 1
14 150 1
14 151 1
14 158 1
14 161 1
14 164 1
14 185 1
14 186 1
14 192 1
14 194 1
14 195 1
15 16 1
15 24 1
15 48 1
15 81 1
15 91 1
15 104 1
15 105 1
15 107 1
15 16 1
16 24 1
16 48 1
16 78 1
16 81 1
16 91 1
16 104 1
16 105 1
16 107 1
17 62 1
17 136 1
12 18 1
18 19 1
18 29 1
18 31 1
18 50 1
18 53 1
18 54 1
18 55 1
18 56 1
18 57 1
18 60 1
18 61 1
18 73 1
18 77 1
18 86 1
18 88 1
18 90 1
18 96 1
18 114 1
18 128 1
18 129 1
18 131 1
18 132 1
18 136 1
18 140 1
18 147 1
18 149 1
18 158 1
18 167 1
18 172 1
18 183 1
18 184 1
18 191 1
18 194 1
18 195 1
18 196 1
18 197 1
5 19 1
7 19 1
12 19 1
18 19 1
19 20 1
19 31 1
19 49 1
19 53 1
19 54 1
19 55 1
19 56 1
19 57 1
19 60 1
19 61 1
19 70 1
19 129 1
19 130 1
19 136 1
19 185 1
19 192 1
19 194 1
19 195 1
19 196 1
19 197 1
19 20 1
20 24 1
20 60 1
20 70 1
20 78 1
20 80 1
20 87 1
20 136 1
20 137 1
20 158 1
20 168 1
5 21 1
22 43 1
22 81 1
22 83 1
22 98 1
22 99 1
22 100 1
22 101 1
22 105 1
22 108 1
22 131 1
22 132 1
22 136 1
22 164 1
22 170 1
22 174 1
22 178 1
22 182 1
22 194 1
22 197 1
9 23 1
11 23 1
23 32 1
23 38 1
23 60 1
23 80 1
23 111 1
23 135 1
23 139 1
23 162 1
23 168 1
23 179 1
23 189 1
1 24 1
15 24 1
16 24 1
20 24 1
24 35 1
24 42 1
24 43 1
24 46 1
24 48 1
24 60 1
24 74 1
24 78 1
24 80 1
24 81 1
24 91 1
24 99 1
24 100 1
24 103 1
24 104 1
24 105 1
24 107 1
24 108 1
24 132 1
24 136 1
24 154 1
24 168 1
24 171 1
24 174 1
24 182 1
13 25 1
25 92 1
25 117 1
25 148 1
25 149 1
25 153 1
4 26 1
5 26 1
13 26 1
26 28 1
26 29 1
26 73 1
26 77 1
26 85 1
26 86 1
26 90 1
26 96 1
26 102 1
26 124 1
26 128 1
26 138 1
26 140 1
26 147 1
26 149 1
26 153 1
26 155 1
26 156 1
26 167 1
26 169 1
26 172 1
26 173 1
26 176 1
26 178 1
26 184 1
26 189 1
26 191 1
26 198 1
5 27 1
27 29 1
27 51 1
27 76 1
27 96 1
27 126 1
27 128 1
27 144 1
27 147 1
27 149 1
27 153 1
27 167 1
27 172 1
5 28 1
13 28 1
26 28 1
28 29 1
28 73 1
28 77 1
28 85 1
28 86 1
28 90 1
28 96 1
28 102 1
28 124 1
28 128 1
28 138 1
28 140 1
28 147 1
28 149 1
28 153 1
28 155 1
28 156 1
28 167 1
28 172 1
28 173 1
28 176 1
28 184 1
28 189 1
28 191 1
28 198 1
5 29 1
18 29 1
26 29 1
27 29 1
28 29 1
29 51 1
29 73 1
29 76 1
29 77 1
29 86 1
29 88 1
29 90 1
29 96 1
29 97 1
29 124 1
29 126 1
29 128 1
29 136 1
29 138 1
29 140 1
29 144 1
29 147 1
29 149 1
29 153 1
29 167 1
29 169 1
29 172 1
29 176 1
29 184 1
29 191 1
29 198 1
30 34 1
12 31 1
18 31 1
19 31 1
31 32 1
31 53 1
31 54 1
31 55 1
31 56 1
31 57 1
31 60 1
31 61 1
31 106 1
31 111 1
31 123 1
31 129 1
31 170 1
31 194 1
31 195 1
31 196 1
31 197 1
9 32 1
11 32 1
23 32 1
31 32 1
32 33 1
32 35 1
32 38 1
32 40 1
32 44 1
32 58 1
32 60 1
32 61 1
32 62 1
32 63 1
32 64 1
32 65 1
32 66 1
32 80 1
32 91 1
32 98 1
32 99 1
32 100 1
32 101 1
32 105 1
32 106 1
32 107 1
32 108 1
32 109 1
32 110 1
32 111 1
32 122 1
32 123 1
32 131 1
32 132 1
32 135 1
32 139 1
32 154 1
32 162 1
32 168 1
32 179 1
32 189 1
32 33 1
33 35 1
33 38 1
33 40 1
33 44 1
33 58 1
33 60 1
33 62 1
33 63 1
33 64 1
33 65 1
33 66 1
33 91 1
33 98 1
33 99 1
33 100 1
33 101 1
33 105 1
33 106 1
33 107 1
33 108 1
33 109 1
33 110 1
33 116 1
33 119 1
33 122 1
33 123 1
33 131 1
33 132 1
33 134 1
33 135 1
33 154 1
33 168 1
33 179 1
30 34 1
34 70 1
34 83 1
34 192 1
1 35 1
8 35 1
24 35 1
32 35 1
33 35 1
35 40 1
35 44 1
35 46 1
35 58 1
35 60 1
35 62 1
35 63 1
35 64 1
35 65 1
35 66 1
35 68 1
35 74 1
35 78 1
35 95 1
35 98 1
35 99 1
35 100 1
35 101 1
35 103 1
35 104 1
35 105 1
35 106 1
35 107 1
35 108 1
35 109 1
35 110 1
35 122 1
35 123 1
35 131 1
35 132 1
35 135 1
35 154 1
35 166 1
35 168 1
35 170 1
35 171 1
35 179 1
35 187 1
7 36 1
36 49 1
36 53 1
36 54 1
36 55 1
36 56 1
36 60 1
36 67 1
36 70 1
36 72 1
36 81 1
36 83 1
36 87 1
36 129 1
36 150 1
36 158 1
36 161 1
36 164 1
36 170 1
36 174 1
36 178 1
36 192 1
36 194 1
36 195 1
36 196 1
36 197 1
37 90 1
37 133 1
37 153 1
37 155 1
37 180 1
9 38 1
11 38 1
23 38 1
32 38 1
33 38 1
38 40 1
38 44 1
38 63 1
38 80 1
38 91 1
38 105 1
38 116 1
38 119 1
38 134 1
38 135 1
38 139 1
38 162 1
38 179 1
38 189 1
39 51 1
39 80 1
39 116 1
39 149 1
39 153 1
39 181 1
32 40 1
33 40 1
35 40 1
38 40 1
40 44 1
40 58 1
40 60 1
40 62 1
40 63 1
40 64 1
40 65 1
40 66 1
40 91 1
40 98 1
40 99 1
40 100 1
40 101 1
40 105 1
40 106 1
40 107 1
40 108 1
40 109 1
40 110 1
40 116 1
40 119 1
40 122 1
40 123 1
40 131 1
40 132 1
40 134 1
40 135 1
40 154 1
40 168 1
40 179 1
41 45 1
41 77 1
41 86 1
41 88 1
41 96 1
41 97 1
41 136 1
1 42 1
24 42 1
42 46 1
42 50 1
42 81 1
42 104 1
42 106 1
42 123 1
42 136 1
42 159 1
42 182 1
42 183 1
22 43 1
24 43 1
43 59 1
43 78 1
43 81 1
43 82 1
43 83 1
43 98 1
43 99 1
43 100 1
43 101 1
43 105 1
43 108 1
43 118 1
43 121 1
43 122 1
43 131 1
43 132 1
43 136 1
43 143 1
43 158 1
43 162 1
43 164 1
43 170 1
43 174 1
43 178 1
43 182 1
43 194 1
43 197 1
32 44 1
33 44 1
35 44 1
38 44 1
40 44 1
44 50 1
44 58 1
44 60 1
44 62 1
44 63 1
44 64 1
44 65 1
44 66 1
44 68 1
44 91 1
44 98 1
44 99 1
44 100 1
44 101 1
44 105 1
44 106 1
44 107 1
44 108 1
44 109 1
44 110 1
44 122 1
44 123 1
44 131 1
44 132 1
44 135 1
44 139 1
44 154 1
44 166 1
44 168 1
44 171 1
44 179 1
44 187 1
41 45 1
45 77 1
45 86 1
45 88 1
45 96 1
45 97 1
45 136 1
1 46 1
8 46 1
24 46 1
35 46 1
42 46 1
46 50 1
46 60 1
46 81 1
46 95 1
46 98 1
46 99 1
46 100 1
46 101 1
46 104 1
46 106 1
46 123 1
46 131 1
46 132 1
46 154 1
46 159 1
46 168 1
46 171 1
46 183 1
47 155 1
47 167 1
47 180 1
15 48 1
16 48 1
24 48 1
48 81 1
48 91 1
48 104 1
48 105 1
48 107 1
7 49 1
10 49 1
11 49 1
12 49 1
19 49 1
36 49 1
49 52 1
49 53 1
49 54 1
49 57 1
49 60 1
49 67 1
49 69 1
49 70 1
49 71 1
49 79 1
49 83 1
49 90 1
49 112 1
49 113 1
49 114 1
49 118 1
49 121 1
49 125 1
49 127 1
49 130 1
49 136 1
49 142 1
49 143 1
49 149 1
49 150 1
49 158 1
49 161 1
49 162 1
49 164 1
49 174 1
49 178 1
49 185 1
49 192 1
49 194 1
49 195 1
49 196 1
18 50 1
42 50 1
44 50 1
46 50 1
50 53 1
50 56 1
50 60 1
50 64 1
50 65 1
50 66 1
50 68 1
50 81 1
50 88 1
50 106 1
50 110 1
50 111 1
50 114 1
50 123 1
50 131 1
50 132 1
50 139 1
50 158 1
50 166 1
50 168 1
50 179 1
50 183 1
50 196 1
5 51 1
27 51 1
29 51 1
39 51 1
51 75 1
51 76 1
51 79 1
51 96 1
51 126 1
51 128 1
51 136 1
51 144 1
51 147 1
51 149 1
51 153 1
51 167 1
51 172 1
51 174 1
51 181 1
49 52 1
52 53 1
52 60 1
52 83 1
52 88 1
52 196 1
5 53 1
7 53 1
10 53 1
11 53 1
12 53 1
18 53 1
19 53 1
31 53 1
36 53 1
49 53 1
50 53 1
52 53 1
53 54 1
53 55 1
53 56 1
53 57 1
53 60 1
53 61 1
53 67 1
53 71 1
53 81 1
53 83 1
53 88 1
53 111 1
53 112 1
53 113 1
53 114 1
53 129 1
53 131 1
53 132 1
53 149 1
53 150 1
53 158 1
53 161 1
53 164 1
53 170 1
53 178 1
53 183 1
53 194 1
53 195 1
53 196 1
53 197 1
2 54 1
5 54 1
12 54 1
14 54 1
18 54 1
19 54 1
31 54 1
36 54 1
49 54 1
53 54 1
54 55 1
54 56 1
54 57 1
54 60 1
54 61 1
54 67 1
54 69 1
54 70 1
54 83 1
54 87 1
54 93 1
54 94 1
54 96 1
54 111 1
54 125 1
54 129 1
54 130 1
54 146 1
54 149 1
54 150 1
54 158 1
54 161 1
54 164 1
54 168 1
54 170 1
54 174 1
54 177 1
54 178 1
54 186 1
54 190 1
54 192 1
54 193 1
54 194 1
54 195 1
54 196 1
54 197 1
7 55 1
12 55 1
18 55 1
19 55 1
31 55 1
36 55 1
53 55 1
54 55 1
55 56 1
55 57 1
55 60 1
55 61 1
55 67 1
55 81 1
55 83 1
55 129 1
55 150 1
55 158 1
55 164 1
55 170 1
55 178 1
55 194 1
55 195 1
55 196 1
55 197 1
7 56 1
12 56 1
18 56 1
19 56 1
31 56 1
36 56 1
50 56 1
53 56 1
54 56 1
55 56 1
56 57 1
56 60 1
56 61 1
56 67 1
56 81 1
56 83 1
56 88 1
56 111 1
56 114 1
56 129 1
56 131 1
56 132 1
56 150 1
56 158 1
56 164 1
56 170 1
56 178 1
56 183 1
56 194 1
56 195 1
56 196 1
56 197 1
5 57 1
7 57 1
10 57 1
11 57 1
12 57 1
18 57 1
19 57 1
31 57 1
49 57 1
53 57 1
54 57 1
55 57 1
56 57 1
57 60 1
57 61 1
57 70 1
57 71 1
57 83 1
57 89 1
57 111 1
57 112 1
57 113 1
57 114 1
57 121 1
57 129 1
57 130 1
57 136 1
57 142 1
57 158 1
57 161 1
57 164 1
57 185 1
57 192 1
57 194 1
57 195 1
57 196 1
57 197 1
32 58 1
33 58 1
35 58 1
40 58 1
44 58 1
58 60 1
58 62 1
58 63 1
58 64 1
58 65 1
58 66 1
58 98 1
58 99 1
58 100 1
58 101 1
58 105 1
58 106 1
58 107 1
58 108 1
58 109 1
58 110 1
58 122 1
58 123 1
58 131 1
58 132 1
58 135 1
58 154 1
58 162 1
58 168 1
58 179 1
58 187 1
58 188 1
43 59 1
59 82 1
59 99 1
59 100 1
59 118 1
59 121 1
59 122 1
59 136 1
59 143 1
59 158 1
59 162 1
59 174 1
1 60 1
7 60 1
8 60 1
10 60 1
12 60 1
14 60 1
18 60 1
19 60 1
20 60 1
23 60 1
24 60 1
31 60 1
32 60 1
33 60 1
35 60 1
36 60 1
40 60 1
44 60 1
46 60 1
49 60 1
50 60 1
52 60 1
53 60 1
54 60 1
55 60 1
56 60 1
57 60 1
58 60 1
60 61 1
60 62 1
60 63 1
60 64 1
60 65 1
60 66 1
60 68 1
60 69 1
60 70 1
60 72 1
60 78 1
60 80 1
60 81 1
60 83 1
60 88 1
60 89 1
60 91 1
60 93 1
60 94 1
60 95 1
60 98 1
60 99 1
60 100 1
60 101 1
60 105 1
60 106 1
60 107 1
60 108 1
60 109 1
60 110 1
60 111 1
60 112 1
60 114 1
60 118 1
60 121 1
60 122 1
60 123 1
60 125 1
60 127 1
60 129 1
60 130 1
60 131 1
60 132 1
60 135 1
60 136 1
60 141 1
60 142 1
60 146 1
60 150 1
60 151 1
60 154 1
60 158 1
60 161 1
60 164 1
60 166 1
60 168 1
60 171 1
60 174 1
60 179 1
60 183 1
60 187 1
60 190 1
60 192 1
60 193 1
60 194 1
60 195 1
60 196 1
60 197 1
7 61 1
10 61 1
12 61 1
14 61 1
18 61 1
19 61 1
31 61 1
32 61 1
53 61 1
54 61 1
55 61 1
56 61 1
57 61 1
60 61 1
61 69 1
61 70 1
61 106 1
61 111 1
61 112 1
61 114 1
61 123 1
61 127 1
61 129 1
61 130 1
61 141 1
61 151 1
61 158 1
61 177 1
61 192 1
61 194 1
61 195 1
61 196 1
61 197 1
17 62 1
32 62 1
33 62 1
35 62 1
40 62 1
44 62 1
58 62 1
60 62 1
62 63 1
62 64 1
62 65 1
62 66 1
62 98 1
62 99 1
62 100 1
62 101 1
62 105 1
62 106 1
62 107 1
62 108 1
62 109 1
62 110 1
62 122 1
62 123 1
62 131 1
62 132 1
62 135 1
62 154 1
62 168 1
62 179 1
32 63 1
33 63 1
35 63 1
38 63 1
40 63 1
44 63 1
58 63 1
60 63 1
62 63 1
63 64 1
63 65 1
63 66 1
63 91 1
63 98 1
63 99 1
63 100 1
63 101 1
63 105 1
63 106 1
63 107 1
63 108 1
63 109 1
63 110 1
63 122 1
63 123 1
63 131 1
63 132 1
63 135 1
63 154 1
63 168 1
63 179 1
32 64 1
33 64 1
35 64 1
40 64 1
44 64 1
50 64 1
58 64 1
60 64 1
62 64 1
63 64 1
64 65 1
64 66 1
64 98 1
64 99 1
64 100 1
64 101 1
64 105 1
64 106 1
64 107 1
64 108 1
64 109 1
64 110 1
64 122 1
64 123 1
64 131 1
64 132 1
64 135 1
64 139 1
64 154 1
64 168 1
64 170 1
64 179 1
32 65 1
33 65 1
35 65 1
40 65 1
44 65 1
50 65 1
58 65 1
60 65 1
62 65 1
63 65 1
64 65 1
65 66 1
65 98 1
65 99 1
65 100 1
65 101 1
65 105 1
65 106 1
65 107 1
65 108 1
65 109 1
65 110 1
65 122 1
65 123 1
65 131 1
65 132 1
65 135 1
65 136 1
65 139 1
65 154 1
65 168 1
65 170 1
65 179 1
32 66 1
33 66 1
35 66 1
40 66 1
44 66 1
50 66 1
58 66 1
60 66 1
62 66 1
63 66 1
64 66 1
65 66 1
66 98 1
66 99 1
66 100 1
66 101 1
66 105 1
66 106 1
66 107 1
66 108 1
66 109 1
66 110 1
66 122 1
66 123 1
66 131 1
66 132 1
66 135 1
66 136 1
66 139 1
66 154 1
66 168 1
66 170 1
66 179 1
66 182 1
7 67 1
36 67 1
49 67 1
53 67 1
54 67 1
55 67 1
56 67 1
67 70 1
67 81 1
67 83 1
67 84 1
67 87 1
67 103 1
67 127 1
67 134 1
67 135 1
67 136 1
67 149 1
67 150 1
67 158 1
67 159 1
67 164 1
67 170 1
67 174 1
67 178 1
67 192 1
67 194 1
67 195 1
67 196 1
35 68 1
44 68 1
50 68 1
60 68 1
68 99 1
68 101 1
68 132 1
68 135 1
68 154 1
68 166 1
68 168 1
68 171 1
68 183 1
68 187 1
7 69 1
10 69 1
14 69 1
49 69 1
54 69 1
60 69 1
61 69 1
69 70 1
69 73 1
69 86 1
69 87 1
69 88 1
69 90 1
69 93 1
69 94 1
69 95 1
69 96 1
69 99 1
69 108 1
69 109 1
69 110 1
69 111 1
69 112 1
69 114 1
69 118 1
69 121 1
69 122 1
69 125 1
69 127 1
69 130 1
69 132 1
69 136 1
69 141 1
69 142 1
69 143 1
69 146 1
69 150 1
69 151 1
69 158 1
69 161 1
69 164 1
69 168 1
69 171 1
69 174 1
69 175 1
69 177 1
69 183 1
69 186 1
69 190 1
69 192 1
69 193 1
69 194 1
69 195 1
7 70 1
10 70 1
14 70 1
19 70 1
20 70 1
34 70 1
36 70 1
49 70 1
54 70 1
57 70 1
60 70 1
61 70 1
67 70 1
69 70 1
70 73 1
70 83 1
70 86 1
70 87 1
70 88 1
70 93 1
70 94 1
70 95 1
70 96 1
70 99 1
70 108 1
70 110 1
70 111 1
70 112 1
70 114 1
70 118 1
70 121 1
70 122 1
70 125 1
70 127 1
70 130 1
70 132 1
70 136 1
70 141 1
70 142 1
70 143 1
70 146 1
70 150 1
70 151 1
70 158 1
70 161 1
70 164 1
70 167 1
70 168 1
70 170 1
70 171 1
70 174 1
70 175 1
70 177 1
70 178 1
70 183 1
70 185 1
70 186 1
70 190 1
70 192 1
70 193 1
70 194 1
70 195 1
7 71 1
9 71 1
10 71 1
11 71 1
12 71 1
49 71 1
53 71 1
57 71 1
71 72 1
71 74 1
71 83 1
71 103 1
71 111 1
71 112 1
71 113 1
71 114 1
71 116 1
71 117 1
71 118 1
71 121 1
71 122 1
71 137 1
71 150 1
71 153 1
71 158 1
71 161 1
71 164 1
71 168 1
71 195 1
71 196 1
7 72 1
36 72 1
60 72 1
71 72 1
72 74 1
72 103 1
72 150 1
72 161 1
72 164 1
5 73 1
12 73 1
13 73 1
18 73 1
26 73 1
28 73 1
29 73 1
69 73 1
70 73 1
73 77 1
73 85 1
73 86 1
73 88 1
73 90 1
73 96 1
73 99 1
73 110 1
73 128 1
73 136 1
73 140 1
73 143 1
73 147 1
73 149 1
73 155 1
73 156 1
73 167 1
73 172 1
73 174 1
73 184 1
73 189 1
73 191 1
1 74 1
7 74 1
10 74 1
24 74 1
35 74 1
71 74 1
72 74 1
74 78 1
74 87 1
74 103 1
74 104 1
74 108 1
74 112 1
74 114 1
74 150 1
74 154 1
74 161 1
74 164 1
74 168 1
74 171 1
5 75 1
51 75 1
75 76 1
75 79 1
75 86 1
75 96 1
75 126 1
75 128 1
75 136 1
75 144 1
75 147 1
75 149 1
75 163 1
75 167 1
75 172 1
75 174 1
75 198 1
5 76 1
27 76 1
29 76 1
51 76 1
75 76 1
76 79 1
76 96 1
76 126 1
76 128 1
76 136 1
76 144 1
76 147 1
76 149 1
76 153 1
76 172 1
76 174 1
4 77 1
5 77 1
18 77 1
26 77 1
28 77 1
29 77 1
41 77 1
45 77 1
73 77 1
77 85 1
77 86 1
77 88 1
77 90 1
77 96 1
77 97 1
77 102 1
77 124 1
77 128 1
77 136 1
77 138 1
77 140 1
77 147 1
77 149 1
77 167 1
77 169 1
77 172 1
77 173 1
77 184 1
77 191 1
1 78 1
16 78 1
20 78 1
24 78 1
35 78 1
43 78 1
60 78 1
74 78 1
78 80 1
78 91 1
78 95 1
78 99 1
78 100 1
78 103 1
78 104 1
78 108 1
78 136 1
78 137 1
78 154 1
78 158 1
78 168 1
78 171 1
78 174 1
78 179 1
78 182 1
78 188 1
5 79 1
49 79 1
51 79 1
75 79 1
76 79 1
79 86 1
79 96 1
79 118 1
79 126 1
79 128 1
79 136 1
79 142 1
79 143 1
79 144 1
79 147 1
79 149 1
79 163 1
79 167 1
79 172 1
79 174 1
9 80 1
11 80 1
20 80 1
23 80 1
24 80 1
32 80 1
38 80 1
39 80 1
60 80 1
78 80 1
80 91 1
80 95 1
80 135 1
80 139 1
80 162 1
80 168 1
80 179 1
80 181 1
80 189 1
1 81 1
7 81 1
15 81 1
16 81 1
22 81 1
24 81 1
36 81 1
42 81 1
43 81 1
46 81 1
48 81 1
50 81 1
53 81 1
55 81 1
56 81 1
60 81 1
67 81 1
81 83 1
81 98 1
81 99 1
81 100 1
81 101 1
81 104 1
81 105 1
81 106 1
81 108 1
81 123 1
81 131 1
81 132 1
81 136 1
81 150 1
81 158 1
81 164 1
81 170 1
81 174 1
81 178 1
81 182 1
81 183 1
81 194 1
81 195 1
81 196 1
81 197 1
43 82 1
59 82 1
82 99 1
82 118 1
82 121 1
82 122 1
82 136 1
82 143 1
7 83 1
12 83 1
22 83 1
34 83 1
36 83 1
43 83 1
49 83 1
52 83 1
53 83 1
54 83 1
55 83 1
56 83 1
57 83 1
60 83 1
67 83 1
70 83 1
71 83 1
81 83 1
83 84 1
83 87 1
83 89 1
83 90 1
83 98 1
83 99 1
83 100 1
83 101 1
83 103 1
83 105 1
83 108 1
83 109 1
83 111 1
83 114 1
83 118 1
83 121 1
83 127 1
83 131 1
83 132 1
83 134 1
83 135 1
83 136 1
83 137 1
83 141 1
83 142 1
83 149 1
83 150 1
83 158 1
83 159 1
83 164 1
83 168 1
83 170 1
83 174 1
83 178 1
83 182 1
83 185 1
83 192 1
83 194 1
83 195 1
83 196 1
83 197 1
67 84 1
83 84 1
84 118 1
84 129 1
84 134 1
84 135 1
84 136 1
84 158 1
84 159 1
84 170 1
84 175 1
84 183 1
84 194 1
84 195 1
4 85 1
5 85 1
13 85 1
26 85 1
28 85 1
73 85 1
77 85 1
85 86 1
85 102 1
85 128 1
85 140 1
85 147 1
85 149 1
85 155 1
85 156 1
85 167 1
85 169 1
85 189 1
85 191 1
5 86 1
13 86 1
18 86 1
26 86 1
28 86 1
29 86 1
41 86 1
45 86 1
69 86 1
70 86 1
73 86 1
75 86 1
77 86 1
79 86 1
85 86 1
86 88 1
86 90 1
86 96 1
86 97 1
86 102 1
86 124 1
86 128 1
86 136 1
86 138 1
86 140 1
86 147 1
86 149 1
86 153 1
86 155 1
86 156 1
86 163 1
86 167 1
86 169 1
86 172 1
86 173 1
86 176 1
86 184 1
86 189 1
86 191 1
86 198 1
7 87 1
10 87 1
14 87 1
20 87 1
36 87 1
54 87 1
67 87 1
69 87 1
70 87 1
74 87 1
83 87 1
87 96 1
87 103 1
87 112 1
87 114 1
87 130 1
87 150 1
87 158 1
87 161 1
87 164 1
87 186 1
87 192 1
87 194 1
87 195 1
18 88 1
29 88 1
41 88 1
45 88 1
50 88 1
52 88 1
53 88 1
56 88 1
60 88 1
69 88 1
70 88 1
73 88 1
77 88 1
86 88 1
88 90 1
88 96 1
88 97 1
88 99 1
88 110 1
88 114 1
88 128 1
88 131 1
88 132 1
88 136 1
88 140 1
88 143 1
88 147 1
88 149 1
88 158 1
88 167 1
88 172 1
88 174 1
88 183 1
88 184 1
88 191 1
88 196 1
8 89 1
57 89 1
60 89 1
83 89 1
89 95 1
89 118 1
89 121 1
89 127 1
89 132 1
89 136 1
89 141 1
89 142 1
89 149 1
89 158 1
89 171 1
89 174 1
89 196 1
5 90 1
18 90 1
26 90 1
28 90 1
29 90 1
37 90 1
49 90 1
69 90 1
73 90 1
77 90 1
83 90 1
86 90 1
88 90 1
90 96 1
90 97 1
90 124 1
90 125 1
90 128 1
90 133 1
90 136 1
90 138 1
90 140 1
90 147 1
90 149 1
90 153 1
90 167 1
90 169 1
90 172 1
90 173 1
90 176 1
90 184 1
90 191 1
90 198 1
15 91 1
16 91 1
24 91 1
32 91 1
33 91 1
38 91 1
40 91 1
44 91 1
48 91 1
60 91 1
63 91 1
78 91 1
80 91 1
91 95 1
91 104 1
91 105 1
91 107 1
91 116 1
91 119 1
91 134 1
91 135 1
91 139 1
91 168 1
91 179 1
13 92 1
25 92 1
92 148 1
92 153 1
92 163 1
7 93 1
54 93 1
60 93 1
69 93 1
70 93 1
93 94 1
93 95 1
93 108 1
93 111 1
93 114 1
93 118 1
93 121 1
93 122 1
93 125 1
93 127 1
93 130 1
93 132 1
93 136 1
93 146 1
93 168 1
93 171 1
93 175 1
93 177 1
93 183 1
93 190 1
93 192 1
93 193 1
7 94 1
54 94 1
60 94 1
69 94 1
70 94 1
93 94 1
94 95 1
94 108 1
94 111 1
94 114 1
94 118 1
94 121 1
94 122 1
94 125 1
94 130 1
94 132 1
94 136 1
94 146 1
94 168 1
94 171 1
94 175 1
94 177 1
94 183 1
94 190 1
94 192 1
94 193 1
1 95 1
7 95 1
8 95 1
35 95 1
46 95 1
60 95 1
69 95 1
70 95 1
78 95 1
80 95 1
89 95 1
91 95 1
93 95 1
94 95 1
95 98 1
95 99 1
95 100 1
95 101 1
95 108 1
95 110 1
95 111 1
95 122 1
95 125 1
95 127 1
95 131 1
95 132 1
95 135 1
95 136 1
95 141 1
95 142 1
95 146 1
95 154 1
95 158 1
95 168 1
95 171 1
95 174 1
95 179 1
95 190 1
95 192 1
95 193 1
5 96 1
14 96 1
18 96 1
26 96 1
27 96 1
28 96 1
29 96 1
41 96 1
45 96 1
51 96 1
54 96 1
69 96 1
70 96 1
73 96 1
75 96 1
76 96 1
77 96 1
79 96 1
86 96 1
87 96 1
88 96 1
90 96 1
96 97 1
96 124 1
96 125 1
96 126 1
96 128 1
96 130 1
96 136 1
96 138 1
96 140 1
96 142 1
96 144 1
96 147 1
96 149 1
96 150 1
96 153 1
96 158 1
96 161 1
96 163 1
96 164 1
96 167 1
96 169 1
96 172 1
96 173 1
96 176 1
96 184 1
96 186 1
96 191 1
96 192 1
96 194 1
96 198 1
5 97 1
29 97 1
41 97 1
45 97 1
77 97 1
86 97 1
88 97 1
90 97 1
96 97 1
97 124 1
97 128 1
97 136 1
97 138 1
97 147 1
97 149 1
97 167 1
97 169 1
97 172 1
1 98 1
8 98 1
22 98 1
32 98 1
33 98 1
35 98 1
40 98 1
43 98 1
44 98 1
46 98 1
58 98 1
60 98 1
62 98 1
63 98 1
64 98 1
65 98 1
66 98 1
81 98 1
83 98 1
95 98 1
98 99 1
98 100 1
98 101 1
98 105 1
98 106 1
98 107 1
98 108 1
98 109 1
98 110 1
98 122 1
98 123 1
98 131 1
98 132 1
98 135 1
98 136 1
98 154 1
98 164 1
98 168 1
98 170 1
98 171 1
98 174 1
98 178 1
98 179 1
98 182 1
98 194 1
98 197 1
1 99 1
8 99 1
22 99 1
24 99 1
32 99 1
33 99 1
35 99 1
40 99 1
43 99 1
44 99 1
46 99 1
58 99 1
59 99 1
60 99 1
62 99 1
63 99 1
64 99 1
65 99 1
66 99 1
68 99 1
69 99 1
70 99 1
73 99 1
78 99 1
81 99 1
82 99 1
83 99 1
88 99 1
95 99 1
98 99 1
99 100 1
99 101 1
99 105 1
99 106 1
99 107 1
99 108 1
99 109 1
99 110 1
99 118 1
99 121 1
99 122 1
99 123 1
99 131 1
99 132 1
99 135 1
99 136 1
99 143 1
99 154 1
99 164 1
99 166 1
99 168 1
99 170 1
99 171 1
99 174 1
99 178 1
99 179 1
99 182 1
99 187 1
99 194 1
99 197 1
1 100 1
8 100 1
22 100 1
24 100 1
32 100 1
33 100 1
35 100 1
40 100 1
43 100 1
44 100 1
46 100 1
58 100 1
59 100 1
60 100 1
62 100 1
63 100 1
64 100 1
65 100 1
66 100 1
78 100 1
81 100 1
83 100 1
95 100 1
98 100 1
99 100 1
100 101 1
100 105 1
100 106 1
100 107 1
100 108 1
100 109 1
100 110 1
100 122 1
100 123 1
100 131 1
100 132 1
100 135 1
100 136 1
100 154 1
100 164 1
100 168 1
100 170 1
100 171 1
100 174 1
100 178 1
100 179 1
100 182 1
100 194 1
100 197 1
1 101 1
8 101 1
22 101 1
32 101 1
33 101 1
35 101 1
40 101 1
43 101 1
44 101 1
46 101 1
58 101 1
60 101 1
62 101 1
63 101 1
64 101 1
65 101 1
66 101 1
68 101 1
81 101 1
83 101 1
95 101 1
98 101 1
99 101 1
100 101 1
101 105 1
101 106 1
101 107 1
101 108 1
101 109 1
101 110 1
101 122 1
101 123 1
101 131 1
101 132 1
101 135 1
101 136 1
101 154 1
101 164 1
101 166 1
101 168 1
101 170 1
101 171 1
101 174 1
101 178 1
101 179 1
101 182 1
101 187 1
101 194 1
101 197 1
4 102 1
5 102 1
13 102 1
26 102 1
28 102 1
77 102 1
85 102 1
86 102 1
102 128 1
102 138 1
102 140 1
102 147 1
102 156 1
102 167 1
102 169 1
102 172 1
102 173 1
102 176 1
102 189 1
1 103 1
7 103 1
10 103 1
24 103 1
35 103 1
67 103 1
71 103 1
72 103 1
74 103 1
78 103 1
83 103 1
87 103 1
103 104 1
103 108 1
103 112 1
103 114 1
103 150 1
103 154 1
103 161 1
103 164 1
103 168 1
103 171 1
103 178 1
1 104 1
15 104 1
16 104 1
24 104 1
35 104 1
42 104 1
46 104 1
48 104 1
74 104 1
78 104 1
81 104 1
91 104 1
103 104 1
104 105 1
104 107 1
104 108 1
104 154 1
104 159 1
104 168 1
104 171 1
15 105 1
16 105 1
22 105 1
24 105 1
32 105 1
33 105 1
35 105 1
38 105 1
40 105 1
43 105 1
44 105 1
48 105 1
58 105 1
60 105 1
62 105 1
63 105 1
64 105 1
65 105 1
66 105 1
81 105 1
83 105 1
91 105 1
98 105 1
99 105 1
100 105 1
101 105 1
104 105 1
105 106 1
105 107 1
105 108 1
105 109 1
105 110 1
105 122 1
105 123 1
105 131 1
105 132 1
105 135 1
105 136 1
105 154 1
105 164 1
105 168 1
105 170 1
105 174 1
105 178 1
105 179 1
105 182 1
105 194 1
105 197 1
31 106 1
32 106 1
33 106 1
35 106 1
40 106 1
42 106 1
44 106 1
46 106 1
50 106 1
58 106 1
60 106 1
61 106 1
62 106 1
63 106 1
64 106 1
65 106 1
66 106 1
81 106 1
98 106 1
99 106 1
100 106 1
101 106 1
105 106 1
106 107 1
106 108 1
106 109 1
106 110 1
106 111 1
106 122 1
106 123 1
106 131 1
106 132 1
106 135 1
106 154 1
106 168 1
106 179 1
106 183 1
106 187 1
106 188 1
15 107 1
16 107 1
24 107 1
32 107 1
33 107 1
35 107 1
40 107 1
44 107 1
48 107 1
58 107 1
60 107 1
62 107 1
63 107 1
64 107 1
65 107 1
66 107 1
91 107 1
98 107 1
99 107 1
100 107 1
101 107 1
104 107 1
105 107 1
106 107 1
107 108 1
107 109 1
107 110 1
107 122 1
107 123 1
107 131 1
107 132 1
107 135 1
107 154 1
107 162 1
107 168 1
107 179 1
107 187 1
107 188 1
1 108 1
7 108 1
22 108 1
24 108 1
32 108 1
33 108 1
35 108 1
40 108 1
43 108 1
44 108 1
58 108 1
60 108 1
62 108 1
63 108 1
64 108 1
65 108 1
66 108 1
69 108 1
70 108 1
74 108 1
78 108 1
81 108 1
83 108 1
93 108 1
94 108 1
95 108 1
98 108 1
99 108 1
100 108 1
101 108 1
103 108 1
104 108 1
105 108 1
106 108 1
107 108 1
108 109 1
108 110 1
108 111 1
108 122 1
108 123 1
108 125 1
108 131 1
108 132 1
108 135 1
108 136 1
108 146 1
108 154 1
108 164 1
108 168 1
108 170 1
108 171 1
108 174 1
108 178 1
108 179 1
108 182 1
108 190 1
108 192 1
108 193 1
108 194 1
108 197 1
32 109 1
33 109 1
35 109 1
40 109 1
44 109 1
58 109 1
60 109 1
62 109 1
63 109 1
64 109 1
65 109 1
66 109 1
69 109 1
83 109 1
98 109 1
99 109 1
100 109 1
101 109 1
105 109 1
106 109 1
107 109 1
108 109 1
109 110 1
109 122 1
109 123 1
109 131 1
109 132 1
109 135 1
109 154 1
109 168 1
109 170 1
109 177 1
109 179 1
8 110 1
32 110 1
33 110 1
35 110 1
40 110 1
44 110 1
50 110 1
58 110 1
60 110 1
62 110 1
63 110 1
64 110 1
65 110 1
66 110 1
69 110 1
70 110 1
73 110 1
88 110 1
95 110 1
98 110 1
99 110 1
100 110 1
101 110 1
105 110 1
106 110 1
107 110 1
108 110 1
109 110 1
110 122 1
110 123 1
110 131 1
110 132 1
110 135 1
110 136 1
110 139 1
110 143 1
110 154 1
110 168 1
110 170 1
110 171 1
110 174 1
110 179 1
110 182 1
7 111 1
9 111 1
23 111 1
31 111 1
32 111 1
50 111 1
53 111 1
54 111 1
56 111 1
57 111 1
60 111 1
61 111 1
69 111 1
70 111 1
71 111 1
83 111 1
93 111 1
94 111 1
95 111 1
106 111 1
108 111 1
111 116 1
111 117 1
111 118 1
111 121 1
111 122 1
111 123 1
111 125 1
111 132 1
111 137 1
111 146 1
111 153 1
111 168 1
111 170 1
111 171 1
111 190 1
111 192 1
111 193 1
111 194 1
111 195 1
111 196 1
7 112 1
10 112 1
11 112 1
14 112 1
49 112 1
53 112 1
57 112 1
60 112 1
61 112 1
69 112 1
70 112 1
71 112 1
74 112 1
87 112 1
103 112 1
112 113 1
112 114 1
112 127 1
112 130 1
112 141 1
112 150 1
112 151 1
112 158 1
112 161 1
112 164 1
112 192 1
112 195 1
112 196 1
7 113 1
10 113 1
11 113 1
49 113 1
53 113 1
57 113 1
71 113 1
112 113 1
113 114 1
113 158 1
113 161 1
113 164 1
113 196 1
7 114 1
10 114 1
11 114 1
12 114 1
14 114 1
18 114 1
49 114 1
50 114 1
53 114 1
56 114 1
57 114 1
60 114 1
61 114 1
69 114 1
70 114 1
71 114 1
74 114 1
83 114 1
87 114 1
88 114 1
93 114 1
94 114 1
103 114 1
112 114 1
113 114 1
114 125 1
114 127 1
114 130 1
114 131 1
114 132 1
114 136 1
114 141 1
114 142 1
114 146 1
114 151 1
114 158 1
114 161 1
114 164 1
114 183 1
114 190 1
114 192 1
114 193 1
114 195 1
114 196 1
3 115 1
115 148 1
115 152 1
115 153 1
115 157 1
115 167 1
115 172 1
9 116 1
33 116 1
38 116 1
39 116 1
40 116 1
71 116 1
91 116 1
111 116 1
116 117 1
116 118 1
116 119 1
116 121 1
116 122 1
116 134 1
116 135 1
116 137 1
116 153 1
116 168 1
116 179 1
116 181 1
9 117 1
25 117 1
71 117 1
111 117 1
116 117 1
117 118 1
117 121 1
117 122 1
117 137 1
117 153 1
117 168 1
117 179 1
117 183 1
8 118 1
9 118 1
43 118 1
49 118 1
59 118 1
60 118 1
69 118 1
70 118 1
71 118 1
79 118 1
82 118 1
83 118 1
84 118 1
89 118 1
93 118 1
94 118 1
99 118 1
111 118 1
116 118 1
117 118 1
118 121 1
118 122 1
118 125 1
118 129 1
118 132 1
118 136 1
118 137 1
118 142 1
118 143 1
118 146 1
118 153 1
118 168 1
118 170 1
118 174 1
118 175 1
118 177 1
118 183 1
118 190 1
118 192 1
118 193 1
118 194 1
33 119 1
38 119 1
40 119 1
91 119 1
116 119 1
119 120 1
119 134 1
119 135 1
119 179 1
119 120 1
8 121 1
9 121 1
43 121 1
49 121 1
57 121 1
59 121 1
60 121 1
69 121 1
70 121 1
71 121 1
82 121 1
83 121 1
89 121 1
93 121 1
94 121 1
99 121 1
111 121 1
116 121 1
117 121 1
118 121 1
121 122 1
121 125 1
121 132 1
121 136 1
121 137 1
121 142 1
121 143 1
121 146 1
121 153 1
121 158 1
121 168 1
121 174 1
121 175 1
121 177 1
121 183 1
121 190 1
121 192 1
121 193 1
121 196 1
7 122 1
9 122 1
32 122 1
33 122 1
35 122 1
40 122 1
43 122 1
44 122 1
58 122 1
59 122 1
60 122 1
62 122 1
63 122 1
64 122 1
65 122 1
66 122 1
69 122 1
70 122 1
71 122 1
82 122 1
93 122 1
94 122 1
95 122 1
98 122 1
99 122 1
100 122 1
101 122 1
105 122 1
106 122 1
107 122 1
108 122 1
109 122 1
110 122 1
111 122 1
116 122 1
117 122 1
118 122 1
121 122 1
122 123 1
122 125 1
122 131 1
122 132 1
122 135 1
122 136 1
122 137 1
122 143 1
122 146 1
122 153 1
122 154 1
122 168 1
122 171 1
122 179 1
122 190 1
122 192 1
122 193 1
31 123 1
32 123 1
33 123 1
35 123 1
40 123 1
42 123 1
44 123 1
46 123 1
50 123 1
58 123 1
60 123 1
61 123 1
62 123 1
63 123 1
64 123 1
65 123 1
66 123 1
81 123 1
98 123 1
99 123 1
100 123 1
101 123 1
105 123 1
106 123 1
107 123 1
108 123 1
109 123 1
110 123 1
111 123 1
122 123 1
123 131 1
123 132 1
123 135 1
123 154 1
123 162 1
123 168 1
123 179 1
123 183 1
123 187 1
123 188 1
5 124 1
26 124 1
28 124 1
29 124 1
77 124 1
86 124 1
90 124 1
96 124 1
97 124 1
124 128 1
124 138 1
124 140 1
124 153 1
124 176 1
124 184 1
124 198 1
7 125 1
49 125 1
54 125 1
60 125 1
69 125 1
70 125 1
90 125 1
93 125 1
94 125 1
95 125 1
96 125 1
108 125 1
111 125 1
114 125 1
118 125 1
121 125 1
122 125 1
125 130 1
125 132 1
125 136 1
125 142 1
125 146 1
125 151 1
125 168 1
125 171 1
125 175 1
125 177 1
125 183 1
125 190 1
125 192 1
125 193 1
5 126 1
27 126 1
29 126 1
51 126 1
75 126 1
76 126 1
79 126 1
96 126 1
126 128 1
126 136 1
126 144 1
126 147 1
126 149 1
126 153 1
126 167 1
126 172 1
126 174 1
7 127 1
10 127 1
14 127 1
49 127 1
60 127 1
61 127 1
67 127 1
69 127 1
70 127 1
83 127 1
89 127 1
93 127 1
95 127 1
112 127 1
114 127 1
127 130 1
127 136 1
127 141 1
127 142 1
127 150 1
127 151 1
127 158 1
127 164 1
127 171 1
127 174 1
127 178 1
127 185 1
127 192 1
127 195 1
5 128 1
13 128 1
18 128 1
26 128 1
27 128 1
28 128 1
29 128 1
51 128 1
73 128 1
75 128 1
76 128 1
77 128 1
79 128 1
85 128 1
86 128 1
88 128 1
90 128 1
96 128 1
97 128 1
102 128 1
124 128 1
126 128 1
128 136 1
128 138 1
128 140 1
128 144 1
128 147 1
128 149 1
128 153 1
128 155 1
128 156 1
128 167 1
128 169 1
128 172 1
128 173 1
128 176 1
128 184 1
128 189 1
128 191 1
128 192 1
7 129 1
12 129 1
18 129 1
19 129 1
31 129 1
36 129 1
53 129 1
54 129 1
55 129 1
56 129 1
57 129 1
60 129 1
61 129 1
84 129 1
118 129 1
129 136 1
129 170 1
129 175 1
129 183 1
129 194 1
129 195 1
129 196 1
129 197 1
7 130 1
10 130 1
14 130 1
19 130 1
49 130 1
54 130 1
57 130 1
60 130 1
61 130 1
69 130 1
70 130 1
87 130 1
93 130 1
94 130 1
96 130 1
112 130 1
114 130 1
125 130 1
127 130 1
130 136 1
130 141 1
130 146 1
130 150 1
130 151 1
130 158 1
130 161 1
130 164 1
130 177 1
130 185 1
130 186 1
130 190 1
130 192 1
130 193 1
130 194 1
130 195 1
1 131 1
8 131 1
18 131 1
22 131 1
32 131 1
33 131 1
35 131 1
40 131 1
43 131 1
44 131 1
46 131 1
50 131 1
53 131 1
56 131 1
58 131 1
60 131 1
62 131 1
63 131 1
64 131 1
65 131 1
66 131 1
81 131 1
83 131 1
88 131 1
95 131 1
98 131 1
99 131 1
100 131 1
101 131 1
105 131 1
106 131 1
107 131 1
108 131 1
109 131 1
110 131 1
114 131 1
122 131 1
123 131 1
131 132 1
131 135 1
131 136 1
131 139 1
131 154 1
131 158 1
131 164 1
131 168 1
131 170 1
131 171 1
131 174 1
131 178 1
131 179 1
131 182 1
131 183 1
131 194 1
131 196 1
131 197 1
1 132 1
7 132 1
8 132 1
18 132 1
22 132 1
24 132 1
32 132 1
33 132 1
35 132 1
40 132 1
43 132 1
44 132 1
46 132 1
50 132 1
53 132 1
56 132 1
58 132 1
60 132 1
62 132 1
63 132 1
64 132 1
65 132 1
66 132 1
68 132 1
69 132 1
70 132 1
81 132 1
83 132 1
88 132 1
89 132 1
93 132 1
94 132 1
95 132 1
98 132 1
99 132 1
100 132 1
101 132 1
105 132 1
106 132 1
107 132 1
108 132 1
109 132 1
110 132 1
111 132 1
114 132 1
118 132 1
121 132 1
122 132 1
123 132 1
125 132 1
131 132 1
132 135 1
132 136 1
132 141 1
132 142 1
132 146 1
132 154 1
132 158 1
132 164 1
132 166 1
132 168 1
132 170 1
132 171 1
132 174 1
132 178 1
132 179 1
132 182 1
132 183 1
132 187 1
132 190 1
132 192 1
132 193 1
132 194 1
132 196 1
132 197 1
37 133 1
90 133 1
133 155 1
133 156 1
133 167 1
133 180 1
33 134 1
38 134 1
40 134 1
67 134 1
83 134 1
84 134 1
91 134 1
116 134 1
119 134 1
134 135 1
134 159 1
134 179 1
134 195 1
9 135 1
11 135 1
23 135 1
32 135 1
33 135 1
35 135 1
38 135 1
40 135 1
44 135 1
58 135 1
60 135 1
62 135 1
63 135 1
64 135 1
65 135 1
66 135 1
67 135 1
68 135 1
80 135 1
83 135 1
84 135 1
91 135 1
95 135 1
98 135 1
99 135 1
100 135 1
101 135 1
105 135 1
106 135 1
107 135 1
108 135 1
109 135 1
110 135 1
116 135 1
119 135 1
122 135 1
123 135 1
131 135 1
132 135 1
134 135 1
135 139 1
135 154 1
135 159 1
135 162 1
135 166 1
135 168 1
135 171 1
135 179 1
135 187 1
135 189 1
135 195 1
5 136 1
7 136 1
8 136 1
17 136 1
18 136 1
19 136 1
20 136 1
22 136 1
24 136 1
29 136 1
41 136 1
42 136 1
43 136 1
45 136 1
49 136 1
51 136 1
57 136 1
59 136 1
60 136 1
65 136 1
66 136 1
67 136 1
69 136 1
70 136 1
73 136 1
75 136 1
76 136 1
77 136 1
78 136 1
79 136 1
81 136 1
82 136 1
83 136 1
84 136 1
86 136 1
88 136 1
89 136 1
90 136 1
93 136 1
94 136 1
95 136 1
96 136 1
97 136 1
98 136 1
99 136 1
100 136 1
101 136 1
105 136 1
108 136 1
110 136 1
114 136 1
118 136 1
121 136 1
122 136 1
125 136 1
126 136 1
127 136 1
128 136 1
129 136 1
130 136 1
131 136 1
132 136 1
136 137 1
136 138 1
136 140 1
136 141 1
136 142 1
136 143 1
136 144 1
136 146 1
136 147 1
136 149 1
136 150 1
136 151 1
136 158 1
136 161 1
136 162 1
136 163 1
136 164 1
136 167 1
136 168 1
136 170 1
136 171 1
136 172 1
136 174 1
136 175 1
136 177 1
136 178 1
136 182 1
136 183 1
136 184 1
136 185 1
136 188 1
136 190 1
136 191 1
136 192 1
136 193 1
136 194 1
136 196 1
136 197 1
9 137 1
20 137 1
71 137 1
78 137 1
83 137 1
111 137 1
116 137 1
117 137 1
118 137 1
121 137 1
122 137 1
136 137 1
137 153 1
137 158 1
137 168 1
137 188 1
4 138 1
5 138 1
26 138 1
28 138 1
29 138 1
77 138 1
86 138 1
90 138 1
96 138 1
97 138 1
102 138 1
124 138 1
128 138 1
136 138 1
138 145 1
138 147 1
138 149 1
138 155 1
138 167 1
138 169 1
138 172 1
138 173 1
138 178 1
9 139 1
11 139 1
23 139 1
32 139 1
38 139 1
44 139 1
50 139 1
64 139 1
65 139 1
66 139 1
80 139 1
91 139 1
110 139 1
131 139 1
135 139 1
139 162 1
139 179 1
139 189 1
5 140 1
13 140 1
18 140 1
26 140 1
28 140 1
29 140 1
73 140 1
77 140 1
85 140 1
86 140 1
88 140 1
90 140 1
96 140 1
102 140 1
124 140 1
128 140 1
136 140 1
140 147 1
140 149 1
140 153 1
140 155 1
140 156 1
140 167 1
140 169 1
140 172 1
140 173 1
140 176 1
140 184 1
140 189 1
140 191 1
140 198 1
7 141 1
10 141 1
14 141 1
60 141 1
61 141 1
69 141 1
70 141 1
83 141 1
89 141 1
95 141 1
112 141 1
114 141 1
127 141 1
130 141 1
132 141 1
136 141 1
141 142 1
141 151 1
141 158 1
141 171 1
141 174 1
141 192 1
141 195 1
8 142 1
49 142 1
57 142 1
60 142 1
69 142 1
70 142 1
79 142 1
83 142 1
89 142 1
95 142 1
96 142 1
114 142 1
118 142 1
121 142 1
125 142 1
127 142 1
132 142 1
136 142 1
141 142 1
142 143 1
142 149 1
142 150 1
142 158 1
142 161 1
142 164 1
142 168 1
142 171 1
142 174 1
142 185 1
142 193 1
142 196 1
43 143 1
49 143 1
59 143 1
69 143 1
70 143 1
73 143 1
79 143 1
82 143 1
88 143 1
99 143 1
110 143 1
118 143 1
121 143 1
122 143 1
136 143 1
142 143 1
143 174 1
5 144 1
27 144 1
29 144 1
51 144 1
75 144 1
76 144 1
79 144 1
96 144 1
126 144 1
128 144 1
136 144 1
144 147 1
144 149 1
144 153 1
144 172 1
144 174 1
144 198 1
138 145 1
145 167 1
7 146 1
54 146 1
60 146 1
69 146 1
70 146 1
93 146 1
94 146 1
95 146 1
108 146 1
111 146 1
114 146 1
118 146 1
121 146 1
122 146 1
125 146 1
130 146 1
132 146 1
136 146 1
146 151 1
146 168 1
146 171 1
146 175 1
146 177 1
146 183 1
146 190 1
146 192 1
146 193 1
4 147 1
5 147 1
13 147 1
18 147 1
26 147 1
27 147 1
28 147 1
29 147 1
51 147 1
73 147 1
75 147 1
76 147 1
77 147 1
79 147 1
85 147 1
86 147 1
88 147 1
90 147 1
96 147 1
97 147 1
102 147 1
126 147 1
128 147 1
136 147 1
138 147 1
140 147 1
144 147 1
147 149 1
147 153 1
147 156 1
147 167 1
147 169 1
147 172 1
147 173 1
147 174 1
147 176 1
147 184 1
147 189 1
147 191 1
13 148 1
25 148 1
92 148 1
115 148 1
148 153 1
5 149 1
13 149 1
18 149 1
25 149 1
26 149 1
27 149 1
28 149 1
29 149 1
39 149 1
49 149 1
51 149 1
53 149 1
54 149 1
67 149 1
73 149 1
75 149 1
76 149 1
77 149 1
79 149 1
83 149 1
85 149 1
86 149 1
88 149 1
89 149 1
90 149 1
96 149 1
97 149 1
126 149 1
128 149 1
136 149 1
138 149 1
140 149 1
142 149 1
144 149 1
147 149 1
149 150 1
149 153 1
149 155 1
149 156 1
149 160 1
149 163 1
149 167 1
149 169 1
149 172 1
149 173 1
149 174 1
149 176 1
149 178 1
149 181 1
149 184 1
149 189 1
149 191 1
149 194 1
149 195 1
2 150 1
7 150 1
14 150 1
36 150 1
49 150 1
53 150 1
54 150 1
55 150 1
56 150 1
60 150 1
67 150 1
69 150 1
70 150 1
71 150 1
72 150 1
74 150 1
81 150 1
83 150 1
87 150 1
96 150 1
103 150 1
112 150 1
127 150 1
130 150 1
136 150 1
142 150 1
149 150 1
150 151 1
150 158 1
150 161 1
150 164 1
150 170 1
150 178 1
150 185 1
150 186 1
150 192 1
150 194 1
150 195 1
150 196 1
7 151 1
10 151 1
14 151 1
60 151 1
61 151 1
69 151 1
70 151 1
112 151 1
114 151 1
125 151 1
127 151 1
130 151 1
136 151 1
141 151 1
146 151 1
150 151 1
151 158 1
151 177 1
151 185 1
151 190 1
151 192 1
151 193 1
151 195 1
6 152 1
115 152 1
152 157 1
3 153 1
4 153 1
5 153 1
9 153 1
13 153 1
25 153 1
26 153 1
27 153 1
28 153 1
29 153 1
37 153 1
39 153 1
51 153 1
71 153 1
76 153 1
86 153 1
90 153 1
92 153 1
96 153 1
111 153 1
115 153 1
116 153 1
117 153 1
118 153 1
121 153 1
122 153 1
124 153 1
126 153 1
128 153 1
137 153 1
140 153 1
144 153 1
147 153 1
148 153 1
149 153 1
153 163 1
153 167 1
153 168 1
153 172 1
153 181 1
153 198 1
1 154 1
8 154 1
24 154 1
32 154 1
33 154 1
35 154 1
40 154 1
44 154 1
46 154 1
58 154 1
60 154 1
62 154 1
63 154 1
64 154 1
65 154 1
66 154 1
68 154 1
74 154 1
78 154 1
95 154 1
98 154 1
99 154 1
100 154 1
101 154 1
103 154 1
104 154 1
105 154 1
106 154 1
107 154 1
108 154 1
109 154 1
110 154 1
122 154 1
123 154 1
131 154 1
132 154 1
135 154 1
154 166 1
154 168 1
154 170 1
154 171 1
154 179 1
154 187 1
5 155 1
13 155 1
26 155 1
28 155 1
37 155 1
47 155 1
73 155 1
85 155 1
86 155 1
128 155 1
133 155 1
138 155 1
140 155 1
149 155 1
155 156 1
155 167 1
155 178 1
155 180 1
155 189 1
155 191 1
4 156 1
5 156 1
13 156 1
26 156 1
28 156 1
73 156 1
85 156 1
86 156 1
102 156 1
128 156 1
133 156 1
140 156 1
147 156 1
149 156 1
155 156 1
156 167 1
156 169 1
156 172 1
156 173 1
156 176 1
156 189 1
156 191 1
6 157 1
115 157 1
152 157 1
157 180 1
7 158 1
10 158 1
11 158 1
14 158 1
18 158 1
20 158 1
36 158 1
43 158 1
49 158 1
50 158 1
53 158 1
54 158 1
55 158 1
56 158 1
57 158 1
59 158 1
60 158 1
61 158 1
67 158 1
69 158 1
70 158 1
71 158 1
78 158 1
81 158 1
83 158 1
84 158 1
87 158 1
88 158 1
89 158 1
95 158 1
96 158 1
112 158 1
113 158 1
114 158 1
121 158 1
127 158 1
130 158 1
131 158 1
132 158 1
136 158 1
137 158 1
141 158 1
142 158 1
150 158 1
151 158 1
158 161 1
158 164 1
158 168 1
158 170 1
158 171 1
158 174 1
158 178 1
158 183 1
158 186 1
158 188 1
158 192 1
158 194 1
158 195 1
158 196 1
1 159 1
42 159 1
46 159 1
67 159 1
83 159 1
84 159 1
104 159 1
134 159 1
135 159 1
159 195 1
149 160 1
7 161 1
10 161 1
11 161 1
14 161 1
36 161 1
49 161 1
53 161 1
54 161 1
57 161 1
60 161 1
69 161 1
70 161 1
71 161 1
72 161 1
74 161 1
87 161 1
96 161 1
103 161 1
112 161 1
113 161 1
114 161 1
130 161 1
136 161 1
142 161 1
150 161 1
158 161 1
161 164 1
161 186 1
161 192 1
161 194 1
161 196 1
9 162 1
11 162 1
23 162 1
32 162 1
38 162 1
43 162 1
49 162 1
58 162 1
59 162 1
80 162 1
107 162 1
123 162 1
135 162 1
136 162 1
139 162 1
162 179 1
162 187 1
162 188 1
162 189 1
5 163 1
75 163 1
79 163 1
86 163 1
92 163 1
96 163 1
136 163 1
149 163 1
153 163 1
163 167 1
163 172 1
163 173 1
7 164 1
10 164 1
11 164 1
14 164 1
22 164 1
36 164 1
43 164 1
49 164 1
53 164 1
54 164 1
55 164 1
56 164 1
57 164 1
60 164 1
67 164 1
69 164 1
70 164 1
71 164 1
72 164 1
74 164 1
81 164 1
83 164 1
87 164 1
96 164 1
98 164 1
99 164 1
100 164 1
101 164 1
103 164 1
105 164 1
108 164 1
112 164 1
113 164 1
114 164 1
127 164 1
130 164 1
131 164 1
132 164 1
136 164 1
142 164 1
150 164 1
158 164 1
161 164 1
164 170 1
164 174 1
164 178 1
164 182 1
164 186 1
164 192 1
164 194 1
164 195 1
164 196 1
164 197 1
165 185 1
35 166 1
44 166 1
50 166 1
60 166 1
68 166 1
99 166 1
101 166 1
132 166 1
135 166 1
154 166 1
166 168 1
166 171 1
166 183 1
166 187 1
3 167 1
4 167 1
5 167 1
13 167 1
18 167 1
26 167 1
27 167 1
28 167 1
29 167 1
47 167 1
51 167 1
70 167 1
73 167 1
75 167 1
77 167 1
79 167 1
85 167 1
86 167 1
88 167 1
90 167 1
96 167 1
97 167 1
102 167 1
115 167 1
126 167 1
128 167 1
133 167 1
136 167 1
138 167 1
140 167 1
145 167 1
147 167 1
149 167 1
153 167 1
155 167 1
156 167 1
163 167 1
167 169 1
167 172 1
167 173 1
167 176 1
167 184 1
167 189 1
167 191 1
167 198 1
1 168 1
7 168 1
8 168 1
9 168 1
20 168 1
23 168 1
24 168 1
32 168 1
33 168 1
35 168 1
40 168 1
44 168 1
46 168 1
50 168 1
54 168 1
58 168 1
60 168 1
62 168 1
63 168 1
64 168 1
65 168 1
66 168 1
68 168 1
69 168 1
70 168 1
71 168 1
74 168 1
78 168 1
80 168 1
83 168 1
91 168 1
93 168 1
94 168 1
95 168 1
98 168 1
99 168 1
100 168 1
101 168 1
103 168 1
104 168 1
105 168 1
106 168 1
107 168 1
108 168 1
109 168 1
110 168 1
111 168 1
116 168 1
117 168 1
118 168 1
121 168 1
122 168 1
123 168 1
125 168 1
131 168 1
132 168 1
135 168 1
136 168 1
137 168 1
142 168 1
146 168 1
153 168 1
154 168 1
158 168 1
166 168 1
168 170 1
168 171 1
168 179 1
168 187 1
168 190 1
168 192 1
168 193 1
168 194 1
168 195 1
4 169 1
5 169 1
13 169 1
26 169 1
29 169 1
77 169 1
85 169 1
86 169 1
90 169 1
96 169 1
97 169 1
102 169 1
128 169 1
138 169 1
140 169 1
147 169 1
149 169 1
156 169 1
167 169 1
169 172 1
169 173 1
169 176 1
169 189 1
7 170 1
12 170 1
22 170 1
31 170 1
35 170 1
36 170 1
43 170 1
53 170 1
54 170 1
55 170 1
56 170 1
64 170 1
65 170 1
66 170 1
67 170 1
70 170 1
81 170 1
83 170 1
84 170 1
98 170 1
99 170 1
100 170 1
101 170 1
105 170 1
108 170 1
109 170 1
110 170 1
111 170 1
118 170 1
129 170 1
131 170 1
132 170 1
136 170 1
150 170 1
154 170 1
158 170 1
164 170 1
168 170 1
170 174 1
170 175 1
170 178 1
170 182 1
170 183 1
170 192 1
170 194 1
170 195 1
170 196 1
170 197 1
1 171 1
7 171 1
8 171 1
24 171 1
35 171 1
44 171 1
46 171 1
60 171 1
68 171 1
69 171 1
70 171 1
74 171 1
78 171 1
89 171 1
93 171 1
94 171 1
95 171 1
98 171 1
99 171 1
100 171 1
101 171 1
103 171 1
104 171 1
108 171 1
110 171 1
111 171 1
122 171 1
125 171 1
127 171 1
131 171 1
132 171 1
135 171 1
136 171 1
141 171 1
142 171 1
146 171 1
154 171 1
158 171 1
166 171 1
168 171 1
171 174 1
171 187 1
171 190 1
171 192 1
171 193 1
3 172 1
4 172 1
5 172 1
13 172 1
18 172 1
26 172 1
27 172 1
28 172 1
29 172 1
51 172 1
73 172 1
75 172 1
76 172 1
77 172 1
79 172 1
86 172 1
88 172 1
90 172 1
96 172 1
97 172 1
102 172 1
115 172 1
126 172 1
128 172 1
136 172 1
138 172 1
140 172 1
144 172 1
147 172 1
149 172 1
153 172 1
156 172 1
163 172 1
167 172 1
169 172 1
172 173 1
172 176 1
172 184 1
172 189 1
172 191 1
4 173 1
5 173 1
13 173 1
26 173 1
28 173 1
77 173 1
86 173 1
90 173 1
96 173 1
102 173 1
128 173 1
138 173 1
140 173 1
147 173 1
149 173 1
156 173 1
163 173 1
167 173 1
169 173 1
172 173 1
173 176 1
173 184 1
173 189 1
173 191 1
8 174 1
22 174 1
24 174 1
36 174 1
43 174 1
49 174 1
51 174 1
54 174 1
59 174 1
60 174 1
67 174 1
69 174 1
70 174 1
73 174 1
75 174 1
76 174 1
78 174 1
79 174 1
81 174 1
83 174 1
88 174 1
89 174 1
95 174 1
98 174 1
99 174 1
100 174 1
101 174 1
105 174 1
108 174 1
110 174 1
118 174 1
121 174 1
126 174 1
127 174 1
131 174 1
132 174 1
136 174 1
141 174 1
142 174 1
143 174 1
144 174 1
147 174 1
149 174 1
158 174 1
164 174 1
170 174 1
171 174 1
174 178 1
174 182 1
174 192 1
174 194 1
174 197 1
69 175 1
70 175 1
84 175 1
93 175 1
94 175 1
118 175 1
121 175 1
125 175 1
129 175 1
136 175 1
146 175 1
170 175 1
175 177 1
175 183 1
175 190 1
175 192 1
175 193 1
175 194 1
4 176 1
5 176 1
13 176 1
26 176 1
28 176 1
29 176 1
86 176 1
90 176 1
96 176 1
102 176 1
124 176 1
128 176 1
140 176 1
147 176 1
149 176 1
156 176 1
167 176 1
169 176 1
172 176 1
173 176 1
176 184 1
176 189 1
176 192 1
176 198 1
7 177 1
54 177 1
61 177 1
69 177 1
70 177 1
93 177 1
94 177 1
109 177 1
118 177 1
121 177 1
125 177 1
130 177 1
136 177 1
146 177 1
151 177 1
175 177 1
177 183 1
177 190 1
177 192 1
177 193 1
7 178 1
22 178 1
26 178 1
36 178 1
43 178 1
49 178 1
53 178 1
54 178 1
55 178 1
56 178 1
67 178 1
70 178 1
81 178 1
83 178 1
98 178 1
99 178 1
100 178 1
101 178 1
103 178 1
105 178 1
108 178 1
127 178 1
131 178 1
132 178 1
136 178 1
138 178 1
149 178 1
150 178 1
155 178 1
158 178 1
164 178 1
170 178 1
174 178 1
178 182 1
178 192 1
178 194 1
178 195 1
178 196 1
178 197 1
9 179 1
11 179 1
23 179 1
32 179 1
33 179 1
35 179 1
38 179 1
40 179 1
44 179 1
50 179 1
58 179 1
60 179 1
62 179 1
63 179 1
64 179 1
65 179 1
66 179 1
78 179 1
80 179 1
91 179 1
95 179 1
98 179 1
99 179 1
100 179 1
101 179 1
105 179 1
106 179 1
107 179 1
108 179 1
109 179 1
110 179 1
116 179 1
117 179 1
119 179 1
122 179 1
123 179 1
131 179 1
132 179 1
134 179 1
135 179 1
139 179 1
154 179 1
162 179 1
168 179 1
179 183 1
179 189 1
37 180 1
47 180 1
133 180 1
155 180 1
157 180 1
39 181 1
51 181 1
80 181 1
116 181 1
149 181 1
153 181 1
22 182 1
24 182 1
42 182 1
43 182 1
66 182 1
78 182 1
81 182 1
83 182 1
98 182 1
99 182 1
100 182 1
101 182 1
105 182 1
108 182 1
110 182 1
131 182 1
132 182 1
136 182 1
164 182 1
170 182 1
174 182 1
178 182 1
182 183 1
182 194 1
182 197 1
18 183 1
42 183 1
46 183 1
50 183 1
53 183 1
56 183 1
60 183 1
68 183 1
69 183 1
70 183 1
81 183 1
84 183 1
88 183 1
93 183 1
94 183 1
106 183 1
114 183 1
117 183 1
118 183 1
121 183 1
123 183 1
125 183 1
129 183 1
131 183 1
132 183 1
136 183 1
146 183 1
158 183 1
166 183 1
170 183 1
175 183 1
177 183 1
179 183 1
182 183 1
183 190 1
183 192 1
183 193 1
183 194 1
183 196 1
18 184 1
26 184 1
28 184 1
29 184 1
73 184 1
77 184 1
86 184 1
88 184 1
90 184 1
96 184 1
124 184 1
128 184 1
136 184 1
140 184 1
147 184 1
149 184 1
167 184 1
172 184 1
173 184 1
176 184 1
184 191 1
184 198 1
7 185 1
14 185 1
19 185 1
49 185 1
57 185 1
70 185 1
83 185 1
127 185 1
130 185 1
136 185 1
142 185 1
150 185 1
151 185 1
165 185 1
185 192 1
14 186 1
54 186 1
69 186 1
70 186 1
87 186 1
96 186 1
130 186 1
150 186 1
158 186 1
161 186 1
164 186 1
186 192 1
186 194 1
35 187 1
44 187 1
58 187 1
60 187 1
68 187 1
99 187 1
101 187 1
106 187 1
107 187 1
123 187 1
132 187 1
135 187 1
154 187 1
162 187 1
166 187 1
168 187 1
171 187 1
187 188 1
58 188 1
78 188 1
106 188 1
107 188 1
123 188 1
136 188 1
137 188 1
158 188 1
162 188 1
187 188 1
4 189 1
5 189 1
9 189 1
11 189 1
13 189 1
23 189 1
26 189 1
28 189 1
32 189 1
38 189 1
73 189 1
80 189 1
85 189 1
86 189 1
102 189 1
128 189 1
135 189 1
139 189 1
140 189 1
147 189 1
149 189 1
155 189 1
156 189 1
162 189 1
167 189 1
169 189 1
172 189 1
173 189 1
176 189 1
179 189 1
189 191 1
7 190 1
54 190 1
60 190 1
69 190 1
70 190 1
93 190 1
94 190 1
95 190 1
108 190 1
111 190 1
114 190 1
118 190 1
121 190 1
122 190 1
125 190 1
130 190 1
132 190 1
136 190 1
146 190 1
151 190 1
168 190 1
171 190 1
175 190 1
177 190 1
183 190 1
190 192 1
190 193 1
5 191 1
13 191 1
18 191 1
26 191 1
28 191 1
29 191 1
73 191 1
77 191 1
85 191 1
86 191 1
88 191 1
90 191 1
96 191 1
128 191 1
136 191 1
140 191 1
147 191 1
149 191 1
155 191 1
156 191 1
167 191 1
172 191 1
173 191 1
184 191 1
189 191 1
7 192 1
10 192 1
14 192 1
19 192 1
34 192 1
36 192 1
49 192 1
54 192 1
57 192 1
60 192 1
61 192 1
67 192 1
69 192 1
70 192 1
83 192 1
87 192 1
93 192 1
94 192 1
95 192 1
96 192 1
108 192 1
111 192 1
112 192 1
114 192 1
118 192 1
121 192 1
122 192 1
125 192 1
127 192 1
128 192 1
130 192 1
132 192 1
136 192 1
141 192 1
146 192 1
150 192 1
151 192 1
158 192 1
161 192 1
164 192 1
168 192 1
170 192 1
171 192 1
174 192 1
175 192 1
176 192 1
177 192 1
178 192 1
183 192 1
185 192 1
186 192 1
190 192 1
192 193 1
192 194 1
192 195 1
7 193 1
54 193 1
60 193 1
69 193 1
70 193 1
93 193 1
94 193 1
95 193 1
108 193 1
111 193 1
114 193 1
118 193 1
121 193 1
122 193 1
125 193 1
130 193 1
132 193 1
136 193 1
142 193 1
146 193 1
151 193 1
168 193 1
171 193 1
175 193 1
177 193 1
183 193 1
190 193 1
192 193 1
5 194 1
7 194 1
12 194 1
14 194 1
18 194 1
19 194 1
22 194 1
31 194 1
36 194 1
43 194 1
49 194 1
53 194 1
54 194 1
55 194 1
56 194 1
57 194 1
60 194 1
61 194 1
67 194 1
69 194 1
70 194 1
81 194 1
83 194 1
84 194 1
87 194 1
96 194 1
98 194 1
99 194 1
100 194 1
101 194 1
105 194 1
108 194 1
111 194 1
118 194 1
129 194 1
130 194 1
131 194 1
132 194 1
136 194 1
149 194 1
150 194 1
158 194 1
161 194 1
164 194 1
168 194 1
170 194 1
174 194 1
175 194 1
178 194 1
182 194 1
183 194 1
186 194 1
192 194 1
194 195 1
194 196 1
194 197 1
7 195 1
10 195 1
12 195 1
14 195 1
18 195 1
19 195 1
31 195 1
36 195 1
49 195 1
53 195 1
54 195 1
55 195 1
56 195 1
57 195 1
60 195 1
61 195 1
67 195 1
69 195 1
70 195 1
71 195 1
81 195 1
83 195 1
84 195 1
87 195 1
111 195 1
112 195 1
114 195 1
127 195 1
129 195 1
130 195 1
134 195 1
135 195 1
141 195 1
149 195 1
150 195 1
151 195 1
158 195 1
159 195 1
164 195 1
168 195 1
170 195 1
178 195 1
192 195 1
194 195 1
195 196 1
195 197 1
5 196 1
7 196 1
10 196 1
11 196 1
12 196 1
18 196 1
19 196 1
31 196 1
36 196 1
49 196 1
50 196 1
52 196 1
53 196 1
54 196 1
55 196 1
56 196 1
57 196 1
60 196 1
61 196 1
67 196 1
71 196 1
81 196 1
83 196 1
88 196 1
89 196 1
111 196 1
112 196 1
113 196 1
114 196 1
121 196 1
129 196 1
131 196 1
132 196 1
136 196 1
142 196 1
150 196 1
158 196 1
161 196 1
164 196 1
170 196 1
178 196 1
183 196 1
194 196 1
195 196 1
196 197 1
5 197 1
7 197 1
12 197 1
18 197 1
19 197 1
22 197 1
31 197 1
36 197 1
43 197 1
53 197 1
54 197 1
55 197 1
56 197 1
57 197 1
60 197 1
61 197 1
81 197 1
83 197 1
98 197 1
99 197 1
100 197 1
101 197 1
105 197 1
108 197 1
129 197 1
131 197 1
132 197 1
136 197 1
164 197 1
170 197 1
174 197 1
178 197 1
182 197 1
194 197 1
195 197 1
196 197 1
26 198 1
28 198 1
29 198 1
75 198 1
86 198 1
90 198 1
96 198 1
124 198 1
140 198 1
144 198 1
153 198 1
167 198 1
176 198 1
184 198 1
from __future__ import division
from networkx import adjacency_matrix
import numpy as np
import numpy.linalg as nl
import scipy.linalg as sl
from copy import copy, deepcopy
def random_walk_matrix(g, normalize=True):
"""Probability matrix of a random walk on the graph.
Parameters
----------
g : Graph
Input graph.
normalize : bool
Normalize the columns and rows of the probability matrix (thereby
making the matrix symmetric). The returned matrix has the same
eigenvalues as and related eigenvectors to the non-normalized version.
Notes
-----
::
W = A D^-1
W = D^-1/2 W D^1/2 = D^-1/2 A D^-1/2 (normalized)
"""
A = np.asarray(adjacency_matrix(g))
d = np.array(g.degree().values())
if normalize:
d = d ** (1/2)
return A / d[:, None] * d
else:
return A / d[:, None]
def lazy_random_walk_matrix(g, normalize=True):
"""Probability of a lazy walk on the graph.
A lazy walk remains at the current node with probability 1/2 or
steps to a random neighbor.
Parameters
----------
g : Graph
Input graph.
normalize : bool
Normalize the columns and rows of the probability matrix (thereby
making the matrix symmetric). The returned matrix has the same
eigenvalues as and related eigenvectors to the non-normalized version.
"""
W = random_walk_matrix(g, normalize=normalize)
I = np.eye(len(W))
return (I + W) / 2
def modularity_matrix(g):
"""Modularity matrix of the graph.
The eigenvector corresponding to the largest eigenvalue of the modularity
matrix is analyzed to assign clusters.
"""
A = np.asarray(adjacency_matrix(g))
k = np.sum(A, axis=0)
M = np.sum(k) # 2x number of edges
return A - ((k * k[:, None]) / float(M))
def newman_partition(g, max_div=np.inf):
A = np.asarray(adjacency_matrix(g))
k = np.sum(A, axis=0)
M = np.sum(A) # 2x number of edges
B = modularity_matrix(g)
p = range(len(g))
def _divide_partition(p, max_div=np.inf):
"""
Parameters
----------
p : array of ints
Node labels.
B : ndarray
Modularity matrix.
Returns
-------
pp, qq : list of ints
Partitioning of node labels. If the partition is indivisible, then
only `pp` is returned.
"""
if max_div <= 0:
return [p]
# Construct the subgraph modularity matrix
p = np.asarray(p)
A_ = A[p, p[:, None]]
k_ = np.sum(A_, axis=0)
M_ = np.sum(k_)
B_ = B[p, p[:, None]]
B_ = B_ - np.diag(k_ - k[p] * M_ / float(M))
# w, v = nl.eigh(B_)
w, v = sl.eigh(B_, eigvals=(len(B_) - 2, len(B_) - 1))
# Find the maximum eigenvalue of the modularity matrix
# If it is smaller than zero, then we won't be able to
# increase the modularity any further by partitioning.
n = np.argsort(w)[-1]
if w[n] <= 0:
return [p]
# Construct the partition vector s, that has value -1 corresponding
# to nodes in the first partition and 1 for nodes in the second
v_max = v[:, n]
mask = (v_max < 0)
s = np.ones_like(v_max)
s[mask] = -1
# Compute the increase in modularity due to this partitioning.
# If it is less than zero, we should rather not have partitioned.
q = s[None, :].dot(B_).dot(s)
print 'Modularity increase:', q / float(2 * M_), q > 0
if q <= 0:
return [p]
# Make the partitioning, and subdivide each
# partition in turn.
out = []
for pp in (p[mask], p[~mask]):
out.extend(_divide_partition(pp, max_div - 1))
return out
return _divide_partition(p, max_div)
def modularity(g, p):
"""Compute the modularity of a network g under partitioning p.
Parameters
----------
g : NetworkX graph
Input graph.
p : tuple of lists
Each list contains the node numbers belonging to a different
module.
"""
A = adjacency_matrix(g)
M = np.sum(A)
E = np.zeros((len(p), len(p)))
p = [np.array(e) for e in p]
for i in range(len(p)):
for j in range(i, len(p)):
A_ = A[p[i][:, None], p[j]]
E[i, j] = np.sum(A_) / M
# Make symmetric
E[np.tril_indices_from(E)] = E.T[np.tril_indices_from(E)]
return np.sum(np.diag(E) - np.sum(E, axis=1) ** 2)
## def adjust_partition(g, partition):
## partition = [list(p) for p in partition]
## N = max(max(p) for p in partition)
## P = set(range(len(partition)))
## moves = {}
## verts = set(range(N + 1))
## vert_map = {}
## for n, p in enumerate(partition):
## for v in p:
## vert_map[v] = n
## def _move_vertex(partition, vert_map, node, target):
## partition = [copy(p) for p in partition]
## partition[vert_map[node]].remove(node)
## partition[target].append(node)
## vert_map = copy(vert_map)
## vert_map[node] = target
## return partition, vert_map
## m0 = modularity(g, partition)
## while verts:
## moves = []
## modularities = []
## for v in verts:
## vert_rm = []
## m1 = m0
## for target in P.difference([vert_map[v]]):
## new_p, _ = _move_vertex(partition, vert_map, v, target)
## # moves.append((v, target))
## m = modularity(g, new_p)
## if m > m1:
## m1 = m
## #modularities.append(m1)
## if m1 > m0:
## partition, vert_map = _move_vertex(partition, vert_map, v, target)
## vert_rm.append(v)
## print modularity(g, partition)
## for v in vert_rm:
## print verts, vert_rm
## verts.remove(v)
## print len(verts)
## # print np.max(modularities)
## # node, target = moves[np.argmax(modularities)]
## # partition, vert_map = _move_vertex(partition, vert_map, node, target)
## # verts.remove(v)
## return partition
def adjust_partition(g, partition):
from brainx.modularity import GraphPartition
ix = {}
for n, p in enumerate(partition):
ix[n] = set(p)
gp = GraphPartition(g, ix)
nodes = g.nodes()
P = set(range(len(gp)))
node_map = {}
for p in P:
for node in gp.index[p]:
node_map[node] = p
L = len(nodes)
no_improvement = 0
best_modularity = 0
while nodes and no_improvement < 10:
M = gp.modularity()
if M > best_modularity:
gp_best = deepcopy(gp)
best_modularity = M
no_improvement = 0
else:
no_improvement += 1
moves = []
move_modularity = []
print '[%d/%d] -> %.4f' % (len(nodes), L, gp.modularity())
for n in nodes:
for p in P.difference([node_map[n]]):
moves.append((n, node_map[n], p))
M = -gp.compute_node_update(n, node_map[n], p)[3]
move_modularity.append(M)
(n, p0, p1) = moves[np.argmax(move_modularity)]
split_modules, e_new, a_new = gp.compute_node_update(n, p0, p1)[:3]
gp.apply_node_update(n, p0, p1, split_modules, e_new, a_new)
node_map[n] = p1
nodes.remove(n)
return gp_best
from networkx import Graph
from modularity import newman_partition
from brainx.modularity import GraphPartition, simulated_annealing
g = Graph()
g.add_edges_from([
(0, 1),
(0, 2),
(1, 2),
(2, 3),
(3, 4),
(3, 5),
(4, 5)
])
import networkx as nx
#g = nx.karate_club_graph()
import numpy as np
e = np.loadtxt('jazz.net', skiprows=3, dtype=int)[:, :2] - 1
g = nx.Graph()
g.add_edges_from(e)
partition = newman_partition(g)
ix = {}
for n, p in enumerate(partition):
ix[n] = set(p)
gp = GraphPartition(g, ix)
print gp.modularity()
print simulated_annealing(g, p0=gp)
from __future__ import division
from modularity import (random_walk_matrix, lazy_random_walk_matrix,
modularity_matrix, newman_partition,
modularity, adjust_partition)
from networkx import Graph
import numpy as np
from numpy.testing import assert_array_almost_equal
from numpy.linalg import eig
# X
# |
# X--X
# \ /
# X--X
#
# Numbered top to bottom, left to right
g = Graph()
g.add_edges_from([
(1, 2),
(2, 3),
(2, 4),
(3, 4),
(4, 5)
])
def test_random_walk():
M = random_walk_matrix(g, normalize=False)
E = [[0, 1, 0, 0, 0],
[1/3, 0, 1/3, 1/3, 0],
[0, 1/2, 0, 1/2, 0],
[0, 1/3, 1/3, 0, 1/3],
[0, 0, 0, 1, 0]]
assert_array_almost_equal(M, E)
def test_random_walk_normalized():
M0 = random_walk_matrix(g, normalize=False)
M1 = random_walk_matrix(g, normalize=False)
e0, v0 = eig(M0)
e1, v1 = eig(M1)
assert_array_almost_equal(e0, e1)
def test_lazy_random_walk():
M = lazy_random_walk_matrix(g, normalize=False)
E = [[1/2, 1/2, 0, 0, 0],
[1/6, 1/2, 1/6, 1/6, 0],
[0, 1/4, 1/2, 1/4, 0],
[0, 1/6, 1/6, 1/2, 1/6],
[0, 0, 0, 1/2, 1/2]]
assert_array_almost_equal(M, E)
def test_random_walk_normalized():
M0 = lazy_random_walk_matrix(g, normalize=False)
M1 = lazy_random_walk_matrix(g, normalize=False)
e0, v0 = eig(M0)
e1, v1 = eig(M1)
assert_array_almost_equal(e0, e1)
def test_modularity_matrix():
g = Graph()
g.add_edges_from([
(0, 1),
(2, 3),
(2, 4),
(3, 4)
])
B = modularity_matrix(g)
E = 1/8 * np.array([[-1, 7, -2, -2, -2],
[ 7, -1, -2, -2, -2],
[-2, -2, -4, 4, 4],
[-2, -2, 4, -4, 4],
[-2, -2, 4, 4, -4]])
assert_array_almost_equal(B, E)
# 0 1
# X---X
# \ /
# X 2
# |
# X 3
# / \
# X---X
# 4 5
g = Graph()
g.add_edges_from([
(0, 1),
(0, 2),
(1, 2),
(2, 3),
(3, 4),
(3, 5),
(4, 5)
])
import networkx as nx
#g = nx.karate_club_graph()
e = np.loadtxt('jazz.net', skiprows=3, dtype=int)[:, :2] - 1
g = nx.Graph()
g.add_edges_from(e)
p0 = newman_partition(g)
print "Partitioned graph modularity:", modularity(g, p0)
gp = adjust_partition(g, p0)
print "Optimized partition modularity:", gp.modularity()
p1 = [np.array(list(a)) for a in gp.index.values()]
print "Modularity verified:", modularity(g, p1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment