Modularity comm dectection

This algorithm works for different types of networks.

We used this command on the directed weighted network:


In [3]:
import os
from graph_tool.all import *
import codecs
from collections import defaultdict, OrderedDict
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline 
from igraph import *
from scipy.stats.stats import pearsonr
from scipy import stats
import seaborn as sns
import pandas as pd
import math
import json
plt.style.use('seaborn-white')
sns.set(font_scale=2) 
sns.set_style("white")

In [7]:
WORKING_FOLDER = '../../../DATA/FIN/Modularity'
os.chdir(WORKING_FOLDER)
f_in_graph = 'mention_graph_weights.dat'

f_in_Modularity_output_comm = 'modularity_partition_names.tab'

In [22]:
def read_in_node_names():
    f = open('mutual_unweighted_node_names', 'r')
    node_names = defaultdict(int)
    for line in f:
        if line[0] == '#':
            continue
        node_id, node_name = line.split()
        node_names[int(node_id)] = int(node_name)
    return node_names

In [81]:
# returns a dict with nodes ids per community in each value
# dict keys are just community ids in returned order 
def read_modularity_output():  
    input_file = codecs.open(f_in_Modularity_output_comm, 'r', encoding='utf8')
    output = defaultdict(list)
    num_COMM = 0
    for line in input_file:
        line = line.split()
        output[num_COMM] = [int(str(el)) for el in line]
        num_COMM += 1
                  
    return output

read_modularity_output()


Out[81]:
defaultdict(list,
            {0: [29026, 8787],
             1: [9177, 25816],
             2: [9992],
             3: [4580],
             4: [22829, 18506],
             5: [20508, 14430],
             6: [17288],
             7: [682],
             8: [26722, 3921],
             9: [9215, 7255],
             10: [20247, 17586],
             11: [6639],
             12: [6553, 6284],
             13: [21926, 9269, 2369, 24169],
             14: [1965, 9711, 28637, 5131, 17994],
             15: [17767, 9469, 21035],
             16: [8440],
             17: [18001],
             18: [27892, 3406],
             19: [18894, 18063],
             20: [1847, 14494],
             21: [4833, 20219],
             22: [21081, 23708, 11675],
             23: [10910, 27649],
             24: [16628, 15929],
             25: [11449, 7441],
             26: [27494, 2504],
             27: [7964, 4542],
             28: [5864, 16],
             29: [23793, 27834, 23117],
             30: [1212],
             31: [342, 7325],
             32: [11279, 21376],
             33: [29551, 13292],
             34: [2536, 27211],
             35: [16814],
             36: [9682, 3505],
             37: [10429, 23129],
             38: [6528, 18892],
             39: [16644],
             40: [20716, 24270],
             41: [1787, 5130],
             42: [4281, 15127, 25278],
             43: [18200, 20147],
             44: [10086, 12099],
             45: [15882, 18659],
             46: [6267, 25234],
             47: [15413, 6752],
             48: [2189, 23867],
             49: [15816, 22529],
             50: [11196],
             51: [21751],
             52: [6931, 5239],
             53: [4335],
             54: [7691, 2352],
             55: [22669],
             56: [2578],
             57: [21723, 28788],
             58: [12224],
             59: [601],
             60: [15894, 24047],
             61: [28762],
             62: [13668, 1542],
             63: [25621, 12833, 27610, 79],
             64: [4146],
             65: [8961, 3799],
             66: [27523, 16473],
             67: [3282, 28686],
             68: [23663, 11352],
             69: [7854, 9496],
             70: [5220, 5112],
             71: [28379],
             72: [16243, 20300],
             73: [22071],
             74: [26698],
             75: [19636, 6962],
             76: [5701],
             77: [3326, 13588],
             78: [5206, 10354],
             79: [8013, 1043],
             80: [21736, 5744, 13105, 28665, 11989],
             81: [23361, 17117],
             82: [7779, 13861, 12808],
             83: [221, 27644],
             84: [28201],
             85: [16873, 21281],
             86: [8158, 2540, 23662],
             87: [11751],
             88: [8155, 24021],
             89: [16946],
             90: [11656, 27747],
             91: [28172, 26878],
             92: [16431, 10272],
             93: [17699, 303],
             94: [10674],
             95: [18215, 15742],
             96: [21388, 16445],
             97: [28083],
             98: [12170, 25800, 9045],
             99: [4298],
             100: [1969, 10702],
             101: [27134],
             102: [19048, 17180],
             103: [15864, 25898],
             104: [16822],
             105: [8292, 24149],
             106: [14205],
             107: [5460, 16949],
             108: [20885, 11330],
             109: [24838, 17873, 6896],
             110: [14847],
             111: [1404, 17683],
             112: [319, 23144],
             113: [7772, 12583],
             114: [7549, 2804, 3314],
             115: [12406, 6035],
             116: [7828, 25636],
             117: [8164, 24938, 12975],
             118: [8738, 10778],
             119: [11075, 15266],
             120: [22593, 3763],
             121: [8862, 11995, 10178],
             122: [19259, 21556],
             123: [11714, 14745],
             124: [14989, 11521],
             125: [8655],
             126: [21427, 13698],
             127: [218, 9783],
             128: [13351, 26944],
             129: [26251, 15804],
             130: [27130],
             131: [22279, 29318],
             132: [16227],
             133: [12504, 16997, 17496],
             134: [17014, 14854],
             135: [6873, 4748],
             136: [18254, 26556],
             137: [22828],
             138: [18369, 23187],
             139: [24425, 21286, 24347],
             140: [28029, 7705],
             141: [25410],
             142: [14686],
             143: [6867],
             144: [987],
             145: [484, 18684, 26624],
             146: [15841],
             147: [27600, 17697],
             148: [23258],
             149: [28632],
             150: [17866, 1955],
             151: [17152, 3488],
             152: [20185, 8297],
             153: [14931, 4512],
             154: [11398, 6558],
             155: [386, 21407],
             156: [12900, 4713, 22961, 9146],
             157: [1409],
             158: [5947],
             159: [25883, 186],
             160: [5782],
             161: [28869, 10109],
             162: [26077],
             163: [26200, 14109],
             164: [9424],
             165: [27257, 10359],
             166: [27126, 18387],
             167: [8711],
             168: [17910, 10569],
             169: [13655, 6459],
             170: [16531],
             171: [22430,
              7471,
              9404,
              5660,
              10842,
              23597,
              15199,
              29251,
              24466,
              21019,
              19534,
              20923,
              18487,
              16161,
              21133,
              23797,
              2969,
              21581,
              12067,
              8757,
              6987,
              28653,
              20611,
              18313,
              6068,
              20181,
              5631,
              13067,
              16239,
              16523,
              27080,
              24889,
              12530,
              1827,
              322,
              11757,
              4958,
              7830,
              912,
              1700,
              10396,
              4822,
              9082,
              13819,
              21896,
              645,
              29599,
              5409,
              6099,
              24929,
              28215,
              18675,
              10355,
              6654,
              21356,
              16172,
              8689,
              1291,
              14416,
              6199,
              14255,
              20532,
              31,
              23652,
              11855,
              10536,
              10182,
              16065,
              1600,
              1861,
              23289,
              10269,
              28472,
              9104,
              9945,
              26392,
              17141,
              3722,
              2168,
              12770,
              26236,
              3884,
              14636,
              475,
              3065,
              14726,
              20819,
              19062,
              27874,
              26474,
              18102,
              3453,
              13203,
              12243,
              14432,
              7823,
              12894,
              26273,
              11564,
              8639,
              4945,
              21254,
              20253,
              13483,
              17487,
              1603,
              2253,
              18743,
              22216,
              9813,
              195,
              2710,
              7047,
              7747,
              12203,
              28387,
              15519,
              6186,
              1616,
              12846,
              14045,
              10694,
              25148,
              1509,
              2298,
              20569,
              4337,
              25342,
              3744,
              14048,
              3451,
              4009,
              7956,
              29457,
              19410,
              12683,
              27127,
              4617,
              16756,
              387,
              28169,
              7552,
              18553,
              9316,
              786,
              7763,
              18154,
              14087,
              2271,
              598,
              12233,
              19917,
              15758,
              13416,
              16134,
              12707,
              26617,
              13770,
              16165,
              10556,
              19949,
              22428,
              8038,
              19791,
              11169,
              13343,
              16801,
              27081,
              5053,
              15868,
              20271,
              10563,
              12670,
              4916,
              14023,
              24780,
              24715,
              29294,
              28182,
              22601,
              3362,
              27753,
              14252,
              818,
              27288,
              11461,
              25091,
              12845,
              19640,
              14565,
              16739,
              8349,
              22191,
              18181,
              7554,
              23498,
              28469,
              25328,
              19620,
              22765,
              15779,
              24244,
              11541,
              27566,
              569,
              23768,
              16559,
              10478,
              95,
              28690,
              11660,
              1251,
              17317,
              20146,
              26216,
              20643,
              9883,
              28376,
              11194,
              21625,
              668,
              4882,
              11915,
              18184,
              9602,
              27823,
              22073,
              14115,
              26185,
              26837,
              29010,
              21001,
              1104,
              24459,
              8351,
              12825,
              11315,
              4163,
              10459,
              2734,
              17414,
              22492,
              27450,
              19240,
              3055,
              10152,
              10800,
              25619,
              16164,
              17881,
              590,
              11443,
              4939,
              14516,
              21474,
              10060,
              25924,
              1726,
              25222,
              23629,
              17364,
              3602,
              8093,
              13391,
              7827,
              27670,
              22345,
              6837,
              2714,
              8072,
              11947,
              10284,
              27561,
              6784,
              4471,
              23199,
              1799,
              4052,
              18991,
              16934,
              1538,
              19093,
              10940,
              14429,
              26758,
              13380,
              2553,
              5241,
              13793,
              3080,
              251,
              28999,
              3527,
              19145,
              17565,
              523,
              14851,
              24703,
              17604,
              25206,
              12551,
              14568,
              5813,
              8659,
              12948,
              20308,
              394,
              6642,
              16651,
              18053,
              19592,
              26701,
              14330,
              679,
              5822,
              27764,
              16485,
              10508,
              5526,
              11316,
              21434,
              11012,
              22016,
              20064,
              8430,
              29224,
              3687,
              27025,
              12757,
              23154,
              22764,
              14390,
              8507,
              2272,
              5837,
              17529,
              811,
              4003,
              21251,
              12907,
              20749,
              9914,
              28493,
              9134,
              13705,
              28961,
              10009,
              7415,
              25774,
              5765,
              26421,
              26256,
              2097,
              17690,
              22265,
              1915,
              27234,
              1875,
              8473,
              13996,
              25671,
              25987,
              10739,
              11896,
              8183,
              23829,
              12703,
              106,
              12408,
              12358,
              2537,
              11676,
              21537,
              17925,
              7432,
              383,
              25051,
              28454,
              17807,
              6801,
              3733,
              9274,
              1309,
              3881,
              27383,
              14527,
              5170,
              721,
              16680,
              21005,
              3736,
              29077,
              14517,
              12225,
              12567,
              2705,
              25488,
              20111,
              9854,
              27162,
              7034,
              7094,
              13005,
              17287,
              15112,
              20177,
              16537,
              23599,
              5045,
              17224,
              27860,
              26601,
              19042,
              18866,
              7128,
              13248,
              24213,
              26796,
              1872,
              11505,
              11956,
              4556,
              8367,
              13443,
              5678,
              12801,
              11015,
              7074,
              26934,
              3184,
              7326,
              8618,
              12715,
              19092,
              8634,
              9020,
              2312,
              26426,
              20610,
              26289,
              16852,
              11173,
              347,
              23052,
              3617,
              25893,
              13304,
              13192,
              20446,
              28120,
              17008,
              29214,
              22297,
              10854,
              17168,
              16314,
              17965,
              26333,
              10630,
              3269,
              22633,
              27154,
              21456,
              21541,
              7347,
              25670,
              21563,
              13247,
              11092,
              14674,
              26721,
              10861,
              2310,
              28790,
              28360,
              23855,
              21245,
              15215,
              13065,
              22486,
              1083,
              25469,
              19027,
              2977,
              20627,
              21234,
              23711,
              3698,
              19029,
              27221,
              14507,
              8811,
              18371,
              24185,
              10688,
              2000,
              12743,
              12908,
              8831,
              15571,
              26315,
              8524,
              10510,
              9887,
              9774,
              22645,
              10210,
              17137,
              26138,
              11929,
              16022,
              29240,
              1392,
              25481,
              17992,
              4906,
              17130,
              10160,
              617,
              19727,
              1002,
              12338,
              24663,
              28821,
              21504,
              14882,
              25766,
              8195,
              1475,
              22683,
              7040,
              19389,
              6179,
              5440,
              25796,
              20287,
              21981,
              3487,
              2683,
              17985,
              1755,
              26788,
              27050,
              21451,
              20423,
              4868,
              15489,
              27043,
              10219,
              26507,
              13028,
              4778,
              12371,
              4952,
              8611,
              8193,
              16832,
              28317,
              22886,
              19980,
              2218,
              12784,
              16043,
              21118,
              16168,
              21862,
              1190,
              25235,
              22681,
              4681,
              2773,
              22744,
              2764,
              20152,
              17876,
              20570,
              27371,
              5314,
              29400,
              15543,
              29064,
              19541,
              23716,
              19065,
              5893,
              22088,
              16685,
              4435,
              15388,
              27369,
              26629,
              2795,
              4538,
              13089,
              26955,
              4809,
              13383,
              21848,
              2434,
              19544,
              2990,
              8500,
              11570,
              21188,
              803,
              19635,
              28385,
              26067,
              4875,
              13617,
              22687,
              2830,
              16393,
              13562,
              16883,
              584,
              28993,
              5646,
              28129,
              7127,
              9277,
              8028,
              24965,
              10685,
              19729,
              9831,
              4903,
              11300,
              8237,
              4895,
              22700,
              4506,
              26215,
              15404,
              7931,
              22337,
              19672,
              8230,
              794,
              12552,
              19900,
              4013,
              4432,
              21678,
              8858,
              23956,
              15941,
              27188,
              25718,
              21088,
              12924,
              24565,
              5001,
              21990,
              24429,
              22411,
              3980,
              9514,
              6936,
              11785,
              22362,
              11705,
              6548,
              24774,
              19400,
              11337,
              22565,
              6466,
              21972,
              24067,
              14521,
              26127,
              12872,
              27867,
              24567,
              27057,
              6151,
              24899,
              28917,
              1999,
              16191,
              2351,
              19568,
              10215,
              6104,
              2672,
              25574,
              10899,
              11629,
              9598,
              9444,
              23160,
              11128,
              2456,
              25169,
              27276,
              27381,
              17192,
              11216,
              20255,
              4705,
              10697,
              28802,
              18771,
              29106,
              16993,
              14070,
              15718,
              17620,
              29258,
              4001,
              1720,
              24944,
              559,
              24711,
              27250,
              639,
              18072,
              15256,
              29464,
              3526,
              11625,
              13496,
              14388,
              22924,
              12165,
              17280,
              22021,
              11638,
              5828,
              20653,
              24242,
              6263,
              656,
              15027,
              9216,
              13481,
              10002,
              10889,
              11913,
              22786,
              9522,
              2806,
              23905,
              29371,
              7583,
              10127,
              5966,
              8640,
              9979,
              4951,
              15805,
              17190,
              17860,
              19174,
              3862,
              21686,
              6381,
              11070,
              8108,
              929,
              23860,
              9772,
              28023,
              9368,
              2100,
              22678,
              15137,
              9905,
              26010,
              27658,
              17608,
              508,
              20441,
              23846,
              24437,
              1950,
              21555,
              3503,
              14026,
              14761,
              27125,
              209,
              353,
              8151,
              5667,
              8206,
              21968,
              12637,
              13594,
              25095,
              339,
              3095,
              20590,
              29273,
              25454,
              7002,
              22793,
              7376,
              20313,
              8963,
              15335,
              7015,
              11517,
              21452,
              623,
              19282,
              12966,
              10103,
              22504,
              22804,
              20745,
              26881,
              9471,
              29131,
              13295,
              1227,
              23131,
              15567,
              16868,
              22806,
              10156,
              9968,
              8326,
              2088,
              9965,
              26003,
              12038,
              1469,
              14249,
              22753,
              5886,
              20251,
              27423,
              275,
              16196,
              23877,
              27505,
              13745,
              24017,
              7474,
              8732,
              14004,
              9418,
              27787,
              13382,
              2627,
              24825,
              6536,
              24882,
              1238,
              6613,
              26193,
              1651,
              11588,
              11348,
              2794,
              14907,
              18809,
              14391,
              25247,
              8443,
              15588,
              28800,
              18750,
              27468,
              23651,
              1961,
              5796,
              20448,
              13765,
              10012,
              11014,
              1843,
              3808,
              26281,
              5356,
              4412,
              1946,
              2798,
              29362,
              26887,
              6990,
              1914,
              24657,
              12036,
              29581,
              6351,
              13823,
              12481,
              14661,
              3162,
              19420,
              7584,
              6524,
              22758,
              28247,
              29123,
              2040,
              29127,
              28709,
              16729,
              5231,
              12512,
              19716,
              20458,
              7557,
              13440,
              7072,
              20549,
              19585,
              17195,
              5019,
              6696,
              15545,
              12871,
              8299,
              527,
              9077,
              15330,
              21132,
              11262,
              24511,
              28356,
              21453,
              4923,
              16163,
              14556,
              13514,
              6888,
              17377,
              3206,
              28446,
              29498,
              16867,
              16929,
              23828,
              2150,
              9461,
              1361,
              8822,
              13572,
              17400,
              9548,
              2048,
              25334,
              4140,
              15493,
              16220,
              27855,
              11781,
              23987,
              30,
              21785,
              19630,
              15890,
              25735,
              5587,
              10350,
              16681,
              22759,
              29252,
              10537,
              7218,
              28166,
              22034,
              8548,
              11803,
              20488,
              28589,
              18004,
              24183,
              12986,
              13549,
              23425,
              24214,
              3800,
              10381,
              17766,
              17413,
              21242,
              4551,
              18767,
              15502,
              5199,
              19078,
              9457,
              3809,
              2319,
              7926,
              5663,
              11033,
              11816,
              3672,
              4782,
              5452,
              5697,
              9889,
              1333,
              15560,
              ...],
             172: [17518, 27321],
             173: [25405, 18510],
             174: [28318, 4044],
             175: [14424, 14269],
             176: [16585, 25878, 12397],
             177: [23017, 22516],
             178: [14373, 5563],
             179: [29081,
              1557,
              3215,
              17360,
              7776,
              9437,
              29193,
              16969,
              4644,
              9080,
              25489,
              15528,
              3909,
              9345],
             180: [2108, 3951, 21637],
             181: [18634, 15842],
             182: [3701, 18958],
             183: [29101],
             184: [24574, 7122, 23370],
             185: [9973],
             186: [4669, 837],
             187: [14283, 15099],
             188: [18272, 16678],
             189: [27950, 13893],
             190: [15756, 8939, 14488],
             191: [8528,
              29432,
              14709,
              2837,
              7170,
              1826,
              19462,
              12890,
              17842,
              25457,
              23334,
              15056,
              14699,
              4376,
              6084,
              22107,
              25149,
              22970,
              19593,
              14402,
              11723,
              15069,
              20207,
              12278,
              28667,
              9833,
              16206,
              19982,
              17870,
              20258,
              20969,
              10522,
              26628,
              20233,
              22636,
              10589,
              4549,
              3954,
              940,
              15453,
              20617,
              12673,
              1040,
              1074,
              19083,
              18046,
              6489,
              21173,
              12161,
              28838,
              23408,
              1395,
              870,
              11537,
              4978,
              26688,
              9596,
              18705,
              1022,
              24873,
              9997,
              1308,
              19786,
              883,
              5943,
              28886,
              3831,
              16928,
              2760,
              20129,
              22360,
              10285,
              955,
              4184,
              27728,
              12180,
              29358,
              25416,
              18796,
              20954,
              7419,
              1177,
              20244,
              3295,
              8238,
              22207,
              4475,
              8039,
              20502,
              9164,
              12992,
              1198,
              19119,
              2325,
              2864,
              9321,
              25838,
              24071,
              23489,
              12265,
              24830,
              1112,
              5275,
              18225,
              15723,
              11232,
              18025,
              15635,
              6907,
              20905,
              9200,
              27222,
              22090,
              5328,
              28066,
              2428,
              22890,
              4055,
              10683,
              27560,
              9270,
              24766,
              21431,
              20619,
              14089,
              17258,
              25350,
              27544,
              19192,
              12407,
              25665,
              25552,
              10774,
              23087,
              10389,
              24772,
              28160,
              18157,
              14058,
              11938,
              11940,
              17542,
              11524,
              20297,
              5212,
              19327,
              12803,
              27611,
              12374,
              3183,
              18554,
              26174,
              5066,
              44,
              8114,
              23363,
              16373,
              24793,
              25262,
              20536,
              22674,
              10768,
              27643,
              19556,
              11283,
              10499,
              21358,
              9779,
              20774,
              4691,
              25496,
              25395,
              1289,
              22291,
              22012,
              6737,
              9845,
              4316,
              26061,
              12305,
              8060,
              3703,
              13361,
              1938,
              9400,
              1408,
              2625,
              19760,
              16222,
              14693,
              2014,
              8021,
              14030,
              29266,
              29275,
              11810,
              23572,
              13449,
              19483,
              15658,
              14317,
              23123,
              1731,
              22676,
              12222,
              24121,
              10915,
              21876,
              1544,
              2622,
              14435,
              13757,
              3006,
              28969,
              23686,
              19385,
              27223,
              26554,
              23551,
              27473,
              22953,
              20194,
              23934,
              7393,
              25363,
              15604,
              18828,
              22,
              25366,
              2439,
              14043,
              19610,
              12070,
              19216,
              10066,
              14346,
              24310,
              3656,
              24874,
              23780,
              16070,
              16499,
              817,
              27388,
              28173,
              28298,
              16250,
              3540,
              22418,
              15821,
              28986,
              92,
              7119,
              19603,
              28054,
              5560,
              4896,
              23692,
              2901,
              10661,
              19094,
              21291,
              6491,
              11876,
              3564,
              23952,
              17869,
              5137,
              8852,
              3697,
              8834,
              11926,
              26313,
              1892,
              22490,
              5556,
              4942,
              17492,
              2005,
              13396,
              21931,
              22236,
              20009,
              5773,
              15372,
              8614,
              25661,
              19350,
              4157,
              14068,
              25307,
              28791,
              14703,
              15809,
              17851,
              6171,
              15470,
              14120,
              7937,
              1421,
              9078,
              29444,
              5741,
              8319,
              12240,
              1280,
              9592,
              3015,
              23395,
              3248,
              9758,
              19821,
              23175,
              22203,
              17146,
              12217,
              8315,
              6800,
              23145,
              26199,
              17375,
              15517,
              4066,
              3532,
              7384,
              11460,
              10437,
              13836,
              8949,
              22131,
              17447,
              16793,
              27940,
              10401,
              2206,
              26043,
              3081,
              23563,
              25999,
              24297,
              26858,
              26448,
              24654,
              23114,
              26812,
              21814,
              5614,
              24579,
              15751,
              7450,
              12720,
              17769,
              29315,
              20079,
              459,
              1458,
              11917,
              6779,
              12413,
              25879,
              6282,
              28581,
              11156,
              20812,
              2469,
              12693,
              12051,
              27861,
              13477,
              28823,
              18335,
              24734,
              11737,
              11249,
              13896,
              18399,
              19030,
              5764,
              23297,
              20464,
              27716,
              1590,
              15221,
              1844,
              18360,
              10190,
              23800,
              22307,
              8912,
              29445,
              4228,
              1013,
              23381,
              16344,
              16850,
              2829,
              1531,
              7674,
              27616,
              22255,
              6412,
              29529,
              13026,
              12497,
              21381,
              20497,
              29044,
              27656,
              6865,
              309,
              7007,
              26745,
              5649,
              16903,
              3993,
              19465,
              21365,
              25841,
              28918,
              15303,
              12322,
              11252,
              24460,
              19542,
              3018,
              15123,
              24815,
              3109,
              5021,
              972,
              15253,
              13011,
              6136,
              688,
              11531,
              15036,
              20628,
              290,
              20405,
              6839,
              25039,
              7211,
              1594,
              13640,
              22507,
              18722,
              15831,
              6795,
              21592,
              28514,
              12488,
              6148,
              12438,
              26346,
              23392,
              18015,
              20926,
              8487,
              17390,
              15210,
              9617,
              15275,
              7925,
              23127,
              3861,
              22899,
              22871,
              18231,
              13490,
              14052,
              7595,
              23089,
              20964,
              5396,
              21143,
              22605,
              10550,
              11327,
              5236,
              27166,
              17747,
              16023,
              1888,
              20028,
              2587,
              8101],
             192: [19208, 14515],
             193: [766, 26746, 25988],
             194: [2157],
             195: [2444],
             196: [12042, 1200],
             197: [26724, 24398],
             198: [15621, 5372],
             199: [5755, 17759],
             200: [26772, 7965],
             201: [1140],
             202: [17162],
             203: [15547],
             204: [10647],
             205: [9212, 25322],
             206: [18324, 5225],
             207: [8, 2442, 2541],
             208: [1134, 14973],
             209: [15760, 29267],
             210: [23369, 24675],
             211: [6188],
             212: [11032, 14701],
             213: [20618, 25486, 22663, 6894],
             214: [18309, 10952],
             215: [23295, 20236],
             216: [26536, 21800, 4849],
             217: [25261],
             218: [1230, 4568],
             219: [959, 15834],
             220: [24610, 27501],
             221: [26561, 11296],
             222: [135, 27820],
             223: [11197, 13035, 22841, 28603, 18848],
             224: [11018, 10906],
             225: [12197],
             226: [26838],
             227: [23010],
             228: [19631, 13952],
             229: [10336, 22630],
             230: [3263, 14548],
             231: [1036, 24719],
             232: [25797, 17668, 3762],
             233: [27477, 8174],
             234: [22848],
             235: [2722, 10094],
             236: [15071],
             237: [29006, 12492],
             238: [9670, 2104],
             239: [28500, 2856],
             240: [25199, 23590, 15481],
             241: [8761,
              16935,
              24481,
              27155,
              19776,
              4114,
              23421,
              25537,
              6355,
              18920,
              22229,
              10095,
              21113,
              10141,
              6500,
              11534,
              14405],
             242: [19764,
              27688,
              28937,
              27573,
              2564,
              13208,
              16747,
              14467,
              12089,
              22033,
              27198,
              25860,
              26650,
              2309,
              24381,
              648,
              14985,
              17920,
              9386,
              1639,
              12761,
              16663,
              6564,
              13078,
              1225,
              116,
              1534,
              27300,
              9614,
              27625,
              25917,
              11772,
              10105,
              12113,
              13867,
              12655,
              21243,
              4242,
              879,
              25069,
              26072,
              3669,
              14624,
              10337,
              89,
              7671,
              23020,
              27845,
              14341,
              1673,
              27304,
              24002,
              12475,
              18152,
              12392,
              24089,
              8935,
              29059,
              14104,
              41,
              27484,
              19293,
              26941,
              28256,
              9245,
              6264,
              27452,
              12654,
              25072,
              1259,
              6102,
              23509,
              1719,
              9165,
              17123,
              2870,
              19597,
              13763,
              27906,
              20798,
              2136,
              28620,
              12192,
              27224,
              6251,
              3168,
              29055,
              11669,
              25709,
              4369,
              28312,
              23817,
              29506,
              18677,
              5895,
              11491,
              695,
              5438,
              15077,
              21272,
              24614,
              4220,
              7311,
              26868,
              10577,
              27151,
              7613,
              22571,
              17242,
              17662,
              26516,
              28687,
              10418,
              23372,
              8542,
              14163,
              103,
              6163,
              26323,
              4459,
              13517,
              6608,
              10892,
              20135,
              7425,
              6438,
              12571,
              9951,
              13109,
              801,
              24866,
              5331,
              8399,
              25033,
              19918,
              13086,
              2302,
              24777,
              14021,
              22154,
              22916,
              21039,
              17481,
              23713,
              11808,
              13001,
              27795,
              4308,
              12469,
              22766,
              11549,
              14990,
              22873,
              5080,
              10069,
              21839,
              17384,
              13728,
              23477,
              16279,
              3694,
              11250,
              19522,
              5501,
              9549,
              14441,
              15589,
              10643,
              17106,
              13008,
              13978,
              3128,
              28153,
              4261,
              22957,
              9853,
              6165,
              18251,
              3138,
              4260,
              5642,
              22629,
              10221,
              535,
              21708,
              14257,
              26481,
              23789,
              11912,
              20662,
              18281,
              1701,
              11275,
              478,
              20641,
              12333,
              4177,
              10670,
              12753,
              21775,
              21191,
              19188,
              6247,
              11172,
              9053,
              27395,
              13715,
              20660,
              11258,
              19142,
              25484,
              1157,
              6122,
              3556,
              25713,
              25695,
              5857,
              14407,
              11845,
              25679,
              16154,
              26064,
              13638,
              27741,
              8227,
              15044,
              22799,
              18756,
              21514,
              8517,
              9604,
              17830,
              29012,
              10692,
              22296,
              16262,
              8314,
              24060,
              28181,
              20328,
              15128,
              24636,
              12219,
              9247,
              12176,
              27458,
              5277,
              16280,
              17527,
              26659,
              20741,
              22002,
              5290,
              20895,
              25248,
              7264,
              6730,
              22670,
              10414,
              6047,
              6374,
              22043,
              10956,
              19458,
              9140,
              26135,
              16614,
              20494,
              29067,
              18388,
              16016,
              26728,
              17415,
              3220,
              25672,
              13046,
              21812,
              7770,
              28947,
              20023,
              22603,
              26475,
              24015,
              5758,
              11967,
              15020,
              19354,
              25135,
              24545,
              18598,
              26894,
              14116,
              13506,
              27239,
              28511,
              9863,
              6383,
              21260,
              25062,
              9791,
              15167,
              29582,
              4166,
              13224,
              6571,
              4385,
              22072,
              6311,
              20906,
              14495,
              13676,
              3387,
              1865,
              22387,
              15277,
              20531,
              29455,
              23292,
              11475,
              651,
              14519,
              16248,
              25738,
              622,
              20001,
              22572,
              490,
              19215,
              1077,
              25060,
              26759,
              10382,
              839,
              15916,
              25721,
              26872,
              23404,
              7099,
              15054,
              3643,
              26326,
              20322,
              816,
              13010,
              17892,
              26915,
              7761,
              14332,
              12002,
              5393,
              14136,
              4297,
              9518,
              20366,
              6153,
              27863,
              20630,
              18601,
              27715,
              5876,
              16495,
              10518,
              15136,
              25108,
              2610,
              8908,
              16950,
              445,
              2874,
              23219,
              9233,
              4620,
              515,
              7364,
              24266,
              22062,
              20711,
              17944,
              15697,
              6846],
             243: [6909,
              24058,
              29592,
              18260,
              8733,
              8683,
              14483,
              22456,
              5566,
              6420,
              23631,
              28737,
              29488,
              2184,
              20800,
              20392,
              13530,
              15995,
              17423,
              20008,
              10866,
              29151,
              8252,
              18706,
              3732,
              15850,
              4806,
              661,
              15206,
              5498,
              29502,
              5208,
              20295,
              16694,
              28815,
              3134,
              3230,
              5025,
              29391,
              18738,
              29149,
              24794,
              19242,
              17217,
              3092,
              1416,
              4326,
              2075,
              8162,
              13822,
              537,
              7658,
              13647,
              20989,
              26144,
              25795,
              11936,
              15706,
              25775,
              27039,
              13029,
              21399,
              7617,
              16674,
              17490,
              26865,
              26760,
              16484,
              21363,
              11811,
              28289,
              6684,
              4648,
              4749,
              27054,
              7335,
              23265,
              16114,
              2762,
              13215,
              19415,
              13136,
              26818,
              18268,
              5465,
              23240,
              13427,
              23374,
              25553,
              6354,
              13563,
              27789,
              10054,
              15942,
              13294,
              24240,
              11334,
              9049,
              27030,
              14784,
              17314,
              26180,
              631,
              13796,
              18539,
              10483,
              23418,
              16334,
              21232,
              26472,
              24139,
              4755,
              20138,
              23804,
              15445,
              22707,
              2200,
              27026,
              5287,
              9185,
              28945,
              29181,
              26695,
              9533,
              11290,
              3917,
              902,
              3755,
              17265,
              5115,
              5018,
              7540,
              27903,
              2154,
              10358,
              25468,
              11401,
              2419,
              26055,
              2033,
              28024,
              10672,
              5632,
              3807,
              9454,
              19220,
              1739,
              4465,
              1239,
              4118,
              8595,
              3014,
              17973,
              21682,
              14542,
              2099,
              1710,
              6142,
              28563,
              4519,
              18444,
              4125,
              19368,
              27464,
              12362,
              10718,
              29115,
              26611,
              11621,
              1689,
              19225,
              3306,
              21878,
              24307,
              6735,
              6246,
              21236,
              26361,
              27403,
              22381,
              10770,
              16637,
              20608,
              1972,
              20302,
              27072,
              12196,
              3775,
              17923,
              20871,
              29052,
              11907,
              17743,
              5722,
              1362,
              17045,
              18389,
              28242,
              2244,
              22809,
              18946,
              24758,
              23988,
              18833,
              17009,
              20626,
              13646,
              15514,
              29499,
              11441,
              24650,
              16082,
              1797,
              9516,
              628,
              13892,
              25157,
              28067,
              5088,
              1242,
              10240,
              13690,
              15314,
              16538,
              12447,
              4046,
              1170,
              8244,
              9156,
              25205,
              21718,
              26620,
              11522,
              8434,
              5240,
              18489,
              5760,
              7344,
              1703,
              1470,
              13868,
              12415,
              13412,
              18753,
              9320,
              2740,
              10864,
              27915,
              14581,
              9415,
              1985,
              28438,
              29593,
              18758,
              3765,
              12114,
              26896,
              21719,
              26924,
              1059,
              23112,
              15825,
              17064,
              27939,
              2868,
              8130,
              18288,
              6985,
              8189,
              546,
              28220,
              4789,
              16235,
              21149,
              27557,
              5059,
              18861,
              13387,
              809,
              20199,
              29564,
              11118,
              1579,
              24638,
              6627,
              11230,
              23950,
              20978,
              22386,
              7543,
              947,
              11437,
              4721,
              15959,
              9500,
              25609,
              18876,
              14408,
              3135,
              10139,
              17761,
              27535,
              6440,
              26719,
              1551,
              16842,
              20496,
              7024,
              24284,
              2324,
              16735,
              17779,
              1619,
              8943,
              19762,
              14130,
              29202,
              4350,
              27944,
              28489,
              703,
              9363,
              27262,
              12522,
              13111,
              9288,
              16442,
              1777,
              25290,
              8675,
              26403,
              9923,
              5923,
              4060,
              29122,
              9257,
              11027,
              14650,
              700,
              17,
              9553,
              17849,
              27285,
              17877,
              12141,
              13581,
              6353,
              24343,
              17359,
              13935,
              13302,
              881,
              2291,
              11602,
              1340,
              12190,
              19122,
              3021,
              10634,
              18592,
              24661,
              13987,
              27476,
              13786,
              20164,
              2311,
              1353,
              18818,
              10614,
              1606,
              2630,
              15770,
              21548,
              12525,
              168,
              12869,
              73,
              18593,
              10977,
              728,
              26690,
              12810,
              20519,
              3119,
              24207,
              27761,
              24690,
              21909,
              19248,
              23255,
              11958,
              12913,
              5149,
              28212,
              8550,
              25727,
              18764,
              15600,
              25864,
              7622,
              4481,
              2645,
              3972,
              17053,
              21651,
              10610,
              11433,
              8840,
              18204,
              28107,
              10631,
              16483,
              13928,
              24175,
              18701,
              29108,
              9393,
              5540,
              17220,
              5338,
              29414,
              3459,
              8966,
              11190,
              16315,
              3300,
              6234,
              22711,
              12191,
              1261,
              6653,
              7872,
              7276,
              25736,
              17901,
              17585,
              4372,
              8573,
              26741,
              139,
              3315,
              6575,
              16274,
              2448,
              9775,
              28089,
              23375,
              14843,
              7699,
              19100,
              5419,
              28076,
              2737,
              22067,
              2133,
              3407,
              18870,
              24608,
              3603,
              12896,
              14374,
              25422,
              4122,
              4768,
              26349,
              3714,
              15820,
              2751,
              11451,
              24218,
              18365,
              22468,
              9451,
              22413,
              4017,
              19436,
              19634,
              4087,
              28507,
              3560,
              12593,
              11220,
              11185,
              28128,
              1990,
              28158,
              5602,
              21778,
              24764,
              27685,
              13699,
              21867,
              9860,
              27364,
              7402,
              11420,
              9890,
              9577,
              6699,
              23598,
              18751,
              25915,
              14150,
              5120,
              27991,
              8535,
              12355,
              1737,
              2188,
              16434,
              26905,
              1088,
              2708,
              11746,
              1441,
              587,
              24128,
              6878,
              18649],
             244: [29090, 19130, 1195],
             245: [29412, 22284],
             246: [3660, 3678],
             247: [12897, 16866],
             248: [19769],
             249: [6426],
             250: [3552],
             251: [7207, 14881],
             252: [15733, 20984, 27966, 9069],
             253: [17520, 20174, 4969, 19862, 11009],
             254: [3454, 6702],
             255: [29491, 22316],
             256: [5040, 14353],
             257: [217, 21393],
             258: [18270, 18161],
             259: [14259, 6320],
             260: [11695],
             261: [24097, 2495],
             262: [20888, 20889],
             263: [17387, 20739],
             264: [5307, 8051, 28475, 14033, 2721, 9795],
             265: [19418, 22558],
             266: [6022],
             267: [12047, 23169],
             268: [27318, 10907],
             269: [18810, 12555],
             270: [4796, 20340],
             271: [18589, 16205],
             272: [5195, 19905],
             273: [2211, 9925],
             274: [9760],
             275: [14500,
              24571,
              23030,
              10332,
              2876,
              2487,
              11303,
              12648,
              27873,
              908,
              20939,
              9983,
              26217,
              19414,
              5856,
              22895,
              15512,
              21903,
              14326,
              23476,
              24548,
              18278,
              18406,
              6527,
              12840,
              22680,
              5933,
              23808,
              340,
              27853,
              19530,
              1607,
              4786,
              4982,
              1205,
              12040,
              7224,
              2686,
              20184,
              27762,
              2770,
              7736,
              26541,
              22616,
              22672,
              18830,
              15241,
              172,
              5925,
              937,
              915,
              551,
              8667,
              4979,
              16084,
              21984,
              23528,
              20786,
              26056,
              26381,
              6327,
              15011,
              15731,
              2003,
              26908,
              2644,
              21768,
              5522,
              19120,
              21307,
              11612,
              263,
              14833,
              6191,
              26261,
              7909,
              11171,
              25714,
              19921,
              16815,
              4191,
              13117,
              22322,
              21123,
              6879,
              9581,
              10425,
              11389,
              7894,
              6057,
              20112,
              4525,
              3210,
              16984,
              4291,
              22295,
              2021,
              20910,
              14195,
              14731,
              8059,
              4145,
              4729,
              11299,
              1754,
              1546,
              3784,
              16996,
              7198,
              17691,
              12205,
              19421,
              28148,
              23342,
              158,
              5143],
             276: [25829, 18059, 29386],
             277: [28694],
             278: [22884, 15580],
             279: [13780, 10830, 24619],
             280: [13654],
             281: [20212, 16455],
             282: [22032, 9317],
             283: [17458, 8497, 5429, 26639],
             284: [23177, 27147, 19052],
             285: [25944, 836],
             286: [2017, 17369],
             287: [16840, 25145],
             288: [7240, 8747],
             289: [2819, 6591, 15860, 19113],
             290: [16926, 29084, 14044],
             291: [21912, 10919, 23968, 2768],
             292: [18206],
             293: [1282, 2660],
             294: [13319],
             295: [11309, 11871],
             296: [17218, 8515],
             297: [5148, 6398],
             298: [23744, 8727, 2849],
             299: [25725],
             300: [28692, 3695],
             301: [24936],
             302: [17827],
             303: [28280, 23553],
             304: [12049, 3173],
             305: [14583, 26116],
             306: [5285],
             307: [25717, 13484, 15906, 26626],
             308: [12766, 22901],
             309: [14206, 4216],
             310: [3519, 12460],
             311: [20983, 23955],
             312: [29247, 21442],
             313: [3471, 28743],
             314: [3012, 17199, 21531, 26395, 1132, 26137],
             315: [9959],
             316: [5580, 28875],
             317: [420, 2726],
             318: [12168,
              23409,
              2382,
              8308,
              15412,
              23083,
              17031,
              22454,
              9412,
              26663,
              27150,
              2923,
              4340,
              14951,
              23568,
              13577,
              20283,
              27365,
              2081,
              28712,
              21529,
              3421,
              28292,
              10098,
              20850,
              11026,
              11121,
              214,
              2699,
              18928,
              27398,
              26734,
              2363,
              2702,
              4960,
              4747,
              28490,
              26139,
              28495,
              2006,
              570,
              25910,
              1699,
              28383,
              3518,
              7599,
              4784,
              10690,
              1233,
              14646,
              21824,
              10968,
              22999,
              3813,
              20390,
              20572,
              21825,
              14356,
              755,
              11434,
              15681,
              13329,
              8435,
              29536,
              19748,
              20887,
              499,
              504,
              21024,
              24210,
              2181,
              18899,
              4468,
              4485,
              5913,
              6821,
              27831,
              12307,
              2086,
              3390,
              12861,
              13927,
              24836,
              13422,
              21709,
              1020,
              18342,
              11596,
              17025,
              9742,
              28787,
              20118,
              26153,
              9828,
              28989,
              9034,
              15272,
              22577,
              3572,
              22718,
              16410,
              193,
              3246,
              27857,
              4426,
              9796,
              12403,
              14560,
              5376,
              17290,
              6705,
              21301,
              23022,
              22778,
              14281,
              19167,
              9029,
              24057,
              8107,
              20886,
              15375,
              125,
              2426,
              19109,
              13515,
              23222,
              26151,
              22374,
              28377,
              29533,
              3777,
              14774,
              1052,
              23813,
              20186,
              10199,
              24178,
              11488,
              6229,
              12777,
              8407,
              13970,
              9266,
              321,
              18961,
              2776,
              5849,
              21037,
              5443,
              7066,
              26668,
              22017,
              27213,
              7960,
              20402,
              26673,
              16498,
              26978,
              15696,
              6286,
              26342,
              3958,
              19809,
              15491,
              19287,
              15732,
              14653,
              27514,
              27028,
              12714,
              28436,
              21134,
              13408,
              10581,
              26352,
              6474,
              14300,
              5530,
              6011,
              15707,
              3792,
              26537,
              17885,
              20069,
              6860,
              8722,
              5472,
              26284,
              1300,
              7568,
              16761,
              10584,
              14884,
              11764,
              61,
              16570,
              8176,
              2231,
              470,
              15921,
              18712,
              23524,
              9536,
              25756,
              27167,
              28259,
              26763,
              27872,
              15347,
              9207,
              12540,
              21816,
              13874,
              24219,
              10827,
              20075,
              8986,
              13813,
              22596,
              19606,
              18990,
              1776,
              11696,
              21714,
              390,
              18979,
              28302],
             319: [9917, 1986, 29608, 23824, 21258],
             320: [10326],
             321: [17240, 14484],
             322: [431, 13207],
             323: [19281, 16146],
             324: [8279,
              24894,
              19486,
              25504,
              23533,
              25101,
              19877,
              3053,
              19001,
              6029,
              16306,
              9823,
              21707,
              16828,
              21439,
              12297,
              27074,
              6721,
              1426,
              23974],
             325: [23640],
             326: [8022, 26297],
             327: [10444, 6253, 13447],
             328: [24430, 10743],
             329: [9929, 19674],
             330: [13384, 26310],
             331: [15871],
             332: [25585, 12287],
             333: [10008, 28013],
             334: [20371, 25339, 13631, 592, 10664],
             335: [21155, 15554],
             336: [29594, 27910],
             337: [12268, 23844, 23960],
             338: [11870, 24090, 7942],
             339: [18194],
             340: [2917, 11322],
             341: [25257, 18566, 3582, 20176],
             342: [8261, 25265],
             343: [7397, 16904, 1885],
             344: [12878, 27053],
             345: [20852, 7856, 29079, 8152],
             346: [14372, 10747, 25880, 12346],
             347: [9160, 7938, 14113],
             348: [19223, 23484, 664],
             349: [22321],
             350: [23700,
              7555,
              18376,
              4090,
              29179,
              22938,
              304,
              29480,
              4790,
              19604,
              20015,
              18605,
              5481,
              20897,
              15884,
              15927,
              1256,
              21341,
              17533,
              19810,
              17570,
              1934,
              12574,
              10586,
              3579,
              25147,
              13311,
              21180,
              577,
              13760,
              26699,
              11261,
              3182,
              1138,
              18085,
              15579,
              25479,
              216,
              1884,
              11373,
              26683,
              28213,
              11599,
              22140,
              1683,
              4946,
              28882,
              21701,
              4513,
              18061,
              28189,
              2582,
              23577,
              27245,
              18989,
              13087,
              20275,
              6572,
              22161,
              22327,
              20285,
              2676,
              25711,
              20793,
              24704,
              3161,
              17708,
              23383,
              21655,
              13798,
              28072,
              11225,
              10217,
              10570,
              28108,
              17532,
              7333,
              17439,
              23536,
              18715,
              6928,
              14228,
              27811,
              18959,
              6546,
              22252,
              28635,
              2616,
              2738,
              27956,
              18812,
              20957,
              11546,
              23814,
              596,
              400,
              4591,
              23179,
              10750,
              23681,
              17471,
              22025,
              19602,
              2102,
              29589,
              19077,
              4040,
              28025],
             351: [16001],
             352: [1219,
              15408,
              29154,
              1446,
              27163,
              7291,
              25079,
              25429,
              7108,
              27459,
              24301,
              25813,
              21564,
              21607,
              1199,
              6176,
              3411,
              163,
              14287,
              2833,
              25520,
              5215,
              26714,
              10137,
              25438,
              6472,
              19853,
              12436,
              23677,
              19309,
              10927,
              1374,
              11200,
              6885,
              5186,
              28554,
              18488,
              26052,
              20785,
              6339,
              17206,
              24618,
              10754,
              26555,
              21213,
              2871,
              4675,
              18629,
              21488,
              22541,
              1024,
              22723,
              11992,
              24010,
              4709,
              26487,
              19839,
              27084,
              19715,
              3310,
              9364,
              11203,
              8928,
              20428,
              14939,
              24103,
              14509,
              27067,
              22333,
              18586,
              7052,
              26237,
              7179,
              8864,
              4282,
              10930,
              3030,
              17904,
              11611,
              236,
              11051,
              1320,
              19288,
              14325,
              10365,
              15339,
              25656,
              16638,
              11924,
              3316,
              23849,
              15876,
              11787,
              27623,
              5750,
              12318,
              21306,
              13829,
              10549,
              6864,
              27979,
              24932,
              3621,
              17926,
              17678,
              13888,
              15150,
              29452,
              17028,
              12602,
              5507,
              21512,
              3257,
              27856,
              4655,
              11653,
              18271,
              20943,
              971,
              12918,
              24828,
              16779,
              10386,
              28020,
              25061,
              29577,
              20327,
              12838,
              164,
              29369,
              11495,
              12849,
              6762,
              10005,
              12962,
              10712,
              8017,
              11149,
              7915,
              28561,
              17488,
              21462,
              2170,
              5154,
              8804,
              10870,
              888,
              13107,
              15474,
              2337,
              26190,
              18175,
              25921,
              28206,
              25899,
              27036,
              11314,
              15207,
              24468,
              23403,
              7144,
              1989,
              22948,
              3371,
              5370,
              2245,
              7821,
              14227,
              2823,
              26921,
              20789,
              9087,
              10278,
              12741,
              3559,
              16686,
              19788,
              16185,
              2114,
              5569,
              12153,
              25207,
              29431,
              3597,
              9764,
              3936,
              28394,
              25369,
              28904,
              10758,
              14492,
              1704,
              13474,
              6757,
              5077,
              12603,
              7216,
              4096,
              20438,
              20380,
              16683,
              21215,
              8461,
              10863,
              1959,
              19233,
              28434,
              17019,
              11528,
              23304,
              10756,
              13272],
             353: [21141, 7948, 5601],
             354: [13983],
             355: [2988, 21924],
             356: [25241, 11665],
             357: [5128],
             358: [22192],
             359: [19176, 20362],
             360: [3066, 6903, 2611],
             361: [19304],
             362: [7089, 2786, 22057, 28898, 11379, 28761],
             363: [26181, 28105, 24853, 3385],
             364: [11346, 26311],
             365: [9158, 11591, 8385, 28139],
             366: [12120, 19566],
             367: [18774, 5843],
             368: [23617, 16173],
             369: [6891],
             370: [8109, 5528],
             371: [27460, 4277],
             372: [21487, 391],
             373: [18747, 1095],
             374: [14707, 16658],
             375: [18325, 21591],
             376: [7183, 15933, 8671, 12598, 26026],
             377: [23410, 27439],
             378: [15200, 1272, 16504],
             379: [2409, 3943],
             380: [147, 3731],
             381: [16664],
             382: [22474],
             383: [5325, 1903],
             384: [25296, 27255, 17443],
             385: [14105, 25739],
             386: [8898, 12216],
             387: [26095, 10283],
             388: [15418, 13658],
             389: [8882, 26210],
             390: [28131],
             391: [21429, 259, 17200],
             392: [10339],
             393: [4888],
             394: [1866, 10766, 17714],
             395: [7230, 6278],
             396: [7593,
              26292,
              29153,
              29162,
              11281,
              6128,
              22944,
              9366,
              18479,
              19153,
              10757,
              1021,
              6346,
              24187,
              13904,
              19936,
              25522,
              12921,
              20269,
              19695,
              9509,
              11750,
              19326,
              22638,
              19989,
              2321,
              25379,
              16696,
              15719,
              14525,
              3266,
              23683,
              11837,
              8642,
              21777,
              26785,
              14917,
              15165,
              11397,
              13423,
              21544,
              7795,
              25391,
              21499,
              1618,
              15116,
              27261,
              24033,
              17530,
              12853,
              18647,
              11683,
              13789,
              3779,
              26437,
              7150,
              1519,
              21387,
              25360,
              28903,
              21779,
              2443,
              5606,
              27749,
              12412,
              20238,
              17381,
              14147,
              19586,
              4132,
              8295,
              22397,
              17878,
              22138,
              23798,
              15284,
              5698,
              18172,
              23493,
              5349,
              28486,
              16512,
              12109,
              4770,
              9067,
              11112,
              15124],
             397: [7906],
             398: [16482],
             399: [13445],
             400: [22888, 3711],
             401: [42],
             402: [29002, 11158, 2605],
             403: [3136, 14386, 3179, 21732, 3016, 29126, 27972, 22421],
             404: [16838, 22783],
             405: [9984, 26850],
             406: [17148],
             407: [12618, 24248],
             408: [1833, 23068],
             409: [28963, 24917],
             410: [14877, 13930],
             411: [7357, 11513, 22940, 10967],
             412: [4751, 6680, 4588],
             413: [23790, 20050],
             414: [1454, 14770],
             415: [9348, 9456, 6110],
             416: [14363, 14768],
             417: [7476, 15140, 1758, 14314],
             418: [21436, 16080],
             419: [21527],
             420: [28905, 17060, 21437, 29324, 11786, 11673],
             421: [7726, 6301],
             422: [10421],
             423: [15467, 6396, 1611],
             424: [18672],
             425: [6294, 4736],
             426: [18793,
              3913,
              8706,
              26158,
              14937,
              1217,
              11204,
              13048,
              4423,
              22652,
              28971,
              3493,
              2585,
              25529,
              11707,
              8141,
              6334,
              10164,
              8391,
              11405,
              28288,
              23136,
              7332,
              4771,
              13940,
              24280,
              600,
              19506,
              5830,
              29484,
              21737,
              15762,
              26407,
              7601,
              11842,
              21267,
              21608,
              19236,
              4635,
              18962,
              21523,
              21539,
              3389,
              13493,
              19841,
              24024,
              20824,
              6045],
             427: [7820, 19366],
             428: [9726, 27088],
             429: [19938, 25812],
             430: [24036, 2613],
             431: [19720, 3410, 10693, 6573],
             432: [27339, 9357],
             433: [27694,
              21253,
              166,
              21605,
              11652,
              6392,
              6074,
              17801,
              8782,
              27536,
              14153,
              21731,
              4932,
              16076,
              6370,
              4783,
              2340,
              6835,
              24508,
              15035,
              12226,
              15148,
              7227,
              8437,
              14493,
              22746,
              2473],
             434: [1897, 12214],
             435: [18264],
             436: [12237, 24212],
             437: [16493, 6715],
             438: [2491, 49, 23607, 22621, 7231, 13356, 28059],
             439: [11988, 16079],
             440: [14604],
             441: [9112, 14541],
             442: [25556, 29375],
             443: [23787, 3894],
             444: [18427, 16830],
             445: [9927, 25620],
             446: [15403],
             447: [20862, 18627],
             448: [20078, 27907],
             449: [3262],
             450: [16952, 9744],
             451: [4695],
             452: [2430, 27511],
             453: [12661,
              24678,
              29540,
              12982,
              3545,
              16580,
              23668,
              8506,
              22458,
              6184,
              3790,
              3384,
              9806,
              14801,
              15270,
              1440,
              20765,
              5969,
              6144,
              18780,
              21535,
              28572,
              3144,
              8163,
              23443,
              10585,
              9255,
              27662,
              10677,
              5671,
              24339,
              28279,
              334,
              1671,
              12624,
              20965,
              14215,
              21089,
              18597,
              18879,
              3633,
              15204,
              12904,
              4127,
              18707,
              3960,
              24539,
              8291,
              21533,
              5183,
              10026,
              13689,
              6543,
              26417,
              25602,
              2290,
              24533,
              22864,
              28742,
              14208,
              6518,
              29537,
              21086,
              3893,
              4611,
              22361,
              24514,
              3324,
              12884,
              2331,
              18978,
              20687,
              1185,
              4170,
              18819,
              5259,
              24906,
              28299,
              8110,
              16812,
              28430,
              24211,
              13075,
              12248,
              1853,
              2669,
              21613,
              13862,
              5708,
              11286,
              22539,
              29205,
              8712,
              28462,
              17698,
              28796,
              5807,
              11963,
              25958,
              13891,
              5456,
              22533,
              179,
              16145,
              15625,
              16604,
              25693,
              24623,
              19732,
              3502,
              16713,
              15176,
              26275,
              11308,
              9379,
              24918,
              21167,
              19511,
              4991,
              7188,
              10605,
              14179,
              11206,
              10715,
              729,
              25876,
              20726,
              23966,
              27678,
              3749,
              11984,
              26208,
              22341,
              24144,
              5737,
              10684,
              16944,
              9055,
              29504,
              15656,
              4169,
              17780,
              15283,
              886,
              17635,
              27995,
              27076,
              11217,
              23555,
              15655,
              5397,
              20175,
              28431,
              28403,
              15219,
              12349,
              16831,
              20673,
              26702,
              25516,
              6984,
              27849,
              29555,
              9731,
              3852,
              479,
              21938,
              21355,
              28526,
              24598,
              15767,
              17783,
              15874,
              7464,
              18940,
              21762,
              4011,
              29144,
              18158,
              22355,
              4312,
              5628,
              21960,
              21801,
              25740,
              20507,
              7458,
              9561,
              10225,
              29539,
              26883,
              9505,
              28021,
              25200,
              24942,
              4621,
              2842,
              6103,
              12178,
              9143,
              1186,
              13042,
              8100,
              11897,
              13968,
              1422,
              25993,
              18850,
              973,
              21310,
              13788,
              25357,
              14188,
              6507,
              6060,
              26655,
              22897,
              19391,
              629,
              25597,
              21068,
              6065,
              11416,
              21237,
              15045,
              16821,
              15879,
              20355,
              8533,
              9825,
              6169,
              10413,
              18176,
              21706,
              11789,
              918,
              9967,
              11747,
              9857,
              3907,
              8740,
              25989,
              10051,
              14421,
              3117,
              10452,
              12886,
              27683,
              25768,
              27708,
              25362,
              15057,
              25979,
              16535,
              20593,
              25873,
              17227,
              7784,
              13680,
              7053,
              13202,
              6775,
              22815,
              19903,
              12851,
              14962,
              23438,
              6761,
              13077,
              11175,
              1460,
              4074,
              6809,
              24507,
              3499,
              9023,
              6033,
              18090,
              13058,
              27835,
              5934,
              9261,
              28223,
              4026,
              4057,
              24009,
              8531,
              20440,
              19398,
              16307,
              12559,
              27981,
              9988,
              27822,
              652,
              6499,
              22591,
              22659,
              27577,
              9384,
              20837,
              20847,
              2202,
              22447,
              27193,
              20206,
              12289,
              5845,
              21507,
              18895,
              6248,
              11887,
              26888,
              28188,
              8042,
              14427,
              4268,
              28902,
              22941,
              6062,
              19882,
              28122,
              19191,
              27141,
              5956,
              26005,
              22715,
              15535,
              19947,
              566,
              29001,
              18027,
              11914,
              4073,
              23832,
              19476,
              26725,
              3476,
              26956,
              27641,
              9901,
              8180,
              25767,
              3462,
              20406,
              28883,
              24431,
              29210,
              13544,
              9390,
              15345,
              10270,
              25097,
              20052,
              20692,
              16209,
              22598,
              17816,
              428,
              8954,
              15013,
              10057,
              8603,
              25887,
              10309,
              16772,
              14322,
              2481,
              1125,
              27503,
              2602,
              8526,
              9310,
              9009,
              19857,
              27404,
              18654,
              23957,
              770,
              14765,
              14914,
              5836,
              16549,
              575,
              7063,
              411,
              13386,
              11849,
              20467,
              15317,
              10689,
              13342,
              6389,
              14334,
              792,
              13348,
              5945,
              10846,
              20724,
              5924,
              19943,
              21895,
              27777,
              26711,
              7523,
              1389,
              25888,
              29586,
              20751,
              25082,
              27032,
              6224,
              14351,
              20154,
              24424,
              20517,
              23614,
              27718,
              17908,
              19954,
              10803,
              8133,
              16690,
              28034,
              17737,
              6810,
              20012,
              24587,
              16204],
             454: [17854, 16639, 26293],
             455: [7666, 18167, 11454, 22795],
             456: [1868, 3441],
             457: [27928, 7003],
             458: [29272,
              15663,
              22166,
              13502,
              1447,
              12581,
              2573,
              8381,
              21417,
              12124,
              451,
              18923,
              22371,
              956,
              21108,
              18737,
              6305,
              25794,
              5329,
              7703,
              12961,
              8124,
              24119,
              11213,
              8628,
              16661,
              22935,
              19325,
              20093,
              3478,
              22205,
              21621,
              13986,
              20117,
              10254,
              2902,
              27228,
              8454,
              20289,
              14976,
              18765,
              7875,
              12526,
              5991,
              13341,
              16762,
              11264,
              23471,
              20437,
              17100,
              22797,
              10865,
              3159,
              16714,
              457,
              11794,
              26604,
              18676,
              23623,
              18896,
              6160,
              17645,
              28973,
              5079,
              9966,
              18651,
              13947,
              3968,
              21416,
              10535,
              28480,
              3100,
              4331,
              5546,
              2446,
              25869,
              16391,
              8885,
              19633,
              23512,
              18112,
              27270,
              9749,
              7299,
              20055,
              11778,
              3428,
              7934,
              14756,
              20780,
              18969,
              1350,
              9072,
              8134,
              25681,
              4094,
              5123,
              7359,
              18367,
              15138,
              29420,
              24335,
              27802,
              27382,
              28491,
              6287,
              20846,
              9534,
              29071,
              28414,
              7139,
              11248,
              5825,
              16190,
              7017,
              12288,
              4811,
              14826,
              16655,
              108,
              21020,
              3434,
              29176,
              19432,
              5060,
              7331,
              11076,
              22196,
              15186,
              19755,
              7968,
              2674,
              6114,
              3024,
              5715,
              23268,
              1437,
              23205,
              2498,
              1550,
              18155,
              11538,
              17176,
              12608,
              27348,
              28663,
              28921,
              6431,
              4702,
              12562,
              690,
              15085,
              2974,
              8919,
              7386,
              3367,
              15490,
              4155,
              10595,
              25190,
              25461,
              6375,
              5553,
              4049,
              27373,
              17957,
              8469,
              26960,
              5902,
              29133,
              8995,
              27970,
              29065,
              4509,
              27832,
              10725,
              13744,
              3231,
              25557,
              25964,
              15952,
              6998,
              22049,
              24462,
              6194,
              27091,
              1770,
              1115,
              2436,
              21405,
              4419,
              21582,
              18631,
              15861,
              14880,
              14592,
              7501,
              2281,
              23335,
              5227,
              9873,
              8513,
              20526,
              5002,
              20932,
              21406,
              17871,
              5990,
              14242,
              19014,
              6137,
              8417,
              28578,
              7242,
              2492,
              16027,
              18617,
              13954,
              24805,
              12622,
              22441,
              3743,
              18303,
              28960,
              2612,
              26014,
              24289,
              20768,
              29223,
              26761,
              4004,
              15398,
              7516,
              24077,
              10777,
              10286,
              2867,
              22099,
              16784,
              19819,
              22200,
              28345,
              12410,
              15607,
              15087,
              22921,
              21138,
              21006,
              27547,
              12802,
              1479,
              1851,
              19871,
              24383,
              16887,
              17886,
              2077,
              26409,
              28008,
              13657,
              12291,
              7411,
              15407,
              9349,
              14209,
              2854,
              8606,
              26743,
              14752,
              19206,
              25926,
              18067,
              29421,
              23516,
              2723,
              27556,
              5477,
              21016,
              1890,
              12964,
              14811,
              8808,
              29603,
              12489,
              59,
              25404,
              16035,
              6656,
              455,
              13168,
              28830,
              3221,
              21749,
              5203,
              14912,
              11463,
              6876,
              23619,
              9543,
              1834,
              12007,
              18930,
              24031,
              22602,
              28536,
              26904,
              23294,
              22133,
              18240,
              14229,
              16061,
              26312,
              17753,
              6071,
              9698,
              28703,
              18045,
              13901,
              22684,
              18587,
              7611,
              9721,
              10158,
              19605,
              17730,
              23994,
              22508,
              80,
              18680,
              4251,
              4172,
              8869,
              4516,
              1924,
              19441,
              18120,
              23646,
              25683,
              23237,
              20168,
              17938,
              5668,
              21674,
              26044,
              14727,
              5155,
              27215,
              5189,
              11604,
              21532,
              5623,
              14308,
              86,
              3280,
              5682,
              3422,
              18420,
              26239,
              19088,
              27675,
              14672,
              689,
              16626,
              21910,
              15025,
              18816,
              22093,
              28476,
              8716,
              7177,
              20060,
              18344,
              22121,
              6552,
              27581,
              13697,
              15068,
              21327,
              12575,
              8112,
              18242,
              11726,
              24542,
              25618,
              19179,
              9593,
              26964,
              16557,
              3996,
              2067,
              23194,
              2478,
              29027,
              10056,
              25682,
              18413,
              3901,
              5448,
              21795,
              17857,
              18253,
              23118,
              27164,
              15925,
              9136,
              11623,
              9918,
              246,
              2576,
              1529,
              5567,
              21627,
              16053,
              20567,
              16382,
              21636,
              2149,
              667,
              2447,
              29291,
              4343,
              17675,
              22688,
              25077,
              4585,
              17397,
              23878,
              22903,
              4473,
              9672,
              4718,
              14264,
              12055,
              27937,
              10065,
              8941,
              13436,
              6366,
              6159,
              16231,
              3586,
              25349,
              10834,
              237,
              8429,
              10101,
              8781,
              25702,
              3922,
              10665,
              21351,
              10498,
              13397,
              20141,
              711,
              24532,
              22913,
              9971,
              8650,
              9370,
              473,
              22376,
              24653,
              23777,
              7395,
              19518,
              7508,
              1321,
              10783,
              4775,
              19837,
              24576,
              13899,
              9174,
              24854,
              9253,
              5111,
              8173,
              4899,
              10603,
              14297,
              7132,
              10259,
              24112,
              21612,
              16261,
              19932,
              5907,
              23249,
              9196,
              26653,
              10542,
              14036,
              8305,
              746,
              29549,
              27810,
              13435,
              4293,
              1410,
              1780,
              5603,
              7016,
              15689,
              16861,
              15192,
              12331,
              22989,
              21609,
              22182,
              10474,
              18948,
              18656,
              7178,
              27293,
              11943,
              26154,
              9931,
              3565,
              9189,
              16295,
              19177,
              9327,
              11142,
              782,
              14869,
              26989,
              10415,
              18425,
              22171,
              10027,
              20284,
              16273,
              12658,
              22391,
              22599,
              12545,
              23269,
              351,
              8241,
              20864,
              10412,
              1348,
              18797,
              22968,
              9013,
              13828,
              2128,
              18702,
              21378,
              19260,
              21783,
              16435,
              1249,
              21823,
              24728,
              7962,
              9376,
              26726,
              10307,
              5161,
              24736,
              25271,
              15257,
              13876,
              10353,
              1363,
              23722,
              4470,
              29262,
              27247,
              29015,
              18436,
              8657,
              25506,
              8945,
              10921,
              27064,
              1939,
              13683,
              22537,
              22543,
              17598,
              4933,
              24153,
              29066,
              24079,
              27059,
              22794,
              6926,
              8904,
              28887,
              21696,
              12925,
              13773,
              24627,
              21111,
              5388,
              11212,
              8482,
              2952,
              1814,
              27277,
              4232,
              16059,
              22566,
              14981,
              9756,
              27982,
              22928,
              17922,
              11648,
              12353,
              8071,
              9162,
              25667,
              5865,
              22247,
              29096,
              18728,
              2110,
              1854,
              26408,
              7065,
              29541,
              21348,
              22066,
              3692,
              9884,
              22160,
              9694,
              17792,
              23675,
              29119,
              29329,
              10277,
              27780,
              22710,
              8499,
              16684,
              28367,
              17627,
              4766,
              24620,
              7388,
              925,
              5630,
              8055,
              8358,
              27170,
              2280,
              14294,
              604,
              16332,
              16804,
              21280,
              17285,
              18414,
              21428,
              10791,
              3033,
              27431,
              637,
              2496,
              9750,
              24630,
              25224,
              11862,
              1593,
              1621,
              21250,
              25965,
              26460,
              8714,
              3614,
              2345,
              20231,
              11667,
              26102,
              18229,
              9741,
              26163,
              13022,
              14490,
              14212,
              22691,
              25722,
              29407,
              5276,
              27173,
              11467,
              11668,
              16599,
              16749,
              20157,
              5989,
              2872,
              18829,
              12262,
              16342,
              5903,
              3646,
              24484,
              21781,
              11717,
              6944,
              11593,
              17457,
              17692,
              2483,
              9528,
              1087,
              27563,
              23574,
              14067,
              7027,
              11103,
              18099,
              14763,
              3125,
              12506,
              6214,
              821,
              19611,
              24683,
              15599,
              15157,
              19298,
              10624,
              588,
              22646,
              22052,
              5309,
              6796,
              26938,
              16268,
              8025,
              5740,
              1281,
              15835,
              24652,
              20586,
              21375,
              19850,
              17015,
              6262,
              15522,
              21703,
              16787,
              10951,
              1709,
              20209,
              19146,
              14420,
              26298,
              25008,
              200,
              29206,
              7832,
              18301,
              29190,
              495,
              510,
              4427,
              25163,
              26861,
              29513,
              9278,
              24070,
              9801,
              29242,
              6938,
              7096,
              3011,
              20522,
              29285,
              23157,
              2415,
              1646,
              6942,
              25655,
              8637,
              4696,
              27922,
              24337,
              19080,
              5855,
              7182,
              26525,
              1956,
              2418,
              7310,
              2604,
              23442,
              707,
              16790,
              20825,
              14987,
              19775,
              6360,
              23086,
              23959,
              16800,
              4407,
              15378,
              12151,
              23734,
              21638,
              22124,
              11691,
              16791,
              5681,
              19037,
              3855,
              14730,
              25691,
              5237,
              28816,
              12381,
              12885,
              8609,
              22313,
              16597,
              28734,
              1796,
              3684,
              18992,
              7484,
              29281,
              18698,
              24879,
              11910,
              27070,
              26183,
              5851,
              2451,
              17408,
              11762,
              26368,
              27876,
              18207,
              24995,
              22245,
              2574,
              2408,
              29158,
              5029,
              1941,
              14728,
              14998,
              22654,
              27219,
              7846,
              21600,
              12270,
              23042,
              14758,
              20477,
              26957,
              6783,
              16915,
              17346,
              7481,
              3895,
              24827,
              18769,
              4608,
              20337,
              8597,
              2126,
              16056,
              15562,
              1268,
              2991,
              2394,
              24966,
              8492,
              21036,
              26999,
              29474,
              17655,
              7570,
              8052,
              19073,
              20929,
              12599,
              21078,
              3388,
              8228,
              9902,
              7809,
              27596,
              5808,
              26750,
              15992,
              4249,
              11858,
              9152,
              9886,
              8996,
              28249,
              18409,
              12496,
              7857,
              5870,
              11617,
              3023,
              16758,
              5262,
              14371,
              15209,
              17595,
              10826,
              7110,
              24243,
              9250,
              3455,
              24697,
              28230,
              22332,
              20218,
              28865,
              21933,
              12244,
              16849,
              5547,
              15450,
              12092,
              6736,
              21788,
              24605,
              6913,
              16856,
              3445,
              28286,
              26634],
             459: [6636,
              25733,
              22469,
              4129,
              17720,
              1189,
              21425,
              21639,
              25628,
              23332,
              9081,
              9867,
              672,
              26886,
              11061,
              22527,
              5110,
              24104,
              26328,
              1708,
              15049,
              27490,
              24147,
              12027,
              25449,
              29366,
              10349,
              26118,
              8307,
              28056,
              1004,
              29301,
              9194,
              8785,
              16679,
              911,
              2373,
              312,
              7387,
              9150,
              4845,
              23084,
              9296,
              17762,
              25932,
              29022,
              18392,
              27692,
              13152,
              3825,
              3203,
              12984,
              12956,
              12090,
              5608,
              1417,
              24790,
              5175,
              545,
              7958,
              29396,
              12143,
              17367,
              14543,
              7629,
              13694,
              18117,
              11246,
              12934,
              8997,
              9427,
              17802,
              23165,
              18430,
              14961,
              29218,
              1556,
              15541,
              26020,
              8226,
              14659,
              922,
              5278,
              14806,
              15292,
              26565,
              14236,
              22343,
              21995,
              18440,
              17211,
              8784,
              25007,
              5197,
              15117,
              12115,
              13472,
              19214,
              3129,
              17731,
              22554,
              21672,
              22396,
              4053,
              24463,
              9785,
              6749,
              27267,
              26091,
              5310,
              22153,
              22733,
              22950,
              13318,
              15729,
              24110,
              12451,
              18727,
              4814,
              12301,
              10293,
              6898,
              23769,
              15672,
              760,
              13606,
              5348,
              12316,
              2985,
              7336,
              13500,
              4841,
              26051,
              8327,
              19548,
              4402,
              16481,
              28447,
              26907,
              2570,
              16503,
              9040,
              29419,
              7078,
              7530,
              15142,
              28755,
              20379,
              6859,
              11646,
              13664,
              1372,
              19543,
              16571,
              12484,
              7991,
              23188,
              4119,
              20425,
              1307,
              17349,
              23724,
              14886,
              10988,
              25313,
              14453,
              21759,
              20848,
              14724,
              22612,
              23283,
              20068,
              8646,
              19277,
              875,
              14354,
              16760,
              20514,
              7489,
              14131,
              16968,
              17333,
              19699,
              27320,
              11680,
              17017,
              26473,
              22266,
              5289,
              289],
             460: [24136, 5185],
             461: [14366, 13409],
             462: [152, 14633],
             463: [16786],
             464: [16506, 27017],
             465: [27621, 23811],
             466: [5683],
             467: [17419, 18906, 11041, 17341],
             468: [28843, 16979],
             469: [16921, 22552],
             470: [24684, 21687],
             471: [13149, 17149, 7367, 3391, 24253, 20803, 22738],
             472: [1478, 24267],
             473: [23016,
              10044,
              11081,
              27271,
              10227,
              18343,
              1334,
              16333,
              9100,
              8128,
              17491],
             474: [12445, 23470, 28669, 25375],
             475: [2445],
             476: [21087, 26373],
             477: [23872, 11474, 20501],
             478: [8780, 24890],
             479: [7306, 17605, 12509],
             480: [10235, 12855],
             481: [16670, 28209],
             482: [27978, 25331],
             483: [21780, 15900],
             484: [62, 20479, 15205],
             485: [16954],
             486: [5889],
             487: [27916, 5570],
             488: [26078, 22865],
             489: [18630, 23836],
             490: [3956],
             491: [17113, 27161],
             492: [5680,
              16074,
              17127,
              9824,
              1807,
              27231,
              15713,
              19253,
              23311,
              18645,
              21262,
              1982,
              25551,
              13624,
              25776,
              13455,
              3769,
              9018,
              2609,
              297,
              1665,
              21530,
              14926,
              25297,
              10701,
              27044,
              7293,
              27099,
              22617,
              2148,
              11993,
              26576,
              13061,
              10053,
              21948,
              25593,
              21515,
              14759,
              24444,
              26584,
              15667,
              4877,
              26704,
              6116,
              2741,
              15637,
              16077,
              13618,
              19962,
              10790,
              11038,
              5145,
              15043,
              23863,
              4639,
              6453,
              28949,
              15,
              19959,
              25170,
              19564,
              10799,
              1298,
              6569,
              19545,
              3289,
              22030,
              4152,
              11419,
              14977,
              14835,
              11458,
              21524,
              1357,
              20579,
              16774,
              21082,
              4194,
              29097,
              17139,
              3589,
              6446,
              23282],
             493: [12797, 18286, 2131],
             494: [15240, 6150, 13193, 14025],
             495: [23024, 17466],
             496: [22097, 9446],
             497: [15922, 25209],
             498: [27519, 25700],
             499: [10424,
              815,
              4302,
              23462,
              4179,
              24721,
              23917,
              12911,
              26866,
              3113,
              1750,
              28754,
              10928,
              19197,
              24662,
              7586,
              6561,
              2877,
              26751,
              9236,
              21750,
              28417,
              21490,
              15267,
              10147,
              1220,
              18757,
              2421,
              17966,
              23300,
              18880,
              13985,
              27495,
              7504,
              11023,
              29416,
              27848,
              16648,
              7992,
              29078,
              26519,
              27638,
              16961,
              17947,
              13265,
              11550,
              8449,
              26637,
              26263,
              27732,
              27240,
              19697,
              8170,
              19501,
              12368,
              9904,
              10061,
              14579,
              24502,
              8406,
              10731,
              15472],
             500: [23638, 4829],
             501: [1899, 11642],
             502: [25687],
             503: [5315, 19427],
             504: [7462, 23231],
             505: [4484, 25867, 28113],
             506: [22773, 4711],
             507: [8974, 1485],
             508: [13144, 25142],
             509: [16528, 9894],
             510: [23978],
             511: [18356, 14107],
             512: [341, 7619, 25842],
             513: [17483,
              28353,
              7356,
              28747,
              10560,
              18419,
              11859,
              12122,
              6094,
              10798,
              1156,
              880,
              12317,
              11937,
              21797,
              24132,
              13393,
              18836,
              22300,
              16374,
              9472,
              17445,
              26073,
              11724,
              4171,
              6288,
              28845,
              29382,
              17355,
              4834,
              16885,
              25058,
              26790,
              17023,
              4230,
              7214,
              14789,
              24649,
              26680,
              1316,
              18639,
              20385,
              14561,
              2730,
              6900,
              28062,
              14748,
              24656,
              1365,
              25467,
              14597,
              9664,
              15047,
              8486,
              19443,
              10318,
              5977,
              8630,
              27062,
              934,
              19867,
              22610,
              27705,
              6340,
              12520,
              7077,
              8197,
              17001,
              7819,
              9214,
              20935,
              6857,
              4600,
              13288,
              23696,
              20718,
              17208,
              14469,
              16098,
              6143,
              5891,
              24416,
              7787,
              9663,
              7373,
              11260,
              24246,
              21747,
              22885,
              17624,
              7682,
              17641,
              2555,
              29112,
              7900,
              3845,
              8623,
              20940,
              15091,
              24958,
              5050,
              9399,
              524,
              17752,
              3431,
              17354,
              5281,
              715,
              4109,
              11152,
              10996,
              27256,
              18608,
              19386,
              3278,
              21025,
              13051,
              23570,
              14660,
              15351,
              7749,
              23196,
              9946,
              14797,
              10076,
              29263,
              19698,
              4095,
              21534,
              3160,
              4437,
              20349,
              2809,
              15336,
              14849,
              9897,
              17094,
              285,
              3045,
              3256,
              3064,
              9205,
              23891],
             514: [26488, 15896, 11670],
             515: [751],
             516: [11920],
             517: [8755, 11098],
             518: [25188, 691],
             519: [12330,
              5367,
              845,
              27817,
              3930,
              7059,
              7038,
              27420,
              28584,
              1388],
             520: [11407, 26332],
             521: [11681, 6105],
             522: [10077,
              19757,
              14304,
              12000,
              8211,
              931,
              8546,
              16892,
              5352,
              16479,
              26577,
              4843,
              22075,
              13157,
              1098,
              24499,
              10205,
              28872,
              27258,
              18801,
              28601,
              1979,
              29597,
              12887,
              10552,
              23128,
              4336,
              3818,
              23107,
              28679,
              84,
              708,
              19424,
              28443,
              27137,
              20644,
              23527,
              11637,
              18642,
              6672,
              14963,
              6318,
              5435,
              14958,
              2679,
              26209,
              22272,
              23465,
              4406,
              15645,
              13596,
              12719,
              22162,
              6228,
              21091,
              2248,
              5116,
              15902,
              27489,
              10416,
              22522,
              9714,
              2936,
              27493,
              3036,
              13101,
              4603,
              11464,
              9323,
              10961,
              14651,
              5146,
              11424,
              16591,
              10306,
              21426,
              22634,
              20598,
              28207,
              28573,
              24294,
              5078,
              25111,
              20792,
              7257,
              26581,
              13835,
              10097,
              27329,
              272,
              10836,
              14473,
              6675,
              6957,
              27829,
              11853,
              5792,
              9755,
              15429,
              16424,
              20047,
              5521,
              5968,
              16283,
              17826,
              7498,
              5644,
              17228,
              27015,
              6808,
              1659,
              3122,
              1967,
              20993,
              29138,
              12388,
              17948,
              18037,
              4900,
              20230,
              6958,
              7371,
              274,
              25344,
              15814,
              28631,
              19381,
              14755,
              8887,
              13709,
              29330,
              9912,
              7914,
              3060,
              23467,
              6469,
              5596,
              11848,
              22281,
              28878,
              22720,
              1649,
              18244,
              3317,
              28964,
              15100,
              3412,
              6386,
              26799,
              17916,
              16902,
              9074,
              28624,
              17252,
              14545,
              19823,
              21730,
              19162,
              670,
              24045,
              18177,
              1930,
              4697,
              4663,
              8412,
              12759,
              19863,
              15247,
              20582,
              6456,
              17721],
             523: [25996, 1913],
             524: [25116, 24447],
             525: [17800, 9470],
             526: [7814, 11310],
             527: [8707],
             528: [7162],
             529: [28437, 6515, 8116],
             530: [16320, 6855, 10648],
             531: [8644, 7361],
             532: [6464, 17997, 14002, 10815, 27457, 3843, 9016, 11854],
             533: [3291, 1187, 27885, 4917],
             534: [27977, 10078],
             535: [14194],
             536: [26452,
              19353,
              19067,
              17568,
              13636,
              2566,
              9344,
              27385,
              21048,
              10028,
              28325,
              12277,
              28077,
              27249,
              3771,
              21311,
              11328,
              18026,
              11930,
              12650,
              5094],
             537: [28941, 23714],
             538: [18704,
              28786,
              18456,
              7247,
              19198,
              1549,
              20928,
              20972,
              24312,
              29467,
              22556,
              17725,
              5872,
              9957,
              5716,
              11284,
              4149,
              25810,
              3782,
              21154,
              28784,
              6067,
              16109,
              28340,
              685,
              21214,
              6787,
              5320,
              4893,
              1137,
              28874,
              20227,
              25603,
              25545,
              28301,
              725,
              28877,
              23111,
              24768,
              19513,
              2614,
              13648,
              3521,
              23931,
              26712,
              22923,
              25293,
              21554,
              13034,
              15678,
              3867,
              557,
              28570,
              9025,
              28156,
              7282,
              1716,
              19899,
              12121,
              970,
              24272,
              19006,
              4574,
              2303,
              27159,
              16699,
              4091,
              19849,
              10399,
              26599,
              26271,
              10673,
              11825,
              1811,
              3328,
              16907,
              24486,
              5254,
              9232,
              13269,
              1558,
              21798,
              23142,
              27964,
              21654,
              10897,
              28722,
              3350,
              6663,
              27351,
              3408,
              27585,
              311,
              3622,
              1486,
              19703,
              1222,
              737,
              7317,
              16820,
              23903,
              5994,
              20397,
              28478,
              25236,
              21033,
              814,
              16357,
              18700,
              19770,
              25059,
              10341,
              28225,
              25189,
              447,
              12732,
              8079,
              9485,
              17250,
              11056,
              6254,
              976,
              18924,
              5300,
              25400,
              23636,
              3566,
              9652,
              13251,
              20278,
              18806,
              10297,
              5579,
              12359,
              9715,
              17887,
              16947,
              28697,
              9166,
              5784,
              21444,
              22158,
              9443,
              28944,
              22685,
              22169,
              14230,
              21884,
              25397,
              1756,
              4723,
              1790,
              5589,
              20881,
              20054,
              13023,
              18464,
              20538,
              7372,
              16423,
              8994,
              9362,
              7492,
              16416,
              3458,
              14146,
              23973,
              6622,
              13093,
              6970,
              1123,
              2790],
             539: [1841, 24293],
             540: [8146, 9679],
             541: [5562, 11114, 94, 4032, 28191, 4, 12697, 8254, 20822],
             542: [17749,
              10888,
              8797,
              21580,
              11355,
              1736,
              11344,
              15949,
              19960,
              3971,
              20153,
              5293,
              1794,
              17863,
              9671,
              16732,
              13758,
              25554,
              1735,
              4533,
              20952,
              11649,
              28576,
              25040,
              24523,
              14610,
              14047,
              1991,
              19337,
              6780,
              6200,
              22375,
              20555,
              3739,
              26696,
              22256,
              7313,
              13286,
              22918,
              9272,
              558,
              21584,
              18143,
              10533,
              16715,
              21186,
              14124,
              23985,
              27195,
              9361,
              8425,
              29255,
              20306,
              7246,
              11058,
              2965,
              167,
              8149,
              25586,
              24600,
              11349,
              1106,
              27923,
              17778,
              23331,
              26538,
              22559,
              22704,
              29554,
              23461,
              20698,
              29257,
              19417,
              12680,
              8087,
              22248,
              254,
              15279,
              25567,
              17108,
              19044,
              16823,
              6041,
              15053,
              24387,
              1819,
              28833,
              12010,
              14510,
              26469,
              2787,
              27131,
              18538,
              25974,
              27568,
              7486,
              8031,
              15846,
              9120,
              4586,
              10408,
              16691,
              7774,
              10582,
              22824,
              16187,
              19237,
              21326,
              19625,
              24476,
              2227,
              21121,
              10041,
              10125,
              19747,
              13889,
              16308,
              27539,
              25258,
              19772,
              15693,
              28696,
              16392,
              19485,
              21949,
              19137,
              16238,
              10645,
              22228,
              7436,
              17049,
              6853,
              20092,
              10023,
              22985,
              15505,
              26926,
              19550,
              29217,
              6038,
              24108,
              26104,
              8895,
              4006,
              19986,
              20753,
              6695,
              2455,
              11247,
              7497,
              11763,
              8129,
              14464,
              11358,
              16781,
              13060,
              20790,
              22340,
              1313,
              23060,
              20748,
              22803,
              12429,
              29274,
              4828,
              18673,
              5544,
              12626,
              20746,
              21096,
              9571,
              11470,
              13344,
              4575,
              17083,
              11952,
              15561,
              21146,
              26974,
              10959,
              21227,
              4987,
              22094,
              8692,
              9333,
              3915,
              9135,
              9985,
              1355,
              28608,
              25663,
              21822,
              8187,
              23472,
              24773,
              1817,
              21338,
              20021,
              24167,
              4805,
              5674,
              11898,
              9314,
              19940,
              25373,
              3873,
              25347,
              9248,
              6293,
              14302,
              12282,
              14552,
              6481,
              6289,
              4610,
              5949,
              16199,
              3939,
              10264,
              24739,
              25594,
              7409,
              6365,
              5806,
              13024,
              23402,
              28519,
              10188,
              3275,
              1808,
              9941,
              8927,
              4290,
              7550,
              18862,
              25023,
              28063,
              5283,
              15966,
              5092,
              8563,
              28055,
              8972,
              25710,
              22083,
              28565,
              8621,
              24401,
              21249,
              16621,
              10776,
              7448,
              4592,
              27516,
              10145,
              25440,
              21711,
              25674,
              7011,
              9572,
              23833,
              23362,
              298,
              22734,
              3320,
              7777,
              24489,
              28590,
              19738,
              17836,
              28152,
              17174,
              29465,
              662,
              12169,
              2910,
              6687,
              11877,
              25963,
              22609,
              6988,
              14875,
              27799,
              9789,
              18886,
              14710,
              23354,
              28322,
              1386,
              18766,
              901,
              2457,
              9389,
              10169,
              928,
              19694,
              17461,
              22653,
              1882,
              5739,
              18082,
              9063,
              28547,
              9409,
              5412,
              25940,
              15608,
              21966,
              25575,
              12694,
              6934,
              10500,
              3829,
              12952,
              82,
              11317,
              15968,
              11452,
              19455,
              27260,
              2159,
              21964,
              24181,
              4605,
              21856,
              25653,
              579,
              19856,
              2648,
              3666,
              19779,
              17213,
              18528,
              14771,
              129,
              4365,
              10932,
              18724,
              27690,
              9306,
              21410,
              8589,
              28758,
              12954,
              20178,
              18135,
              18951,
              29178,
              9128,
              1294,
              13924,
              28433,
              10135,
              21221,
              27071,
              11448,
              6330,
              18307,
              27022,
              14959,
              12085,
              2273,
              16259,
              452,
              10447,
              5527,
              11393,
              22896,
              12053,
              25180,
              16464,
              27693,
              10081,
              27128,
              13808,
              1655,
              13811,
              23391,
              18310,
              24372,
              11178,
              18563,
              15726,
              28180,
              14602,
              23645,
              19957,
              27918,
              12811,
              24999,
              23132,
              24326,
              7884,
              5057,
              22615,
              11796,
              13872,
              4553,
              8973,
              12259],
             543: [3905, 19768],
             544: [18525],
             545: [24155],
             546: [14547, 22290, 15838],
             547: [18982],
             548: [17479],
             549: [20802,
              140,
              968,
              21011,
              2215,
              16160,
              1598,
              6007,
              28727,
              21389,
              22550,
              25213,
              21717,
              25068,
              26580,
              17750,
              16346,
              9540,
              27606,
              6316,
              360,
              26372,
              14381,
              27784,
              18480,
              898,
              21764,
              9483,
              14121,
              14889,
              13950,
              16118,
              27851,
              8555,
              6031,
              12535,
              346,
              29580,
              9820,
              4106,
              1954,
              6828,
              14584,
              28498,
              5303,
              7578,
              21666,
              20040,
              12572,
              15956,
              14737,
              7982,
              16617,
              23214,
              2606,
              18086,
              27803,
              3600,
              10203,
              2589,
              28329,
              29572,
              5988,
              5475,
              4891,
              23146,
              28924,
              26954,
              12057,
              22647,
              14980,
              23830,
              13579,
              17016,
              27052,
              19652,
              1540,
              10333,
              294,
              1577,
              5721,
              22544,
              13980,
              21034,
              5242,
              13406,
              23320,
              20342,
              6235,
              23321,
              7269,
              12251,
              12149,
              11408,
              14003,
              978,
              24760,
              15296,
              768,
              12597,
              11847,
              14751,
              22665,
              26019,
              13865,
              4662,
              4165,
              22134,
              7281,
              4837,
              18407,
              3290,
              3514,
              8185,
              7185,
              24422,
              19897,
              26596,
              7349,
              16625,
              24495,
              17621,
              4862,
              6012,
              7204,
              1498,
              20102,
              9964,
              13369,
              8265,
              5970,
              11069,
              8512,
              1849,
              17147,
              14280,
              23011,
              13643,
              26123,
              25826,
              6630,
              13234,
              5810,
              7816,
              23697,
              27085,
              18887,
              17928,
              29387,
              8766,
              14921,
              27090,
              11256,
              19271,
              10067,
              17557,
              29505,
              2860,
              2978,
              12078,
              24644,
              29160,
              5617,
              20868,
              6623,
              7697,
              12681,
              12250,
              12859,
              10121,
              15313,
              28081,
              4383,
              20676,
              24951,
              24613,
              23224,
              9242,
              10869,
              6556,
              16015,
              17594,
              8379,
              24745,
              20354,
              11099,
              14908,
              10969,
              14096,
              24217,
              24597,
              8023,
              6638,
              23732,
              2261,
              471,
              24281,
              14818,
              10618,
              5738,
              22503,
              2897,
              644,
              9585,
              25370,
              5063,
              25697,
              11645,
              2808,
              4929,
              28314,
              7717,
              28720,
              25022,
              24801,
              6069,
              8676,
              21142,
              18625,
              14813,
              20421,
              11425,
              19017,
              23537,
              4905,
              13886,
              26412,
              24621,
              28219,
              8147,
              14732,
              3924,
              21125,
              5410,
              17453,
              5263,
              25310,
              3985,
              27252,
              13877,
              19598,
              11459,
              24759,
              8374,
              20072,
              23684,
              14776,
              13076,
              28932,
              27416,
              21712,
              16312,
              26572,
              13850,
              29332,
              23173,
              2355,
              21010,
              5062,
              18531,
              14536,
              5800,
              17194,
              2955,
              25902,
              6055,
              25497,
              12345,
              19116,
              21551,
              15108,
              7667,
              12713,
              9474,
              3176,
              28041,
              8651,
              17246,
              22488,
              15305,
              4240,
              20869,
              11655,
              26362,
              9998,
              11741,
              17995,
              14151,
              16193,
              25907,
              23542,
              5282,
              4288,
              26090,
              27676,
              15946,
              13633,
              19227,
              17818,
              11692,
              11864,
              18690,
              7848,
              20303,
              17685,
              793,
              21079,
              17042,
              21411,
              24366,
              13561,
              16186,
              22273,
              8708,
              18019,
              13726,
              26285,
              25472,
              5051,
              14069,
              6797,
              14263,
              23457,
              18936,
              15664,
              10083,
              25933,
              20787,
              11594,
              21464,
              17618,
              665,
              14840,
              3577,
              7805,
              25045,
              24490,
              17803,
              9302,
              28738,
              24224,
              22501,
              18481,
              4840,
              20915,
              18074,
              13068,
              24039,
              8099,
              26528,
              14897,
              17244,
              14967,
              18953,
              2667,
              21009,
              2265,
              20018,
              27719,
              7545,
              27175,
              16965,
              13252,
              9869,
              18674,
              7690,
              7116,
              21980,
              3057,
              19228,
              11748,
              29054,
              27470,
              17330,
              29091,
              26981,
              6265,
              13915,
              26065,
              27776,
              3563,
              8006,
              22594,
              6349,
              21942,
              11603,
              27350,
              68,
              23520,
              8258,
              1502,
              25848,
              9117,
              15997,
              6025,
              5639,
              25720,
              21090,
              6647,
              21570,
              3650,
              2998,
              11901,
              11065,
              21509,
              26993,
              10360,
              29339,
              2187,
              22231,
              4578,
              24148,
              22177,
              21364,
              22911,
              11003,
              22069,
              28670,
              4496,
              8902,
              19800,
              27045,
              8137,
              24368,
              19401,
              21240,
              3175,
              12455,
              24140,
              3342,
              13410,
              6501,
              25243,
              9733,
              6093,
              21688,
              10138,
              11788,
              2943,
              29478,
              25056,
              28699,
              13063,
              29039,
              15526,
              11975,
              23120,
              13903,
              17284,
              6764,
              27442,
              12698,
              11395,
              1728,
              25601,
              28946,
              15703,
              5679,
              22314,
              21290,
              8815,
              23439,
              29309,
              22125,
              14161,
              19022,
              13900,
              2193,
              15524,
              25412,
              18664,
              4742,
              27630,
              5797,
              27909,
              12367,
              19012,
              22379,
              13925,
              7725,
              20936,
              5221,
              17293,
              16260,
              26,
              5156,
              11553,
              28194,
              18337,
              735,
              17525,
              20909,
              18338,
              24696,
              24666,
              23523,
              21370,
              16726,
              21857,
              1141,
              8126,
              942,
              19150,
              17116,
              11435,
              21715,
              21917,
              25266,
              7748,
              10793,
              13951,
              266,
              10855,
              3472,
              12643,
              8813,
              11215,
              17344,
              3307,
              24850,
              5859,
              25677,
              17787,
              18754,
              10380,
              12660,
              26693,
              28860,
              11002,
              21634,
              19324,
              11404,
              20863,
              6222,
              26786,
              2650,
              20730,
              18730,
              3965,
              6618,
              5297,
              3841,
              23812],
             550: [15676, 22708, 28775],
             551: [22751, 26150, 12821, 26631],
             552: [8790, 10833, 23379],
             553: [26493, 5004],
             554: [4985, 19144],
             555: [9692, 1463],
             556: [2803],
             557: [13662, 18745],
             558: [26522, 2431],
             559: [24833,
              4934,
              27682,
              5809,
              22144,
              9449,
              1207,
              2940,
              21610,
              23002,
              28850,
              26444,
              27186,
              5508,
              7835,
              5881,
              15208,
              25790,
              326,
              25485,
              15374,
              17033,
              9153,
              7079,
              27793,
              22323,
              7662,
              14860,
              24919,
              28296,
              20663,
              12423,
              17361,
              20002,
              21858,
              1369,
              1057,
              19706,
              29335,
              14787,
              21675,
              15985,
              26885,
              15052,
              8867,
              14333,
              3530,
              20703,
              2233,
              60,
              2007,
              17895,
              4859,
              9307,
              22054,
              11651,
              12638,
              16886,
              6811,
              25865,
              15385,
              12062,
              12328,
              7237,
              4515,
              4160,
              1403,
              27006,
              27894,
              1943,
              26718,
              12066,
              6773,
              19650,
              17517,
              23902,
              5330,
              13574,
              20772,
              1624,
              2096,
              2893,
              1042,
              81,
              1743,
              13598,
              10043,
              17229,
              21665,
              8656,
              16111,
              14504,
              25019,
              27253,
              9878,
              15566,
              13671,
              23441,
              20504,
              23792,
              9513,
              13444,
              23034,
              12366,
              22113,
              2199,
              19835,
              11582,
              14838,
              10331,
              6772,
              21790,
              7390,
              2343,
              23192,
              18546,
              17140,
              3957,
              7423,
              16666,
              24559,
              9562,
              28050,
              5008,
              72,
              23252,
              23506,
              2127,
              2115,
              14634,
              15079,
              248,
              15092,
              11950,
              6052,
              10745,
              19168,
              27919,
              7974,
              19920,
              26945,
              6576,
              6337,
              25270,
              11447,
              1188,
              10999,
              25578,
              19622,
              19346,
              14557,
              1171,
              21105,
              1179,
              5622,
              13584,
              7195,
              16730,
              12116,
              1670,
              10720,
              4054,
              20265,
              4089,
              11049,
              28053,
              7751,
              2517,
              10597,
              20318,
              8518,
              29076,
              27545,
              21013,
              8799,
              23050,
              21725,
              21733,
              4099,
              20455,
              11589,
              26804,
              2547,
              17223,
              27847,
              11253,
              27209,
              10578,
              22056,
              20130,
              19321,
              6869,
              11595,
              29313,
              388,
              27778,
              17075,
              24962,
              6498,
              16590,
              5046,
              8827,
              10224,
              24835,
              20499,
              21919,
              22729,
              5035,
              9680,
              2146,
              27558,
              26004,
              10494,
              16957,
              9707,
              810,
              22209,
              17276,
              4400,
              17770,
              9906,
              2763,
              4424,
              26579,
              27723,
              10110,
              2485,
              18024,
              28227,
              16406,
              10282,
              1184,
              23121,
              29426,
              26535,
              430,
              25034,
              25708,
              10171,
              28164,
              18116,
              91,
              14268,
              28282,
              29183,
              13879,
              29035,
              9433,
              27748,
              2885,
              4429,
              12044,
              12083,
              3814,
              22736,
              9442,
              26781,
              29171,
              554,
              1048,
              24363,
              18202,
              10709,
              28477,
              19187,
              7477,
              11576,
              638,
              24660,
              3151,
              5364,
              1786,
              12932,
              20896,
              10975,
              17781,
              29282,
              20189,
              19154,
              26824,
              6497,
              12860,
              10704,
              22370,
              23057,
              5516,
              14790,
              18610,
              3836,
              3052,
              938,
              11823,
              2826,
              28324,
              4083,
              19981,
              12786,
              20109,
              13138,
              764,
              18103,
              18646,
              27264,
              6441,
              12284,
              4641,
              27095,
              18968,
              6760,
              26107,
              11183,
              24076,
              17498,
              10020,
              17401,
              5575,
              5341,
              653,
              20612,
              19651,
              26602,
              15822,
              15350,
              13521,
              24177,
              11066,
              1302,
              23262,
              15102,
              17696,
              12756,
              3856,
              16429,
              28900,
              4078,
              1753,
              4759,
              9432,
              19252,
              18964,
              7362,
              18422,
              8015,
              28562,
              13355,
              27436,
              718,
              18683,
              24705,
              27543,
              17058,
              11323,
              7429,
              13453,
              22384,
              11739,
              17451,
              15258,
              7999,
              26489,
              13307,
              29083,
              425,
              23499,
              11054,
              27061,
              16959,
              624,
              10218,
              9125,
              10149,
              14378,
              6297,
              13881,
              1533,
              28112,
              27098,
              17541],
             560: [12943],
             561: [23387],
             562: [4299, 29290, 18670],
             563: [27047],
             564: [24056],
             565: [20821, 13603],
             566: [3297, 23433],
             567: [4218, 24127],
             568: [8976, 7153, 17352],
             569: [21558, 5144, 2961, 19766],
             570: [28825, 27672, 5548],
             571: [28307, 5000],
             572: [22785],
             573: [433, 10048],
             574: [22782],
             575: [22967, 28395],
             576: [6166, 20580],
             577: [18616],
             578: [5219, 23729],
             579: [13258, 24091],
             580: [24862,
              21670,
              27779,
              2051,
              14422,
              22664,
              6387,
              25731,
              18235,
              1330,
              9587,
              21116,
              6345,
              23695,
              26817,
              11439,
              2278,
              1267,
              22973,
              11182,
              3123,
              15188,
              1935,
              13187,
              15115,
              4848,
              10059,
              23063,
              24939,
              5207,
              10955,
              14174,
              11117,
              8009,
              24497,
              22283,
              175,
              20435,
              26445,
              16536,
              19811,
              24356,
              28501,
              17999,
              27512,
              1698,
              13162],
             581: [16330, 19930],
             582: [25134, 24487],
             583: [23071],
             584: [16405, 28936, 28943],
             585: [14999],
             586: [20550, 8971],
             587: [3794, 29060],
             588: [3449, 25676],
             589: [9491, 10917],
             590: [5904, 5884],
             591: [27927],
             592: [26456, 22350],
             593: [26045, 21277],
             594: [22807,
              6815,
              16412,
              16547,
              13575,
              19300,
              14585,
              7221,
              443,
              27660,
              11685,
              1570,
              16355,
              21721,
              12842,
              7588,
              7460,
              24872,
              27241,
              12592,
              24855,
              27359,
              9550,
              11365,
              9852,
              9599,
              14764],
             595: [4319],
             596: [8835],
             597: [738, 7607],
             598: [20081,
              1867,
              25177,
              18795,
              11590,
              9896,
              11386,
              15461,
              10663,
              9868,
              17874,
              28540,
              10914,
              18922,
              20334,
              27093,
              22214,
              18641,
              14911,
              23742,
              18291,
              29146,
              16988,
              1371,
              13197,
              9264,
              13710,
              18381,
              5086,
              12590,
              12831,
              1012,
              22315,
              8759],
             599: [15563,
              11237,
              2365,
              10025,
              11254,
              8773,
              28007,
              26570,
              8897,
              20378,
              9187,
              8933,
              20466,
              19199,
              8578,
              4151,
              23958,
              7163,
              27478,
              3812,
              19275,
              327,
              22705,
              23979,
              9503,
              2590,
              22308,
              22649,
              1886,
              15104,
              18561,
              8269,
              6017,
              27790,
              4431,
              28933,
              22438,
              3955,
              19834,
              20065,
              5106,
              7709,
              1747,
              12565,
              6686,
              3382,
              4818,
              9417,
              14006,
              7573,
              24970,
              24847,
              9948,
              27336,
              16763,
              14861,
              14769,
              15886,
              12516,
              967,
              20925,
              22838,
              25517,
              6989,
              24560,
              21855,
              24536,
              5305,
              11021,
              8547,
              25273,
              21557,
              25024,
              18124,
              22946,
              8985,
              16341,
              3209,
              11507,
              16236,
              20489,
              23770,
              12228,
              7952,
              24192,
              21525,
              24388,
              13081,
              21646,
              23515,
              22867,
              8504,
              16153,
              19607,
              26369,
              13923,
              7041,
              14443,
              761,
              5007,
              13516,
              25778,
              4866,
              15823,
              20234,
              4000,
              16562,
              29561,
              14540,
              11631,
              9022,
              22114,
              22671,
              13511,
              9329,
              29074,
              9430,
              25021,
              5494,
              18933,
              14468,
              7213,
              12619,
              12573,
              28640,
              15324,
              27324,
              16777,
              3196,
              26050,
              19133,
              25032],
             600: [11135, 20815, 20403],
             601: [16137,
              27953,
              20622,
              28258,
              3354,
              27798,
              22877,
              28278,
              22581,
              22204,
              1103,
              19504,
              26587,
              15310,
              3874,
              8723,
              28061,
              15595,
              23420,
              4305,
              8532,
              7433,
              4344,
              1837,
              10168,
              15431,
              8560,
              6751,
              23310,
              2545,
              13730,
              13737,
              895,
              27896,
              12280,
              4224,
              12041,
              13719,
              790,
              4474,
              17193,
              21705,
              23592,
              3294,
              12299,
              25204,
              6691,
              3121,
              23947,
              8562,
              10738,
              3070,
              12310,
              26948,
              4739,
              18648,
              13335,
              10831,
              15961,
              21827,
              13959,
              27327,
              2641,
              20203,
              8715,
              17186,
              20788,
              23725,
              20257,
              19010,
              8728,
              12390,
              18973,
              29598,
              27852,
              6140,
              13497,
              6788,
              28351,
              28136,
              16319,
              29270,
              13993,
              8471,
              87,
              4226,
              4853,
              4980,
              25165,
              26322,
              8734,
              18428,
              10477,
              26919,
              3860,
              14766,
              4698,
              24357,
              7106,
              23148,
              29510,
              7847,
              5513,
              6754,
              10722,
              24120,
              3251,
              20183,
              20202,
              19894,
              109,
              22373,
              24114,
              7482,
              19256,
              27376,
              17011,
              7738,
              22891,
              26168,
              22564,
              14291,
              19152,
              27500,
              13377,
              13426,
              985,
              7239,
              17846,
              10849,
              2205,
              21372],
             602: [16602, 12605, 3167],
             603: [28304,
              2069,
              23779,
              26201,
              857,
              16734,
              15059,
              4494,
              26119,
              26358,
              8422,
              20705,
              18423],
             604: [28363, 22416],
             605: [7168, 26242],
             606: [7142, 29590, 7485],
             607: [871],
             608: [2511, 12844],
             609: [15003,
              18217,
              14311,
              7796,
              5425,
              22881,
              4256,
              28221,
              24912,
              6538,
              13467],
             610: [2350, 7488],
             611: [15318],
             612: [11222, 15974],
             613: [18550, 21485, 2859, 29227, 15480, 28037],
             614: [12103, 14965],
             615: [10194, 21956],
             616: [12758, 1523],
             617: [2681, 8552],
             618: [16047, 5265],
             619: [19789, 16662, 12017],
             620: [1958, 11566, 28557],
             621: [3414, 29317],
             622: [15917, 26454],
             623: [18193],
             624: [19041,
              18316,
              18391,
              7587,
              15402,
              18006,
              25125,
              11106,
              20195],
             625: [22346],
             626: [13102, 11883],
             627: [27440, 20839, 1998, 28374, 8664],
             628: [16123, 26360, 23424, 10253, 2155, 14041, 19546],
             629: [25765, 20305],
             630: [867, 17775],
             631: [7054],
             632: [8670, 18952],
             633: [2769],
             634: [24467],
             635: [18108, 20794],
             636: [18849, 11151, 146],
             637: [6540],
             638: [29184, 13814],
             639: [6662, 536],
             640: [16767, 25113, 8884],
             641: [25984,
              25976,
              12418,
              74,
              15500,
              4555,
              14117,
              19795,
              13995,
              26997,
              173,
              15717,
              15169,
              19753,
              29544,
              15265,
              29573,
              11560,
              28255,
              602,
              1789,
              14064,
              15260,
              20430,
              20950,
              28412,
              754,
              20268,
              5103,
              22822,
              28358,
              20461,
              9463,
              7870,
              525,
              3222,
              726,
              7456,
              8538,
              24577,
              97,
              8607,
              20100,
              18568,
              26338,
              7979,
              16147,
              18477,
              8166,
              22963,
              21127,
              27384],
             642: [9952],
             643: [4296, 7288],
             644: [15294, 6086, 24247],
             645: [17059, 2916, 1172],
             646: [24941, 10388],
             647: [25014, 16042, 27184, 2304, 18733],
             648: [20534, 5770],
             649: [6979, 25100],
             650: [7660, 13860, 12411, 17222],
             651: [4215,
              4637,
              27110,
              28240,
              2320,
              23406,
              8771,
              23054,
              7881,
              7137,
              5492,
              9956,
              18348,
              6225,
              16286,
              13098,
              5343,
              14218,
              10462,
              9438,
              6635,
              20452,
              29422,
              26771,
              4561,
              25346,
              29225,
              28492,
              15759,
              16853,
              7324,
              16210,
              15463,
              19583,
              21206,
              2758,
              984,
              17817,
              3870,
              26764,
              20395,
              25094,
              28818,
              27659,
              3998,
              24105,
              1623,
              22476,
              29141,
              5119,
              28974,
              7608,
              24530,
              8157,
              1063,
              18192,
              11822,
              6519,
              21997,
              16627,
              15980,
              16327,
              14520,
              4815,
              18410,
              26259,
              5612,
              18364,
              29365,
              25090,
              17283,
              8830,
              16925,
              1898,
              8879,
              3606,
              9713,
              22648,
              12063,
              13997,
              28558,
              22549,
              23077,
              12006,
              27438,
              539,
              29195,
              25249,
              13797,
              24271,
              27735,
              24813,
              3054,
              12095,
              21470,
              19239,
              1894,
              25332,
              10165,
              1148,
              24134,
              29164,
              4051,
              26678,
              23605,
              26325,
              8999,
              16397,
              1672,
              19084,
              12167,
              8854,
              2404,
              5963,
              10292,
              5401,
              5692,
              16879,
              16128,
              11109,
              11072,
              15224,
              21373,
              20829,
              3157,
              11004,
              3774,
              9114,
              1696,
              14590,
              377,
              17158,
              8483,
              10153,
              10806,
              27082,
              1738,
              2364,
              14040,
              23774,
              25354,
              13946,
              19488,
              2152,
              14265,
              16169,
              6115,
              11321,
              4023,
              2720,
              9468,
              25947,
              17576,
              5757,
              20702,
              24510,
              26833,
              25185,
              24215,
              271,
              7309,
              10822,
              21787,
              4773,
              13151,
              27902,
              23755,
              2347,
              10441,
              11904,
              11235,
              27750,
              21734,
              25143,
              5363,
              6407,
              12435,
              22548,
              15232,
              12827,
              11767,
              27841,
              25598,
              28560,
              20469,
              27985,
              3863,
              24176,
              21875,
              6026,
              24166,
              20462,
              8169,
              2009,
              25396,
              16246,
              11060,
              28102,
              4416,
              13537,
              29418,
              21028,
              23610,
              6679,
              897,
              27812,
              14762,
              9127,
              26640,
              18221,
              25448,
              20372,
              16269,
              1016,
              22220,
              18459,
              23226,
              11820,
              8674,
              20545,
              18534,
              2270,
              21944,
              16427,
              1602,
              9171,
              5980,
              11331,
              9566,
              27105,
              26969,
              10564,
              7569,
              19617,
              5382,
              22018,
              6946,
              11890,
              20968,
              28717,
              3236,
              9048,
              991,
              3553,
              3110,
              27807,
              16956,
              17643,
              5670,
              7551,
              21171,
              9382,
              17112,
              29442,
              22319,
              6836,
              2858,
              10055,
              28819,
              28659,
              7463,
              18658,
              2477,
              12393,
              29341,
              8704,
              3587,
              15189,
              15149,
              19136,
              14996,
              119,
              8888,
              22750,
              8003,
              16159,
              26791,
              17694,
              21971,
              23843,
              28962,
              8957,
              25063,
              796,
              28871,
              25764,
              3981,
              8082,
              17982,
              5618,
              20427,
              24046,
              16874,
              2665,
              13824,
              17476,
              15944,
              11699,
              12852,
              373,
              17824,
              6444,
              12068,
              19047,
              22352,
              5180,
              26092,
              3842,
              11894,
              1210,
              26375,
              11209,
              1453,
              6590,
              23260,
              18652,
              6089,
              20270,
              1412,
              21979,
              18005,
              29361,
              17988,
              15134,
              24446,
              26856,
              1815,
              4873,
              10479,
              10327,
              22943,
              3063,
              28618,
              15223,
              19163,
              27517,
              5084,
              25863,
              1079,
              8041,
              6390,
              6467,
              16780,
              17976,
              29203,
              5874,
              19473,
              24141,
              10451,
              19708,
              25477,
              827,
              14466,
              28075,
              13110,
              2466,
              23488,
              15611,
              18532,
              21722,
              2467,
              19245,
              14820,
              12968,
              20766,
              5576,
              1472,
              1904,
              24969,
              16051,
              22568,
              16752,
              22774,
              1326,
              25073,
              26848,
              24208,
              9383,
              10122,
              16736,
              9541,
              17388,
              17318,
              10943,
              6336,
              7404,
              13266,
              17313,
              4088,
              3032,
              9466,
              19608,
              7422,
              15943,
              6640,
              7862,
              11562,
              19175,
              21056,
              15126,
              23852,
              2972,
              22254,
              20017,
              8389,
              13317,
              28243,
              1201,
              17841,
              1136,
              24308,
              29520,
              12075,
              13627,
              28012,
              38,
              10113,
              11711,
              19555,
              6812,
              14436,
              16519,
              23859,
              3025,
              18904,
              19909,
              17353,
              28776,
              9064,
              17848,
              24822,
              19574,
              13056,
              7491,
              7896,
              615,
              3,
              8236,
              4333,
              19313,
              26257,
              9434,
              14288,
              12015,
              29300,
              5434,
              1451,
              14073,
              8896,
              1980,
              7939,
              6778,
              20615,
              29037,
              15888,
              5369,
              10958,
              9511,
              14639,
              3641,
              22942,
              23344,
              5661,
              16845,
              3199,
              2472,
              26985,
              8842,
              11291,
              26700,
              13225,
              654,
              22029,
              13006,
              24692,
              13847,
              6075,
              10489,
              19461,
              14331,
              18854,
              5609,
              17638,
              26855,
              18822,
              18321,
              10242,
              4649,
              11278,
              19662,
              28792,
              23264,
              16133,
              22135,
              1691,
              27386,
              12553,
              18669,
              6230,
              17993,
              6043],
             652: [7600],
             653: [9588, 23612],
             654: [468, 5017],
             655: [18057, 18041, 27103],
             656: [11427, 2975],
             657: [11139, 16622],
             658: [10136, 17991],
             659: [14832, 10154],
             660: [2056, 21169, 24443, 16917, 21229, 27374, 11511, 28518],
             661: [16234],
             662: [1706, 10882, 10173, 8837],
             663: [6692, 24557],
             664: [9603, 9560, 10920, 3366],
             665: [1532, 22696],
             666: [6249, 29363],
             667: [13717, 18655],
             668: [22661, 12016],
             669: [4414, 6124],
             670: [23314, 16208, 23944, 24880],
             671: [1792],
             672: [13434,
              19826,
              20559,
              16421,
              14157,
              19429,
              16379,
              4963,
              29163,
              6364,
              14935,
              24282,
              19147,
              11304,
              14349,
              29384,
              29236,
              20408,
              12014,
              23625,
              15867,
              8758,
              2646,
              28145,
              21385,
              24193,
              5600,
              5216,
              8819,
              20941,
              2779,
              18089,
              4382,
              13677,
              12320,
              4791,
              22861,
              22024,
              13592,
              14181,
              28467,
              12378,
              5038,
              15735,
              12993,
              22666,
              3804,
              29238,
              23110,
              27236,
              25031,
              25580,
              8511,
              11129,
              22800,
              5049,
              17955,
              12677,
              26300,
              2866,
              13320,
              12601,
              26111,
              20520,
              8586,
              28235,
              21739,
              14289,
              19681,
              19619,
              2799,
              748,
              25368,
              10148,
              16723,
              501,
              11889,
              2597,
              22668,
              9402,
              18394,
              812,
              24983,
              25295,
              8814,
              29045,
              19724,
              17073,
              28035,
              12112,
              3562,
              25589,
              14065,
              10206,
              969,
              13091,
              2334,
              27322,
              21211,
              13468,
              20090,
              1573,
              21946,
              24796,
              15747,
              6941,
              17740,
              227,
              10763],
             673: [5829, 16858],
             674: [15684],
             675: [1370,
              13532,
              13469,
              14900,
              12,
              5959,
              9962,
              22821,
              15041,
              11046,
              11034,
              2406,
              11122],
             676: [3098, 28149, 19845, 20634],
             677: [18171, 22740],
             678: [14598, 12625],
             679: [12848,
              9159,
              21018,
              288,
              16581,
              23135,
              3677,
              13283,
              11096,
              27888,
              2257,
              10134,
              7199,
              7616,
              16351,
              7018,
              24283,
              14243,
              29397,
              18522,
              15971,
              16085,
              11782,
              8335,
              15340,
              24048,
              6291,
              4229,
              29194,
              8853,
              19503,
              29298,
              1438,
              20777,
              6620,
              16567,
              4490,
              28183,
              1341,
              723,
              6817,
              7755,
              3962,
              1944,
              7067,
              11999,
              23385,
              20879,
              23705,
              1122,
              10473,
              28630,
              1873,
              28457,
              28765,
              28137,
              19859,
              27587,
              25732,
              23666,
              13948,
              22070,
              7837,
              8455,
              2070,
              2476,
              10157,
              18916,
              23468,
              3550,
              7345,
              2226,
              11970,
              14080,
              17837,
              13525,
              24358,
              2349,
              1304,
              4131,
              23178,
              14564,
              21398,
              7624,
              28144,
              27233,
              12327,
              12830,
              13485,
              8200,
              23318,
              25115,
              22936,
              19356,
              13371,
              5592,
              26874,
              24730,
              28097,
              17949,
              15877,
              17282,
              16876,
              4384,
              14780,
              15179,
              21998,
              14631,
              21220,
              2341,
              6822,
              1718,
              24506,
              29602,
              26909,
              14238,
              28895,
              19159,
              17659,
              376,
              28597,
              14214,
              21161,
              9636,
              11382,
              17774,
              24928,
              413,
              16230,
              23936,
              7071,
              24264,
              444,
              8709,
              4879,
              28338,
              5484,
              8310,
              18687,
              5695,
              13560,
              6331,
              12004,
              26212,
              22991,
              23246,
              8826,
              23236,
              22756,
              23215,
              2296,
              22730,
              16605,
              19189,
              370,
              6193,
              22623,
              17332,
              25519,
              11884,
              22294,
              750,
              9445,
              1071,
              7803,
              13462,
              5117,
              2461,
              22831,
              15282,
              12129,
              11423,
              21496,
              17727,
              25599,
              1560,
              21067,
              22986,
              22208,
              11133,
              27001,
              17504,
              28766,
              13009,
              27013,
              23741,
              11341,
              28652,
              17410,
              5133,
              9312,
              12735,
              26491,
              10962,
              21481,
              24980,
              4507,
              9781,
              24239,
              12325,
              9231,
              27435,
              26952,
              3242,
              1633,
              21059,
              3456,
              18957,
              14855,
              234,
              14938,
              4445,
              18443,
              14345,
              25685,
              5505,
              18408,
              13742,
              9204,
              23920,
              1508,
              6401,
              21093,
              16955,
              3339,
              17292,
              14622,
              27706,
              18122,
              27518,
              13976,
              19941,
              1039,
              17567,
              19370,
              7689,
              11672,
              21109,
              3349,
              14645,
              27334,
              22464,
              5048,
              9476,
              9563,
              25251,
              4034,
              13429,
              17601,
              23535,
              28853,
              4328,
              26770,
              26230,
              14665,
              4957,
              25853],
             680: [29410, 26825],
             681: [12519, 10762],
             682: [22772,
              6915,
              242,
              777,
              589,
              10195,
              10782,
              6177,
              29588,
              20884,
              24841,
              5638,
              2567,
              10895,
              22875,
              24173,
              19792,
              11798,
              13442,
              27358,
              5756,
              10267,
              6863,
              8171,
              28610,
              26391,
              22693,
              10609,
              19557,
              28238,
              26549,
              1065,
              11727,
              14448,
              1686,
              18508,
              28168,
              15503,
              1763,
              3252,
              1650,
              20136,
              21660,
              614,
              20911,
              28157,
              4356,
              1919,
              25518,
              14199,
              8519,
              12029,
              2655,
              16891,
              844,
              19883,
              16271,
              5023,
              21810,
              10022,
              15370,
              5577,
              19763,
              2210,
              24538,
              8873,
              13331,
              2201,
              13905,
              9683,
              20620,
              11168,
              16253,
              28908,
              19138,
              15301,
              3716,
              22288,
              12073,
              21890,
              1500,
              16180,
              15911,
              29563,
              12779,
              14053,
              12043,
              4138,
              24222,
              4847,
              3877,
              4451,
              28017,
              1643,
              8991,
              13235,
              4378,
              13432,
              28078,
              4719,
              28915,
              5699,
              414,
              25329,
              16157,
              27033,
              26132,
              22657,
              17701,
              3190,
              14362,
              13510,
              24804,
              26984,
              5318,
              6947,
              9879,
              17142,
              3710,
              5209,
              3397,
              6152,
              15683,
              6475,
              828,
              5585,
              1260,
              23690,
              8681,
              18594,
              26030,
              15276,
              4707,
              23981,
              8216,
              17167,
              5555,
              3097,
              24520,
              6511,
              7721,
              13226,
              28241,
              14008,
              13417,
              18319,
              5771,
              13507,
              24943,
              14712,
              7412,
              21882,
              1411,
              25894,
              20818,
              18429,
              6368,
              3591,
              15295,
              1393,
              22232,
              1568,
              28805,
              21803,
              22403,
              7323,
              18543,
              24689,
              25992,
              24725,
              22919,
              26422,
              22776,
              12030,
              3044,
              18267,
              6080,
              19312,
              12159,
              17859,
              23839,
              29253,
              10639,
              13027,
              24668,
              5931,
              19778,
              14845,
              15216,
              23104,
              2138,
              12916,
              28927,
              21418,
              8930,
              23904,
              4334,
              26520,
              436,
              1383,
              11313,
              19149,
              25353,
              24397,
              16895,
              16486,
              15687,
              17674,
              2925,
              10448,
              28085,
              466,
              24415,
              18823,
              6723,
              16337,
              21045,
              24839,
              11606,
              15556,
              20191,
              15610,
              10373,
              17912,
              22334],
             683: [4514, 25294],
             684: [3285,
              6468,
              20736,
              25922,
              4461,
              16802,
              8275,
              23664,
              17651,
              23044,
              18595,
              28005,
              16450,
              19846,
              10303,
              11515,
              15976,
              23149,
              13608,
              10275,
              2209,
              7963,
              16045,
              6231,
              6523],
             685: [13743, 27502, 23764, 13941],
             686: [1119,
              21588,
              29296,
              22101,
              8067,
              9299,
              28716,
              20436,
              28870,
              6995,
              18472,
              13036,
              9539],
             687: [20735],
             688: [15400, 23299, 16384],
             689: [8677, 26429],
             690: [4757, 13366],
             691: [24241],
             692: [29356, 15000],
             693: [3450],
             694: [4950, 7250, 6317],
             695: [13897, 239, 28849, 2389, 24156, 5316],
             696: [7910],
             697: [5411],
             698: [27989, 11102, 9944],
             699: [11193, 16362],
             700: [1266, 9657, 23106],
             701: [27859, 7208],
             702: [2342, 28143],
             703: [964,
              14461,
              17286,
              13602,
              2963,
              3588,
              22620,
              27443,
              423,
              24870,
              3373,
              22363,
              2929,
              18742,
              13428,
              610,
              18328,
              25493,
              27542,
              14382,
              11123,
              12314,
              5379,
              20851,
              219,
              5723,
              29024,
              20642,
              21913,
              12578,
              25563,
              13554],
             704: [23865, 22128],
             705: [23707, 10356],
             706: [8803, 10896],
             707: [12313, 26682],
             708: [28208],
             709: [12283, 23327],
             710: [17946],
             711: [3321, 26001, 11770],
             712: [23613, 6243],
             713: [14848],
             714: [28210, 26272],
             715: [21433, 11860],
             716: [10476, 21346, 12996],
             717: [16078],
             718: [27801, 18878, 26371],
             719: [3929, 7941],
             720: [13568, 10234, 9723],
             721: [2297],
             722: [5499, 8923],
             723: [26776],
             724: [11019,
              255,
              14029,
              13565,
              15141,
              6802,
              23356,
              46,
              19201,
              13166,
              11361,
              16425,
              2497,
              29087,
              5404,
              18545],
             725: [6542],
             726: [18308,
              1767,
              27065,
              18182,
              262,
              12394,
              21216,
              28539,
              6774,
              3268,
              11406,
              11167,
              22152,
              14140,
              15211,
              14246,
              12914,
              25870,
              7627,
              16388,
              14196,
              14503,
              24392,
              25408,
              18723,
              13693,
              15609,
              23615,
              27752,
              8477,
              17247,
              17907,
              6236,
              21380,
              11880,
              29017,
              20396,
              17172,
              9453,
              7582,
              18084,
              20026,
              5938,
              21152,
              21151,
              14608,
              22576,
              4703,
              19134,
              12227,
              25364,
              23261,
              12468,
              14465,
              19820,
              2976,
              24000,
              23851,
              1473,
              26433,
              21794,
              19515,
              6125,
              21640],
             727: [21991,
              11888,
              7191,
              8874,
              24384,
              15174,
              7176,
              16687,
              8741,
              13621,
              18147,
              9478],
             728: [3663, 13827, 14850],
             729: [13504, 9488],
             730: [1775, 19678, 3177, 6700, 21284],
             731: [28030, 3201],
             732: [21126, 16200, 25527],
             733: [21315, 19110],
             734: [16970,
              7328,
              16574,
              12267,
              14749,
              25078,
              7745,
              4543,
              3642,
              7902,
              20722,
              19751,
              22137,
              10797,
              5327,
              29279,
              7478,
              8510,
              5459,
              1820,
              12293,
              8977,
              24348,
              12746,
              11985,
              26248,
              23062,
              9181,
              23529,
              2879,
              3377,
              20813,
              20085,
              26869,
              25272,
              29019,
              21367,
              15172,
              23850,
              6275,
              18837,
              1741,
              10374,
              17118,
              18703,
              23038,
              3756,
              8095,
              7985,
              26000,
              26249,
              8960,
              2568,
              5772,
              21117,
              12230,
              21883,
              13263,
              19567,
              23888,
              3787,
              16139,
              5955,
              10860,
              24615,
              15591,
              9161,
              20607,
              4380,
              1216,
              27325,
              5113,
              26340,
              1973,
              2996,
              28423,
              24633,
              29353,
              21752,
              12857,
              13390,
              21360,
              23945,
              8989,
              6170,
              10074,
              25312,
              19736,
              10878,
              6070,
              10501,
              12213,
              18938,
              24342,
              17546,
              17040,
              22407,
              20243,
              21716,
              16709,
              19212,
              21448,
              8744,
              28604,
              17291,
              17205,
              13665,
              23556,
              22667,
              29485,
              25451,
              12548,
              8125],
             735: [27226, 10909, 25635],
             736: [21765],
             737: [16607],
             738: [4103],
             739: [27389],
             740: [4117, 23079],
             741: [28888, 3108],
             742: [6637],
             743: [8253],
             744: [3854],
             745: [28591],
             746: [6274, 15504, 28090],
             747: [25510, 4678],
             748: [13378, 896],
             749: [28867],
             750: [14417],
             751: [5191],
             752: [18910],
             753: [5652, 18070, 24829],
             754: [14376, 12031, 10296, 2529, 21255],
             755: [12298, 29521, 26703],
             756: [678, 3102, 17095, 18401, 25382, 2135],
             757: [21471, 9898],
             758: [27677,
              28234,
              25971,
              26502,
              20503,
              20799,
              17820,
              8624,
              23823,
              19396,
              7278,
              13092,
              2690,
              8456,
              4570,
              7229,
              6861,
              3975,
              19371,
              19496,
              22048,
              5324,
              951,
              13466,
              6118,
              19056,
              11289,
              10615,
              3891,
              13220,
              9716,
              1514,
              3676,
              17710,
              19590,
              26152,
              14348,
              16403,
              21663,
              13571,
              16467,
              16433,
              9835,
              356,
              9178,
              11563,
              467,
              27901,
              27733,
              18805,
              11052,
              26103,
              27024,
              11526,
              7750,
              2827,
              15661,
              26319,
              8341,
              8219,
              5533,
              21368,
              26484,
              18277,
              27492,
              22725,
              16030,
              13810,
              10047,
              26903,
              10325,
              5819,
              15089,
              17865,
              15229,
              24256,
              25638,
              28958,
              13321,
              16276,
              7228,
              10273,
              16721,
              14399,
              24255,
              14018,
              2010,
              14612,
              15844,
              21889,
              2638,
              4772,
              1880,
              12486,
              13807,
              9963,
              26024,
              17034,
              23559,
              8234,
              7161,
              13478,
              12324,
              15757,
              5999,
              7068,
              16582,
              12617,
              8669,
              1762,
              869,
              28084,
              4890,
              18843,
              10989,
              25983,
              9279,
              10600,
              11587,
              8498,
              14359,
              28741,
              26309,
              26588,
              6649,
              2076,
              17625,
              21853,
              3118,
              3604,
              29136,
              27227,
              12949,
              5588,
              18317,
              18512,
              13275,
              7822,
              20900,
              6209,
              16911,
              632,
              5611,
              28910,
              18926,
              11243,
              24580,
              13731,
              136,
              15660,
              13869,
              28611,
              18400,
              14079,
              9555,
              15662,
              25434,
              12977,
              8950,
              3432,
              27118,
              11077,
              1859,
              13188,
              8765,
              27696,
              28884,
              22443,
              5641,
              5056,
              1035,
              14479,
              29547,
              6652,
              7303,
              18332,
              12823,
              28214,
              23348,
              20505,
              26161,
              5390,
              112,
              10395,
              19685,
              22050,
              4989,
              847,
              28772,
              2385,
              20795,
              26913,
              12915,
              4820,
              18474,
              16005,
              5085,
              4120,
              18714,
              9441,
              8012,
              28656,
              6996,
              7577,
              3506,
              4039,
              25882,
              3970,
              20891,
              5730,
              20561,
              22743,
              16328,
              1575,
              4618,
              12266,
              16719,
              3969,
              7663,
              3581,
              28293,
              29118,
              919,
              14486,
              21955,
              20309,
              16216,
              22148,
              17450,
              4625,
              13216,
              22716,
              13052,
              20254,
              8078,
              619,
              13656,
              13782,
              1434,
              28979,
              16305,
              6535,
              19186,
              19302,
              6661,
              19923,
              19742,
              19886,
              1443,
              19638,
              16090,
              18435,
              18455,
              6000,
              16569,
              1694,
              1072,
              27635,
              13198,
              29511,
              16415,
              20345,
              24370,
              28966,
              24322,
              24733,
              3797,
              24814,
              15549,
              3296,
              1273,
              13337,
              6969,
              10088,
              27251,
              4186,
              26140,
              8085,
              7591,
              7634,
              29553,
              3778,
              3770,
              27579,
              3950,
              22876,
              11577,
              4567,
              8691,
              25229,
              15328,
              5268,
              14198,
              26089,
              4846,
              7115,
              14250,
              19405,
              28126,
              16594,
              3325,
              2083,
              29261,
              24186,
              2516,
              5768,
              6072,
              24581,
              25219,
              4883,
              4386,
              22187,
              16603,
              4020,
              4724,
              21690,
              28992,
              14015,
              10604,
              19069,
              26923,
              16693,
              21468,
              13362,
              4722,
              9032,
              18372,
              2328,
              3214,
              6785,
              10871,
              24727,
              14619,
              20523,
              19169,
              24959,
              29095,
              12556,
              1660,
              23190,
              26533,
              24924,
              3329,
              17945,
              9622,
              8783,
              14798,
              4123,
              9172,
              465,
              3727,
              25753,
              24784,
              13682,
              3156,
              24718,
              21569,
              13213,
              20973,
              18473,
              2851,
              4687,
              7358,
              21953,
              15389,
              7440,
              7026,
              20310,
              24986,
              10211,
              22802,
              27055,
              29351,
              13591,
              9827,
              23360,
              20325,
              14925,
              20647,
              2888,
              8701,
              11298,
              7289,
              25645,
              18306,
              3229,
              5450,
              8019,
              16270,
              19558,
              2617,
              9285,
              19752,
              28982,
              16635,
              10667,
              22422,
              6611,
              14905,
              8468,
              364,
              27911,
              19996,
              3805,
              5102,
              11817,
              27190,
              2178,
              5944,
              27509,
              15808,
              14859,
              6161,
              25723,
              1049,
              4557,
              12858,
              27624,
              29383,
              13074,
              15734,
              2305,
              17656,
              12020,
              10654,
              22965,
              4970,
              2593,
              19363,
              4143,
              19722,
              15680,
              25704,
              1599,
              20639,
              3547,
              21748,
              24334,
              22398,
              28330,
              22701,
              12955,
              5391,
              26225,
              9380,
              1846,
              14133,
              20714,
              7639,
              12613,
              196,
              16353,
              24504,
              706,
              28313,
              26754,
              18865,
              17102,
              26141,
              12306,
              7869,
              6917,
              26088,
              17204,
              2228,
              15026,
              17362,
              5574,
              28355,
              13085,
              28587,
              9748,
              11496,
              2480,
              26645,
              2634,
              3961,
              24952,
              21300,
              2071,
              17233,
              5421,
              646,
              10539,
              17464,
              11704,
              25610,
              4566,
              26274,
              16971,
              8459,
              21915,
              9147,
              21598,
              3688,
              17230,
              14913,
              13513,
              15781,
              9743,
              16075,
              24990,
              19577,
              9794,
              10771,
              14119,
              25231,
              27268,
              15159,
              10075,
              9254,
              21321,
              5426,
              24864,
              29148,
              12641,
              14284,
              6050,
              26920,
              25909,
              4225,
              7698,
              27488,
              28593,
              6283,
              6117,
              15603,
              11709,
              10545,
              10111,
              27881,
              14369,
              24006,
              26826,
              4456,
              22792,
              24018,
              23990,
              16966,
              4563,
              5915,
              26022,
              26705,
              8696,
              18071,
              21989,
              20344,
              15994,
              20500,
              18377,
              24238,
              20237,
              18782,
              12424,
              13902,
              22644,
              9843,
              22385,
              10032,
              5634,
              29243,
              13353,
              1658,
              6510,
              1142,
              20099,
              7381,
              21643,
              2693,
              19876,
              7061,
              4258,
              684,
              12457,
              1788,
              9071,
              434,
              25505,
              28380,
              18615,
              17637,
              6445,
              3776,
              7783,
              7581,
              14055,
              6838,
              10746,
              20204,
              19425,
              17943,
              18256,
              27310,
              20677,
              15012,
              22123,
              26898,
              2300,
              8958,
              1723,
              19575,
              25792,
              9697,
              415,
              20672,
              9568,
              1543,
              12386,
              7933,
              18912,
              17894,
              22834,
              1380,
              7377,
              14696,
              222,
              8111,
              3020,
              13080,
              25701,
              27307,
              17203,
              8594,
              18115,
              20307,
              21095,
              15989,
              5255,
              25641,
              28368,
              11224,
              27379,
              9001,
              10557,
              26203,
              28273,
              24546,
              24055,
              5657,
              19637,
              1481,
              8855,
              10419,
              11997,
              9131,
              5070,
              18913,
              24753,
              23422,
              8221,
              4349,
              25627,
              23307,
              28972,
              22367,
              24933,
              9653,
              16516,
              13204,
              14118,
              14077,
              27564,
              1069,
              21501,
              26609,
              5552,
              9626,
              15870,
              4002,
              8660,
              382,
              20604,
              2906,
              184,
              11006,
              5152,
              13246,
              9520,
              25595,
              28123,
              25070,
              3304,
              5232,
              22655,
              20744,
              11210,
              948,
              5571,
              28460,
              20357,
              15166,
              331,
              14705,
              23996,
              24170,
              26608,
              5473,
              2432,
              21578,
              21422,
              10548,
              1306,
              10911,
              1609,
              11486,
              4176,
              4909,
              24245,
              6994,
              25387,
              12272,
              1315,
              13270,
              1634,
              18198,
              13314,
              9290,
              17850,
              26686,
              10628,
              14275,
              28777,
              23701,
              3750,
              17273,
              16304,
              22268,
              11333,
              22267,
              29604,
              17081,
              14864,
              20261,
              957,
              3319,
              13882,
              18602,
              26037,
              9391,
              4797,
              29459,
              941,
              2881,
              15494,
              28749,
              25192,
              9601,
              22882,
              6341,
              1448,
              25356,
              9359,
              10678,
              10410,
              13336,
              11091,
              2161,
              18285,
              2921,
              9893,
              7437,
              19394,
              10703,
              21313,
              12841,
              24262,
              4672,
              16366,
              14946,
              8730,
              416,
              483,
              19320,
              8719,
              11932,
              9431,
              26963,
              27429,
              8916,
              8123,
              14262,
              26100,
              12490,
              1553,
              11280,
              1262,
              23212,
              29331,
              18018,
              21052,
              28651,
              14360,
              9027,
              17905,
              22910,
              5162,
              12133,
              22270,
              13373,
              8409,
              15908,
              712,
              17796,
              25789,
              2156,
              13350,
              23206,
              9594,
              4536,
              13404,
              16454,
              13222,
              20472,
              7469,
              12937,
              21103,
              1489,
              12098,
              21664,
              21702,
              5485,
              9095,
              5083,
              28297,
              24898,
              5261,
              9311,
              7173,
              8493,
              17712,
              16136,
              23738,
              13559,
              9870,
              19623,
              9955,
              25065,
              9882,
              5509,
              5802,
              6175,
              2063,
              14629,
              26657,
              17597,
              23939,
              7883,
              1800,
              9265,
              16492,
              10329,
              15438,
              2169,
              12024,
              4638,
              13966,
              15428,
              21921,
              16402,
              3596,
              19907,
              11561,
              6557,
              27567,
              24713,
              28441,
              10976,
              9490,
              213,
              12549,
              25386,
              17790,
              2924,
              15592,
              10705,
              14948,
              16316,
              2004,
              27946,
              2258,
              10733,
              15180,
              23773,
              24726,
              16998,
              9913,
              10636,
              2629,
              3327,
              15344,
              171,
              24276,
              16396,
              18575,
              15263,
              8800,
              1971,
              9230,
              19308,
              14272,
              1178,
              9401,
              3918,
              7957,
              10265,
              26060,
              5650,
              16422,
              22471,
              1674,
              23398,
              6851,
              819,
              10091,
              2191,
              5584,
              1597,
              10308,
              22172,
              15722,
              22878,
              20171,
              14172,
              24664,
              16438,
              25533,
              13070,
              8225,
              24611,
              2584,
              9167,
              23227,
              10230,
              26260,
              7200,
              14342,
              28488,
              28375,
              22775,
              23382,
              22966,
              29591,
              12829,
              23220,
              850,
              3261,
              22763,
              5557,
              13305,
              27595,
              2049,
              19365,
              9308,
              17829,
              18859,
              23139,
              28428,
              22857,
              1081,
              26290,
              29456,
              22579,
              24629,
              1995,
              3892,
              4392,
              13645,
              5323,
              249,
              6923,
              1364,
              26647,
              19508,
              21476,
              27622,
              12671,
              28479,
              25220,
              16117,
              422,
              13199,
              6976,
              12275,
              21693,
              17069,
              19649,
              20945,
              24061,
              2459,
              28265,
              16995,
              14715,
              10314,
              11601,
              8649,
              8967,
              1521,
              27599,
              10431,
              13279,
              ...],
             759: [10986, 14377, 697],
             760: [13735],
             761: [15471, 13486],
             762: [23548, 21457],
             763: [10438, 19700],
             764: [20651,
              1429,
              609,
              29569,
              1382,
              6887,
              4642,
              26282,
              26877,
              20196,
              13739,
              1358,
              6127,
              18295,
              14056,
              148,
              724,
              15570,
              10810,
              14933,
              28195,
              16184,
              2219,
              8777,
              3531,
              28718,
              12773,
              29305,
              22632,
              14277,
              27202],
             765: [10040],
             766: [5294, 20841],
             767: [15440],
             768: [11377, 4144],
             769: [10695, 25452],
             770: [9271, 21552],
             771: [8699, 16010],
             772: [20386],
             773: [11477],
             774: [20816, 15530, 25651],
             775: [1994],
             776: [5514, 14379, 25064],
             777: [28150, 24051, 21842],
             778: [17452, 12767],
             779: [9885, 21724],
             780: [4434, 21156, 22840],
             781: [13817],
             782: [7417, 12864],
             783: [3047, 24909, 27699],
             784: [26859, 2997],
             785: [17248, 23453],
             786: [14677, 28548],
             787: [642,
              12476,
              29468,
              7033,
              3107,
              11339,
              19922,
              22835,
              25844,
              22847,
              21593,
              16390,
              2225,
              18996,
              4320,
              24626,
              6454,
              2250,
              9495,
              26564,
              28266,
              3468,
              9436,
              14191,
              12730,
              25242,
              19975,
              9586,
              2959,
              29155,
              6580,
              18031,
              14472,
              9,
              12873,
              21328,
              27411,
              2026,
              10632,
              21098,
              17403,
              16502,
              19721,
              15597,
              13777,
              1517,
              29007,
              19148,
              29568,
              12340,
              24053,
              9003,
              17724,
              11826,
              22859,
              18396,
              25649,
              29018,
              15881,
              11559,
              26965,
              2433,
              26314,
              5167,
              26353,
              24667,
              7261,
              18966,
              26483,
              20163,
              26925,
              380,
              2182,
              28111,
              12033,
              22732,
              3934,
              24043,
              25949,
              19247,
              22146,
              8070,
              16807,
              26032,
              6690,
              15392,
              27354,
              2059,
              19331,
              156,
              6211,
              6983,
              28725,
              9576,
              15475,
              3819,
              855,
              9798,
              1932,
              4394,
              2029,
              16064,
              1953,
              17311,
              4112,
              23946,
              18003,
              11325,
              8553,
              14566,
              3859,
              15557,
              26732,
              22956,
              24586,
              12060,
              15688,
              3652,
              17809,
              17732,
              29326,
              6018,
              9201,
              18138,
              19754,
              11698,
              7189,
              6677,
              3479,
              154,
              13347,
              28809,
              29230,
              9144,
              10946,
              15990,
              20594,
              7513,
              27785,
              23134,
              12891,
              16105,
              5958,
              29049,
              23906,
              11556,
              17572,
              5875,
              19085,
              8205,
              4902,
              13084,
              5151,
              16292,
              18341,
              12448,
              7889,
              3436,
              17062,
              517,
              22139],
             788: [11633, 24074],
             789: [26715],
             790: [21837, 20947, 27870, 513, 27446],
             791: [18686, 199, 10268, 18911, 3105, 7800, 6077, 6168],
             792: [7527, 5179, 11073, 7095, 7531],
             793: [6488],
             794: [28411],
             795: [6803, 27773],
             796: [15462, 6966],
             797: [13844, 2542],
             798: [24236,
              8199,
              26515,
              22233,
              13783,
              5036,
              22590,
              20678,
              23558,
              21869,
              9546,
              5899,
              4874,
              18517,
              28935,
              14478,
              9938,
              1824,
              22816,
              9447,
              2264,
              25498,
              23491,
              1487,
              24226,
              23735,
              29451,
              15380,
              9738,
              5371,
              13555,
              17636,
              28628,
              5,
              21784,
              4706,
              24085,
              9387,
              21050,
              17882,
              16011,
              14278,
              4460],
             799: [17756],
             800: [25819, 2134, 2367],
             801: [5337, 10471, 22574, 11927],
             802: [2651],
             803: [5464, 6843, 26685, 3880, 22534, 19074, 28916],
             804: [25660, 3166],
             805: [24947],
             806: [22480, 853],
             807: [20907],
             808: [8764, 19151],
             809: [25057, 23737, 9739, 24062, 3008, 27865, 18374, 17474],
             810: [26027],
             811: [22325],
             812: [11318, 16189],
             813: [3783],
             814: [14528, 7084],
             815: [6551, 14086, 14321],
             816: [4765],
             817: [29503],
             818: [21669],
             819: [17584, 1076],
             820: [28757],
             821: [22679,
              7158,
              7826,
              2028,
              6504,
              15383,
              2538,
              21818,
              10092,
              1196,
              15217,
              7652,
              5686,
              29231,
              1490,
              9643,
              29269,
              28382,
              8647],
             822: [22545, 8439, 24375, 24014, 3780, 17990],
             823: [11804, 29],
             824: [28623,
              19612,
              12385,
              24305,
              11359,
              15940,
              16278,
              28678,
              9039,
              10187,
              19642,
              153,
              11968,
              16138,
              7366,
              29028,
              3542,
              15774,
              10593,
              9052,
              17981,
              4097,
              18131,
              7520,
              15527,
              13686,
              22103,
              17806,
              17207,
              4606,
              16836,
              2087,
              10449,
              14200,
              11543,
              1805,
              21911,
              2424,
              2920,
              7129,
              7596,
              6725,
              4545,
              15590,
              3380,
              21754,
              26189,
              15919,
              5101,
              9396,
              14616,
              19008,
              15397,
              14637,
              15648,
              19968,
              12963,
              28019,
              23450,
              26708,
              11520,
              13854,
              25752,
              26054,
              28170,
              2805,
              15991,
              14237,
              28803,
              17537,
              23103,
              3040,
              2112,
              11137,
              35,
              25450,
              15615,
              25606,
              6325,
              5383,
              19974,
              10196,
              16987,
              19064,
              6237,
              10642,
              25836,
              29471,
              22604,
              16589,
              23007,
              23250,
              20346,
              1153,
              16600,
              17617,
              19357],
             825: [25607, 28814, 9734, 5973],
             826: [10263, 3202],
             827: [3539, 11305, 5863],
             828: [28607,
              18609,
              18860,
              3287,
              14201,
              5345,
              14499,
              26085,
              12135,
              20600,
              13181,
              19351,
              15679,
              18060,
              7760,
              14706,
              1911,
              19500,
              3509,
              19767,
              4684,
              14031,
              27757,
              29364,
              28967,
              7100,
              8007,
              27475,
              3225,
              5238,
              21518,
              17794,
              2287,
              20962,
              22713,
              1423,
              15394,
              18661,
              17455,
              20389,
              1491,
              19847,
              19944,
              18421,
              21841,
              28545,
              3079,
              6021,
              13229,
              18734,
              15812,
              8354,
              7152,
              4753,
              487,
              23745,
              11572,
              190,
              14725,
              15694,
              5163,
              4027,
              10780,
              8436,
              8720,
              15768,
              9102,
              21685,
              13863,
              9746,
              2970,
              20296,
              20140,
              3647,
              27328,
              438,
              12965,
              15129,
              17012,
              10310,
              4763,
              29271,
              23474,
              15743,
              23346,
              25194,
              7087,
              1996,
              4654,
              17030,
              8925,
              6328,
              28399,
              4100,
              8857,
              22830,
              9891,
              28311,
              13494,
              28294,
              16718,
              11771,
              730,
              26694,
              19129,
              21930,
              25833,
              20975,
              23460,
              18441,
              11422,
              13766,
              1058,
              2246,
              10900,
              5996,
              11875],
             829: [8420, 27286],
             830: [20738, 6541],
             831: [7203],
             832: [10629, 7086, 28250, 27657, 19816, 1580, 8058],
             833: [5024,
              10050,
              19087,
              4463,
              22628,
              3816,
              28309,
              23669,
              9633,
              12319,
              6210,
              18093,
              17898,
              11302,
              17760,
              4395,
              27176,
              28073,
              19487,
              17902,
              10711,
              26276,
              20115,
              4472,
              10740,
              3992,
              24821,
              302,
              24004,
              842,
              10859,
              16556,
              17751,
              7392,
              13,
              20156,
              4233,
              3766,
              27887,
              162,
              27449,
              863,
              2509,
              20361,
              14005,
              6625,
              16471,
              8514,
              13599,
              21892,
              23355,
              5107,
              13159,
              23494,
              26218,
              20262,
              3634,
              12627,
              23608,
              16221,
              6744,
              22987,
              8395,
              11895,
              11030,
              19939,
              27707,
              19571,
              15447,
              13718,
              20288,
              741,
              25927,
              9014,
              28154,
              24556,
              26305,
              20808,
              7626,
              25948,
              10638,
              27144,
              28599,
              16778,
              24552,
              24513,
              12069,
              9460,
              7994,
              10625,
              25811,
              12815,
              503,
              15520,
              7253,
              8886,
              18237,
              21094,
              26350,
              11063,
              26600,
              25706,
              23578,
              12656,
              12876,
              17324,
              16167,
              29475,
              18022,
              2468,
              710,
              24609,
              19746,
              5582,
              16878,
              15652,
              24180,
              20416,
              20377,
              2782,
              24981,
              19874,
              24706,
              28885,
              17074,
              25624,
              24233,
              3538,
              27931],
             834: [27203, 17632],
             835: [14928, 12862, 2158, 19210],
             836: [15639, 8285, 7812, 21567, 8153],
             837: [15278],
             838: [15581, 22184],
             839: [20742, 926],
             840: [6724],
             841: [4357, 3609],
             842: [29587],
             843: [3788],
             844: [10245, 20542],
             845: [22129, 12778],
             846: [24724],
             847: [15671, 26832],
             848: [6798, 17609],
             849: [5594, 15101],
             850: [26162, 7891],
             851: [18527],
             852: [10319, 17005, 2239, 3465, 6371, 21165, 15938, 8280, 16975],
             853: [9238, 11832],
             854: [5462],
             855: [4101, 13456],
             856: [29495, 4332, 5504],
             857: [27083],
             858: [9947, 4889, 18632, 19926],
             859: [11025, 17513],
             860: [15857],
             861: [19692, 18023],
             862: [15532,
              28522,
              1347,
              17499,
              21941,
              14524,
              16595,
              16151,
              18520,
              12769,
              15907,
              14459,
              9142,
              13191,
              14219,
              14988,
              15297,
              716,
              22983,
              19844,
              17805,
              15727,
              24374,
              3258,
              16710,
              8554,
              10681,
              12721,
              17642,
              1399,
              906,
              22745,
              734,
              25377,
              14830,
              17705,
              21838,
              28193,
              13108,
              20727,
              9252,
              15423,
              9815,
              19183,
              11752,
              2163,
              28284,
              1518,
              28415,
              20286,
              9241,
              8202,
              15255,
              11548,
              26660,
              24673,
              23,
              10502,
              24743,
              28349,
              6925,
              24891,
              15741,
              18877,
              12212,
              17825,
              25337,
              21871,
              2671,
              1457,
              6977,
              16003,
              15469,
              19060,
              18275,
              5559,
              11062,
              1572,
              24921,
              27827,
              9407,
              16021,
              28268,
              1145,
              24438,
              24419,
              5900,
              18114,
              25355,
              11503,
              14138,
              1569,
              3528,
              5728,
              18424,
              5817,
              20394,
              24572,
              25471,
              1390,
              5536,
              6791,
              2390,
              22432,
              12917,
              18166,
              6606,
              18127,
              24349,
              26648,
              13112,
              1126,
              17844,
              16367,
              3467,
              17646,
              27486,
              3312,
              1474,
              17084,
              6927,
              16927,
              4438,
              21565,
              10238,
              21851,
              10741,
              2395,
              22925,
              17958,
              1312,
              25104,
              13784,
              22982,
              12498,
              6042,
              12958,
              18164,
              22189,
              24848,
              17082,
              20291,
              19984,
              10344,
              15511,
              24802,
              22037,
              25741,
              16539,
              1779,
              14475,
              1301,
              21063,
              16026,
              19018,
              28794,
              21248,
              1858,
              4972,
              24235,
              1578,
              22934,
              20631,
              19031,
              21106,
              194,
              22014,
              18970,
              19833,
              27997,
              7461,
              11478,
              19182,
              29062,
              7093,
              8084,
              13014,
              19758,
              29481,
              9085,
              267,
              12524,
              2948,
              24505,
              4855,
              4154,
              9782,
              13030,
              25770,
              17143,
              24837,
              2234,
              15111,
              26348,
              16703,
              840,
              4450,
              17235,
              4389,
              4947,
              18717,
              5759,
              7451,
              988,
              8845,
              24816,
              507,
              14841,
              343,
              24562,
              18213,
              23715,
              13352,
              27597,
              28002,
              23445,
              4345,
              18437,
              9057,
              14649,
              3925,
              3618,
              19023,
              2807,
              7860,
              20027,
              9812,
              3368,
              7337,
              24622,
              25634,
              325,
              8946,
              29542,
              21820,
              2411,
              4727,
              17054,
              13629,
              25001,
              3916,
              15202,
              13259,
              25832,
              5028,
              5749,
              1530,
              17689,
              6726,
              27925,
              18180,
              13642,
              11354,
              26615,
              14625,
              15147,
              26892,
              6748,
              24940,
              13704,
              3571,
              19140,
              13653,
              21975,
              1548,
              19433,
              28043,
              12695,
              24578,
              26802,
              25866,
              20694,
              1202,
              11011,
              27713,
              22435,
              10345,
              8684,
              18113,
              4624,
              14899,
              2706,
              25490,
              16430,
              29308,
              7978,
              10721,
              29514,
              17654,
              11107,
              2595,
              26962,
              2639,
              328,
              8105,
              22494,
              11218,
              211,
              28327,
              19848,
              8122,
              12903,
              11735,
              11343,
              16612,
              14485,
              20754,
              23116,
              2709,
              23922,
              9413,
              10620,
              16009,
              10115,
              8408,
              25184,
              14934,
              23396,
              16816,
              4659,
              25530,
              17356,
              13277,
              27574,
              28633,
              2767,
              11415,
              26730,
              21325,
              25995,
              2164,
              27312,
              120,
              9155,
              23771,
              24184,
              5042,
              17676,
              21131,
              4329,
              15332,
              1765,
              8191,
              25483,
              20959,
              20091,
              9829,
              10852,
              26706,
              1605,
              25784,
              26169,
              28315,
              28141,
              17628,
              8091,
              20870,
              29036,
              20563,
              23168,
              1773,
              9809,
              21122,
              24041,
              4008,
              2966,
              16649,
              20685,
              15851,
              16055,
              5926,
              18501,
              11933,
              12863,
              17791,
              16256,
              29473,
              19478,
              6767,
              1164,
              21630,
              27522,
              4059,
              28569,
              22440,
              18902,
              8470,
              2951,
              1398,
              6889,
              833,
              19659,
              26155,
              24526,
              9340,
              23940,
              27912,
              20683,
              778,
              27319,
              8825,
              2092,
              26951,
              4752,
              25582,
              9839,
              29524,
              1778,
              17930,
              26980,
              4582,
              19539,
              1105,
              27279,
              15594,
              13895,
              9508,
              12373,
              28976,
              11615,
              26755,
              6429,
              18682,
              17550,
              18352,
              13354,
              15034,
              3657,
              11581,
              9627,
              23759,
              14160,
              9531,
              7277,
              7378,
              11597,
              24216,
              10528,
              3741,
              18173,
              24081,
              2749,
              19528,
              1391,
              231,
              8643,
              17717,
              18875,
              5073,
              28069,
              19815,
              4738,
              20516,
              18451,
              27278,
              24268,
              7898,
              20797,
              5743,
              29377,
              20640,
              12651,
              4788,
              23326,
              23125,
              22301,
              20193,
              9075,
              18297,
              20492,
              19868,
              5417,
              8188,
              26179,
              14852,
              3885,
              21231,
              20292,
              12691,
              22180,
              20807,
              12514,
              20894,
              161,
              12834,
              27096,
              4079,
              20094,
              17329,
              14497,
              13262,
              1228,
              18188,
              1657,
              10260,
              26423,
              24641,
              13548,
              4546,
              560,
              7174,
              1614,
              4544,
              29357,
              13929,
              9691,
              24389,
              9507,
              3187,
              11394,
              1838,
              14983,
              14185,
              29196,
              12189,
              11125,
              8875,
              28750,
              20125,
              4441,
              9406,
              24741,
              9068,
              4836,
              12634,
              11472,
              12045,
              9647,
              20250,
              2151,
              20958,
              26295,
              24961,
              27506,
              20082,
              27345,
              22562,
              5479,
              5273,
              6674,
              10520,
              19318,
              26121,
              18944,
              12931,
              2213,
              26449,
              26302,
              7853,
              15042,
              15593,
              13116,
              17661,
              11438,
              12507,
              21062,
              22394,
              27311,
              7536,
              13139,
              23345,
              21934,
              4760,
              369,
              24607,
              26762,
              27463,
              7977,
              7032,
              12807,
              1906,
              15739,
              22181,
              24351,
              17181,
              3868,
              10812,
              18228,
              3834,
              22425,
              22226,
              6486,
              28798,
              12218,
              7160,
              29215,
              21357,
              26379,
              12290,
              29307,
              6603,
              13804,
              17703,
              220,
              10509,
              12899,
              9263,
              23969,
              11368,
              24344,
              28968,
              18577,
              15529,
              2818,
              9776,
              28463,
              7757,
              17619,
              29453,
              9410,
              17967,
              24525,
              17937,
              21996,
              15837,
              28364,
              19973,
              11743,
              17279,
              630,
              24631,
              15957,
              9206,
              22600,
              9978,
              893,
              19525,
              10130,
              8092,
              4499,
              25139,
              24054,
              16417,
              2441,
              6602,
              19355,
              4201,
              25549,
              1208,
              21015,
              4292,
              16675,
              19105,
              14539,
              3709,
              4997,
              17336,
              1772,
              9900,
              4693,
              9916,
              28086,
              9295,
              26917,
              8615,
              19881,
              23201,
              19314,
              25630,
              12806,
              20872,
              5664,
              3523,
              26466,
              6149,
              1477,
              927,
              22156,
              16893,
              13583,
              8750,
              27734,
              21288,
              3883,
              20314,
              28116,
              22889,
              22084,
              23501,
              28074,
              10239,
              24955,
              17472,
              21263,
              7922,
              18201,
              22988,
              27770,
              26672,
              10433,
              29489,
              9762,
              5387,
              8906,
              11527,
              17695,
              13982,
              7517,
              26559,
              12679,
              16183,
              3977,
              12782,
              23216,
              9569,
              5879,
              20646,
              20368,
              23000,
              5013,
              6428,
              27136,
              1231,
              12405,
              19673,
              2800,
              16257,
              13534,
              19562,
              9202,
              4531,
              2223,
              1993,
              3533,
              28546,
              26972,
              1226,
              5171,
              5619,
              12820,
              18484,
              9802,
              27632,
              11850,
              9381,
              13045,
              24913,
              8452,
              23074,
              10772,
              12547,
              21916,
              7365,
              24534,
              2348,
              26828,
              12132,
              8818,
              2494,
              3172,
              18255,
              14551,
              12912,
              4219,
              17941,
              25664,
              4593,
              20451,
              20571,
              2513,
              18725,
              14295,
              28371,
              22578,
              19378,
              16201,
              2519,
              18035,
              23073,
              2746,
              5266,
              12156,
              4910,
              5769,
              18418,
              26485,
              21595,
              27930,
              26034,
              24441,
              25659,
              8182,
              20898,
              20986,
              27758,
              5405,
              24716,
              18981,
              14012,
              10323,
              15859,
              27783,
              3670,
              5545,
              29390,
              6260,
              14202,
              18218,
              9583,
              8360,
              1910,
              8355,
              5034,
              8056,
              17426,
              10364,
              13206,
              28357,
              23186,
              20165,
              24817,
              5804,
              17232,
              20556,
              24865,
              29051,
              13196,
              25158,
              26221,
              13587,
              2562,
              27387,
              29140,
              12433,
              21412,
              21574,
              12058,
              20528,
              12544,
              12690,
              23153,
              17940,
              8194,
              17535,
              2098,
              21986,
              16369,
              4420,
              20493,
              10880,
              17592,
              3946,
              25146,
              3702,
              6939,
              13452,
              4105,
              2843,
              5537,
              4467,
              151,
              24617,
              26534,
              19272,
              16480,
              12791,
              25654,
              299,
              23834,
              22461,
              21606,
              27454,
              21302,
              21604],
             863: [22173, 5842],
             864: [29535, 25780, 6707],
             865: [8450, 7025],
             866: [24863, 9706],
             867: [22444, 13143],
             868: [848, 8694],
             869: [11730, 14203],
             870: [13059, 28251, 26752, 10409, 252],
             871: [15643, 28909, 17138],
             872: [19761, 10482],
             873: [538,
              5418,
              580,
              9960,
              3344,
              1030,
              1816,
              20696,
              23727,
              10922,
              5707,
              23203,
              9754,
              22779,
              1669,
              24693,
              26363,
              28361,
              22257,
              532,
              12382,
              25173,
              11666,
              28658,
              1288,
              18523,
              8203,
              15430,
              21828,
              4271,
              14689,
              4489,
              22784,
              11613,
              3416,
              26927,
              6202,
              5109,
              8215,
              2357,
              26942,
              24679,
              19626,
              6111,
              23583,
              29197,
              8968,
              2282,
              11547,
              1798,
              18726,
              20875,
              25230,
              2266,
              15285,
              12119,
              20331,
              16125,
              18937,
              1246,
              17524,
              8534,
              18156,
              1901,
              17511,
              8866,
              29446,
              4974,
              2812,
              7585,
              19913,
              3142,
              12144,
              29191,
              6436,
              6624,
              7831,
              17764],
             874: [23009, 26992],
             875: [25941, 15193, 16951, 13464],
             876: [5355, 572],
             877: [27774],
             878: [29534,
              27717,
              16601,
              21244,
              25390,
              6789,
              25919,
              8964,
              7589,
              23845,
              15947,
              16448,
              2791,
              20419,
              17442,
              9641,
              9621,
              17114,
              807,
              1121,
              9332,
              23900,
              24303,
              21659,
              22115,
              57,
              25743,
              28114,
              28425,
              20715,
              16520,
              25413,
              9999,
              12032,
              27368,
              9787,
              10064,
              29070,
              17980,
              27413,
              21516,
              27119,
              15675,
              18416,
              8008,
              3821,
              10281,
              16982,
              17425,
              10686,
              2195,
              24092,
              28281,
              23912,
              8001,
              28049,
              19332,
              15154,
              28541,
              9855,
              17026,
              15506,
              7019,
              1831,
              21782,
              395,
              21601,
              3823,
              19948,
              23072,
              2628,
              19477,
              19804,
              8501,
              28965,
              14974,
              1008,
              19578,
              3444,
              1232,
              26767,
              24527,
              10568,
              1567,
              19127,
              17077,
              4401,
              24748,
              25378,
              8214,
              7051,
              27330,
              23437,
              20076],
             879: [2263, 16251],
             880: [23948, 8952, 16275, 7972, 16095, 8536],
             881: [9792, 23584],
             882: [15596, 2785, 15244],
             883: [10627],
             884: [26280, 16408],
             885: [19813],
             886: [19565],
             887: [996, 6470],
             888: [25824, 17950],
             889: [16728, 14891],
             890: [28031, 11874, 12539],
             891: [4785, 29607],
             892: [6703, 26015, 25642, 26806, 14532],
             893: [5342, 24353],
             894: [21550],
             895: [27191],
             896: [14575],
             897: [19050,
              14652,
              24688,
              27618,
              17321,
              21881,
              10342,
              16717,
              15442,
              23302,
              11903,
              20007,
              23757,
              15578,
              10201,
              19892,
              9223,
              8065,
              26401,
              22003,
              20343,
              892,
              16930,
              9817,
              2080,
              15644,
              4133,
              5224,
              21004,
              20518,
              460,
              10279,
              4812,
              25447,
              11923,
              22662,
              24998,
              12082,
              18432,
              4493,
              21201,
              2403,
              2892,
              10480,
              11140,
              14328,
              17056,
              3667,
              1287,
              24648,
              7056,
              17913,
              26204,
              8859,
              19933,
              17480,
              27645,
              15856,
              5694,
              24122,
              23162,
              1505,
              28906,
              25896,
              17622,
              15001,
              16522,
              23508,
              25608,
              5581,
              7305,
              1336,
              4317,
              26406,
              9403,
              23065,
              14734,
              9735,
              11104,
              6123,
              11892,
              26063,
              17510,
              10298,
              23688,
              4257,
              21511,
              15067,
              12348,
              27833,
              21618,
              12927,
              29048,
              26428,
              24991,
              7971,
              99,
              10495,
              19438,
              1193,
              8208,
              2254,
              1850,
              22860,
              25176,
              0,
              16398,
              17612,
              18611,
              29159,
              10933,
              7636,
              9494,
              12245,
              25411,
              12953,
              3902,
              9294,
              25300,
              16263,
              24761,
              25852,
              276,
              5971,
              15135,
              12988,
              14910,
              7984,
              10526,
              2358,
              28014,
              23932,
              2594,
              8540,
              10,
              12337,
              8432,
              28239,
              22553,
              24845,
              5718,
              7259,
              18349,
              18872,
              19614,
              7480,
              16497,
              17936,
              6566,
              25658,
              3461,
              14563,
              15181,
              13179,
              15996,
              19895,
              2756,
              7766,
              18222,
              13576,
              4851,
              28010,
              29216,
              19238,
              9458,
              10405,
              6872,
              27004,
              13020,
              23760,
              7904,
              564,
              26129,
              27375,
              25762,
              14355,
              11627,
              12776,
              8495,
              12071,
              28516,
              3338,
              12136,
              3839,
              4063,
              3035,
              6167,
              17007,
              7234,
              28245,
              25009,
              11356,
              10971,
              2533,
              26982,
              14741,
              22801,
              7794,
              5333,
              9337,
              13685,
              15334,
              3186,
              28617,
              18572,
              24708,
              25912,
              491,
              28408,
              29099,
              9990,
              3754,
              8433,
              7905,
              16175,
              16707,
              4511,
              2284,
              9846,
              24100,
              5621,
              27673,
              17896,
              23767,
              17160,
              24078,
              20158,
              2862,
              6874,
              9139,
              9416,
              6259,
              19280,
              14042,
              19843,
              10177,
              12399,
              11028,
              18536,
              5815,
              15492,
              15228,
              3355,
              9482,
              9939,
              25311,
              26567,
              6419,
              12920,
              20574],
             898: [24087],
             899: [6549, 24433],
             900: [29041, 3988],
             901: [22777, 2815, 10949, 17547],
             902: [25840, 17179],
             903: [12164, 5704],
             904: [10523, 11120],
             905: [14335],
             906: [10877, 16302],
             907: [25526, 8580, 28735, 7506],
             908: [25531, 20034],
             909: [19615,
              26084,
              19349,
              2692,
              6362,
              7215,
              28465,
              5605,
              7873,
              14433,
              20707,
              23698,
              4700,
              25885,
              28134,
              25259,
              17765,
              14954,
              26932,
              21423,
              21774,
              4548,
              25010,
              14184,
              19870,
              1109,
              13580,
              13626,
              25385,
              7679,
              20551,
              25006,
              18498,
              23993,
              13969,
              18495,
              21099,
              24700,
              1905,
              10133,
              25381,
              8154,
              22917],
             910: [1183],
             911: [29373, 5201],
             912: [2162,
              22608,
              694,
              2283,
              15525,
              7329,
              2558,
              17927,
              19750,
              22198,
              16770,
              24350,
              9043,
              7541,
              29406,
              23810,
              19437,
              9343,
              17785,
              8089,
              13338,
              7280,
              17501,
              21954,
              29250,
              23739,
              17758,
              14947,
              224,
              14449,
              17581,
              23015,
              23965,
              15778,
              21835,
              2371,
              27158,
              16049,
              20903,
              9699,
              23291,
              22586,
              4735,
              12645,
              5129,
              25055,
              26870,
              7022,
              9199,
              23862,
              17417,
              14016,
              11784,
              22364,
              314,
              18884],
             913: [12080, 26387],
             914: [1495],
             915: [16575, 1329],
             916: [1547, 27843],
             917: [27763,
              27945,
              8323,
              17569,
              26508,
              15963,
              4595,
              12664,
              4043,
              20208,
              29436,
              12737,
              3359,
              17424,
              27854,
              7499,
              8289,
              21177,
              11017,
              10031,
              23649,
              28923,
              10651,
              4404,
              17003,
              15620,
              23786,
              8465,
              26396,
              8860,
              1025,
              10839,
              26243,
              11068,
              22692,
              2222,
              25088,
              27189,
              19793,
              10872,
              3273,
              13276,
              21285,
              6895,
              26778,
              7715,
              5850,
              29509,
              23689],
             918: [28270,
              16219,
              27626,
              17092,
              14307,
              13650,
              12580,
              29585,
              18080,
              4937,
              25540,
              2938,
              488,
              28011,
              15364,
              17738,
              24831,
              2400,
              14034,
              2362,
              1592,
              29169,
              18123,
              12910,
              12979,
              22010,
              26278,
              3853,
              28175,
              10517,
              19193,
              22487,
              22354,
              22060,
              29080,
              29033,
              27772,
              14773,
              25018,
              18956,
              23665,
              11191,
              2238,
              26376,
              2074,
              17089,
              3216,
              16511,
              4692,
              29089,
              7238,
              21865,
              21826,
              18685,
              18190,
              11336,
              21083,
              9070,
              22540],
             919: [7235, 7236, 3003],
             920: [18556, 28586],
             921: [16725, 23882, 13898],
             922: [20597],
             923: [19057, 9246],
             924: [541, 13227, 23743],
             925: [5399],
             926: [5344, 2754, 1107, 17768, 15158],
             927: [29550, 6006],
             928: [2896],
             929: [14615, 1693],
             930: [25419],
             931: [29462, 5854, 23080],
             932: [22036, 12874, 25054],
             933: [27019],
             934: [13747, 14189],
             935: [21178, 23518],
             936: [27604, 26995],
             937: [7130],
             938: [11708,
              22618,
              3685,
              13438,
              15950,
              13652,
              12171,
              21347,
              6844,
              16841,
              7472,
              16245,
              8144,
              23659,
              9106,
              15196,
              2452,
              145,
              22951,
              16156,
              21695,
              16052,
              265,
              17786,
              9690,
              7343,
              29479,
              22074,
              29562,
              9042,
              26439,
              174,
              6520,
              636,
              19624,
              10816,
              13002,
              7500,
              25977,
              22563,
              9921,
              26415,
              24884,
              27680,
              3243,
              6020,
              3761,
              25966,
              17219,
              3101,
              5936,
              23101,
              23180,
              22939,
              5951,
              13425,
              21657,
              8246,
              16513,
              5821,
              7641,
              29531,
              21424,
              23109,
              3417,
              27725,
              28556,
              3027,
              9487,
              10212,
              11414,
              6582,
              2801,
              3403,
              2479,
              20820,
              20750,
              13887,
              28006,
              13037,
              28092,
              16054,
              8883,
              21641,
              24450,
              18238,
              15080,
              10033,
              19749,
              4685,
              20686,
              17350],
             939: [22119,
              26527,
              4911,
              29234,
              9877,
              5403,
              4182,
              16447,
              9211,
              9814,
              2832,
              8698,
              7447,
              29174,
              27487,
              4255,
              4619,
              19656,
              22473,
              26476,
              13257,
              1085,
              23487,
              15755,
              21158,
              20756,
              21547,
              22120,
              9224,
              7799,
              24151,
              13967,
              553,
              3146,
              14717,
              4886,
              9480,
              4130,
              27331,
              23115,
              953,
              19372,
              26847,
              7790,
              1060,
              27687,
              9696,
              25096,
              12495,
              28634,
              22737,
              20456,
              2402,
              24116,
              11445,
              27461,
              20650,
              11738,
              797,
              20332,
              3492,
              14873,
              14915,
              11456,
              26810,
              28334,
              22165,
              16613,
              28746,
              15764,
              10751,
              3827,
              25445,
              18761,
              15738,
              23673,
              2194,
              28820,
              5422,
              25011,
              9122,
              27393,
              18511,
              29043,
              17707,
              17187,
              23232,
              26397,
              16811,
              4869,
              12202,
              2062,
              17660,
              12471,
              8311,
              27698,
              12434,
              25524,
              3997,
              16110,
              26914,
              6964,
              25427,
              8891,
              13120,
              4587,
              25015,
              12951,
              25742,
              24323,
              15531,
              10950,
              17253,
              5818,
              9360,
              15575,
              17704,
              3689,
              9011,
              21691,
              8569,
              13134,
              1677,
              1276,
              8245,
              26864,
              18994,
              1471,
              16360,
              18804,
              378,
              5043,
              739,
              14708,
              19341,
              1293,
              6968,
              15905,
              20706,
              15002,
              4454,
              15024,
              7004,
              28088,
              27263,
              9062,
              5453,
              23277,
              2834,
              19373,
              15845,
              20447,
              24133,
              18679,
              742,
              15497,
              9226,
              9154,
              26097,
              18293,
              203,
              22000,
              4965,
              15414,
              6109,
              4311,
              28654,
              3567,
              16013,
              21568,
              11436,
              7976,
              18013,
              18772,
              8523,
              13104,
              26098,
              22472,
              18513,
              14061,
              852,
              5793,
              16855,
              2908,
              13175,
              28064,
              10186,
              11829,
              5006,
              1764,
              20229,
              19696,
              15614,
              24500,
              16744,
              5831,
              4093,
              20004,
              22274,
              6666,
              25047,
              19404,
              18660,
              13961,
              17729,
              24896,
              21303,
              29417,
              8748,
              11134,
              25755,
              5082,
              4430,
              13153,
              5159,
              2642,
              3474,
              20708,
              1501,
              19946,
              14794,
              15367,
              24382,
              10123,
              15650,
              1629,
              12396,
              18709,
              9954,
              10954,
              348,
              16233,
              17587,
              16468,
              2821,
              23407,
              18482,
              20330,
              4280,
              11882,
              15396,
              5598,
              26912,
              5633,
              9847,
              19704,
              16665,
              28421,
              1033,
              3704,
              23378,
              9969,
              18191,
              5583,
              16258,
              3212,
              27041,
              13131,
              16044,
              9564,
              6908,
              22330,
              8044,
              20498,
              25881,
              25769,
              26939,
              17057,
              24250,
              12763,
              2333,
              20880,
              27601,
              27952,
              12234,
              24314,
              16018,
              15988,
              13122,
              25044,
              7443,
              19251,
              22650,
              27185,
              12019,
              9126,
              24978,
              4656,
              1883,
              12531,
              6601,
              6402,
              24735,
              13790,
              17719,
              9209,
              4573,
              10792,
              11529,
              29161,
              4526,
              5447,
              14137,
              872,
              454,
              24710,
              12515,
              916,
              24589],
             940: [21443],
             941: [11130, 16470, 8564],
             942: [3089, 22866],
             943: [7567],
             944: [933, 8384],
             945: [23758, 19108, 7606, 859, 11396, 15691],
             946: [21644],
             947: [22263, 228, 20899],
             948: [19632, 1566],
             949: [6024, 29239],
             950: [28026],
             951: [23898,
              11780,
              26148,
              18882,
              13284,
              6126,
              26641,
              3899,
              5141,
              15466,
              3639,
              21776,
              26882,
              19439,
              21791,
              5918,
              9138,
              20933,
              18932,
              26321,
              19004,
              4926,
              14400,
              2937,
              5948,
              8331,
              2116,
              21247,
              6227,
              8571,
              29342,
              17969,
              18984,
              13958,
              14853,
              12748,
              4199,
              2551,
              25579,
              20161,
              28707,
              26757,
              13041,
              15064,
              7296,
              8612,
              9065,
              13240,
              23455,
              12432,
              28196,
              25424,
              8402,
              943,
              8494,
              25099,
              20399,
              19463,
              26343,
              8282,
              21,
              29188,
              11211,
              17441,
              19976,
              9157,
              6698,
              6598,
              4762,
              19512,
              20823,
              7275,
              25181,
              15970,
              22614,
              1366,
              13590,
              4174,
              19765,
              3292,
              25569,
              22656,
              15319,
              10679,
              7743,
              13849,
              5247,
              10567,
              13858,
              13775,
              26053,
              4025,
              15598,
              7283,
              2064,
              24857,
              28504,
              2989,
              178,
              3017,
              21210,
              27192,
              7973,
              19035,
              8445,
              6205,
              11600,
              12922,
              23444,
              7737,
              18445,
              9928,
              1565,
              15212,
              19306,
              1323,
              12893,
              25855,
              6729,
              8878,
              7808,
              3270,
              8014,
              28204,
              14909,
              9942,
              17723,
              15518,
              1793,
              15014,
              8423,
              16741,
              10172,
              7927,
              19990,
              21742,
              24157,
              10181,
              11805,
              11143,
              9356,
              10995,
              12631,
              15848,
              19459,
              14306,
              21597],
             952: [22502, 7983],
             953: [18283],
             954: [1396, 9920],
             955: [12569,
              2601,
              223,
              17561,
              18032,
              4940,
              17552,
              15409,
              28528,
              20623,
              16489,
              2982,
              10397,
              9228],
             956: [26949],
             957: [23046, 21202],
             958: [17924],
             959: [12453, 26851],
             960: [9597, 19621, 20013],
             961: [2171],
             962: [14347, 17847],
             963: [25282, 5280],
             964: [5767,
              21590,
              7863,
              3802,
              22278,
              23026,
              3728,
              24640,
              4035,
              19267,
              17416,
              7867,
              9861,
              9225,
              21932,
              618,
              7966,
              11198,
              17156,
              19157,
              17502,
              23740,
              16411,
              9991,
              3485,
              10183,
              7730,
              17680,
              27936,
              15130,
              20783,
              28574,
              28666,
              4181,
              26009,
              23720,
              28701,
              11234,
              25535,
              1583,
              9243,
              11775,
              18637,
              18514,
              29403,
              3398,
              2811,
              19864,
              27738,
              25566,
              13688,
              14235,
              4730,
              11830],
             965: [11536, 13767, 11641, 28626, 20987, 17741, 10250],
             966: [15685, 27992, 15791, 2898, 27933, 12384, 26134],
             967: [16888,
              11205,
              28842,
              19071,
              8343,
              6617,
              29532,
              6697,
              2129,
              18305,
              24295,
              16792,
              28804,
              118,
              28359,
              23589,
              27029,
              3440,
              22310,
              24926,
              17574,
              13614,
              1385,
              5375,
              23359,
              189,
              20341,
              10426,
              24931,
              14984,
              20197,
              4666,
              12880,
              8697,
              22717,
              2586,
              24832,
              22979,
              15934,
              6689,
              11483,
              2845,
              18864,
              4571,
              6922,
              29557,
              24496,
              14081,
              26079,
              25392,
              1895,
              27710,
              5985,
              8190,
              9227,
              22338,
              27908,
              17320,
              1005,
              10565,
              22497,
              13939,
              18326,
              16524,
              24977,
              2825,
              14013,
              14166,
              9871,
              27201,
              15955,
              18363,
              24154,
              12945,
              4045,
              23802,
              25968,
              13405,
              18779,
              27114,
              23446,
              6204,
              6343,
              1957,
              18985,
              3005,
              21283,
              2704,
              13365,
              27617,
              15227,
              17306,
              19416,
              21615,
              1647,
              22092,
              762,
              23913,
              27377,
              1064,
              16311,
              26262,
              25201,
              5954,
              7833,
              18578,
              11693,
              26482,
              19658,
              12957,
              12589,
              6100,
              13115,
              1675,
              19200,
              24259,
              15184,
              25856,
              13649,
              10352,
              14857,
              10903,
              19667,
              5096,
              16365,
              17506,
              26677,
              187,
              24915,
              4364,
              15987,
              13128,
              6417,
              4550,
              12387,
              3132,
              25286,
              23791,
              18581,
              27290,
              5706,
              23049,
              22587,
              22856,
              25754,
              9866,
              4314,
              8075,
              10708,
              23581,
              12039,
              8030,
              24482],
             968: [7529, 22163],
             969: [14106, 281],
             970: [14529, 13601, 2038, 5037, 15010],
             971: [9229, 26246, 2935],
             972: [17539, 4360, 16119],
             973: [12100, 36],
             974: [13155],
             975: [6121],
             976: [26036,
              3675,
              5873,
              28955,
              26616,
              18047,
              17536,
              7514,
              4646,
              24115,
              20095,
              24820,
              13878,
              11944,
              5746,
              4153,
              10010,
              17212,
              27,
              24524,
              6203,
              7243,
              18943,
              28731,
              14684,
              24315,
              19797,
              18030,
              8368,
              11446,
              18918,
              26633,
              17301,
              14747,
              20133,
              27969,
              16395,
              3133,
              23021,
              24935,
              861,
              12635,
              26490,
              15415,
              18883,
              10944,
              11174,
              7518,
              9066,
              25384,
              3116,
              27171,
              18054,
              2802,
              11089,
              12494,
              6986,
              21066,
              28724,
              12926,
              11919,
              28919,
              27895,
              2550,
              21319,
              16566,
              13964,
              25187,
              26074,
              20944,
              19628,
              5105,
              25198,
              26514,
              9512,
              15395,
              28891,
              28627,
              7064,
              5400,
              3318,
              12882,
              14918,
              17185,
              22998,
              6668],
             977: [9315, 23522, 19524, 13910],
             978: [20211],
             979: [21466, 15744],
             980: [25857, 21084, 8993, 18845, 25849],
             981: [6734, 12501],
             982: [20805, 5126, 24606],
             983: [13768, 1379],
             984: [25698,
              18788,
              19682,
              12959,
              5997,
              15964,
              10018,
              26113,
              24059,
              12633,
              9976,
              29394,
              17804,
              13033,
              21264,
              24518,
              27433,
              8768,
              17607,
              26797,
              11057,
              1725,
              27456,
              13522,
              442,
              19581,
              27842,
              26787,
              647,
              22796,
              14698,
              9703,
              20025,
              15110,
              64,
              3330,
              3724,
              650,
              5747,
              10908,
              13604,
              19054,
              7625,
              11512,
              19559,
              17104,
              2470,
              7048,
              7241,
              11268,
              16896,
              24509,
              1038,
              11703,
              2230,
              5229,
              25317,
              4861,
              21397,
              24196,
              20760,
              1461,
              14190,
              8264,
              16266,
              16748,
              19647,
              25982,
              19618,
              26355,
              7775,
              28494,
              18292,
              8387,
              23319,
              6452,
              19655,
              5731,
              9429,
              29072,
              7263],
             985: [24875, 14941],
             986: [476, 26344],
             987: [20030],
             988: [4613,
              15023,
              15381,
              14669,
              6607,
              10924,
              17583,
              15261,
              1,
              14807,
              15634,
              2909,
              7706,
              10244,
              26748,
              849,
              23635,
              15320],
             989: [15878],
             990: [14808,
              23454,
              2027,
              24403,
              28401,
              7947,
              6101,
              18265,
              27471,
              27496,
              22825,
              16476,
              22104,
              7298,
              28681,
              13556,
              23451,
              29321,
              17548,
              20043,
              28828,
              8177,
              10530,
              9934,
              17043,
              13630,
              27526,
              22372,
              6671,
              8251,
              26910,
              16032,
              767,
              19419,
              7648,
              6743,
              3259,
              25431,
              4354,
              649,
              5910],
             991: [17157, 15243],
             992: [1019, 2685],
             993: [9079],
             994: [7813, 17430],
             995: [28952, 28468],
             996: [24137, 2490],
             997: [7300, 12709],
             998: [23728, 26023, 19330],
             999: [27731, 28756, 5688],
             ...})

In [9]:
def read_in_top_communities(sizeN):
    ordered_communities = OrderedDict(sorted(read_modularity_output().items(), key=lambda t:len(t[1]), reverse=True))
    top_communities = OrderedDict(x for x in ordered_communities.items() if len(x[1])>sizeN)
    return top_communities

In [17]:
# returns a set of communities in which each node belongs to
def find_nodes_COMM():
    nodes_COMM = defaultdict(list)
    output = read_BigClam_output()
    for comm in output.keys():
        for node in output[comm]:
            nodes_COMM[node].append(comm)
            
    for node in nodes_COMM:
            nodes_COMM[node] = list(set(nodes_COMM[node]))
    return nodes_COMM

In [18]:
# a helper function to show us info when print info is true
# otherwise returns only the list of community sizes
def num_and_sizes_modularity_COMM(print_info=False):
    num_COMM = 0
    COMM_sizes = []
    ALL_users = defaultdict(int)
    COMM = read_modularity_output()
    num_COMM = len(COMM.keys())
    for comm in COMM:
        COMM_sizes.append(len(COMM[comm]))
        for el in COMM[comm]:
            ALL_users[el] = 1
    if print_info:
        print 'Modularity has output: %d COMM ' % (num_COMM)
        print 'Their sizes in increasing order:'
        print sorted(COMM_sizes)
        print 'Total number of users in COMM:'
        print len(ALL_users.keys())
        print 'Total size of COMM:'
        print sum(COMM_sizes)
    return COMM_sizes
    return COMM_sizes

In [19]:
num_and_sizes_modularity_COMM(print_info=True)


Modularity has output: 2141 COMM 
Their sizes in increasing order:
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 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, 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, 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, 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, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 19, 19, 20, 20, 21, 21, 21, 22, 23, 25, 26, 26, 27, 27, 28, 30, 31, 31, 32, 33, 34, 39, 39, 41, 43, 43, 47, 48, 49, 51, 52, 52, 53, 54, 56, 57, 57, 57, 58, 58, 58, 58, 59, 62, 62, 64, 67, 67, 67, 74, 78, 78, 79, 81, 83, 86, 87, 87, 90, 92, 94, 94, 94, 97, 97, 99, 106, 107, 108, 109, 113, 116, 117, 119, 120, 121, 126, 126, 126, 129, 131, 132, 132, 133, 137, 142, 143, 143, 147, 149, 153, 161, 167, 171, 172, 185, 190, 197, 212, 225, 227, 244, 250, 257, 294, 309, 321, 378, 380, 400, 409, 429, 486, 501, 519, 543, 638, 864, 936, 2694, 2869]
Total number of users in COMM:
26717
Total size of COMM:
26717
Out[19]:
[2,
 2,
 1,
 1,
 2,
 2,
 1,
 1,
 2,
 2,
 2,
 1,
 2,
 4,
 5,
 3,
 1,
 1,
 2,
 2,
 2,
 2,
 3,
 2,
 2,
 2,
 2,
 2,
 2,
 3,
 1,
 2,
 2,
 2,
 2,
 1,
 2,
 2,
 2,
 1,
 2,
 2,
 3,
 2,
 2,
 2,
 2,
 2,
 2,
 2,
 1,
 1,
 2,
 1,
 2,
 1,
 1,
 2,
 1,
 1,
 2,
 1,
 2,
 4,
 1,
 2,
 2,
 2,
 2,
 2,
 2,
 1,
 2,
 1,
 1,
 2,
 1,
 2,
 2,
 2,
 5,
 2,
 3,
 2,
 1,
 2,
 3,
 1,
 2,
 1,
 2,
 2,
 2,
 2,
 1,
 2,
 2,
 1,
 3,
 1,
 2,
 1,
 2,
 2,
 1,
 2,
 1,
 2,
 2,
 3,
 1,
 2,
 2,
 2,
 3,
 2,
 2,
 3,
 2,
 2,
 2,
 3,
 2,
 2,
 2,
 1,
 2,
 2,
 2,
 2,
 1,
 2,
 1,
 3,
 2,
 2,
 2,
 1,
 2,
 3,
 2,
 1,
 1,
 1,
 1,
 3,
 1,
 2,
 1,
 1,
 2,
 2,
 2,
 2,
 2,
 2,
 4,
 1,
 1,
 2,
 1,
 2,
 1,
 2,
 1,
 2,
 2,
 1,
 2,
 2,
 1,
 2869,
 2,
 2,
 2,
 2,
 3,
 2,
 2,
 14,
 3,
 2,
 2,
 1,
 3,
 1,
 2,
 2,
 2,
 2,
 3,
 486,
 2,
 3,
 1,
 1,
 2,
 2,
 2,
 2,
 2,
 1,
 1,
 1,
 1,
 2,
 2,
 3,
 2,
 2,
 2,
 1,
 2,
 4,
 2,
 2,
 3,
 1,
 2,
 2,
 2,
 2,
 2,
 5,
 2,
 1,
 1,
 1,
 2,
 2,
 2,
 2,
 3,
 2,
 1,
 2,
 1,
 2,
 2,
 2,
 3,
 17,
 380,
 519,
 3,
 2,
 2,
 2,
 1,
 1,
 1,
 2,
 4,
 5,
 2,
 2,
 2,
 2,
 2,
 2,
 1,
 2,
 2,
 2,
 6,
 2,
 1,
 2,
 2,
 2,
 2,
 2,
 2,
 2,
 1,
 116,
 3,
 1,
 2,
 3,
 1,
 2,
 2,
 4,
 3,
 2,
 2,
 2,
 2,
 4,
 3,
 4,
 1,
 2,
 1,
 2,
 2,
 2,
 3,
 1,
 2,
 1,
 1,
 2,
 2,
 2,
 1,
 4,
 2,
 2,
 2,
 2,
 2,
 2,
 6,
 1,
 2,
 2,
 227,
 5,
 1,
 2,
 2,
 2,
 20,
 1,
 2,
 3,
 2,
 2,
 2,
 1,
 2,
 2,
 5,
 2,
 2,
 3,
 3,
 1,
 2,
 4,
 2,
 3,
 2,
 4,
 4,
 3,
 3,
 1,
 108,
 1,
 212,
 3,
 1,
 2,
 2,
 1,
 1,
 2,
 3,
 1,
 6,
 4,
 2,
 4,
 2,
 2,
 2,
 1,
 2,
 2,
 2,
 2,
 2,
 2,
 5,
 2,
 3,
 2,
 2,
 1,
 1,
 2,
 3,
 2,
 2,
 2,
 2,
 2,
 1,
 3,
 1,
 1,
 3,
 2,
 87,
 1,
 1,
 1,
 2,
 1,
 3,
 8,
 2,
 2,
 1,
 2,
 2,
 2,
 2,
 4,
 3,
 2,
 2,
 3,
 2,
 4,
 2,
 1,
 6,
 2,
 1,
 3,
 1,
 2,
 48,
 2,
 2,
 2,
 2,
 4,
 2,
 27,
 2,
 1,
 2,
 2,
 7,
 2,
 1,
 2,
 2,
 2,
 2,
 2,
 1,
 2,
 2,
 1,
 2,
 1,
 2,
 429,
 3,
 4,
 2,
 2,
 936,
 190,
 2,
 2,
 2,
 1,
 2,
 2,
 1,
 4,
 2,
 2,
 2,
 7,
 2,
 11,
 4,
 1,
 2,
 3,
 2,
 3,
 2,
 2,
 2,
 2,
 3,
 1,
 1,
 2,
 2,
 2,
 1,
 2,
 83,
 3,
 4,
 2,
 2,
 2,
 2,
 62,
 2,
 2,
 1,
 2,
 2,
 3,
 2,
 2,
 2,
 2,
 1,
 2,
 3,
 143,
 3,
 1,
 1,
 2,
 2,
 10,
 2,
 2,
 171,
 2,
 2,
 2,
 2,
 1,
 1,
 3,
 3,
 2,
 8,
 4,
 2,
 1,
 21,
 2,
 172,
 2,
 2,
 9,
 400,
 2,
 1,
 1,
 3,
 1,
 1,
 543,
 3,
 4,
 3,
 2,
 2,
 2,
 1,
 2,
 2,
 378,
 1,
 1,
 3,
 1,
 1,
 2,
 2,
 2,
 3,
 4,
 3,
 2,
 1,
 2,
 1,
 2,
 2,
 1,
 2,
 2,
 47,
 2,
 2,
 1,
 3,
 1,
 2,
 2,
 2,
 2,
 2,
 1,
 2,
 2,
 27,
 1,
 1,
 2,
 34,
 132,
 3,
 132,
 3,
 13,
 2,
 2,
 3,
 1,
 2,
 11,
 2,
 1,
 2,
 6,
 2,
 2,
 2,
 2,
 2,
 3,
 3,
 2,
 2,
 1,
 9,
 1,
 2,
 5,
 7,
 2,
 2,
 1,
 2,
 1,
 1,
 2,
 3,
 1,
 2,
 2,
 3,
 52,
 1,
 2,
 3,
 3,
 2,
 5,
 2,
 2,
 4,
 501,
 1,
 2,
 2,
 3,
 2,
 2,
 2,
 2,
 8,
 1,
 4,
 2,
 4,
 2,
 2,
 2,
 2,
 2,
 4,
 1,
 109,
 2,
 1,
 13,
 4,
 2,
 2,
 257,
 2,
 2,
 225,
 2,
 25,
 4,
 13,
 1,
 3,
 2,
 2,
 1,
 2,
 1,
 3,
 6,
 1,
 1,
 3,
 2,
 3,
 2,
 2,
 32,
 2,
 2,
 2,
 2,
 1,
 2,
 1,
 3,
 2,
 1,
 2,
 2,
 3,
 1,
 3,
 2,
 3,
 1,
 2,
 1,
 16,
 1,
 64,
 12,
 3,
 2,
 5,
 2,
 3,
 2,
 113,
 3,
 1,
 1,
 1,
 1,
 2,
 2,
 1,
 1,
 1,
 1,
 3,
 2,
 2,
 1,
 1,
 1,
 1,
 3,
 5,
 3,
 6,
 2,
 2694,
 3,
 1,
 2,
 2,
 2,
 31,
 1,
 2,
 1,
 2,
 2,
 2,
 2,
 1,
 1,
 3,
 1,
 3,
 3,
 2,
 2,
 3,
 1,
 2,
 3,
 2,
 2,
 2,
 161,
 2,
 1,
 5,
 8,
 5,
 1,
 1,
 2,
 2,
 2,
 43,
 1,
 3,
 4,
 1,
 7,
 2,
 1,
 2,
 1,
 2,
 8,
 1,
 1,
 2,
 1,
 2,
 3,
 1,
 1,
 1,
 2,
 1,
 19,
 6,
 2,
 97,
 4,
 2,
 3,
 117,
 2,
 2,
 1,
 7,
 129,
 2,
 4,
 5,
 1,
 2,
 2,
 1,
 2,
 1,
 1,
 2,
 2,
 1,
 2,
 2,
 2,
 2,
 1,
 9,
 2,
 1,
 2,
 3,
 1,
 4,
 2,
 1,
 2,
 864,
 2,
 3,
 2,
 2,
 2,
 2,
 2,
 5,
 3,
 2,
 78,
 2,
 4,
 2,
 1,
 94,
 2,
 6,
 2,
 3,
 1,
 2,
 1,
 1,
 2,
 2,
 2,
 3,
 2,
 5,
 2,
 1,
 1,
 1,
 250,
 1,
 2,
 2,
 4,
 2,
 2,
 2,
 1,
 2,
 4,
 2,
 43,
 1,
 2,
 56,
 2,
 1,
 2,
 2,
 49,
 59,
 3,
 2,
 3,
 1,
 2,
 3,
 1,
 5,
 2,
 1,
 2,
 1,
 3,
 3,
 1,
 2,
 2,
 2,
 1,
 92,
 309,
 1,
 3,
 2,
 1,
 2,
 6,
 1,
 3,
 2,
 2,
 1,
 147,
 2,
 1,
 2,
 14,
 1,
 2,
 1,
 2,
 3,
 1,
 2,
 2,
 54,
 7,
 7,
 153,
 2,
 2,
 5,
 3,
 3,
 2,
 1,
 1,
 86,
 4,
 1,
 2,
 5,
 2,
 3,
 2,
 81,
 2,
 2,
 1,
 18,
 1,
 41,
 2,
 2,
 1,
 2,
 2,
 2,
 2,
 3,
 3,
 ...]

In [23]:
# here this function is just a test if all is ok
# returns the node membership for each node
# i.e., in how many communities it participates
def find_nodes_in_more_COMM(print_info=False):
    nodes_num_COMM = defaultdict(int)
    COMM = read_modularity_output()
    for comm in COMM:
        for node in COMM[comm]:
            nodes_num_COMM[int(node)] += 1
    all_nodes = read_in_node_names().values()
    cnt_singletons = 0
    
    for node in all_nodes:
        if node not in nodes_num_COMM:
            cnt_singletons += 1
    if print_info:
        print len(all_nodes), len(nodes_num_COMM.keys())
        print 'I found nodes out of communities ', cnt_singletons
    #nodes_num_COMM2 = {node: nodes_num_COMM[node] if nodes_num_COMM[node] < 10 else 10 for node in nodes_num_COMM}
    sorted_nodes_num_COMM = OrderedDict(sorted(nodes_num_COMM.items(), key=lambda t:t[1], reverse=True))
    global N_overlap_comm
    N_overlap_comm = sorted_nodes_num_COMM.items()[0][1]
    #print sorted_nodes_num_COMM
    return sorted_nodes_num_COMM


find_nodes_in_more_COMM(print_info=True)
print N_overlap_comm
N_overlap_comm = 20


26717 26717
I found nodes out of communities  0
1

Let us visualize the community structure


In [28]:
# plots complementary CDF for the comm sizes
# in log-log scale
def plot_ccdf_comm_sizes():
    COMM_sizes = num_and_sizes_modularity_COMM()
    data = np.array(COMM_sizes)
    sorted_data = np.sort(data)
    yvals=1-np.arange(len(sorted_data))/float(len(sorted_data)-1)
    plt.plot(sorted_data,yvals,color='r')
    plt.yscale('log')
    plt.ylabel('complementary CDF')
    plt.xscale('log')
    plt.xlabel('community size')
    plt.show()

In [29]:
plot_ccdf_comm_sizes()


Now we add SR values and graph into the story

We want to see does community size correlate with average SR


In [31]:
# reads in the graph using igraph and Ncol format, i.e., edge list
# with weights being the SR on the edges
def read_in_SR_graph():
    #G = Graph.Read_Ncol('undirected_mention_graph_with_SR.csv', directed=False, weights=True)
    #G = read("test", format="ncol", directed=False, weights=True)
    G = Graph.Read_Ncol('directed_mention_graph_with_SR_NCOL_edgelist', directed=True, weights=True, names=True)
    #print G.summary()
    G.to_undirected(mode="collapse", combine_edges=min)
    #print G.summary()
    #G.simplify(combine_edges=None)
    #print G.summary()
    return G
read_in_SR_graph()


Out[31]:
<igraph.Graph at 0x7f6e54e6ced8>

Next function uses igraph to first find a subgraph induced by the community and to then calculate average SR on its edges. It is relatively fast given that other implementation I took (iterating through nodes) were really slow.


In [33]:
# find average SR between the connected nodes
# in the subgraph of G induced by the nodes
def find_avg_SR(G, nodes):
    node_SR_list = []
    node_indices = []
    for el in nodes:
        n = G.vs.select(name = str(el))[0]
        n = n.index
        node_indices.append(n)
    edges = G.es.select(_within = node_indices)
    for e in edges:
        w = e['weight']
        node_SR_list.append(w)
    avg_SR = np.mean(np.array(node_SR_list))
    std_SR = np.std(np.array(node_SR_list))
    return (avg_SR, std_SR)

We now combine the BigClam output and previous function to find avergage SR per community


In [38]:
def avg_SR_per_COMM_size():
    BigClam_output = read_modularity_output()
    G = read_in_SR_graph()
    size_vs_SR = defaultdict(int)
    for comm_nodes in BigClam_output.values():
        size_vs_SR[len(comm_nodes)] = find_avg_SR(G, comm_nodes)
    sorted_size_vs_SR = OrderedDict(sorted(size_vs_SR.items(), key=lambda t:t[0], reverse=True))
    return size_vs_SR

We now plot the distribution. There is no correlation.


In [51]:
def scatterplot_avg_SR_per_COMM_size():
    size_vs_SR = avg_SR_per_COMM_size()
    x = np.array(size_vs_SR.keys())
    y = np.array([s[0] for s in size_vs_SR.values()])
    e = np.array([s[1] for s in size_vs_SR.values()])
    print 'Corrcoef',  pearsonr(x, y)
    plt.scatter(x,y, label='mean SR per comm')
    plt.xlabel('comm size')
    plt.ylabel('mean SR')
    plt.xscale('log')
    #plt.legend(loc='best',frameon=False)
    plt.show()

In [52]:
scatterplot_avg_SR_per_COMM_size()


Corrcoef (-0.2096340780473733, 0.026528881689800013)

Semantic capital


In [54]:
def read_sem_capital(f_name='user_entities.tab', tname='entities'):
    f = open(f_name, "r")
    cap = defaultdict(int)
    cnt = 0
    for line in f:
        if tname == 'sentiment':
            (vid, vn, val) = line.split('\t')
            val = float(val)
        else:
            (vid, val) = line.split('\t')
            val = float(val)
        cap[vid] = val
        cnt += 1
    return cap

In [55]:
def find_avg_SEM_CAP(sem_cap, comm_nodes):
    s = []
    for node in comm_nodes:
        s.append(sem_cap[str(node)])
    s_mean = np.mean(np.array(s))
    s_std = np.std(np.array(s))
    return (s_mean, s_std)

In [60]:
def avg_SEM_CAP_per_COMM_size():
    output = read_modularity_output()
    sem_cap = read_sem_capital()
    size_vs_SEM_CAP = defaultdict(int)
    for comm_nodes in output.values():
        size_vs_SEM_CAP[len(comm_nodes)] = find_avg_SEM_CAP(sem_cap, comm_nodes)
    sorted_size_vs_SEM_CAP = OrderedDict(sorted(size_vs_SEM_CAP.items(), key=lambda t:t[0], reverse=True))
    return size_vs_SEM_CAP

In [65]:
def scatterplot_avg_SEM_CAP_per_COMM_size():
    size_vs_SEM_CAP = avg_SEM_CAP_per_COMM_size()
    x = np.array(size_vs_SEM_CAP.keys())
    y = np.array([s[0] for s in size_vs_SEM_CAP.values()])
    e = np.array([s[1] for s in size_vs_SEM_CAP.values()])
    print 'Corrcoef',  pearsonr(x, y)
    plt.scatter(x,y)
    plt.xlabel('comm size')
    plt.ylabel('mean sem cap')
    plt.xscale('log')
    #plt.legend(loc='best',frameon=False)
    plt.show()

In [66]:
scatterplot_avg_SEM_CAP_per_COMM_size()


Corrcoef (-0.060480909011702666, 0.52642710266251047)

Entities, concepts, taxonomies etc.


In [67]:
##################################################
# read in a map for the twitter username --> id
##################################################
def read_user_IDs():

    user_ids = defaultdict(str)

    with codecs.open('../user_IDs.dat','r', encoding='utf8') as f:
        for line in f:
            line = line.split()
            user_id = line[0]
            user =  line[1]
            user_ids[user] = int(user_id)

    return user_ids

In [68]:
def plot_taxonomy(tokens, weights, max_tokens, tokens_name, COM='ALL'):
    df = pd.DataFrame({'token': tokens, 'weight': weights})
    df.sort('weight', inplace=True, ascending=False)
    if df.shape[0] > max_tokens:
        tail = df.ix[max_tokens:, 'weight'].sum()
        df2 = df.iloc[0:max_tokens].copy()
        nrow = pd.Series({'token': '--[other ' + tokens_name + ']--', 'weight': tail})
        df2.ix[df2.shape[0]] = nrow
        df2.index = np.arange(df2.shape[0])
    else:
        df2 = df
        
    # Let's plot something better than a word cloud!

    plt.figure(figsize=(10,5))
    plt.title('community ' + COM)
    colors = []
    for c in range(df2.shape[0]-1):
        colors.append('#383838')
    colors.append('#ebe728')
    plt.barh(df2.index * -1, np.log(df2['weight']), color=colors)
    plt.gca().yaxis.grid(False)
    plt.yticks(df2.index * -1 + 1.0, df2['token'])
    plt.ylim(-1 * df2.shape[0] + 1.4, 1)
    plt.xlabel(tokens_name + ' weight')
    plt.show()

In [69]:
##################################################
# the core function for the user lists, comm etc.
##################################################
"""
    here, the options are to visualize the taxonomy for the whole dataset (COM="ALL")
    and to visualize for different communities (COM="COM") that are read in through read_in_communities()
    in the case of communities, this functions is invoked once per each community
    -- user_list holds the ids of the users in one community
    -- TOP_N holds the number of top concepts, keywords and entities that we want to visualize and record
    -- user_com holds a map for user_id --> com_id
    -- N_COM holds the total number of communities found (changes depending on the community detection algorithm)
"""
def find_taxonomy_of_user_list(user_ids=read_user_IDs(), COM='ALL', user_list=None, TOP_N=20):

    # resulting dictionaries in which the counts and tfidf relevance are collected
    keywords_sum = defaultdict(int)
    entities_sum = defaultdict(int)
    concepts_sum = defaultdict(int)
    taxonomies_sum = defaultdict(int) 
    
    docSentiment_sum = defaultdict(int)
    
    print user_list

    cnt = 0
    with codecs.open('../tweets_taxonomy_clean.JSON','r', encoding='utf8') as input_file:
        for line7s in input_file:
            try:
                line = json.loads(line7s)
                user_name = line["_id"]
                user_name = str(user_name)
                user_id = user_ids[user_name]
                if user_list is not None:
                    if not user_id in user_list:
                        print user_id
                        continue
                # if dealing with ALL, take all the users
                taxonomy_all = line["taxonomy"]
                keywords = taxonomy_all["keywords"]
                entities = taxonomy_all["entities"]
                concepts = taxonomy_all["concepts"] 
                taxonomy = taxonomy_all["taxonomy"] 
                #
                docSentiment = taxonomy_all["docSentiment"] 
                # this counts how many user we have analyzed
                cnt += 1
            except KeyError:
                #print line7s
                # we don't print since it is tested, there some 10% users for whom
                # the taxonomy was not successfuly downloaded and they would be listed here
                continue
            
            for el in keywords:
                category = el["text"]
                # if we first time encounter this keyword, add a dict for it in the result
                if not category in keywords_sum:
                    keywords_sum[category] = defaultdict(int)
                # we use this not so well coded part because tuples do not allow assignment
                old_relev = keywords_sum[category][0]
                old_cnt = keywords_sum[category][1]
                new_relev = old_relev + float(el["relevance"])
                new_cnt = old_cnt + 1
                keywords_sum[category] = (new_relev, new_cnt)

            for el in entities:
                entity = el["text"]
                if entity in ['#', '#MentionTo', 'twitter', 'Twitter']:
                    continue
                # if we first time encounter this entity, add a dict for it in the result
                if not entity in entities_sum:
                    entities_sum[entity] = defaultdict(int)
                # we use this not so well coded part because tuples do not allow assignment
                old_relev = entities_sum[entity][0]
                old_cnt = entities_sum[entity][1]
                new_relev = old_relev + float(el["relevance"])
                new_cnt = old_cnt + 1
                entities_sum[entity] = (new_relev, new_cnt, el["type"])

            for el in concepts:
                concept = el["text"]
                if concept in ['Trigraph', 'Gh', 'trigraph']:
                    continue
                # if we first time encounter this concept, add a dict for it in the result
                if not concept in concepts_sum:
                    concepts_sum[concept] = defaultdict(int)
                # we use this not so well coded part because tuples do not allow assignment
                old_relev = concepts_sum[concept][0]
                old_cnt = concepts_sum[concept][1]
                new_relev = old_relev + float(el["relevance"])
                new_cnt = old_cnt + 1
                concepts_sum[concept] = (new_relev, new_cnt)

            # a bit different procedure for extracting the sentiment
            sentiment = docSentiment["type"]
            if sentiment == "neutral":
                docSentiment_sum[sentiment] += 1
            else:
                if not sentiment in docSentiment_sum:
                    docSentiment_sum[sentiment] = defaultdict(int)
                old_score = docSentiment_sum[sentiment][0]
                old_cnt = docSentiment_sum[sentiment][1]
                old_mixed_cnt = docSentiment_sum[sentiment][2]
                try:
                    new_score = old_score + float(docSentiment["score"])
                except KeyError:
                    continue
                new_cnt = old_cnt + 1
                try:
                    new_mixed_cnt = old_mixed_cnt + int(docSentiment["mixed"])
                except KeyError:
                    continue
                docSentiment_sum[sentiment] = (new_score, new_cnt, new_mixed_cnt)


            for el in taxonomy:
                taxonomy_tree = el["label"]
                taxon = taxonomy_tree
                if not taxon in taxonomies_sum:
                    taxonomies_sum[taxon] = defaultdict(int)
                old_score = taxonomies_sum[taxon][0]
                old_cnt = taxonomies_sum[taxon][1]
                new_score = old_score + float(el["score"])
                new_cnt = old_cnt + 1
                taxonomies_sum[taxon] = (new_score, new_cnt)

        com_size = cnt
        # THIS IS A CONSTANT, because we know how many users there are in total after we did one ALL run
        N = 27665
        print "*** The user list %s ***" % COM
        print "Analyzed %d users out of total %d users " % (com_size, N)
        try:
            pos_users = docSentiment_sum["positive"][1]
            pos_score = docSentiment_sum["positive"][0]
        except TypeError:
            pos_users = 0
            pos_score = 0
        try:
            neg_users = docSentiment_sum["negative"][1]
            neg_score = docSentiment_sum["negative"][0]
        except TypeError:
            neg_users = 0
            neg_score = 0
        try:
            neu_users = docSentiment_sum["neutral"]
        except TypeError:
            neu_users = 0

        print "___________________"
        print "Sentiment stats: positive %d users; negative %d users; and neutral %d " % (pos_users, neg_users, neu_users)
        print "Sentiment score: positive %f ; negative %f; and the sum sentiment %f " % (pos_score, neg_score, pos_score + neg_score)
        print "Overall positive sentiment pct is %f " % (float(pos_users)/com_size)
        print "___________________"
        print "Total keywords found ", len(keywords_sum)
        print "Total entities found ", len(entities_sum)
        print "Total concepts found ", len(concepts_sum)
        print "Total taxonomies on different levels found ", len(taxonomies_sum)
        print "___________________"

        #####################
        ## STARTS plotting ##
        #####################
        
        #####################
        ##    KEYWORDS     ##
        #####################
        for kw in keywords_sum:
            tot_relev = keywords_sum[kw][0]
            tot_cnt = keywords_sum[kw][1]
            inv_kw_fq = 0 if tot_cnt == 0 else N/float(tot_cnt)
            tfidf = float(tot_relev * math.log(1.0 + inv_kw_fq))
            keywords_sum[kw] = (tot_relev, tot_cnt, tfidf)
        
        print
        print "Keywords (ordered by TF-IDF): [relevance, count, TF-IDF]"
        ord_keywords_sum2 = OrderedDict(sorted(keywords_sum.items(), key=lambda x: x[1][0], reverse = True))
        NN = len(ord_keywords_sum2.items())
        labels = np.empty([NN], dtype="<U26")
        sizes = np.empty([NN], dtype=float)
        sizes_tot = np.empty([NN], dtype=float)
        i = 0
        for el in ord_keywords_sum2:
            print el.encode('utf-8'), ord_keywords_sum2[el]
            labels[i] = el
            sizes[i] = float(ord_keywords_sum2[el][1])
            sizes_tot[i] = float(ord_keywords_sum2[el][0])
            i += 1
            #if i == TOP_N:
            #    break

                
        plot_taxonomy(tokens=labels, weights=sizes_tot, max_tokens=TOP_N, tokens_name='keyword', COM=COM)
        #plot_taxonomy(labels, sizes_tot, "kw_com_" + str(COM) + ".png")
        plt.clf()
        print

        #####################
        ##    ENTITIES     ##
        #####################
        for en in entities_sum:
            tot_relev = entities_sum[en][0]
            tot_cnt = entities_sum[en][1]
            inv_ent_fq = 0 if tot_cnt == 0 else N/float(tot_cnt)
            tfidf = tot_relev * math.log(1.0 + inv_ent_fq)
            entities_sum[en] = (tot_relev, tot_cnt, tfidf)  

        print "Entities (sorted by TF-IDF): [relevance, count, TF-IDF]"
        ord_entities_sum2 = OrderedDict(sorted(entities_sum.items(), key=lambda x: x[1][0], reverse = True))
        NN = len(ord_keywords_sum2.items())
        labels = np.empty([NN], dtype="<U26")
        sizes = np.empty([NN], dtype=float)
        sizes_tot = np.empty([NN], dtype=float)
        i = 0
        for el in ord_entities_sum2:
            print el.encode('utf-8'), ord_entities_sum2[el]
            labels[i] = el
            #print labels
            sizes_tot[i] = float(ord_entities_sum2[el][0])
            sizes[i] = float(ord_entities_sum2[el][2])
            i += 1
            #if i == TOP_N:
            #    break

        plot_taxonomy(tokens=labels, weights=sizes_tot, max_tokens=TOP_N, tokens_name='entity', COM=COM)
        plt.clf()
        print

        #####################
        ##    CONCEPTS     ##
        #####################
        for conc in concepts_sum:
            tot_relev = concepts_sum[conc][0]
            tot_cnt = concepts_sum[conc][1]
            inv_fq = 0 if tot_cnt == 0 else N/float(tot_cnt)
            tfidf = float(tot_relev * math.log(1.0 + inv_fq))
            concepts_sum[conc] = (tot_relev, tot_cnt, tfidf)

        print "Concepts (sorted by TF-IDF): [relevance, count, TF-IDF]"
        ord_concepts_sum = OrderedDict(sorted(concepts_sum.items(), key=lambda x: x[1][0], reverse = True))
        NN = len(ord_keywords_sum2.items())
        labels = np.empty([NN], dtype="<U26")
        sizes = np.empty([NN], dtype=float)
        sizes_tot = np.empty([NN], dtype=float)
        i = 0
        for el in ord_concepts_sum:
            print el.encode('utf-8'), ord_concepts_sum[el]
            labels[i] = el
            sizes[i] = float(ord_concepts_sum[el][2])
            sizes_tot[i] = float(ord_concepts_sum[el][0])
            i += 1
            #if i == TOP_N:
            #    break

        plot_taxonomy(tokens=labels, weights=sizes_tot, max_tokens=TOP_N, tokens_name='concept', COM=COM)
        #plot_pie(labels, sizes_tot, "concept_" + str(COM) + ".png")
        plt.clf()
        print

        #####################
        ##   TAXONOMIES    ##
        #####################
        for taxon in taxonomies_sum:
            tot_score = taxonomies_sum[taxon][0]
            tot_cnt = taxonomies_sum[taxon][1]
            inv_fq = 0 if tot_cnt == 0 else N/float(tot_cnt)
            tfidf = float(tot_score * math.log(1.0 + inv_fq))
            taxonomies_sum[taxon] = (tot_score, tot_cnt, tfidf)


        print "Taxonomies (sorted by TF-IDF): [relevance, count, TF-IDF]"
        ord_taxonomies_sum = OrderedDict(sorted(taxonomies_sum.items(), key=lambda x: x[1][0], reverse = True))
        NN = len(ord_keywords_sum2.items())
        labels = np.empty([NN], dtype="<U26")
        sizes = np.empty([NN], dtype=float)
        sizes_tot = np.empty([NN], dtype=float)
        i = 0
        for el in ord_taxonomies_sum:
            print el.encode('utf-8'), ord_taxonomies_sum[el]
            labels[i] = el
            sizes[i] = float(ord_taxonomies_sum[el][2])
            sizes_tot[i] = float(ord_taxonomies_sum[el][0])
            i += 1
            #if i == TOP_N:
            #    break

        plot_taxonomy(tokens=labels, weights=sizes_tot, max_tokens=TOP_N, tokens_name='taxonomy', COM=COM)
        #plot_pie(labels, sizes_tot, "taxon_" + str(COM) + ".png")
        plt.clf()
        print

In [74]:
def main(sizeN='ALL'):

    if sizeN == "ALL":
        sys.stdout = open('../ALL/top_20_stats', 'w')
        find_taxonomy_of_user_list()
    else:
        sys.stdout = open('Modularity_taxonomy_stats_' + f_in_Modularity_output_comm + '.txt', 'w')
        top_communities = read_in_top_communities(sizeN)
        print len(top_communities), "top communities found of size", str(sizeN)

        for community in top_communities:
            # user_ids=read_user_IDs(), COM='ALL', user_list=None, TOP_N=20
            find_taxonomy_of_user_list(user_ids=read_user_IDs(), COM=str(community), user_list=top_communities[community], TOP_N=20)

In [82]:
main(sizeN=500)


/usr/local/lib/python2.7/dist-packages/ipykernel_launcher.py:3: FutureWarning: sort(columns=....) is deprecated, use sort_values(by=.....)
  This is separate from the ipykernel package so we can avoid doing imports until
<matplotlib.figure.Figure at 0x7f6e4c3e5c90>
<matplotlib.figure.Figure at 0x7f6e4c462790>
<matplotlib.figure.Figure at 0x7f6e4c4b3c50>
<matplotlib.figure.Figure at 0x7f6e4ca628d0>
<matplotlib.figure.Figure at 0x7f6e4e2a0d90>
<matplotlib.figure.Figure at 0x7f6e4c89d850>
<matplotlib.figure.Figure at 0x7f6e4dc3c150>
<matplotlib.figure.Figure at 0x7f6e4ddddd90>
<matplotlib.figure.Figure at 0x7f6e4c8a7cd0>
<matplotlib.figure.Figure at 0x7f6e4da9e090>
<matplotlib.figure.Figure at 0x7f6e4e934590>
<matplotlib.figure.Figure at 0x7f6e4df1cf10>
<matplotlib.figure.Figure at 0x7f6e4dab5710>
<matplotlib.figure.Figure at 0x7f6e4d6bed50>
<matplotlib.figure.Figure at 0x7f6e4dcf0950>
<matplotlib.figure.Figure at 0x7f6e4dec0b10>
<matplotlib.figure.Figure at 0x7f6e4d519590>
<matplotlib.figure.Figure at 0x7f6e4d6be2d0>
<matplotlib.figure.Figure at 0x7f6e4c4d0390>
<matplotlib.figure.Figure at 0x7f6e4d6be0d0>
<matplotlib.figure.Figure at 0x7f6e4c89d950>
<matplotlib.figure.Figure at 0x7f6e4d6c25d0>
<matplotlib.figure.Figure at 0x7f6e4c5d4fd0>
<matplotlib.figure.Figure at 0x7f6e4c5d3150>
<matplotlib.figure.Figure at 0x7f6e4d7a4ed0>
<matplotlib.figure.Figure at 0x7f6e4cfd9a10>
<matplotlib.figure.Figure at 0x7f6e4eb39f10>
<matplotlib.figure.Figure at 0x7f6e4c0ff650>
<matplotlib.figure.Figure at 0x7f6e4c11e9d0>
<matplotlib.figure.Figure at 0x7f6e4e126cd0>
<matplotlib.figure.Figure at 0x7f6e4d693590>
<matplotlib.figure.Figure at 0x7f6e4cf789d0>

In [ ]:


In [ ]: