Commit bbf7342c authored by SHREYANSH JAIN's avatar SHREYANSH JAIN

added mean square gradient

parent e0cb7c11
This source diff could not be displayed because it is too large. You can view the blob instead.
import numpy as np
import argparse
import csv
import matplotlib.pyplot as plt
'''
You are only required to fill the following functions
mean_squared_loss
......@@ -21,22 +21,19 @@ Don't modify function declaration (arguments)
'''
def mean_squared_loss(xdata, ydata, weights):
'''
weights = weight vector [D X 1]
xdata = input feature matrix [N X D]
ydata = output values [N X 1]
Return the mean squared loss
'''
guess = np.dot(xdata,weights)
samples = np.shape(guess)[0]
err = 0.5*samples*np.sum(np.square(ydata.T-guess))
return err
raise NotImplementedError
def mean_squared_gradient(xdata, ydata, weights):
'''
weights = weight vector [D X 1]
xdata = input feature matrix [N X D]
ydata = output values [N X 1]
Return the mean squared gradient
'''
samples = np.shape(xdata)[0]
guess = np.dot(xdata,weights)
gradient = (1/samples)*np.dot(xdata.T,(guess-ydata.T))
return gradient
raise NotImplementedError
......@@ -68,29 +65,25 @@ class LinearRegressor:
def __init__(self,dims):
# dims is the number of the features
# You can use __init__ to initialise your weight and biases
# Create all class related variables here
self.dims = dims
self.W = np.zeros(dims)
return
raise NotImplementedError
def train(self, xtrain, ytrain, loss_function, gradient_function, epoch=100, lr=1.0):
'''
xtrain = input feature matrix [N X D]
ytrain = output values [N X 1]
learn weight vector [D X 1]
epoch = scalar parameter epoch
lr = scalar parameter learning rate
loss_function = loss function name for linear regression training
gradient_function = gradient name of loss function
'''
# You need to write the training loop to update weights here
def train(self, xtrain, ytrain, loss_function, gradient_function, epoch=100, lr=1):
errlog = []
samples = np.shape(xtrain)[0]
for iterations in range(epoch):
self.W = self.W - lr*gradient_function(xtrain,ytrain,self.W)
errlog.append(loss_function(xtrain,ytrain,self.W))
return errlog
raise NotImplementedError
def predict(self, xtest):
# This returns your prediction on xtest
return np.dot(xtest,self.W)
raise NotImplementedError
......@@ -120,18 +113,14 @@ def read_dataset(trainfile, testfile):
return np.array(xtrain), np.array(ytrain), np.array(xtest)
def preprocess_dataset(xdata, ydata=None):
'''
xdata = input feature matrix [N X D]
ydata = output values [N X 1]
Convert data xdata, ydata obtained from read_dataset() to a usable format by loss function
The ydata argument is optional so this function must work for the both the calls
xtrain_processed, ytrain_processed = preprocess_dataset(xtrain,ytrain)
xtest_processed = preprocess_dataset(xtest)
NOTE: You can ignore/drop few columns. You can feature scale the input data before processing further.
'''
xdata = xdata[:,[2,3,4,7,9]]
xdata = xdata.astype('float32')
bias = np.ones((np.shape(xdata)[0],1))
xdata = np.concatenate((bias,xdata),axis=1)
if ydata is None:
return xdata
ydata = ydata.astype('float32')
return xdata,ydata
raise NotImplementedError
dictionary_of_losses = {
......@@ -147,17 +136,20 @@ def main():
# Uncomment the below lines and pass the appropriate value
xtrain, ytrain, xtest = read_dataset(args.train_file, args.test_file)
# xtrainprocessed, ytrainprocessed = preprocess_dataset(xtrain, ytrain)
# xtestprocessed = preprocess_dataset(xtest)
# model = LinearRegressor(FILL HERE)
xtrainprocessed, ytrainprocessed = preprocess_dataset(xtrain, ytrain)
xtestprocessed = preprocess_dataset(xtest)
model = LinearRegressor(np.shape(xtrainprocessed)[1])
# The loss function is provided by command line argument
loss_fn, loss_grad = dictionary_of_losses[args.loss]
# model.train(xtrainprocessed, ytrainprocessed, loss_fn, loss_grad, args.epoch, args.lr)
# ytest = model.predict(xtestprocessed)
errlog = model.train(xtrainprocessed, ytrainprocessed, loss_fn, loss_grad, args.epoch, args.lr)
ytest = model.predict(xtestprocessed)
ytest = ytest.astype('int')
output = [(i,np.absolute(ytest[i])) for i in range(len(ytest))]
np.savetxt("output.csv",output,delimiter=',',fmt="%d",header="instance (id),count",comments='')
np.savetxt("error.log",errlog,delimiter='\n',fmt="%f")
if __name__ == '__main__':
......
instance (id),count
0,308
1,169
2,89
3,296
4,38
5,352
6,354
7,266
8,269
9,60
10,277
11,102
12,139
13,49
14,114
15,236
16,50
17,90
18,281
19,170
20,20
21,246
22,150
23,254
24,57
25,275
26,24
27,350
28,138
29,241
30,225
31,265
32,291
33,158
34,284
35,93
36,19
37,98
38,141
39,193
40,373
41,223
42,279
43,268
44,198
45,117
46,55
47,120
48,174
49,286
50,206
51,367
52,288
53,4
54,183
55,359
56,234
57,332
58,181
59,86
60,263
61,167
62,278
63,348
64,257
65,320
66,229
67,188
68,338
69,257
70,240
71,251
72,249
73,236
74,210
75,253
76,102
77,184
78,314
79,213
80,202
81,196
82,178
83,34
84,210
85,225
86,232
87,168
88,216
89,263
90,232
91,254
92,178
93,128
94,184
95,201
96,116
97,268
98,229
99,210
100,194
101,210
102,53
103,76
104,188
105,104
106,260
107,278
108,126
109,240
110,85
111,115
112,70
113,217
114,38
115,133
116,245
117,53
118,268
119,159
120,116
121,89
122,166
123,213
124,25
125,115
126,24
127,199
128,200
129,295
130,9
131,257
132,25
133,307
134,324
135,1
136,149
137,255
138,70
139,267
140,244
141,218
142,211
143,268
144,331
145,165
146,303
147,361
148,270
149,350
150,92
151,234
152,110
153,315
154,171
155,232
156,351
157,114
158,202
159,139
160,159
161,295
162,219
163,202
164,200
165,100
166,186
167,268
168,185
169,324
170,154
171,182
172,125
173,279
174,291
175,191
176,287
177,318
178,139
179,139
180,20
181,287
182,300
183,184
184,167
185,35
186,147
187,208
188,147
189,218
190,262
191,59
192,298
193,145
194,193
195,61
196,260
197,20
198,156
199,157
200,223
201,143
202,207
203,304
204,299
205,179
206,324
207,338
208,119
209,175
210,236
211,138
212,94
213,67
214,333
215,245
216,296
217,105
218,101
219,164
220,227
221,90
222,295
223,203
224,314
225,225
226,338
227,67
228,197
229,263
230,211
231,190
232,290
233,123
234,359
235,147
236,100
237,293
238,124
239,22
240,324
241,256
242,176
243,46
244,179
245,106
246,107
247,389
248,341
249,188
250,174
251,20
252,63
253,81
254,328
255,369
256,101
257,5
258,93
259,47
260,239
261,123
262,341
263,217
264,160
265,141
266,164
267,239
268,120
269,99
270,354
271,270
272,223
273,301
274,144
275,333
276,253
277,192
278,186
279,256
280,153
281,96
282,244
283,123
284,291
285,54
286,215
287,262
288,142
289,78
290,187
291,89
292,271
293,402
294,65
295,75
296,316
297,347
298,130
299,217
300,243
301,326
302,234
303,302
304,181
305,284
306,316
307,218
308,252
309,270
310,120
311,8
312,178
313,149
314,154
315,141
316,122
317,127
318,272
319,0
320,161
321,286
322,254
323,85
324,140
325,250
326,37
327,207
328,202
329,120
330,111
331,171
332,27
333,155
334,343
335,174
336,177
337,91
338,314
339,190
340,150
341,312
342,117
343,76
344,302
345,159
346,124
347,245
348,189
349,158
350,44
351,163
352,295
353,83
354,175
355,210
356,202
357,334
358,69
359,152
360,224
361,218
362,167
363,148
364,198
365,296
366,204
367,334
368,261
369,206
370,214
371,280
372,199
373,218
374,40
375,65
376,88
377,95
378,101
379,195
380,202
381,294
382,188
383,275
384,168
385,52
386,239
387,102
388,169
389,307
390,356
391,52
392,154
393,152
394,175
395,241
396,199
397,226
398,99
399,138
400,249
401,145
402,52
403,304
404,119
405,91
406,282
407,329
408,81
409,185
410,186
411,96
412,54
413,141
414,108
415,166
416,190
417,300
418,21
419,185
420,323
421,116
422,185
423,189
424,208
425,297
426,219
427,232
428,377
429,340
430,316
431,142
432,147
433,223
434,275
435,236
436,107
437,83
438,198
439,206
440,197
441,7
442,242
443,254
444,78
445,300
446,192
447,311
448,263
449,244
450,262
451,334
452,100
453,227
454,77
455,80
456,62
457,333
458,100
459,159
460,171
461,277
462,65
463,350
464,134
465,102
466,246
467,75
468,248
469,364
470,45
471,153
472,214
473,120
474,143
475,192
476,319
477,141
478,165
479,191
480,148
481,104
482,123
483,88
484,155
485,101
486,166
487,99
488,174
489,277
490,259
491,141
492,110
493,151
494,223
495,209
496,148
497,29
498,242
499,154
500,237
501,164
502,129
503,63
504,164
505,206
506,303
507,258
508,47
509,237
510,173
511,229
512,380
513,127
514,333
515,347
516,93
517,307
518,129
519,146
520,93
521,287
522,197
523,103
524,269
525,308
526,81
527,102
528,92
529,266
530,234
531,281
532,138
533,131
534,273
535,294
536,195
537,292
538,121
539,300
540,104
541,208
542,256
543,248
544,184
545,185
546,288
547,159
548,254
549,173
550,40
551,206
552,316
553,180
554,71
555,39
556,52
557,204
558,154
559,198
560,259
561,94
562,202
563,196
564,169
565,197
566,288
567,241
568,190
569,9
570,237
571,139
572,350
573,38
574,183
575,88
576,320
577,114
578,268
579,265
580,321
581,147
582,290
583,75
584,346
585,136
586,95
587,137
588,163
589,284
590,288
591,271
592,102
593,120
594,87
595,35
596,131
597,305
598,94
599,88
600,256
601,279
602,83
603,78
604,160
605,138
606,111
607,222
608,68
609,31
610,178
611,286
612,66
613,371
614,160
615,136
616,146
617,300
618,121
619,116
620,305
621,199
622,126
623,289
624,176
625,191
626,89
627,172
628,116
629,204
630,112
631,141
632,355
633,138
634,253
635,54
636,268
637,168
638,213
639,204
640,127
641,267
642,136
643,324
644,146
645,122
646,96
647,173
648,174
649,210
650,307
651,296
652,264
653,235
654,0
655,64
656,314
657,143
658,263
659,184
660,216
661,250
662,153
663,173
664,150
665,140
666,204
667,110
668,310
669,156
670,234
671,111
672,17
673,223
674,191
675,108
676,266
677,133
678,215
679,144
680,61
681,203
682,180
683,169
684,202
685,259
686,309
687,128
688,287
689,134
690,324
691,334
692,273
693,204
694,286
695,319
696,293
697,263
698,164
699,272
700,115
701,264
702,329
703,314
704,249
705,77
706,9
707,311
708,103
709,145
710,27
711,212
712,294
713,176
714,177
715,243
716,169
717,321
718,193
719,225
720,237
721,174
722,198
723,158
724,128
725,303
726,307
727,220
728,53
729,194
730,61
731,59
732,341
733,214
734,277
735,112
736,150
737,174
738,185
739,197
740,197
741,170
742,293
743,123
744,155
745,280
746,323
747,117
748,107
749,41
750,193
751,39
752,175
753,169
754,21
755,110
756,176
757,141
758,184
759,250
760,225
761,257
762,347
763,295
764,165
765,101
766,111
767,246
768,119
769,304
770,178
771,305
772,244
773,9
774,1
775,183
776,160
777,28
778,316
779,177
780,195
781,324
782,241
783,131
784,345
785,286
786,189
787,156
788,146
789,138
790,179
791,72
792,250
793,186
794,269
795,128
796,291
797,50
798,298
799,96
800,82
801,90
802,309
803,69
804,106
805,61
806,199
807,220
808,73
809,271
810,196
811,138
812,198
813,18
814,326
815,290
816,323
817,323
818,189
819,309
820,305
821,284
822,292
823,156
824,115
825,235
826,281
827,153
828,306
829,220
830,196
831,108
832,345
833,268
834,227
835,141
836,323
837,199
838,229
839,134
840,183
841,214
842,284
843,185
844,186
845,235
846,294
847,213
848,219
849,313
850,287
851,55
852,319
853,135
854,82
855,287
856,129
857,298
858,209
859,121
860,312
861,67
862,102
863,324
864,63
865,201
866,54
867,214
868,190
869,172
870,184
871,147
872,27
873,188
874,311
875,88
876,20
877,341
878,234
879,192
880,323
881,204
882,337
883,341
884,345
885,258
886,76
887,282
888,209
889,205
890,355
891,153
892,107
893,314
894,271
895,141
896,157
897,11
898,309
899,170
900,79
901,293
902,91
903,307
904,197
905,257
906,294
907,122
908,154
909,275
910,174
911,306
912,352
913,100
914,207
915,128
916,169
917,305
918,249
919,199
920,26
921,115
922,329
923,371
924,329
925,172
926,163
927,85
928,232
929,314
930,161
931,272
932,240
933,95
934,86
935,189
936,150
937,201
938,61
939,213
940,268
941,150
942,310
943,129
944,183
945,139
946,123
947,187
948,64
949,167
950,48
951,181
952,183
953,74
954,71
955,301
956,198
957,92
958,324
959,213
960,169
961,342
962,83
963,308
964,36
965,208
966,171
967,313
968,73
969,181
970,158
971,265
972,255
973,106
974,6
975,312
976,61
977,304
978,132
979,290
980,215
981,185
982,178
983,137
984,196
985,363
986,258
987,247
988,217
989,99
990,225
991,212
992,70
993,233
994,20
995,3
996,19
997,124
998,208
999,107
1000,152
1001,25
1002,210
1003,327
1004,276
1005,323
1006,244
1007,64
1008,59
1009,279
1010,79
1011,291
1012,81
1013,29
1014,298
1015,172
1016,350
1017,260
1018,254
1019,137
1020,174
1021,190
1022,177
1023,309
1024,83
1025,264
1026,33
1027,122
1028,7
1029,255
1030,311
1031,257
1032,291
1033,356
1034,96
1035,163
1036,210
1037,0
1038,122
1039,381
1040,106
1041,169
1042,312
1043,188
1044,42
1045,129
1046,210
1047,149
1048,254
1049,254
1050,94
1051,225
1052,153
1053,359
1054,128
1055,159
1056,250
1057,154
1058,139
1059,87
1060,52
1061,153
1062,206
1063,352
1064,207
1065,115
1066,266
1067,198
1068,124
1069,327
1070,7
1071,138
1072,237
1073,178
1074,241
1075,208
1076,242
1077,347
1078,282
1079,71
1080,218
1081,178
1082,152
1083,230
1084,139
1085,255
1086,197
1087,239
1088,83
1089,154
1090,42
1091,124
1092,81
1093,108
1094,61
1095,145
1096,239
1097,287
1098,309
1099,178
1100,203
1101,314
1102,226
1103,249
1104,111
1105,188
1106,141
1107,67
1108,194
1109,327
1110,318
1111,268
1112,98
1113,166
1114,128
1115,296
1116,316
1117,142
1118,20
1119,14
1120,267
1121,155
1122,164
1123,159
1124,102
1125,111
1126,323
1127,169
1128,322
1129,270
1130,202
1131,368
1132,165
1133,138
1134,106
1135,24
1136,193
1137,359
1138,75
1139,56
1140,321
1141,234
1142,114
1143,92
1144,370
1145,146
1146,234
1147,170
1148,102
1149,200
1150,206
1151,114
1152,35
1153,111
1154,255
1155,47
1156,216
1157,172
1158,99
1159,113
1160,135
1161,258
1162,174
1163,59
1164,153
1165,270
1166,26
1167,205
1168,102
1169,315
1170,94
1171,20
1172,323
1173,16
1174,188
1175,244
1176,253
1177,213
1178,103
1179,109
1180,233
1181,173
1182,134
1183,113
1184,146
1185,129
1186,160
1187,175
1188,246
1189,24
1190,208
1191,305
1192,200
1193,173
1194,106
1195,27
1196,122
1197,136
1198,227
1199,298
1200,116
1201,127
1202,71
1203,35
1204,24
1205,103
1206,163
1207,198
1208,187
1209,59
1210,120
1211,68
1212,144
1213,221
1214,189
1215,232
1216,179
1217,119
1218,180
1219,251
1220,260
1221,324
1222,98
1223,168
1224,174
1225,277
1226,241
1227,341
1228,286
1229,32
1230,47
1231,234
1232,166
1233,341
1234,314
1235,285
1236,205
1237,241
1238,343
1239,304
1240,23
1241,310
1242,143
1243,189
1244,131
1245,180
1246,333
1247,341
1248,112
1249,174
1250,271
1251,129
1252,68
1253,77
1254,154
1255,324
1256,67
1257,245
1258,316
1259,255
1260,132
1261,287
1262,295
1263,215
1264,132
1265,150
1266,244
1267,289
1268,183
1269,259
1270,218
1271,268
1272,114
1273,202
1274,99
1275,370
1276,52
1277,121
1278,174
1279,250
1280,359
1281,96
1282,11
1283,129
1284,217
1285,150
1286,3
1287,204
1288,115
1289,154
1290,305
1291,80
1292,341
1293,316
1294,294
1295,376
1296,295
1297,145
1298,148
1299,154
1300,107
1301,157
1302,51
1303,33
1304,168
1305,223
1306,350
1307,183
1308,329
1309,131
1310,191
1311,303
1312,202
1313,136
1314,49
1315,295
1316,138
1317,212
1318,91
1319,275
1320,159
1321,263
1322,353
1323,185
1324,258
1325,157
1326,186
1327,133
1328,138
1329,280
1330,47
1331,194
1332,154
1333,227
1334,127
1335,162
1336,238
1337,304
1338,87
1339,129
1340,337
1341,236
1342,265
1343,109
1344,212
1345,267
1346,227
1347,240
1348,217
1349,203
1350,141
1351,261
1352,149
1353,241
1354,160
1355,241
1356,240
1357,56
1358,77
1359,270
1360,61
1361,249
1362,325
1363,59
1364,275
1365,225
1366,176
1367,124
1368,169
1369,29
1370,73
1371,235
1372,162
1373,224
1374,310
1375,207
1376,116
1377,190
1378,168
1379,202
1380,322
1381,385
1382,288
1383,288
1384,361
1385,113
1386,167
1387,124
1388,204
1389,99
1390,220
1391,319
1392,166
1393,209
1394,127
1395,162
1396,204
1397,143
1398,216
1399,227
1400,91
1401,91
1402,100
1403,311
1404,173
1405,29
1406,15
1407,81
1408,281
1409,47
1410,305
1411,296
1412,64
1413,184
1414,246
1415,154
1416,216
1417,299
1418,65
1419,148
1420,167
1421,102
1422,244
1423,265
1424,158
1425,7
1426,160
1427,176
1428,155
1429,265
1430,210
1431,354
1432,171
1433,39
1434,197
1435,86
1436,233
1437,235
1438,166
1439,75
1440,95
1441,85
1442,330
1443,214
1444,174
1445,231
1446,336
1447,332
1448,318
1449,357
1450,52
1451,282
1452,21
1453,116
1454,131
1455,288
1456,225
1457,192
1458,249
1459,84
1460,78
1461,142
1462,28
1463,93
1464,136
1465,230
1466,241
1467,232
1468,143
1469,307
1470,180
1471,157
1472,162
1473,106
1474,131
1475,258
1476,249
1477,204
1478,316
1479,286
1480,316
1481,195
1482,196
1483,189
1484,282
1485,140
1486,65
1487,76
1488,207
1489,329
1490,155
1491,183
1492,123
1493,15
1494,139
1495,193
1496,169
1497,324
1498,79
1499,376
1500,284
1501,39
1502,305
1503,359
1504,38
1505,2
1506,202
1507,91
1508,140
1509,25
1510,120
1511,3
1512,190
1513,87
1514,268
1515,207
1516,288
1517,258
1518,141
1519,324
1520,90
1521,256
1522,106
1523,214
1524,70
1525,167
1526,297
1527,15
1528,252
1529,17
1530,191
1531,70
1532,124
1533,131
1534,213
1535,206
1536,181
1537,195
1538,340
1539,233
1540,259
1541,134
1542,96
1543,182
1544,230
1545,347
1546,265
1547,173
1548,156
1549,107
1550,190
1551,142
1552,156
1553,276
1554,298
1555,80
1556,241
1557,280
1558,323
1559,277
1560,100
1561,28
1562,216
1563,218
1564,212
1565,151
1566,222
1567,225
1568,314
1569,306
1570,195
1571,288
1572,149
1573,33
1574,198
1575,175
1576,221
1577,229
1578,208
1579,149
1580,28
1581,331
1582,281
1583,66
1584,300
1585,173
1586,263
1587,216
1588,164
1589,10
1590,303
1591,327
1592,39
1593,155
1594,269
1595,319
1596,153
1597,103
1598,141
1599,265
1600,190
1601,141
1602,305
1603,179
1604,110
1605,211
1606,265
1607,20
1608,323
1609,276
1610,272
1611,202
1612,178
1613,225
1614,103
1615,72
1616,230
1617,65
1618,94
1619,89
1620,37
1621,139
1622,197
1623,347
1624,319
1625,12
1626,364
1627,120
1628,300
1629,246
1630,125
1631,142
1632,201
1633,169
1634,217
1635,185
1636,288
1637,303
1638,303
1639,111
1640,176
1641,287
1642,268
1643,258
1644,248
1645,276
1646,190
1647,38
1648,97
1649,218
1650,98
1651,255
1652,251
1653,343
1654,157
1655,62
1656,117
1657,217
1658,288
1659,28
1660,144
1661,288
1662,274
1663,32
1664,266
1665,74
1666,94
1667,36
1668,122
1669,192
1670,124
1671,189
1672,102
1673,171
1674,286
1675,66
1676,199
1677,308
1678,188
1679,281
1680,271
1681,60
1682,308
1683,128
1684,137
1685,157
1686,273
1687,93
1688,173
1689,224
1690,131
1691,281
1692,107
1693,158
1694,251
1695,273
1696,194
1697,126
1698,94
1699,244
1700,163
1701,184
1702,192
1703,314
1704,98
1705,264
1706,182
1707,57
1708,207
1709,235
1710,17
1711,148
1712,201
1713,151
1714,213
1715,50
1716,284
1717,237
1718,115
1719,98
1720,28
1721,69
1722,137
1723,151
1724,179
1725,158
1726,220
1727,200
1728,164
1729,213
1730,123
1731,274
1732,177
1733,134
1734,136
1735,204
1736,227
1737,50
1738,182
1739,223
1740,185
1741,118
1742,137
1743,337
1744,305
1745,316
1746,257
1747,340
1748,336
1749,180
1750,174
1751,62
1752,307
1753,88
1754,232
1755,230
1756,29
1757,212
1758,192
1759,202
1760,277
1761,48
1762,269
1763,211
1764,137
1765,271
1766,310
1767,84
1768,85
1769,298
1770,126
1771,147
1772,280
1773,107
1774,200
1775,66
1776,198
1777,155
1778,91
1779,52
1780,253
1781,206
1782,155
1783,133
1784,252
1785,179
1786,236
1787,228
1788,140
1789,236
1790,98
1791,246
1792,222
1793,212
1794,120
1795,260
1796,259
1797,192
1798,272
1799,189
1800,51
1801,102
1802,162
1803,196
1804,215
1805,68
1806,244
1807,165
1808,119
1809,281
1810,102
1811,275
1812,332
1813,209
1814,326
1815,82
1816,227
1817,346
1818,214
1819,369
1820,182
1821,301
1822,235
1823,105
1824,350
1825,169
1826,184
1827,310
1828,228
1829,361
1830,47
1831,16
1832,96
1833,198
1834,172
1835,82
1836,291
1837,225
1838,315
1839,190
1840,102
1841,253
1842,345
1843,303
1844,228
1845,148
1846,197
1847,86
1848,331
1849,5
1850,69
1851,379
1852,294
1853,244
1854,219
1855,253
1856,108
1857,302
1858,140
1859,286
1860,340
1861,10
1862,208
1863,128
1864,148
1865,156
1866,268
1867,195
1868,193
1869,269
1870,201
1871,159
1872,265
1873,197
1874,221
1875,356
1876,327
1877,246
1878,313
1879,273
1880,163
1881,284
1882,172
1883,85
1884,203
1885,141
1886,87
1887,247
1888,41
1889,272
1890,251
1891,28
1892,352
1893,133
1894,178
1895,128
1896,148
1897,121
1898,98
1899,277
1900,257
1901,114
1902,185
1903,244
1904,333
1905,233
1906,249
1907,351
1908,98
1909,68
1910,255
1911,243
1912,326
1913,120
1914,220
1915,37
1916,156
1917,196
1918,115
1919,249
1920,140
1921,52
1922,345
1923,331
1924,97
1925,79
1926,129
1927,279
1928,339
1929,329
1930,160
1931,313
1932,60
1933,133
1934,129
1935,252
1936,357
1937,209
1938,330
1939,278
1940,28
1941,255
1942,201
1943,109
1944,106
1945,45
1946,138
1947,220
1948,244
1949,71
1950,61
1951,54
1952,111
1953,270
1954,151
1955,214
1956,169
1957,40
1958,375
1959,7
1960,118
1961,358
1962,312
1963,314
1964,274
1965,297
1966,132
1967,158
1968,263
1969,38
1970,337
1971,47
1972,10
1973,181
1974,162
1975,188
1976,361
1977,310
1978,331
1979,353
1980,120
1981,203
1982,275
1983,57
1984,218
1985,279
1986,87
1987,150
1988,213
1989,312
1990,16
1991,179
1992,205
1993,293
1994,218
1995,232
1996,110
1997,246
1998,220
1999,78
2000,134
2001,105
2002,91
2003,123
2004,56
2005,335
2006,264
2007,134
2008,126
2009,137
2010,321
2011,120
2012,112
2013,223
2014,317
2015,360
2016,168
2017,56
2018,270
2019,117
2020,256
2021,274
2022,245
2023,288
2024,70
2025,279
2026,172
2027,93
2028,164
2029,223
2030,136
2031,303
2032,334
2033,214
2034,178
2035,169
2036,125
2037,161
2038,100
2039,368
2040,272
2041,110
2042,171
2043,279
2044,312
2045,199
2046,317
2047,40
2048,183
2049,311
2050,329
2051,71
2052,35
2053,131
2054,124
2055,4
2056,126
2057,81
2058,265
2059,129
2060,155
2061,214
2062,275
2063,110
2064,156
2065,226
2066,167
2067,136
2068,79
2069,81
2070,303
2071,137
2072,117
2073,221
2074,252
2075,132
2076,306
2077,311
2078,145
2079,326
2080,231
2081,117
2082,357
2083,360
2084,116
2085,282
2086,156
2087,94
2088,138
2089,167
2090,143
2091,93
2092,1
2093,225
2094,303
2095,278
2096,99
2097,200
2098,52
2099,228
2100,21
2101,273
2102,20
2103,152
2104,384
2105,216
2106,369
2107,136
2108,257
2109,207
2110,255
2111,172
2112,125
2113,28
2114,142
2115,320
2116,134
2117,121
2118,124
2119,161
2120,70
2121,148
2122,185
2123,88
2124,150
2125,124
2126,338
2127,206
2128,97
2129,68
2130,145
2131,147
2132,305
2133,170
2134,195
2135,232
2136,186
2137,131
2138,272
2139,234
2140,362
2141,115
2142,336
2143,334
2144,86
2145,142
2146,211
2147,178
2148,295
2149,74
2150,267
2151,78
2152,295
2153,296
2154,273
2155,210
2156,304
2157,111
2158,151
2159,110
2160,222
2161,181
2162,257
2163,17
2164,18
2165,344
2166,201
2167,254
2168,266
2169,165
2170,271
2171,187
2172,196
2173,96
2174,244
2175,150
2176,309
2177,306
2178,161
2179,236
2180,109
2181,200
2182,2
2183,263
2184,155
2185,307
2186,159
2187,155
2188,367
2189,335
2190,35
2191,163
2192,284
2193,308
2194,188
2195,146
2196,256
2197,114
2198,336
2199,270
2200,194
2201,42
2202,107
2203,65
2204,277
2205,211
2206,49
2207,182
2208,167
2209,155
2210,168
2211,141
2212,361
2213,216
2214,155
2215,89
2216,109
2217,82
2218,139
2219,158
2220,383
2221,57
2222,192
2223,232
2224,117
2225,232
2226,105
2227,281
2228,190
2229,204
2230,92
2231,65
2232,212
2233,77
2234,257
2235,47
2236,262
2237,196
2238,250
2239,51
2240,125
2241,291
2242,254
2243,253
2244,290
2245,183
2246,298
2247,250
2248,176
2249,183
2250,65
2251,304
2252,324
2253,227
2254,294
2255,146
2256,237
2257,304
2258,83
2259,153
2260,304
2261,354
2262,223
2263,100
2264,268
2265,284
2266,209
2267,278
2268,165
2269,105
2270,106
2271,286
2272,49
2273,253
2274,282
2275,124
2276,240
2277,249
2278,267
2279,373
2280,258
2281,35
2282,143
2283,207
2284,102
2285,119
2286,355
2287,109
2288,347
2289,343
2290,200
2291,79
2292,124
2293,69
2294,152
2295,110
2296,47
2297,196
2298,39
2299,253
2300,102
2301,267
2302,290
2303,334
2304,189
2305,364
2306,174
2307,169
2308,192
2309,136
2310,258
2311,103
2312,70
2313,178
2314,198
2315,26
2316,268
2317,199
2318,47
2319,270
2320,206
2321,50
2322,66
2323,214
2324,290
2325,84
2326,341
2327,90
2328,22
2329,86
2330,199
2331,321
2332,90
2333,80
2334,381
2335,51
2336,152
2337,109
2338,322
2339,270
2340,26
2341,290
2342,324
2343,125
2344,329
2345,59
2346,188
2347,291
2348,90
2349,190
2350,141
2351,179
2352,264
2353,260
2354,188
2355,0
2356,304
2357,260
2358,204
2359,157
2360,39
2361,285
2362,310
2363,281
2364,305
2365,315
2366,31
2367,155
2368,161
2369,320
2370,295
2371,202
2372,316
2373,293
2374,93
2375,234
2376,316
2377,251
2378,188
2379,354
2380,270
2381,101
2382,154
2383,327
2384,339
2385,61
2386,105
2387,333
2388,64
2389,293
2390,286
2391,298
2392,226
2393,88
2394,77
2395,256
2396,197
2397,295
2398,215
2399,237
2400,181
2401,77
2402,61
2403,277
2404,281
2405,115
2406,319
2407,135
2408,183
2409,150
2410,193
2411,357
2412,134
2413,214
2414,80
2415,38
2416,50
2417,266
2418,273
2419,167
2420,326
2421,157
2422,320
2423,156
2424,179
2425,176
2426,129
2427,129
2428,199
2429,58
2430,284
2431,305
2432,189
2433,127
2434,206
2435,319
2436,265
2437,182
2438,122
2439,63
2440,140
2441,286
2442,147
2443,160
2444,269
2445,196
2446,20
2447,389
2448,263
2449,267
2450,56
2451,106
2452,273
2453,251
2454,8
2455,272
2456,208
2457,316
2458,251
2459,309
2460,245
2461,194
2462,364
2463,346
2464,193
2465,138
2466,211
2467,197
2468,226
2469,249
2470,142
2471,334
2472,255
2473,282
2474,95
2475,295
2476,255
2477,195
2478,272
2479,161
2480,90
2481,192
2482,287
2483,16
2484,263
2485,263
2486,190
2487,197
2488,312
2489,143
2490,159
2491,150
2492,305
2493,113
2494,360
2495,240
2496,159
2497,258
2498,55
2499,286
2500,311
2501,106
2502,192
2503,277
2504,154
2505,314
2506,336
2507,108
2508,231
2509,256
2510,180
2511,35
2512,114
2513,104
2514,227
2515,192
2516,106
2517,141
2518,339
2519,143
2520,164
2521,354
2522,277
2523,68
2524,85
2525,301
2526,286
2527,94
2528,120
2529,108
2530,85
2531,108
2532,154
2533,261
2534,153
2535,269
2536,119
2537,284
2538,231
2539,122
2540,2
2541,343
2542,41
2543,94
2544,102
2545,187
2546,310
2547,297
2548,238
2549,95
2550,294
2551,259
2552,153
2553,328
2554,291
2555,153
2556,139
2557,66
2558,166
2559,232
2560,282
2561,222
2562,218
2563,261
2564,176
2565,82
2566,272
2567,127
2568,132
2569,293
2570,110
2571,155
2572,57
2573,329
2574,250
2575,162
2576,38
2577,257
2578,289
2579,86
2580,13
2581,216
2582,337
2583,312
2584,359
2585,190
2586,175
2587,203
2588,196
2589,345
2590,227
2591,121
2592,128
2593,138
2594,315
2595,208
2596,43
2597,299
2598,126
2599,310
2600,343
2601,286
2602,190
2603,131
2604,129
2605,132
2606,86
2607,77
2608,277
2609,183
2610,186
2611,284
2612,21
2613,203
2614,157
2615,190
2616,124
2617,302
2618,70
2619,164
2620,112
2621,179
2622,104
2623,192
2624,270
2625,131
2626,253
2627,219
2628,250
2629,268
2630,183
2631,105
2632,145
2633,360
2634,277
2635,120
2636,269
2637,239
2638,38
2639,219
2640,164
2641,285
2642,222
2643,208
2644,107
2645,200
2646,25
2647,97
2648,240
2649,225
2650,178
2651,32
2652,169
2653,117
2654,168
2655,350
2656,106
2657,93
2658,30
2659,150
2660,244
2661,173
2662,86
2663,183
2664,256
2665,81
2666,344
2667,176
2668,4
2669,322
2670,100
2671,124
2672,168
2673,265
2674,156
2675,227
2676,161
2677,59
2678,278
2679,103
2680,250
2681,288
2682,277
2683,328
2684,310
2685,315
2686,93
2687,101
2688,330
2689,178
2690,19
2691,251
2692,59
2693,33
2694,119
2695,244
2696,252
2697,332
2698,68
2699,172
2700,322
2701,195
2702,191
2703,164
2704,95
2705,190
2706,112
2707,103
2708,326
2709,173
2710,180
2711,310
2712,233
2713,159
2714,297
2715,172
2716,168
2717,267
2718,99
2719,197
2720,46
2721,184
2722,287
2723,240
2724,133
2725,105
2726,139
2727,276
2728,297
2729,192
2730,329
2731,99
2732,114
2733,11
2734,31
2735,165
2736,210
2737,343
2738,254
2739,122
2740,16
2741,97
2742,166
2743,165
2744,223
2745,177
2746,159
2747,170
2748,299
2749,222
2750,134
2751,41
2752,351
2753,335
2754,201
2755,295
2756,213
2757,121
2758,116
2759,250
2760,88
2761,68
2762,225
2763,95
2764,6
2765,238
2766,220
2767,124
2768,216
2769,172
2770,190
2771,27
2772,150
2773,38
2774,213
2775,38
2776,126
2777,277
2778,289
2779,287
2780,262
2781,259
2782,94
2783,226
2784,101
2785,215
2786,183
2787,325
2788,132
2789,279
2790,245
2791,249
2792,254
2793,139
2794,34
2795,305
2796,254
2797,224
2798,139
2799,204
2800,114
2801,129
2802,341
2803,241
2804,241
2805,241
2806,150
2807,256
2808,380
2809,34
2810,113
2811,150
2812,286
2813,0
2814,2
2815,278
2816,184
2817,179
2818,138
2819,187
2820,287
2821,241
2822,284
2823,44
2824,134
2825,106
2826,322
2827,96
2828,89
2829,140
2830,270
2831,160
2832,290
2833,39
2834,134
2835,241
2836,64
2837,150
2838,264
2839,12
2840,289
2841,132
2842,196
2843,258
2844,109
2845,42
2846,163
2847,127
2848,318
2849,356
2850,142
2851,82
2852,108
2853,0
2854,47
2855,133
2856,87
2857,243
2858,91
2859,54
2860,242
2861,55
2862,166
2863,97
2864,61
2865,235
2866,215
2867,94
2868,158
2869,228
2870,178
2871,193
2872,68
2873,166
2874,279
2875,163
2876,117
2877,143
2878,227
2879,117
2880,37
2881,248
2882,167
2883,153
2884,251
2885,272
2886,26
2887,182
2888,194
2889,48
2890,19
2891,263
2892,169
2893,298
2894,328
2895,337
2896,262
2897,173
2898,223
2899,350
2900,124
2901,201
2902,282
2903,261
2904,258
2905,113
2906,160
2907,139
2908,129
2909,78
2910,291
2911,263
2912,119
2913,27
2914,254
2915,209
2916,358
2917,94
2918,145
2919,113
2920,256
2921,263
2922,12
2923,146
2924,153
2925,113
2926,153
2927,277
2928,204
2929,188
2930,332
2931,135
2932,271
2933,168
2934,69
2935,90
2936,145
2937,328
2938,298
2939,122
2940,308
2941,262
2942,267
2943,160
2944,237
2945,394
2946,198
2947,92
2948,133
2949,214
2950,58
2951,85
2952,135
2953,197
2954,133
2955,16
2956,195
2957,8
2958,89
2959,204
2960,142
2961,169
2962,240
2963,76
2964,127
2965,300
2966,237
2967,112
2968,272
2969,66
2970,259
2971,66
2972,210
2973,103
2974,295
2975,335
2976,168
2977,253
2978,212
2979,237
2980,223
2981,195
2982,333
2983,326
2984,242
2985,76
2986,30
2987,124
2988,24
2989,251
2990,245
2991,71
2992,239
2993,33
2994,212
2995,290
2996,72
2997,229
2998,218
2999,155
3000,183
3001,185
3002,91
3003,225
3004,143
3005,92
3006,272
3007,39
3008,240
3009,240
3010,329
3011,278
3012,152
3013,4
3014,116
3015,89
3016,304
3017,194
3018,33
3019,213
3020,232
3021,46
3022,290
3023,350
3024,326
3025,220
3026,323
3027,95
3028,310
3029,98
3030,286
3031,163
3032,163
3033,151
3034,244
3035,176
3036,195
3037,157
3038,77
3039,163
3040,259
3041,225
3042,45
3043,101
3044,355
3045,122
3046,197
3047,184
3048,91
3049,192
3050,280
3051,191
3052,197
3053,92
3054,197
3055,211
3056,178
3057,289
3058,263
3059,338
3060,220
3061,345
3062,186
3063,84
3064,320
3065,33
3066,150
3067,83
3068,177
3069,270
3070,264
3071,166
3072,183
3073,220
3074,113
3075,188
3076,190
3077,120
3078,214
3079,124
3080,119
3081,304
3082,90
3083,272
3084,219
3085,245
3086,207
3087,276
3088,172
3089,86
3090,94
3091,134
3092,34
3093,182
3094,181
3095,168
3096,177
3097,305
3098,69
3099,122
3100,312
3101,186
3102,336
3103,360
3104,243
3105,153
3106,268
3107,83
3108,58
3109,70
3110,256
3111,164
3112,194
3113,312
3114,100
3115,232
3116,328
3117,101
3118,51
3119,233
3120,226
3121,161
3122,350
3123,299
3124,307
3125,236
3126,23
3127,235
3128,268
3129,323
3130,256
3131,120
3132,364
3133,301
3134,147
3135,122
3136,132
3137,257
3138,169
3139,154
3140,319
3141,274
3142,69
3143,157
3144,302
3145,120
3146,52
3147,27
3148,100
3149,345
3150,168
3151,216
3152,191
3153,262
3154,242
3155,33
3156,312
3157,56
3158,31
3159,223
3160,198
3161,315
3162,234
3163,103
3164,248
3165,65
3166,152
3167,237
3168,249
3169,202
3170,249
3171,321
3172,65
3173,67
3174,137
3175,77
3176,102
3177,172
3178,188
3179,264
3180,133
3181,97
3182,44
3183,163
3184,190
3185,122
3186,213
3187,75
3188,189
3189,282
3190,43
3191,223
3192,267
3193,185
3194,179
3195,327
3196,102
3197,185
3198,27
3199,320
3200,30
3201,3
3202,167
3203,13
3204,120
3205,120
3206,277
3207,102
3208,225
3209,169
3210,322
3211,77
3212,258
3213,53
3214,254
3215,211
3216,195
3217,300
3218,290
3219,204
3220,171
3221,179
3222,186
3223,267
3224,103
3225,75
3226,228
3227,124
3228,310
3229,329
3230,124
3231,354
3232,279
3233,284
3234,203
3235,256
3236,167
3237,69
3238,188
3239,233
3240,159
3241,146
3242,143
3243,99
3244,123
3245,144
3246,167
3247,136
3248,194
3249,92
3250,208
3251,152
3252,253
3253,105
3254,201
3255,23
3256,230
3257,276
3258,316
3259,137
3260,330
3261,122
3262,220
3263,53
3264,45
3265,190
3266,137
3267,321
3268,148
3269,86
3270,165
3271,103
3272,189
3273,262
3274,270
3275,114
3276,216
3277,161
3278,53
3279,216
3280,235
3281,103
3282,249
3283,175
3284,55
3285,185
3286,19
3287,77
3288,273
3289,181
3290,314
3291,226
3292,159
3293,230
3294,116
3295,263
3296,295
3297,94
3298,129
3299,312
3300,214
3301,129
3302,347
3303,71
3304,118
3305,231
3306,97
3307,249
3308,136
3309,183
3310,362
3311,115
3312,54
3313,256
3314,199
3315,250
3316,251
3317,268
3318,249
3319,327
3320,38
3321,243
3322,295
3323,135
3324,135
3325,69
3326,194
3327,125
3328,21
3329,291
3330,152
3331,208
3332,133
3333,87
3334,14
3335,168
3336,88
3337,245
3338,298
3339,8
3340,118
3341,216
3342,183
3343,144
3344,134
3345,197
3346,290
3347,68
3348,58
3349,130
3350,227
3351,119
3352,298
3353,108
3354,284
3355,119
3356,42
3357,86
3358,183
3359,25
3360,30
3361,212
3362,92
3363,327
3364,234
3365,177
3366,178
3367,277
3368,234
3369,102
3370,166
3371,164
3372,92
3373,146
3374,258
3375,29
3376,178
3377,159
3378,140
3379,276
3380,128
3381,232
3382,298
3383,65
3384,257
3385,305
3386,294
3387,218
3388,259
3389,136
3390,321
3391,144
3392,103
3393,178
3394,14
3395,299
3396,146
3397,209
3398,207
3399,119
3400,154
3401,314
3402,127
3403,202
3404,102
3405,195
3406,60
3407,149
3408,164
3409,334
3410,150
3411,298
3412,277
3413,154
3414,184
3415,133
3416,220
3417,326
3418,289
3419,307
3420,188
3421,206
3422,153
3423,331
3424,246
3425,49
3426,162
3427,167
3428,74
3429,253
3430,371
3431,196
3432,117
3433,3
3434,158
3435,40
3436,284
3437,380
3438,100
3439,63
3440,224
3441,302
3442,119
3443,88
3444,138
3445,63
3446,262
3447,133
3448,211
3449,305
3450,253
3451,229
3452,150
3453,11
3454,196
3455,343
3456,195
3457,39
3458,352
3459,134
3460,188
3461,231
3462,279
3463,235
3464,224
3465,277
3466,165
3467,92
3468,260
3469,48
3470,124
3471,246
3472,54
3473,286
3474,109
3475,182
3476,96
3477,174
3478,32
3479,313
3480,314
3481,73
3482,291
3483,115
3484,329
3485,81
3486,54
3487,98
3488,289
3489,189
3490,293
3491,190
3492,115
3493,251
3494,328
3495,25
3496,105
3497,270
3498,171
3499,199
3500,325
3501,200
3502,330
3503,119
3504,144
3505,82
3506,193
3507,277
3508,92
3509,153
3510,198
3511,302
3512,192
3513,124
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment