├── .idea
├── .gitignore
├── class_balanced_deep_active_learning.iml
├── inspectionProfiles
│ └── profiles_settings.xml
├── misc.xml
├── modules.xml
└── vcs.xml
├── Cutout
├── LICENSE.md
└── model
│ ├── __pycache__
│ ├── __init__.cpython-35.pyc
│ ├── __init__.cpython-36.pyc
│ ├── resnet.cpython-35.pyc
│ ├── resnet.cpython-36.pyc
│ ├── wide_resnet.cpython-35.pyc
│ └── wide_resnet.cpython-36.pyc
│ └── resnet.py
├── README.md
├── __pycache__
└── dataset.cpython-36.pyc
├── cifar100_checkpoints_active_set
├── active_set_cycle_0.txt
├── long_tailed_dataset_IF_1.txt
├── long_tailed_dataset_IF_10.txt
├── long_tailed_dataset_IF_3.txt
└── long_tailed_dataset_IF_5.txt
├── cifar10_checkpoints_active_set
├── active_set_cycle_0.txt
├── long_tailed_dataset_IF_1.txt
├── long_tailed_dataset_IF_10.txt
└── long_tailed_dataset_IF_3.txt
├── dataset.py
├── framework.png
├── query_strategies
├── __init__.py
├── bayesian_active_learning_disagreement_dropout.py
├── entropy_sampling.py
├── kcenter_greedy.py
├── random_sampling.py
└── strategy.py
├── run.py
└── run_cycle_0.py
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /workspace.xml
3 |
--------------------------------------------------------------------------------
/.idea/class_balanced_deep_active_learning.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Cutout/LICENSE.md:
--------------------------------------------------------------------------------
1 | Copyright (c) 2011-2019 GitHub Inc.
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4 |
5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6 |
7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/Cutout/model/__pycache__/__init__.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Javadzb/Class-Balanced-AL/70cff9d5a9da6123ddf170e2e0e614f2f8ce1f4e/Cutout/model/__pycache__/__init__.cpython-35.pyc
--------------------------------------------------------------------------------
/Cutout/model/__pycache__/__init__.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Javadzb/Class-Balanced-AL/70cff9d5a9da6123ddf170e2e0e614f2f8ce1f4e/Cutout/model/__pycache__/__init__.cpython-36.pyc
--------------------------------------------------------------------------------
/Cutout/model/__pycache__/resnet.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Javadzb/Class-Balanced-AL/70cff9d5a9da6123ddf170e2e0e614f2f8ce1f4e/Cutout/model/__pycache__/resnet.cpython-35.pyc
--------------------------------------------------------------------------------
/Cutout/model/__pycache__/resnet.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Javadzb/Class-Balanced-AL/70cff9d5a9da6123ddf170e2e0e614f2f8ce1f4e/Cutout/model/__pycache__/resnet.cpython-36.pyc
--------------------------------------------------------------------------------
/Cutout/model/__pycache__/wide_resnet.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Javadzb/Class-Balanced-AL/70cff9d5a9da6123ddf170e2e0e614f2f8ce1f4e/Cutout/model/__pycache__/wide_resnet.cpython-35.pyc
--------------------------------------------------------------------------------
/Cutout/model/__pycache__/wide_resnet.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Javadzb/Class-Balanced-AL/70cff9d5a9da6123ddf170e2e0e614f2f8ce1f4e/Cutout/model/__pycache__/wide_resnet.cpython-36.pyc
--------------------------------------------------------------------------------
/Cutout/model/resnet.py:
--------------------------------------------------------------------------------
1 | '''ResNet18/34/50/101/152 in Pytorch.'''
2 | import torch
3 | import torch.nn as nn
4 | import torch.nn.functional as F
5 |
6 | from torch.autograd import Variable
7 |
8 |
9 | def conv3x3(in_planes, out_planes, stride=1):
10 | return nn.Conv2d(in_planes, out_planes, kernel_size=3, stride=stride, padding=1, bias=False)
11 |
12 |
13 | class BasicBlock(nn.Module):
14 | expansion = 1
15 |
16 | def __init__(self, in_planes, planes, stride=1):
17 | super(BasicBlock, self).__init__()
18 | self.conv1 = conv3x3(in_planes, planes, stride)
19 | self.bn1 = nn.BatchNorm2d(planes)
20 | self.conv2 = conv3x3(planes, planes)
21 | self.bn2 = nn.BatchNorm2d(planes)
22 |
23 | self.shortcut = nn.Sequential()
24 | if stride != 1 or in_planes != self.expansion*planes:
25 | self.shortcut = nn.Sequential(
26 | nn.Conv2d(in_planes, self.expansion*planes, kernel_size=1, stride=stride, bias=False),
27 | nn.BatchNorm2d(self.expansion*planes)
28 | )
29 |
30 | def forward(self, x):
31 | out = F.relu(self.bn1(self.conv1(x)))
32 | out = self.bn2(self.conv2(out))
33 | out += self.shortcut(x)
34 | out = F.relu(out)
35 | return out
36 |
37 |
38 | class Bottleneck(nn.Module):
39 | expansion = 4
40 |
41 | def __init__(self, in_planes, planes, stride=1):
42 | super(Bottleneck, self).__init__()
43 | self.conv1 = nn.Conv2d(in_planes, planes, kernel_size=1, bias=False)
44 | self.bn1 = nn.BatchNorm2d(planes)
45 | self.conv2 = nn.Conv2d(planes, planes, kernel_size=3, stride=stride, padding=1, bias=False)
46 | self.bn2 = nn.BatchNorm2d(planes)
47 | self.conv3 = nn.Conv2d(planes, self.expansion*planes, kernel_size=1, bias=False)
48 | self.bn3 = nn.BatchNorm2d(self.expansion*planes)
49 |
50 | self.shortcut = nn.Sequential()
51 | if stride != 1 or in_planes != self.expansion*planes:
52 | self.shortcut = nn.Sequential(
53 | nn.Conv2d(in_planes, self.expansion*planes, kernel_size=1, stride=stride, bias=False),
54 | nn.BatchNorm2d(self.expansion*planes)
55 | )
56 |
57 | def forward(self, x):
58 | out = F.relu(self.bn1(self.conv1(x)))
59 | out = F.relu(self.bn2(self.conv2(out)))
60 | out = self.bn3(self.conv3(out))
61 | out += self.shortcut(x)
62 | out = F.relu(out)
63 | return out
64 |
65 |
66 | class ResNet(nn.Module):
67 | def __init__(self, block, num_blocks, num_classes=10):
68 | super(ResNet, self).__init__()
69 | self.in_planes = 64
70 |
71 | self.conv1 = conv3x3(3,64)
72 | self.bn1 = nn.BatchNorm2d(64)
73 | self.layer1 = self._make_layer(block, 64, num_blocks[0], stride=1)
74 | self.layer2 = self._make_layer(block, 128, num_blocks[1], stride=2)
75 | self.layer3 = self._make_layer(block, 256, num_blocks[2], stride=2)
76 | self.layer4 = self._make_layer(block, 512, num_blocks[3], stride=2)
77 | self.linear = nn.Linear(512*block.expansion, num_classes)
78 |
79 | def _make_layer(self, block, planes, num_blocks, stride):
80 | strides = [stride] + [1]*(num_blocks-1)
81 | layers = []
82 | for stride in strides:
83 | layers.append(block(self.in_planes, planes, stride))
84 | self.in_planes = planes * block.expansion
85 | return nn.Sequential(*layers)
86 |
87 | def forward(self, x):
88 | out = F.relu(self.bn1(self.conv1(x)))
89 | out = self.layer1(out)
90 | out = self.layer2(out)
91 | out = self.layer3(out)
92 | out = self.layer4(out)
93 | out = F.avg_pool2d(out, 4)
94 | emb = out.view(out.size(0), -1)
95 | out = self.linear(emb)
96 | return out, emb
97 |
98 |
99 | def ResNet18(num_classes=10):
100 | return ResNet(BasicBlock, [2,2,2,2], num_classes)
101 |
102 | def ResNet34(num_classes=10):
103 | return ResNet(BasicBlock, [3,4,6,3], num_classes)
104 |
105 | def ResNet50(num_classes=10):
106 | return ResNet(Bottleneck, [3,4,6,3], num_classes)
107 |
108 | def ResNet101(num_classes=10):
109 | return ResNet(Bottleneck, [3,4,23,3], num_classes)
110 |
111 | def ResNet152(num_classes=10):
112 | return ResNet(Bottleneck, [3,8,36,3], num_classes)
113 |
114 | def test_resnet():
115 | net = ResNet50()
116 | y = net(Variable(torch.randn(1,3,32,32)))
117 | print(y.size())
118 |
119 | # test_resnet()
120 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Class-Balanced Active Learning for Image Classification:
2 |
3 | ## Description
4 |
5 | This repository contains code for the paper Class-Balanced Active Learning for Image Classification:
6 |
7 | http://arxiv.org/abs/2110.04543
8 |
9 |
10 |
11 |
12 | ### Dependencies
13 | Install Anaconda environment:
14 | https://docs.anaconda.com/anaconda/install/linux/
15 |
16 | Install PyTorch :
17 | ```
18 | conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch
19 | ```
20 | Install CVXPY python package:
21 | https://www.cvxpy.org/install/
22 |
23 | Install Gurobi optimizer and its licenese:
24 | https://www.gurobi.com/gurobi-and-anaconda-for-linux/
25 |
26 |
27 | ## Getting Started
28 |
29 | Before starting AL cycles, execute run_cycl_0.py on cifar10/cifar100 dataset to obtain the imbalance dataset (only once) and train the model on initial sampels:
30 | ```
31 | CUDA_VISIBLE_DEVICES=0 python run_cycle_0.py --method RandomSampling --dataset cifar100
32 | ```
33 |
34 | ## Executing program
35 | To run Active Learning cycles use python run.py with the following arguments:
36 |
37 | --imb_type (To specify the imbalance type of the dataset)
38 |
39 | --imb_factor (To specify the imbalance factor)
40 |
41 | --dataset (To specify the dataset)
42 |
43 | ### Examples:
44 |
45 | To run standard EntropySampling method on CIFAR100 dataset and step imbalance and imbalance factor=0.1:
46 | ```
47 | CUDA_VISIBLE_DEVICES=0 python run.py --method EntropySampling_imbalance --dataset cifar100 --imb_factor 0.1 --imb_type step
48 | ```
49 | To run EntropySampling with optimal class balancing add "optimal" in the method name, for example:
50 | ```
51 | CUDA_VISIBLE_DEVICES=0 python run.py --method EntropySampling_optimal --dataset cifar100 --imb_factor 0.1 --imb_type step
52 | ```
53 | Other sampling strategies are available by --mehtod argument:
54 | ```
55 | CUDA_VISIBLE_DEVICES=0 python run.py --method RandomSampling --dataset cifar100 --imb_factor 0.1 --imb_type step
56 | ```
57 |
58 | ## Contributors
59 | Javad Zolfaghari Bengar (djavad.z@gmail.com)
60 |
61 | Laura Lopez Fuentes (lopezfuenteslaura@gmail.com )
62 |
--------------------------------------------------------------------------------
/__pycache__/dataset.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Javadzb/Class-Balanced-AL/70cff9d5a9da6123ddf170e2e0e614f2f8ce1f4e/__pycache__/dataset.cpython-36.pyc
--------------------------------------------------------------------------------
/cifar100_checkpoints_active_set/active_set_cycle_0.txt:
--------------------------------------------------------------------------------
1 | 32048
2 | 34665
3 | 5129
4 | 7155
5 | 47363
6 | 48154
7 | 32197
8 | 3594
9 | 26488
10 | 9470
11 | 33563
12 | 17384
13 | 13181
14 | 7143
15 | 32049
16 | 20169
17 | 42847
18 | 30631
19 | 15274
20 | 15753
21 | 31066
22 | 32404
23 | 32233
24 | 48921
25 | 7136
26 | 37402
27 | 3780
28 | 34921
29 | 18064
30 | 21328
31 | 19002
32 | 32124
33 | 25342
34 | 43530
35 | 35137
36 | 13971
37 | 29399
38 | 353
39 | 40419
40 | 36323
41 | 33748
42 | 42660
43 | 45616
44 | 22768
45 | 33983
46 | 33950
47 | 31148
48 | 41582
49 | 40607
50 | 11121
51 | 41001
52 | 2664
53 | 47926
54 | 732
55 | 33601
56 | 32884
57 | 28068
58 | 15334
59 | 16469
60 | 15923
61 | 48486
62 | 16665
63 | 4165
64 | 46390
65 | 25974
66 | 39375
67 | 40959
68 | 9352
69 | 10151
70 | 36171
71 | 13644
72 | 47764
73 | 25218
74 | 27365
75 | 12609
76 | 8353
77 | 44037
78 | 44386
79 | 40410
80 | 19879
81 | 41032
82 | 44461
83 | 4162
84 | 12218
85 | 10550
86 | 23552
87 | 31695
88 | 39694
89 | 30798
90 | 4969
91 | 31084
92 | 41828
93 | 10138
94 | 47058
95 | 25375
96 | 41939
97 | 45118
98 | 46920
99 | 1843
100 | 18023
101 | 18198
102 | 3998
103 | 13008
104 | 12762
105 | 34272
106 | 38198
107 | 43072
108 | 27394
109 | 18297
110 | 41095
111 | 23209
112 | 5229
113 | 20468
114 | 24759
115 | 12114
116 | 31542
117 | 8636
118 | 37797
119 | 27334
120 | 41473
121 | 22662
122 | 48670
123 | 11139
124 | 47937
125 | 31575
126 | 31106
127 | 42839
128 | 1705
129 | 35509
130 | 30812
131 | 44202
132 | 18033
133 | 9242
134 | 27959
135 | 28215
136 | 2051
137 | 38781
138 | 7474
139 | 29905
140 | 17606
141 | 10227
142 | 38345
143 | 45372
144 | 21617
145 | 15946
146 | 1895
147 | 24074
148 | 32596
149 | 12956
150 | 11384
151 | 48036
152 | 21860
153 | 5360
154 | 30279
155 | 31198
156 | 41049
157 | 34638
158 | 41498
159 | 2227
160 | 383
161 | 48363
162 | 27931
163 | 36102
164 | 12671
165 | 22702
166 | 15012
167 | 23619
168 | 21334
169 | 943
170 | 26531
171 | 30741
172 | 25763
173 | 48132
174 | 25000
175 | 48665
176 | 26990
177 | 48422
178 | 36021
179 | 22147
180 | 27153
181 | 20048
182 | 4585
183 | 44961
184 | 3661
185 | 27383
186 | 41083
187 | 13486
188 | 5292
189 | 45270
190 | 24428
191 | 11629
192 | 22502
193 | 13579
194 | 37887
195 | 42005
196 | 40064
197 | 38683
198 | 27605
199 | 46881
200 | 20654
201 | 2949
202 | 44176
203 | 7290
204 | 33996
205 | 49929
206 | 49186
207 | 40386
208 | 13454
209 | 5841
210 | 25399
211 | 43660
212 | 12053
213 | 45664
214 | 19191
215 | 10518
216 | 48926
217 | 488
218 | 40069
219 | 38364
220 | 1636
221 | 1308
222 | 37434
223 | 24545
224 | 10983
225 | 27607
226 | 916
227 | 20699
228 | 13029
229 | 2769
230 | 44162
231 | 26809
232 | 48971
233 | 6565
234 | 41747
235 | 1148
236 | 29036
237 | 11359
238 | 25090
239 | 43786
240 | 34974
241 | 6993
242 | 45780
243 | 41557
244 | 825
245 | 49483
246 | 40204
247 | 3654
248 | 31822
249 | 31321
250 | 8008
251 | 2345
252 | 40613
253 | 13519
254 | 10084
255 | 21922
256 | 804
257 | 33624
258 | 22904
259 | 37386
260 | 46219
261 | 33561
262 | 40683
263 | 15354
264 | 19355
265 | 44396
266 | 620
267 | 37310
268 | 22119
269 | 31627
270 | 15124
271 | 25754
272 | 18754
273 | 46787
274 | 45727
275 | 36604
276 | 8968
277 | 23773
278 | 4662
279 | 37170
280 | 706
281 | 6563
282 | 48677
283 | 10692
284 | 14617
285 | 15607
286 | 36044
287 | 48230
288 | 40507
289 | 16708
290 | 14794
291 | 26362
292 | 39663
293 | 7349
294 | 44811
295 | 21530
296 | 46839
297 | 23252
298 | 30100
299 | 14530
300 | 25752
301 | 34768
302 | 30577
303 | 33819
304 | 31184
305 | 44426
306 | 43921
307 | 46706
308 | 22383
309 | 23657
310 | 36786
311 | 38409
312 | 22809
313 | 21604
314 | 33034
315 | 8370
316 | 29444
317 | 12770
318 | 22055
319 | 37679
320 | 29403
321 | 39418
322 | 13898
323 | 46823
324 | 6816
325 | 24832
326 | 15546
327 | 48404
328 | 12885
329 | 28510
330 | 46913
331 | 33822
332 | 16456
333 | 30681
334 | 41529
335 | 30398
336 | 31156
337 | 13037
338 | 28779
339 | 42919
340 | 288
341 | 4952
342 | 48589
343 | 36254
344 | 12302
345 | 40694
346 | 23387
347 | 28857
348 | 34169
349 | 31802
350 | 17301
351 | 42560
352 | 43668
353 | 15243
354 | 9229
355 | 15496
356 | 1219
357 | 16463
358 | 9779
359 | 36978
360 | 31769
361 | 31399
362 | 22332
363 | 26112
364 | 13985
365 | 35405
366 | 31549
367 | 41071
368 | 26563
369 | 49282
370 | 19419
371 | 31764
372 | 9816
373 | 27778
374 | 4978
375 | 2204
376 | 35781
377 | 44210
378 | 45221
379 | 45534
380 | 30772
381 | 33138
382 | 19272
383 | 17286
384 | 13162
385 | 1054
386 | 27712
387 | 16537
388 | 32791
389 | 1015
390 | 35290
391 | 46307
392 | 49939
393 | 15631
394 | 35574
395 | 9862
396 | 43643
397 | 46353
398 | 40967
399 | 13297
400 | 33222
401 | 43847
402 | 575
403 | 24570
404 | 37912
405 | 46161
406 | 12964
407 | 16839
408 | 39380
409 | 7699
410 | 17471
411 | 1362
412 | 43550
413 | 11617
414 | 13716
415 | 22237
416 | 11955
417 | 37594
418 | 5033
419 | 7120
420 | 219
421 | 30971
422 | 17517
423 | 45233
424 | 14485
425 | 35238
426 | 44666
427 | 7119
428 | 11789
429 | 13298
430 | 47175
431 | 42107
432 | 22303
433 | 7286
434 | 27326
435 | 26948
436 | 42892
437 | 3286
438 | 11819
439 | 15444
440 | 22116
441 | 34945
442 | 14786
443 | 42056
444 | 27306
445 | 6701
446 | 17540
447 | 4900
448 | 27233
449 | 38915
450 | 4291
451 | 5209
452 | 19031
453 | 42832
454 | 21560
455 | 42510
456 | 8925
457 | 9397
458 | 31474
459 | 34604
460 | 27080
461 | 42318
462 | 17168
463 | 33710
464 | 39657
465 | 48002
466 | 45207
467 | 20726
468 | 11776
469 | 47551
470 | 27011
471 | 9125
472 | 32516
473 | 24290
474 | 31302
475 | 39616
476 | 4783
477 | 41026
478 | 29486
479 | 34038
480 | 32890
481 | 30369
482 | 32145
483 | 25420
484 | 24119
485 | 48878
486 | 30718
487 | 42016
488 | 41232
489 | 36431
490 | 15464
491 | 39391
492 | 33363
493 | 22423
494 | 13632
495 | 12405
496 | 38269
497 | 31463
498 | 7106
499 | 25340
500 | 35537
501 | 18346
502 | 31504
503 | 2387
504 | 30637
505 | 46800
506 | 24282
507 | 3380
508 | 47187
509 | 11858
510 | 20708
511 | 40788
512 | 10280
513 | 22107
514 | 7005
515 | 21994
516 | 13552
517 | 38293
518 | 29346
519 | 26039
520 | 10062
521 | 16202
522 | 31075
523 | 3059
524 | 21811
525 | 38253
526 | 36677
527 | 41430
528 | 40624
529 | 19470
530 | 36990
531 | 26651
532 | 25111
533 | 3198
534 | 46313
535 | 44056
536 | 17652
537 | 532
538 | 30969
539 | 33749
540 | 24296
541 | 17256
542 | 46809
543 | 26550
544 | 42675
545 | 36023
546 | 47552
547 | 13554
548 | 37726
549 | 27957
550 | 49280
551 | 49123
552 | 47836
553 | 38577
554 | 44269
555 | 25756
556 | 36685
557 | 8464
558 | 8719
559 | 10971
560 | 22764
561 | 40608
562 | 3253
563 | 13773
564 | 25217
565 | 13202
566 | 23415
567 | 49803
568 | 49327
569 | 43515
570 | 8690
571 | 22841
572 | 3
573 | 49514
574 | 1004
575 | 32422
576 | 48825
577 | 39899
578 | 30009
579 | 22898
580 | 34900
581 | 12203
582 | 37688
583 | 27340
584 | 49930
585 | 8646
586 | 6874
587 | 48407
588 | 19396
589 | 14242
590 | 5602
591 | 6740
592 | 181
593 | 21486
594 | 21862
595 | 7580
596 | 23010
597 | 28789
598 | 44735
599 | 254
600 | 23592
601 | 23014
602 | 43787
603 | 42691
604 | 11612
605 | 35168
606 | 12123
607 | 46907
608 | 41827
609 | 49078
610 | 26922
611 | 39981
612 | 43916
613 | 25148
614 | 26837
615 | 27597
616 | 10034
617 | 26974
618 | 22658
619 | 43279
620 | 15081
621 | 30781
622 | 34027
623 | 17334
624 | 47402
625 | 4525
626 | 1016
627 | 41561
628 | 38675
629 | 11012
630 | 24113
631 | 345
632 | 25743
633 | 36717
634 | 33517
635 | 33524
636 | 45549
637 | 32119
638 | 5609
639 | 28676
640 | 27781
641 | 35181
642 | 9574
643 | 43739
644 | 18010
645 | 39692
646 | 9466
647 | 21364
648 | 11403
649 | 10784
650 | 36386
651 | 39505
652 | 45070
653 | 29766
654 | 34915
655 | 35532
656 | 2471
657 | 29151
658 | 24661
659 | 20671
660 | 39903
661 | 6134
662 | 23978
663 | 44944
664 | 12809
665 | 12379
666 | 37026
667 | 38400
668 | 31037
669 | 40392
670 | 31336
671 | 47911
672 | 37210
673 | 35404
674 | 5627
675 | 14452
676 | 38666
677 | 37429
678 | 7411
679 | 49326
680 | 7899
681 | 29916
682 | 12937
683 | 10130
684 | 9427
685 | 44296
686 | 28819
687 | 27236
688 | 23785
689 | 39787
690 | 20010
691 | 43545
692 | 11291
693 | 44490
694 | 17782
695 | 40746
696 | 9578
697 | 18290
698 | 47271
699 | 723
700 | 9663
701 | 17673
702 | 35312
703 | 22682
704 | 4864
705 | 7559
706 | 15452
707 | 15714
708 | 48283
709 | 7328
710 | 34876
711 | 35207
712 | 33945
713 | 25493
714 | 31789
715 | 40436
716 | 49366
717 | 17718
718 | 33932
719 | 33449
720 | 16949
721 | 37340
722 | 20418
723 | 32161
724 | 43816
725 | 35458
726 | 32255
727 | 11754
728 | 9821
729 | 42966
730 | 15045
731 | 24672
732 | 48150
733 | 46164
734 | 31760
735 | 40845
736 | 29961
737 | 22868
738 | 6684
739 | 799
740 | 19122
741 | 40350
742 | 8026
743 | 41179
744 | 48116
745 | 45345
746 | 27878
747 | 20573
748 | 5628
749 | 35539
750 | 4441
751 | 33939
752 | 30143
753 | 19588
754 | 5495
755 | 4023
756 | 15355
757 | 47364
758 | 48736
759 | 34813
760 | 31861
761 | 16222
762 | 6579
763 | 1560
764 | 852
765 | 44849
766 | 21501
767 | 29354
768 | 37806
769 | 6010
770 | 36811
771 | 36331
772 | 25964
773 | 49706
774 | 30625
775 | 11294
776 | 16342
777 | 24277
778 | 32488
779 | 42487
780 | 8990
781 | 18413
782 | 7532
783 | 44010
784 | 30236
785 | 12348
786 | 36038
787 | 43709
788 | 17297
789 | 15239
790 | 37524
791 | 22932
792 | 23531
793 | 24347
794 | 17213
795 | 15890
796 | 31091
797 | 24674
798 | 2398
799 | 16716
800 | 28315
801 | 16965
802 | 29373
803 | 5166
804 | 15360
805 | 38681
806 | 46643
807 | 26710
808 | 33489
809 | 23019
810 | 10616
811 | 26760
812 | 24725
813 | 45357
814 | 9860
815 | 39606
816 | 39201
817 | 33012
818 | 29244
819 | 24132
820 | 45065
821 | 31226
822 | 27097
823 | 43093
824 | 32995
825 | 14362
826 | 15577
827 | 14182
828 | 4046
829 | 2911
830 | 23312
831 | 6409
832 | 8157
833 | 22380
834 | 6965
835 | 18013
836 | 44380
837 | 29799
838 | 27220
839 | 10254
840 | 10619
841 | 43251
842 | 21718
843 | 15439
844 | 31620
845 | 22549
846 | 35745
847 | 36719
848 | 12256
849 | 40981
850 | 23487
851 | 35773
852 | 6130
853 | 40652
854 | 12668
855 | 1452
856 | 3880
857 | 22873
858 | 10402
859 | 21011
860 | 34259
861 | 43873
862 | 6175
863 | 42508
864 | 18244
865 | 17705
866 | 18697
867 | 17496
868 | 12027
869 | 21809
870 | 40300
871 | 3079
872 | 10131
873 | 32797
874 | 16850
875 | 26801
876 | 20846
877 | 49328
878 | 36800
879 | 17716
880 | 46484
881 | 29395
882 | 48065
883 | 41312
884 | 24846
885 | 11719
886 | 28499
887 | 11578
888 | 1433
889 | 23599
890 | 33719
891 | 8044
892 | 22427
893 | 11720
894 | 26495
895 | 1284
896 | 26373
897 | 16098
898 | 49563
899 | 5037
900 | 32476
901 | 42420
902 | 40085
903 | 36761
904 | 37129
905 | 42969
906 | 30043
907 | 48813
908 | 27613
909 | 4386
910 | 33432
911 | 31274
912 | 24602
913 | 21190
914 | 19796
915 | 13606
916 | 21960
917 | 46884
918 | 28829
919 | 11999
920 | 17267
921 | 20174
922 | 39706
923 | 2692
924 | 42953
925 | 36886
926 | 46925
927 | 26947
928 | 2434
929 | 39460
930 | 31512
931 | 28519
932 | 24839
933 | 37203
934 | 23875
935 | 26101
936 | 12008
937 | 3570
938 | 37225
939 | 40498
940 | 31265
941 | 4107
942 | 20543
943 | 75
944 | 10144
945 | 18503
946 | 1043
947 | 27897
948 | 42724
949 | 27981
950 | 44991
951 | 28663
952 | 18019
953 | 33059
954 | 26861
955 | 8687
956 | 15891
957 | 20664
958 | 38846
959 | 30729
960 | 22013
961 | 45169
962 | 23448
963 | 44531
964 | 49450
965 | 12342
966 | 43817
967 | 12118
968 | 20607
969 | 39610
970 | 33960
971 | 1052
972 | 686
973 | 13983
974 | 24439
975 | 7009
976 | 25925
977 | 48193
978 | 9986
979 | 20489
980 | 39961
981 | 27023
982 | 12628
983 | 762
984 | 40669
985 | 18444
986 | 5383
987 | 19519
988 | 12566
989 | 22482
990 | 6556
991 | 30296
992 | 37847
993 | 11019
994 | 47945
995 | 1470
996 | 2767
997 | 28927
998 | 870
999 | 23346
1000 | 19683
1001 | 33242
1002 | 16302
1003 | 7585
1004 | 4768
1005 | 43393
1006 | 26111
1007 | 35391
1008 | 17470
1009 | 38722
1010 | 27548
1011 | 7285
1012 | 10335
1013 | 13195
1014 | 25839
1015 | 41924
1016 | 29137
1017 | 44914
1018 | 30136
1019 | 13382
1020 | 48767
1021 | 12253
1022 | 17483
1023 | 10397
1024 | 4989
1025 | 28391
1026 | 44177
1027 | 45035
1028 | 49630
1029 | 16649
1030 | 47391
1031 | 47482
1032 | 41449
1033 | 16462
1034 | 3393
1035 | 32297
1036 | 26853
1037 | 40932
1038 | 25015
1039 | 46677
1040 | 17415
1041 | 12086
1042 | 40053
1043 | 31968
1044 | 16724
1045 | 12314
1046 | 34855
1047 | 5727
1048 | 30025
1049 | 46001
1050 | 19315
1051 | 45457
1052 | 27171
1053 | 2738
1054 | 14451
1055 | 39490
1056 | 18129
1057 | 31178
1058 | 48668
1059 | 37522
1060 | 22990
1061 | 38040
1062 | 48598
1063 | 6650
1064 | 40977
1065 | 28523
1066 | 3692
1067 | 1280
1068 | 6585
1069 | 20131
1070 | 46251
1071 | 15877
1072 | 16826
1073 | 47005
1074 | 42653
1075 | 11888
1076 | 30132
1077 | 6979
1078 | 9433
1079 | 13092
1080 | 37146
1081 | 12355
1082 | 18162
1083 | 33008
1084 | 33982
1085 | 39625
1086 | 14109
1087 | 6357
1088 | 48052
1089 | 19735
1090 | 43714
1091 | 48260
1092 | 35586
1093 | 44505
1094 | 18613
1095 | 2495
1096 | 37883
1097 | 27118
1098 | 14404
1099 | 2225
1100 | 8818
1101 | 29950
1102 | 8706
1103 | 8603
1104 | 43471
1105 | 8117
1106 | 13573
1107 | 2850
1108 | 35935
1109 | 24415
1110 | 37219
1111 | 29131
1112 | 9038
1113 | 33620
1114 | 47145
1115 | 24165
1116 | 40966
1117 | 6881
1118 | 9322
1119 | 21219
1120 | 19884
1121 | 13977
1122 | 25186
1123 | 22222
1124 | 26982
1125 | 15804
1126 | 41988
1127 | 36093
1128 | 24147
1129 | 14507
1130 | 31292
1131 | 40909
1132 | 5725
1133 | 11693
1134 | 16458
1135 | 6526
1136 | 48107
1137 | 43947
1138 | 24750
1139 | 28665
1140 | 40822
1141 | 15017
1142 | 632
1143 | 41765
1144 | 49821
1145 | 45986
1146 | 17464
1147 | 24311
1148 | 27497
1149 | 22774
1150 | 19617
1151 | 44277
1152 | 10627
1153 | 37610
1154 | 7437
1155 | 31878
1156 | 1590
1157 | 13688
1158 | 14898
1159 | 3041
1160 | 26116
1161 | 43478
1162 | 26666
1163 | 4464
1164 | 27041
1165 | 39836
1166 | 16132
1167 | 40818
1168 | 8479
1169 | 45808
1170 | 11285
1171 | 39960
1172 | 35378
1173 | 28100
1174 | 19861
1175 | 29111
1176 | 8469
1177 | 6489
1178 | 2232
1179 | 3288
1180 | 42373
1181 | 16703
1182 | 21173
1183 | 15386
1184 | 1208
1185 | 17154
1186 | 43037
1187 | 30960
1188 | 39696
1189 | 11418
1190 | 31830
1191 | 2394
1192 | 20791
1193 | 652
1194 | 28118
1195 | 17222
1196 | 12403
1197 | 34004
1198 | 27202
1199 | 901
1200 | 2877
1201 | 18612
1202 | 14833
1203 | 36083
1204 | 26775
1205 | 3715
1206 | 39839
1207 | 2366
1208 | 38810
1209 | 26788
1210 | 23170
1211 | 15594
1212 | 40463
1213 | 24107
1214 | 6482
1215 | 21318
1216 | 20144
1217 | 29608
1218 | 3348
1219 | 27264
1220 | 42550
1221 | 29667
1222 | 4668
1223 | 7175
1224 | 20044
1225 | 49535
1226 | 29822
1227 | 46359
1228 | 24129
1229 | 44578
1230 | 22641
1231 | 13264
1232 | 11430
1233 | 31094
1234 | 21175
1235 | 8950
1236 | 18040
1237 | 13559
1238 | 7676
1239 | 42655
1240 | 1155
1241 | 26741
1242 | 21978
1243 | 4759
1244 | 21178
1245 | 23802
1246 | 24323
1247 | 1110
1248 | 1524
1249 | 35385
1250 | 13216
1251 | 30925
1252 | 15407
1253 | 22202
1254 | 40316
1255 | 21192
1256 | 11878
1257 | 17873
1258 | 40871
1259 | 27055
1260 | 25211
1261 | 31983
1262 | 35700
1263 | 33804
1264 | 22907
1265 | 8488
1266 | 4886
1267 | 17968
1268 | 23362
1269 | 24996
1270 | 6655
1271 | 29684
1272 | 31255
1273 | 15632
1274 | 10101
1275 | 3595
1276 | 9121
1277 | 35225
1278 | 6589
1279 | 35549
1280 | 13674
1281 | 43577
1282 | 6831
1283 | 15340
1284 | 3651
1285 | 14289
1286 | 45846
1287 | 17338
1288 | 36164
1289 | 35314
1290 | 3036
1291 | 33963
1292 | 40247
1293 | 28453
1294 | 49373
1295 | 4469
1296 | 30687
1297 | 10686
1298 | 40273
1299 | 17937
1300 | 8350
1301 | 36453
1302 | 48333
1303 | 26176
1304 | 2007
1305 | 14243
1306 | 36090
1307 | 46224
1308 | 23364
1309 | 13564
1310 | 7591
1311 | 12046
1312 | 21841
1313 | 48807
1314 | 1776
1315 | 48109
1316 | 27637
1317 | 18294
1318 | 33567
1319 | 43904
1320 | 3933
1321 | 31629
1322 | 32822
1323 | 32611
1324 | 6688
1325 | 990
1326 | 12614
1327 | 45828
1328 | 20792
1329 | 26159
1330 | 20434
1331 | 24881
1332 | 16755
1333 | 13115
1334 | 29945
1335 | 42229
1336 | 25795
1337 | 26091
1338 | 38807
1339 | 7920
1340 | 6967
1341 | 26055
1342 | 8503
1343 | 23914
1344 | 11610
1345 | 40415
1346 | 7486
1347 | 18506
1348 | 9905
1349 | 21187
1350 | 48803
1351 | 9832
1352 | 10410
1353 | 1285
1354 | 47144
1355 | 12487
1356 | 18038
1357 | 17293
1358 | 23356
1359 | 35398
1360 | 39260
1361 | 40262
1362 | 7873
1363 | 4790
1364 | 33737
1365 | 47595
1366 | 22683
1367 | 39659
1368 | 19527
1369 | 12553
1370 | 10875
1371 | 17695
1372 | 30756
1373 | 13874
1374 | 23181
1375 | 49851
1376 | 33013
1377 | 38047
1378 | 391
1379 | 3545
1380 | 20088
1381 | 42141
1382 | 35108
1383 | 30858
1384 | 49948
1385 | 33447
1386 | 20604
1387 | 21408
1388 | 23508
1389 | 26953
1390 | 29979
1391 | 8163
1392 | 46693
1393 | 15494
1394 | 37183
1395 | 31594
1396 | 33515
1397 | 13061
1398 | 1598
1399 | 68
1400 | 16855
1401 | 40660
1402 | 47999
1403 | 29747
1404 | 35166
1405 | 21614
1406 | 18095
1407 | 21728
1408 | 48959
1409 | 49174
1410 | 32408
1411 | 5797
1412 | 4559
1413 | 32503
1414 | 18953
1415 | 37112
1416 | 31816
1417 | 9453
1418 | 49730
1419 | 2044
1420 | 21805
1421 | 31973
1422 | 28572
1423 | 15853
1424 | 18820
1425 | 14800
1426 | 48378
1427 | 20740
1428 | 39904
1429 | 18427
1430 | 40812
1431 | 36081
1432 | 16355
1433 | 38756
1434 | 843
1435 | 12143
1436 | 977
1437 | 48389
1438 | 39879
1439 | 17617
1440 | 47826
1441 | 41634
1442 | 42348
1443 | 35169
1444 | 46263
1445 | 27717
1446 | 28947
1447 | 19488
1448 | 16018
1449 | 28587
1450 | 32621
1451 | 2912
1452 | 43124
1453 | 15084
1454 | 4149
1455 | 25579
1456 | 35092
1457 | 3800
1458 | 49085
1459 | 26682
1460 | 11664
1461 | 11350
1462 | 1316
1463 | 38131
1464 | 21217
1465 | 45032
1466 | 48304
1467 | 5559
1468 | 19794
1469 | 23004
1470 | 15060
1471 | 7098
1472 | 44653
1473 | 47094
1474 | 41419
1475 | 45904
1476 | 9442
1477 | 49063
1478 | 33349
1479 | 18884
1480 | 30211
1481 | 48436
1482 | 23494
1483 | 31805
1484 | 10139
1485 | 21153
1486 | 29880
1487 | 27094
1488 | 39643
1489 | 43521
1490 | 9901
1491 | 49254
1492 | 47487
1493 | 34821
1494 | 28313
1495 | 1834
1496 | 7418
1497 | 3250
1498 | 9994
1499 | 10999
1500 | 28502
1501 | 23732
1502 | 13267
1503 | 28432
1504 | 41522
1505 | 1001
1506 | 27625
1507 | 12659
1508 | 4101
1509 | 31200
1510 | 10690
1511 | 43549
1512 | 34573
1513 | 45764
1514 | 32574
1515 | 11290
1516 | 21345
1517 | 19999
1518 | 5291
1519 | 20071
1520 | 46352
1521 | 23050
1522 | 8216
1523 | 20323
1524 | 10667
1525 | 32745
1526 | 1522
1527 | 18698
1528 | 39529
1529 | 18447
1530 | 27846
1531 | 29269
1532 | 10589
1533 | 45523
1534 | 22379
1535 | 41622
1536 | 3804
1537 | 12797
1538 | 41960
1539 | 44219
1540 | 47155
1541 | 23314
1542 | 41675
1543 | 49204
1544 | 3268
1545 | 30454
1546 | 7103
1547 | 30726
1548 | 27353
1549 | 2511
1550 | 24811
1551 | 25141
1552 | 49418
1553 | 44488
1554 | 708
1555 | 39459
1556 | 36654
1557 | 49005
1558 | 43997
1559 | 15947
1560 | 20000
1561 | 32942
1562 | 27279
1563 | 16525
1564 | 17590
1565 | 32908
1566 | 18855
1567 | 44715
1568 | 16910
1569 | 47566
1570 | 11671
1571 | 48626
1572 | 26061
1573 | 14204
1574 | 30694
1575 | 38508
1576 | 1183
1577 | 2266
1578 | 2066
1579 | 26118
1580 | 7632
1581 | 36189
1582 | 20503
1583 | 30862
1584 | 42530
1585 | 5836
1586 | 16298
1587 | 9751
1588 | 14573
1589 | 6557
1590 | 7204
1591 | 8308
1592 | 26620
1593 | 22778
1594 | 35039
1595 | 36597
1596 | 15529
1597 | 41458
1598 | 48911
1599 | 11127
1600 | 19490
1601 | 13648
1602 | 30464
1603 | 33341
1604 | 33531
1605 | 18707
1606 | 31411
1607 | 29839
1608 | 26328
1609 | 21788
1610 | 45348
1611 | 41070
1612 | 32194
1613 | 1759
1614 | 38548
1615 | 10578
1616 | 16007
1617 | 19990
1618 | 24938
1619 | 30277
1620 | 24065
1621 | 3886
1622 | 16745
1623 | 37542
1624 | 48183
1625 | 7249
1626 | 43191
1627 | 28059
1628 | 30068
1629 | 10472
1630 | 40290
1631 | 36186
1632 | 48180
1633 | 49664
1634 | 14405
1635 | 8098
1636 | 15127
1637 | 35393
1638 | 21980
1639 | 3646
1640 | 25658
1641 | 17499
1642 | 22242
1643 | 13386
1644 | 47773
1645 | 34194
1646 | 48772
1647 | 29195
1648 | 29156
1649 | 5891
1650 | 46813
1651 | 16358
1652 | 18663
1653 | 17610
1654 | 36108
1655 | 6618
1656 | 22731
1657 | 35197
1658 | 20535
1659 | 2098
1660 | 43792
1661 | 7894
1662 | 619
1663 | 6437
1664 | 22739
1665 | 1243
1666 | 25604
1667 | 30259
1668 | 38798
1669 | 44255
1670 | 30957
1671 | 18800
1672 | 26869
1673 | 13106
1674 | 46372
1675 | 30246
1676 | 41715
1677 | 32433
1678 | 20669
1679 | 15543
1680 | 11292
1681 | 47030
1682 | 42303
1683 | 19210
1684 | 23005
1685 | 27119
1686 | 34441
1687 | 21227
1688 | 4388
1689 | 45977
1690 | 3425
1691 | 27773
1692 | 23840
1693 | 48467
1694 | 1332
1695 | 6128
1696 | 23404
1697 | 34478
1698 | 28066
1699 | 9284
1700 | 33470
1701 | 4098
1702 | 27664
1703 | 49987
1704 | 12636
1705 | 23884
1706 | 25992
1707 | 29332
1708 | 7399
1709 | 39601
1710 | 14699
1711 | 4875
1712 | 8494
1713 | 39626
1714 | 9271
1715 | 12039
1716 | 1125
1717 | 8406
1718 | 47241
1719 | 4556
1720 | 25116
1721 | 45666
1722 | 47530
1723 | 17110
1724 | 10238
1725 | 26172
1726 | 21197
1727 | 14378
1728 | 11594
1729 | 10674
1730 | 1938
1731 | 24499
1732 | 35334
1733 | 29129
1734 | 36973
1735 | 13272
1736 | 19437
1737 | 20609
1738 | 39987
1739 | 39647
1740 | 35325
1741 | 35024
1742 | 16611
1743 | 36960
1744 | 36789
1745 | 42407
1746 | 14829
1747 | 22146
1748 | 16299
1749 | 30846
1750 | 48286
1751 | 2229
1752 | 16595
1753 | 1109
1754 | 10633
1755 | 19410
1756 | 13414
1757 | 25025
1758 | 26287
1759 | 20512
1760 | 21964
1761 | 13294
1762 | 22163
1763 | 15457
1764 | 34763
1765 | 455
1766 | 16723
1767 | 28354
1768 | 20765
1769 | 34692
1770 | 27592
1771 | 20533
1772 | 32459
1773 | 13055
1774 | 18145
1775 | 36806
1776 | 19124
1777 | 15883
1778 | 34662
1779 | 33483
1780 | 20477
1781 | 47964
1782 | 49214
1783 | 39415
1784 | 3147
1785 | 3517
1786 | 6969
1787 | 29325
1788 | 30974
1789 | 14294
1790 | 15642
1791 | 42492
1792 | 23089
1793 | 22558
1794 | 12279
1795 | 19143
1796 | 28469
1797 | 20015
1798 | 49876
1799 | 29541
1800 | 31640
1801 | 1886
1802 | 11568
1803 | 35377
1804 | 18756
1805 | 46828
1806 | 7211
1807 | 48720
1808 | 36048
1809 | 26728
1810 | 12593
1811 | 38329
1812 | 27723
1813 | 29913
1814 | 48029
1815 | 26189
1816 | 1878
1817 | 20171
1818 | 40566
1819 | 47960
1820 | 34243
1821 | 12835
1822 | 47418
1823 | 39835
1824 | 17451
1825 | 13747
1826 | 16019
1827 | 27450
1828 | 15280
1829 | 25939
1830 | 8801
1831 | 9197
1832 | 29335
1833 | 14988
1834 | 33283
1835 | 13323
1836 | 8788
1837 | 8859
1838 | 29941
1839 | 10425
1840 | 44451
1841 | 20384
1842 | 4758
1843 | 24152
1844 | 3271
1845 | 5928
1846 | 5170
1847 | 34722
1848 | 29829
1849 | 3610
1850 | 43040
1851 | 33009
1852 | 6520
1853 | 39283
1854 | 21518
1855 | 42139
1856 | 34375
1857 | 5806
1858 | 46912
1859 | 47246
1860 | 45761
1861 | 25915
1862 | 34635
1863 | 16893
1864 | 2982
1865 | 16715
1866 | 45408
1867 | 1613
1868 | 36303
1869 | 23806
1870 | 1556
1871 | 40865
1872 | 14158
1873 | 28485
1874 | 28426
1875 | 14840
1876 | 24465
1877 | 5442
1878 | 7544
1879 | 39124
1880 | 10937
1881 | 30561
1882 | 9450
1883 | 36931
1884 | 38228
1885 | 42895
1886 | 27760
1887 | 44280
1888 | 2256
1889 | 49047
1890 | 810
1891 | 6208
1892 | 25559
1893 | 35282
1894 | 19293
1895 | 18972
1896 | 42955
1897 | 10839
1898 | 46590
1899 | 36042
1900 | 2035
1901 | 39935
1902 | 25769
1903 | 49133
1904 | 36579
1905 | 21885
1906 | 48828
1907 | 31821
1908 | 32053
1909 | 1113
1910 | 14094
1911 | 18835
1912 | 32517
1913 | 1448
1914 | 5357
1915 | 12277
1916 | 15374
1917 | 35430
1918 | 20764
1919 | 31651
1920 | 1193
1921 | 46961
1922 | 1525
1923 | 35406
1924 | 25455
1925 | 3558
1926 | 6248
1927 | 28006
1928 | 49158
1929 | 33865
1930 | 46103
1931 | 30178
1932 | 22830
1933 | 34827
1934 | 7081
1935 | 21713
1936 | 2939
1937 | 28746
1938 | 24417
1939 | 8517
1940 | 13238
1941 | 32363
1942 | 30860
1943 | 22326
1944 | 39316
1945 | 19453
1946 | 44806
1947 | 6886
1948 | 44435
1949 | 46003
1950 | 13949
1951 | 44790
1952 | 28524
1953 | 45884
1954 | 49920
1955 | 38592
1956 | 44509
1957 | 38395
1958 | 29503
1959 | 22227
1960 | 10778
1961 | 45131
1962 | 8031
1963 | 38905
1964 | 3758
1965 | 9660
1966 | 33241
1967 | 10386
1968 | 44596
1969 | 34352
1970 | 17522
1971 | 41852
1972 | 13903
1973 | 42644
1974 | 27986
1975 | 5021
1976 | 44046
1977 | 35244
1978 | 31593
1979 | 2823
1980 | 36070
1981 | 1446
1982 | 6229
1983 | 6957
1984 | 38868
1985 | 41736
1986 | 166
1987 | 5887
1988 | 15936
1989 | 42970
1990 | 40196
1991 | 37919
1992 | 27805
1993 | 33832
1994 | 16449
1995 | 13745
1996 | 2757
1997 | 22776
1998 | 37780
1999 | 28001
2000 | 38094
2001 | 31912
2002 | 10745
2003 | 5172
2004 | 6958
2005 | 5281
2006 | 29677
2007 | 39143
2008 | 14388
2009 | 12125
2010 | 43136
2011 | 11156
2012 | 32441
2013 | 23874
2014 | 24363
2015 | 44216
2016 | 43083
2017 | 2194
2018 | 40398
2019 | 30630
2020 | 4248
2021 | 24893
2022 | 24645
2023 | 37612
2024 | 30593
2025 | 2465
2026 | 14609
2027 | 46214
2028 | 8872
2029 | 29689
2030 | 8072
2031 | 32561
2032 | 14963
2033 | 39257
2034 | 24425
2035 | 48290
2036 | 17059
2037 | 45595
2038 | 1282
2039 | 14047
2040 | 6625
2041 | 25122
2042 | 12064
2043 | 12111
2044 | 15078
2045 | 46121
2046 | 24803
2047 | 17560
2048 | 34708
2049 | 27721
2050 | 13056
2051 | 23925
2052 | 12098
2053 | 33319
2054 | 2873
2055 | 49536
2056 | 27844
2057 | 3589
2058 | 26893
2059 | 23971
2060 | 20661
2061 | 23116
2062 | 3784
2063 | 21702
2064 | 35034
2065 | 5388
2066 | 13627
2067 | 48377
2068 | 19158
2069 | 11766
2070 | 15507
2071 | 25241
2072 | 15782
2073 | 8265
2074 | 25912
2075 | 18245
2076 | 6347
2077 | 48686
2078 | 12056
2079 | 21270
2080 | 47558
2081 | 17927
2082 | 19226
2083 | 35575
2084 | 10112
2085 | 21644
2086 | 6736
2087 | 44508
2088 | 9713
2089 | 29611
2090 | 22575
2091 | 37545
2092 | 15126
2093 | 28475
2094 | 41096
2095 | 31838
2096 | 41474
2097 | 22973
2098 | 38199
2099 | 40192
2100 | 13091
2101 | 48960
2102 | 30353
2103 | 47544
2104 | 3743
2105 | 49374
2106 | 42438
2107 | 7004
2108 | 3365
2109 | 10030
2110 | 8361
2111 | 5526
2112 | 47934
2113 | 32751
2114 | 48863
2115 | 10178
2116 | 40771
2117 | 47313
2118 | 34838
2119 | 338
2120 | 37318
2121 | 21241
2122 | 32241
2123 | 45878
2124 | 22214
2125 | 21647
2126 | 48741
2127 | 1515
2128 | 13807
2129 | 25423
2130 | 33794
2131 | 13914
2132 | 38281
2133 | 48431
2134 | 19789
2135 | 20860
2136 | 6194
2137 | 30567
2138 | 42472
2139 | 48634
2140 | 41036
2141 | 9248
2142 | 36859
2143 | 12389
2144 | 6200
2145 | 34760
2146 | 35973
2147 | 11304
2148 | 29683
2149 | 43483
2150 | 36294
2151 | 16947
2152 | 41299
2153 | 30952
2154 | 6584
2155 | 18464
2156 | 24926
2157 | 42633
2158 | 6802
2159 | 28283
2160 | 16486
2161 | 32770
2162 | 24390
2163 | 45359
2164 | 41559
2165 | 18276
2166 | 3030
2167 | 39820
2168 | 28794
2169 | 21148
2170 | 12887
2171 | 25355
2172 | 39139
2173 | 19668
2174 | 6249
2175 | 13795
2176 | 11949
2177 | 48179
2178 | 22178
2179 | 28984
2180 | 28830
2181 | 6450
2182 | 3248
2183 | 38615
2184 | 45849
2185 | 20020
2186 | 25465
2187 | 7419
2188 | 30131
2189 | 7545
2190 | 25120
2191 | 8686
2192 | 25383
2193 | 28617
2194 | 42868
2195 | 5996
2196 | 33125
2197 | 36237
2198 | 37159
2199 | 27402
2200 | 40023
2201 | 12933
2202 | 36902
2203 | 12193
2204 | 1229
2205 | 22366
2206 | 23268
2207 | 37735
2208 | 6952
2209 | 24035
2210 | 25998
2211 | 39821
2212 | 39036
2213 | 26490
2214 | 39341
2215 | 28991
2216 | 40010
2217 | 38190
2218 | 25759
2219 | 6349
2220 | 31247
2221 | 42400
2222 | 43186
2223 | 22209
2224 | 44840
2225 | 43345
2226 | 22958
2227 | 39549
2228 | 4004
2229 | 19307
2230 | 30407
2231 | 9274
2232 | 36921
2233 | 14353
2234 | 10431
2235 | 43310
2236 | 6617
2237 | 31459
2238 | 15230
2239 | 36346
2240 | 13421
2241 | 43229
2242 | 15963
2243 | 3366
2244 | 23818
2245 | 30284
2246 | 10019
2247 | 24469
2248 | 38069
2249 | 21058
2250 | 13933
2251 | 47639
2252 | 19616
2253 | 20570
2254 | 40214
2255 | 24939
2256 | 3243
2257 | 33695
2258 | 35049
2259 | 42601
2260 | 18596
2261 | 48270
2262 | 41950
2263 | 14226
2264 | 20732
2265 | 28569
2266 | 47099
2267 | 44226
2268 | 1443
2269 | 32160
2270 | 642
2271 | 49371
2272 | 24699
2273 | 18394
2274 | 7747
2275 | 36833
2276 | 35996
2277 | 44422
2278 | 45590
2279 | 15433
2280 | 4479
2281 | 17316
2282 | 30998
2283 | 34770
2284 | 36852
2285 | 19300
2286 | 34733
2287 | 41025
2288 | 23262
2289 | 34202
2290 | 14921
2291 | 31063
2292 | 23201
2293 | 31279
2294 | 43941
2295 | 17934
2296 | 43751
2297 | 46150
2298 | 23395
2299 | 4933
2300 | 46994
2301 | 31132
2302 | 21146
2303 | 860
2304 | 24164
2305 | 1853
2306 | 28196
2307 | 35976
2308 | 44409
2309 | 5342
2310 | 23511
2311 | 8427
2312 | 16394
2313 | 46210
2314 | 46273
2315 | 259
2316 | 9803
2317 | 31153
2318 | 8747
2319 | 77
2320 | 40284
2321 | 26804
2322 | 37037
2323 | 885
2324 | 5776
2325 | 44318
2326 | 18273
2327 | 44533
2328 | 49229
2329 | 31021
2330 | 21586
2331 | 30475
2332 | 27411
2333 | 39711
2334 | 42149
2335 | 14141
2336 | 2652
2337 | 42177
2338 | 31645
2339 | 37801
2340 | 2904
2341 | 4198
2342 | 33754
2343 | 38836
2344 | 27632
2345 | 16110
2346 | 35447
2347 | 45702
2348 | 26040
2349 | 24652
2350 | 3349
2351 | 49569
2352 | 32828
2353 | 10124
2354 | 44256
2355 | 32807
2356 | 32268
2357 | 13857
2358 | 7303
2359 | 17291
2360 | 22234
2361 | 47460
2362 | 48800
2363 | 36991
2364 | 27133
2365 | 8653
2366 | 23326
2367 | 42584
2368 | 7607
2369 | 21027
2370 | 34438
2371 | 19483
2372 | 41300
2373 | 49764
2374 | 23577
2375 | 17000
2376 | 19646
2377 | 44843
2378 | 46257
2379 | 10197
2380 | 13301
2381 | 22286
2382 | 30233
2383 | 5269
2384 | 42525
2385 | 3881
2386 | 21654
2387 | 557
2388 | 20152
2389 | 25919
2390 | 43979
2391 | 35823
2392 | 40579
2393 | 43269
2394 | 5134
2395 | 36423
2396 | 43756
2397 | 9529
2398 | 24179
2399 | 36731
2400 | 6515
2401 | 38021
2402 | 21067
2403 | 40496
2404 | 42995
2405 | 40171
2406 | 12265
2407 | 14197
2408 | 36253
2409 | 42193
2410 | 19743
2411 | 30497
2412 | 7650
2413 | 45763
2414 | 20647
2415 | 24170
2416 | 8797
2417 | 44967
2418 | 48837
2419 | 41044
2420 | 17165
2421 | 32746
2422 | 45336
2423 | 10620
2424 | 18020
2425 | 31164
2426 | 9035
2427 | 14679
2428 | 10083
2429 | 195
2430 | 25346
2431 | 10000
2432 | 17988
2433 | 3676
2434 | 46996
2435 | 4693
2436 | 37853
2437 | 48295
2438 | 35589
2439 | 20684
2440 | 8533
2441 | 34150
2442 | 6252
2443 | 13762
2444 | 27656
2445 | 9601
2446 | 16093
2447 | 42861
2448 | 29237
2449 | 31954
2450 | 11708
2451 | 15215
2452 | 33744
2453 | 4264
2454 | 42904
2455 | 37363
2456 | 416
2457 | 13062
2458 | 27276
2459 | 3638
2460 | 35867
2461 | 16888
2462 | 34270
2463 | 1610
2464 | 10758
2465 | 17576
2466 | 19312
2467 | 33136
2468 | 40974
2469 | 27454
2470 | 29706
2471 | 208
2472 | 45369
2473 | 46973
2474 | 42803
2475 | 43512
2476 | 48987
2477 | 6403
2478 | 32135
2479 | 17099
2480 | 26323
2481 | 31080
2482 | 42531
2483 | 21923
2484 | 15401
2485 | 49412
2486 | 46639
2487 | 49672
2488 | 34951
2489 | 34224
2490 | 21727
2491 | 6117
2492 | 6554
2493 | 15958
2494 | 22431
2495 | 40289
2496 | 14533
2497 | 47029
2498 | 13797
2499 | 2294
2500 | 12345
2501 | 18153
2502 | 4104
2503 | 20080
2504 | 39884
2505 | 9354
2506 | 49801
2507 | 14319
2508 | 5182
2509 | 21231
2510 | 27929
2511 | 39446
2512 | 17335
2513 | 34866
2514 | 49550
2515 | 14061
2516 | 8159
2517 | 32893
2518 | 42891
2519 | 10736
2520 | 35986
2521 | 8258
2522 | 3398
2523 | 8607
2524 | 71
2525 | 14133
2526 | 42422
2527 | 3831
2528 | 4785
2529 | 24765
2530 | 49913
2531 | 20840
2532 | 44701
2533 | 4682
2534 | 7281
2535 | 28336
2536 | 48077
2537 | 6677
2538 | 29494
2539 | 31361
2540 | 22833
2541 | 46037
2542 | 31598
2543 | 23726
2544 | 10544
2545 | 865
2546 | 47427
2547 | 35983
2548 | 49666
2549 | 1309
2550 | 34590
2551 | 33851
2552 | 16670
2553 | 5856
2554 | 23910
2555 | 44138
2556 | 16931
2557 | 39456
2558 | 11769
2559 | 40025
2560 | 21992
2561 | 27619
2562 | 6220
2563 | 1846
2564 | 41378
2565 | 45471
2566 | 34373
2567 | 45956
2568 | 44484
2569 | 25577
2570 | 20784
2571 | 45105
2572 | 43836
2573 | 22755
2574 | 2315
2575 | 6800
2576 | 37715
2577 | 12132
2578 | 7393
2579 | 20951
2580 | 34117
2581 | 2635
2582 | 35709
2583 | 1091
2584 | 1209
2585 | 12475
2586 | 26464
2587 | 28177
2588 | 15168
2589 | 43362
2590 | 6845
2591 | 49791
2592 | 32970
2593 | 4445
2594 | 20360
2595 | 23964
2596 | 10792
2597 | 9669
2598 | 45902
2599 | 41284
2600 | 17094
2601 | 22361
2602 | 28402
2603 | 31464
2604 | 38872
2605 | 39113
2606 | 35454
2607 | 39994
2608 | 12092
2609 | 28108
2610 | 41662
2611 | 38242
2612 | 38152
2613 | 18674
2614 | 25598
2615 | 31133
2616 | 2308
2617 | 47257
2618 | 18606
2619 | 15996
2620 | 7900
2621 | 16658
2622 | 7757
2623 | 10450
2624 | 5030
2625 | 44864
2626 | 24413
2627 | 26892
2628 | 19687
2629 | 1726
2630 | 27974
2631 | 13180
2632 | 48936
2633 | 28904
2634 | 5427
2635 | 12535
2636 | 35483
2637 | 3770
2638 | 47824
2639 | 15698
2640 | 25578
2641 | 44750
2642 | 26929
2643 | 7803
2644 | 41345
2645 | 13141
2646 | 40364
2647 | 24591
2648 | 23896
2649 | 10186
2650 | 37745
2651 | 38890
2652 | 36546
2653 | 1059
2654 | 47348
2655 | 34472
2656 | 30638
2657 | 40073
2658 | 16906
2659 | 33535
2660 | 30518
2661 | 299
2662 | 27441
2663 | 8198
2664 | 41115
2665 | 21057
2666 | 44428
2667 | 13245
2668 | 28859
2669 | 19484
2670 | 8337
2671 | 4573
2672 | 43503
2673 | 14754
2674 | 47827
2675 | 45085
2676 | 69
2677 | 8289
2678 | 19178
2679 | 40485
2680 | 20150
2681 | 3790
2682 | 32280
2683 | 38556
2684 | 44174
2685 | 15448
2686 | 27106
2687 | 46248
2688 | 16933
2689 | 26891
2690 | 32764
2691 | 25626
2692 | 15773
2693 | 49302
2694 | 34581
2695 | 30240
2696 | 37860
2697 | 28831
2698 | 5082
2699 | 26368
2700 | 2950
2701 | 22263
2702 | 26599
2703 | 26313
2704 | 48879
2705 | 3967
2706 | 48933
2707 | 28086
2708 | 30999
2709 | 15801
2710 | 39510
2711 | 15586
2712 | 20978
2713 | 38729
2714 | 38557
2715 | 6276
2716 | 9346
2717 | 9749
2718 | 26899
2719 | 36665
2720 | 34847
2721 | 19589
2722 | 8038
2723 | 33863
2724 | 5298
2725 | 29032
2726 | 46320
2727 | 14523
2728 | 29593
2729 | 33997
2730 | 23939
2731 | 42615
2732 | 43423
2733 | 40826
2734 | 33736
2735 | 44217
2736 | 22238
2737 | 25072
2738 | 36606
2739 | 12166
2740 | 12454
2741 | 17850
2742 | 23835
2743 | 41068
2744 | 41410
2745 | 9270
2746 | 864
2747 | 28620
2748 | 36252
2749 | 14386
2750 | 12417
2751 | 34386
2752 | 45086
2753 | 7796
2754 | 14728
2755 | 9576
2756 | 29616
2757 | 30945
2758 | 10517
2759 | 42884
2760 | 27852
2761 | 1905
2762 | 46343
2763 | 20251
2764 | 27873
2765 | 49779
2766 | 9656
2767 | 1227
2768 | 49251
2769 | 24300
2770 | 25720
2771 | 34227
2772 | 27110
2773 | 25943
2774 | 45731
2775 | 42435
2776 | 40799
2777 | 37165
2778 | 12581
2779 | 2449
2780 | 8114
2781 | 37921
2782 | 19684
2783 | 8447
2784 | 24794
2785 | 24741
2786 | 44980
2787 | 19534
2788 | 43357
2789 | 32703
2790 | 20013
2791 | 45477
2792 | 17341
2793 | 7701
2794 | 18144
2795 | 16903
2796 | 45166
2797 | 12117
2798 | 47385
2799 | 16604
2800 | 31554
2801 | 26150
2802 | 36578
2803 | 11760
2804 | 31671
2805 | 27997
2806 | 15023
2807 | 7640
2808 | 31995
2809 | 45911
2810 | 31891
2811 | 12819
2812 | 30678
2813 | 31644
2814 | 40733
2815 | 9176
2816 | 12244
2817 | 24629
2818 | 30262
2819 | 2909
2820 | 42482
2821 | 28791
2822 | 23382
2823 | 43815
2824 | 38415
2825 | 37440
2826 | 43869
2827 | 14972
2828 | 28854
2829 | 7289
2830 | 16233
2831 | 25780
2832 | 29375
2833 | 47423
2834 | 31574
2835 | 39547
2836 | 8063
2837 | 40795
2838 | 44674
2839 | 4395
2840 | 47151
2841 | 3044
2842 | 26303
2843 | 22627
2844 | 629
2845 | 14423
2846 | 18192
2847 | 34844
2848 | 5929
2849 | 34776
2850 | 36898
2851 | 12430
2852 | 1501
2853 | 37902
2854 | 30684
2855 | 37202
2856 | 11701
2857 | 20399
2858 | 36415
2859 | 15171
2860 | 6664
2861 | 17861
2862 | 32832
2863 | 6992
2864 | 6496
2865 | 38372
2866 | 16323
2867 | 24623
2868 | 8366
2869 | 11111
2870 | 46070
2871 | 41906
2872 | 10610
2873 | 31414
2874 | 11133
2875 | 25429
2876 | 37504
2877 | 29882
2878 | 27522
2879 | 43877
2880 | 4990
2881 | 4507
2882 | 283
2883 | 45830
2884 | 21920
2885 | 17529
2886 | 9237
2887 | 13139
2888 | 4539
2889 | 29914
2890 | 548
2891 | 590
2892 | 38534
2893 | 33426
2894 | 27428
2895 | 34429
2896 | 26372
2897 | 2333
2898 | 41573
2899 | 10165
2900 | 20296
2901 | 13890
2902 | 4470
2903 | 25841
2904 | 3916
2905 | 32359
2906 | 35887
2907 | 29653
2908 | 15492
2909 | 8200
2910 | 7902
2911 | 43957
2912 | 45687
2913 | 30082
2914 | 49797
2915 | 27865
2916 | 41215
2917 | 6915
2918 | 8420
2919 | 37569
2920 | 45985
2921 | 3912
2922 | 33739
2923 | 14966
2924 | 7008
2925 | 30408
2926 | 37427
2927 | 19968
2928 | 31692
2929 | 47697
2930 | 25735
2931 | 32867
2932 | 36745
2933 | 38948
2934 | 13775
2935 | 6717
2936 | 25751
2937 | 43961
2938 | 963
2939 | 9959
2940 | 24739
2941 | 30591
2942 | 2396
2943 | 21351
2944 | 33867
2945 | 35227
2946 | 23211
2947 | 2937
2948 | 24438
2949 | 32461
2950 | 26996
2951 | 41316
2952 | 18757
2953 | 20491
2954 | 25142
2955 | 35811
2956 | 31501
2957 | 26213
2958 | 47809
2959 | 27167
2960 | 38957
2961 | 1237
2962 | 42114
2963 | 16167
2964 | 24261
2965 | 10020
2966 | 21649
2967 | 34779
2968 | 12113
2969 | 5672
2970 | 1160
2971 | 39600
2972 | 46059
2973 | 23545
2974 | 17507
2975 | 41926
2976 | 15138
2977 | 5848
2978 | 3500
2979 | 43463
2980 | 34163
2981 | 12907
2982 | 12254
2983 | 32077
2984 | 29872
2985 | 16250
2986 | 40769
2987 | 29320
2988 | 10111
2989 | 21382
2990 | 39034
2991 | 48359
2992 | 29164
2993 | 14671
2994 | 40922
2995 | 32136
2996 | 34799
2997 | 26113
2998 | 37719
2999 | 7093
3000 | 8676
3001 | 30319
3002 | 38277
3003 | 20752
3004 | 49291
3005 | 24109
3006 | 26102
3007 | 39140
3008 | 6478
3009 | 6292
3010 | 32846
3011 | 10738
3012 | 25741
3013 | 21419
3014 | 20247
3015 | 29132
3016 | 36949
3017 | 45351
3018 | 31371
3019 | 823
3020 | 34684
3021 | 41253
3022 | 33903
3023 | 21460
3024 | 24523
3025 | 21360
3026 | 35237
3027 | 49667
3028 | 4815
3029 | 27836
3030 | 26889
3031 | 42186
3032 | 15999
3033 | 20843
3034 | 16278
3035 | 48071
3036 | 33454
3037 | 1526
3038 | 4465
3039 | 9114
3040 | 43021
3041 | 14124
3042 | 2824
3043 | 34687
3044 | 9162
3045 | 33331
3046 | 43007
3047 | 39402
3048 | 21185
3049 | 4270
3050 | 42187
3051 | 31935
3052 | 46714
3053 | 22019
3054 | 39775
3055 | 45004
3056 | 15188
3057 | 44155
3058 | 46836
3059 | 25017
3060 | 3309
3061 | 20826
3062 | 2316
3063 | 22822
3064 | 45168
3065 | 6614
3066 | 22651
3067 | 17053
3068 | 49512
3069 | 21161
3070 | 18717
3071 | 18323
3072 | 22269
3073 | 1661
3074 | 38311
3075 | 35636
3076 | 26460
3077 | 21065
3078 | 46420
3079 | 48639
3080 | 25239
3081 | 3950
3082 | 1578
3083 | 29856
3084 | 29475
3085 | 1742
3086 | 36906
3087 | 22886
3088 | 16776
3089 | 48521
3090 | 32207
3091 | 183
3092 | 28245
3093 | 11965
3094 | 38305
3095 | 36734
3096 | 38809
3097 | 34219
3098 | 1437
3099 | 14079
3100 | 10675
3101 | 2302
3102 | 48601
3103 | 2095
3104 | 25291
3105 | 39813
3106 | 16137
3107 | 45732
3108 | 23085
3109 | 47998
3110 | 10262
3111 | 34380
3112 | 35013
3113 | 16220
3114 | 24885
3115 | 6865
3116 | 34030
3117 | 39784
3118 | 33639
3119 | 8522
3120 | 19422
3121 | 38491
3122 | 37751
3123 | 42072
3124 | 13741
3125 | 10383
3126 | 13545
3127 | 19187
3128 | 49196
3129 | 41250
3130 | 31405
3131 | 10731
3132 | 14667
3133 | 41519
3134 | 21206
3135 | 43828
3136 | 13484
3137 | 21074
3138 | 2828
3139 | 24500
3140 | 24991
3141 | 29336
3142 | 4184
3143 | 24318
3144 | 11363
3145 | 27549
3146 | 27557
3147 | 6207
3148 | 34449
3149 | 34356
3150 | 31497
3151 | 16862
3152 | 45912
3153 | 6989
3154 | 29802
3155 | 34902
3156 | 38830
3157 | 42918
3158 | 19904
3159 | 35809
3160 | 38473
3161 | 16004
3162 | 2718
3163 | 41482
3164 | 3508
3165 | 33179
3166 | 23052
3167 | 47321
3168 | 12815
3169 | 147
3170 | 37818
3171 | 2157
3172 | 26508
3173 | 17144
3174 | 40190
3175 | 28274
3176 | 39850
3177 | 3339
3178 | 35602
3179 | 5093
3180 | 23200
3181 | 1218
3182 | 43779
3183 | 6604
3184 | 45586
3185 | 29005
3186 | 6009
3187 | 21887
3188 | 1181
3189 | 34728
3190 | 816
3191 | 22064
3192 | 36922
3193 | 30462
3194 | 41790
3195 | 32859
3196 | 48246
3197 | 40370
3198 | 48020
3199 | 46232
3200 | 38067
3201 | 27756
3202 | 30308
3203 | 23811
3204 | 21107
3205 | 37117
3206 | 49599
3207 | 1417
3208 | 24550
3209 | 45275
3210 | 111
3211 | 44633
3212 | 14009
3213 | 32953
3214 | 40325
3215 | 26582
3216 | 45134
3217 | 25709
3218 | 160
3219 | 43080
3220 | 21035
3221 | 31797
3222 | 2685
3223 | 18354
3224 | 16312
3225 | 8457
3226 | 21703
3227 | 49622
3228 | 8465
3229 | 14736
3230 | 45061
3231 | 6633
3232 | 19481
3233 | 10576
3234 | 45914
3235 | 7927
3236 | 127
3237 | 37154
3238 | 30513
3239 | 22855
3240 | 27815
3241 | 47076
3242 | 29551
3243 | 30531
3244 | 35380
3245 | 41783
3246 | 32279
3247 | 45101
3248 | 41837
3249 | 42394
3250 | 19867
3251 | 16647
3252 | 17268
3253 | 7323
3254 | 43365
3255 | 32767
3256 | 48126
3257 | 39714
3258 | 1175
3259 | 7114
3260 | 37992
3261 | 25655
3262 | 11441
3263 | 16875
3264 | 47832
3265 | 31894
3266 | 43396
3267 | 21279
3268 | 11837
3269 | 19294
3270 | 17480
3271 | 12309
3272 | 19956
3273 | 45707
3274 | 17044
3275 | 35503
3276 | 28614
3277 | 9979
3278 | 39308
3279 | 33367
3280 | 12304
3281 | 39907
3282 | 33229
3283 | 21975
3284 | 40984
3285 | 21675
3286 | 24050
3287 | 35631
3288 | 7563
3289 | 31883
3290 | 6708
3291 | 14941
3292 | 10704
3293 | 2972
3294 | 35284
3295 | 43785
3296 | 5331
3297 | 3834
3298 | 48581
3299 | 27358
3300 | 18550
3301 | 1428
3302 | 37135
3303 | 800
3304 | 49350
3305 | 17602
3306 | 14275
3307 | 32838
3308 | 37428
3309 | 15082
3310 | 9842
3311 | 27397
3312 | 3346
3313 | 48791
3314 | 19736
3315 | 3116
3316 | 25296
3317 | 49442
3318 | 8948
3319 | 35780
3320 | 10192
3321 | 20488
3322 | 49489
3323 | 28922
3324 | 11570
3325 | 35426
3326 | 2338
3327 | 33654
3328 | 37940
3329 | 29934
3330 | 30572
3331 | 33126
3332 | 19326
3333 | 36156
3334 | 15205
3335 | 33568
3336 | 11151
3337 | 13326
3338 | 18442
3339 | 19952
3340 | 47547
3341 | 21780
3342 | 14453
3343 | 27696
3344 | 37492
3345 | 16542
3346 | 34051
3347 | 34686
3348 | 2254
3349 | 6095
3350 | 6020
3351 | 23457
3352 | 27157
3353 | 30949
3354 | 8345
3355 | 49783
3356 | 35158
3357 | 8176
3358 | 15324
3359 | 35785
3360 | 37329
3361 | 30658
3362 | 36834
3363 | 25138
3364 | 21031
3365 | 23608
3366 | 25278
3367 | 37012
3368 | 2062
3369 | 20414
3370 | 31580
3371 | 5399
3372 | 18713
3373 | 1101
3374 | 37583
3375 | 36508
3376 | 6373
3377 | 29434
3378 | 33991
3379 | 42295
3380 | 30412
3381 | 8692
3382 | 9483
3383 | 43635
3384 | 19673
3385 | 19722
3386 | 49244
3387 | 34679
3388 | 3818
3389 | 21616
3390 | 23070
3391 | 7768
3392 | 47229
3393 | 15270
3394 | 27642
3395 | 46553
3396 | 30184
3397 | 38373
3398 | 20057
3399 | 37338
3400 | 41648
3401 | 42382
3402 | 9196
3403 | 717
3404 | 8875
3405 | 16146
3406 | 14137
3407 | 28877
3408 | 30316
3409 | 27702
3410 | 49013
3411 | 21535
3412 | 26591
3413 | 36808
3414 | 45613
3415 | 9030
3416 | 21087
3417 | 19543
3418 | 33398
3419 | 25540
3420 | 44458
3421 | 14068
3422 | 37932
3423 | 21083
3424 | 8710
3425 | 30088
3426 | 20325
3427 | 44821
3428 | 37377
3429 | 28636
3430 | 20256
3431 | 16168
3432 | 13169
3433 | 19950
3434 | 32843
3435 | 33721
3436 | 17753
3437 | 36461
3438 | 39234
3439 | 26044
3440 | 33393
3441 | 26327
3442 | 45037
3443 | 29548
3444 | 44988
3445 | 24222
3446 | 2450
3447 | 36567
3448 | 30363
3449 | 32979
3450 | 26622
3451 | 24210
3452 | 19162
3453 | 48583
3454 | 4923
3455 | 6007
3456 | 49719
3457 | 10852
3458 | 33826
3459 | 44343
3460 | 13437
3461 | 12976
3462 | 31733
3463 | 45108
3464 | 18478
3465 | 17909
3466 | 45578
3467 | 19632
3468 | 40924
3469 | 16760
3470 | 29823
3471 | 2036
3472 | 8901
3473 | 40243
3474 | 34753
3475 | 24618
3476 | 16828
3477 | 13288
3478 | 32891
3479 | 20302
3480 | 46966
3481 | 28234
3482 | 10189
3483 | 38814
3484 | 49598
3485 | 35437
3486 | 41084
3487 | 7510
3488 | 13506
3489 | 37672
3490 | 21015
3491 | 6521
3492 | 20249
3493 | 14892
3494 | 28296
3495 | 29084
3496 | 37313
3497 | 17783
3498 | 28883
3499 | 2260
3500 | 41261
3501 | 743
3502 | 20367
3503 | 21368
3504 | 34783
3505 | 28446
3506 | 46732
3507 | 40420
3508 | 33139
3509 | 17181
3510 | 12105
3511 | 9492
3512 | 49286
3513 | 11492
3514 | 22
3515 | 31659
3516 | 32356
3517 | 26090
3518 | 27309
3519 | 36297
3520 | 34841
3521 | 3739
3522 | 9235
3523 | 6552
3524 | 34649
3525 | 34840
3526 | 41452
3527 | 1609
3528 | 40756
3529 | 38992
3530 | 42512
3531 | 33235
3532 | 17315
3533 | 46234
3534 | 27403
3535 | 15480
3536 | 21474
3537 | 18543
3538 | 28386
3539 | 20539
3540 | 8817
3541 | 46814
3542 | 788
3543 | 20502
3544 | 32548
3545 | 21489
3546 | 34901
3547 | 4709
3548 | 15206
3549 | 31787
3550 | 42071
3551 | 46789
3552 | 23386
3553 | 30182
3554 | 2220
3555 | 39038
3556 | 45278
3557 | 37844
3558 | 39966
3559 | 22134
3560 | 48769
3561 | 27715
3562 | 2539
3563 | 24729
3564 | 24624
3565 | 7684
3566 | 856
3567 | 11552
3568 | 10420
3569 | 28656
3570 | 36543
3571 | 13803
3572 | 5707
3573 | 19618
3574 | 35701
3575 | 28696
3576 | 18879
3577 | 40947
3578 | 22803
3579 | 18474
3580 | 36914
3581 | 40464
3582 | 14739
3583 | 47550
3584 | 25712
3585 | 36832
3586 | 46487
3587 | 24554
3588 | 32134
3589 | 34200
3590 | 36540
3591 | 49294
3592 | 4689
3593 | 13183
3594 | 13235
3595 | 43054
3596 | 21214
3597 | 11438
3598 | 8906
3599 | 31389
3600 | 44093
3601 | 11354
3602 | 20490
3603 | 9146
3604 | 2463
3605 | 27914
3606 | 36987
3607 | 38098
3608 | 12060
3609 | 7039
3610 | 28591
3611 | 34724
3612 | 4328
3613 | 47893
3614 | 26587
3615 | 15652
3616 | 47020
3617 | 30264
3618 | 41208
3619 | 3329
3620 | 5567
3621 | 39489
3622 | 6061
3623 | 38704
3624 | 36092
3625 | 29390
3626 | 22826
3627 | 31199
3628 | 13102
3629 | 19984
3630 | 34393
3631 | 34443
3632 | 26283
3633 | 27455
3634 | 23232
3635 | 48074
3636 | 32773
3637 | 47808
3638 | 17916
3639 | 39827
3640 | 3471
3641 | 30298
3642 | 2574
3643 | 8871
3644 | 2966
3645 | 16136
3646 | 24784
3647 | 24766
3648 | 5872
3649 | 34748
3650 | 37330
3651 | 14567
3652 | 2169
3653 | 15971
3654 | 48430
3655 | 47075
3656 | 42444
3657 | 36007
3658 | 2110
3659 | 36696
3660 | 5721
3661 | 36344
3662 | 20147
3663 | 14971
3664 | 11323
3665 | 20977
3666 | 6387
3667 | 48799
3668 | 48862
3669 | 49959
3670 | 14534
3671 | 40044
3672 | 10881
3673 | 31852
3674 | 18133
3675 | 49723
3676 | 11682
3677 | 49281
3678 | 10491
3679 | 26270
3680 | 17630
3681 | 29204
3682 | 41121
3683 | 18554
3684 | 7036
3685 | 9128
3686 | 8506
3687 | 29163
3688 | 944
3689 | 45492
3690 | 20297
3691 | 37799
3692 | 11094
3693 | 14264
3694 | 47554
3695 | 2325
3696 | 19854
3697 | 31776
3698 | 32748
3699 | 22908
3700 | 9172
3701 | 47086
3702 | 27144
3703 | 24930
3704 | 2721
3705 | 28015
3706 | 46256
3707 | 9770
3708 | 36976
3709 | 32353
3710 | 42251
3711 | 15459
3712 | 44703
3713 | 690
3714 | 5413
3715 | 21158
3716 | 46482
3717 | 28742
3718 | 14636
3719 | 883
3720 | 46237
3721 | 33554
3722 | 2153
3723 | 34694
3724 | 6814
3725 | 19788
3726 | 3697
3727 | 6885
3728 | 45295
3729 | 11830
3730 | 28990
3731 | 20863
3732 | 18591
3733 | 16825
3734 | 23872
3735 | 24095
3736 | 7431
3737 | 44973
3738 | 581
3739 | 8344
3740 | 17006
3741 | 39417
3742 | 1274
3743 | 42864
3744 | 42527
3745 | 42646
3746 | 42769
3747 | 44978
3748 | 14062
3749 | 3035
3750 | 31112
3751 | 16586
3752 | 23641
3753 | 32337
3754 | 3341
3755 | 39015
3756 | 42096
3757 | 44491
3758 | 44809
3759 | 46953
3760 | 41578
3761 | 5978
3762 | 9869
3763 | 39597
3764 | 4013
3765 | 49022
3766 | 43147
3767 | 21307
3768 | 40238
3769 | 32151
3770 | 33992
3771 | 46751
3772 | 30274
3773 | 19926
3774 | 16203
3775 | 18058
3776 | 959
3777 | 5148
3778 | 39598
3779 | 22785
3780 | 31536
3781 | 20377
3782 | 32034
3783 | 37702
3784 | 21292
3785 | 27724
3786 | 18600
3787 | 22569
3788 | 29712
3789 | 5354
3790 | 24051
3791 | 38286
3792 | 2672
3793 | 41332
3794 | 42449
3795 | 30086
3796 | 49738
3797 | 8312
3798 | 461
3799 | 32378
3800 | 47329
3801 | 608
3802 | 18437
3803 | 30071
3804 | 27484
3805 | 5773
3806 | 47523
3807 | 31626
3808 | 827
3809 | 22488
3810 | 43780
3811 | 6302
3812 | 47248
3813 | 5515
3814 | 34764
3815 | 11542
3816 | 18094
3817 | 48571
3818 | 40093
3819 | 2581
3820 | 9014
3821 | 48282
3822 | 18942
3823 | 19371
3824 | 43231
3825 | 40164
3826 | 34811
3827 | 39737
3828 | 47295
3829 | 43934
3830 | 36376
3831 | 28912
3832 | 8131
3833 | 5374
3834 | 28799
3835 | 32820
3836 | 14286
3837 | 8108
3838 | 18298
3839 | 13262
3840 | 29227
3841 | 40915
3842 | 4872
3843 | 49634
3844 | 18536
3845 | 9093
3846 | 30238
3847 | 39360
3848 | 48974
3849 | 35830
3850 | 15861
3851 | 19254
3852 | 9771
3853 | 37371
3854 | 9809
3855 | 19832
3856 | 3301
3857 | 43743
3858 | 9086
3859 | 1996
3860 | 45568
3861 | 46866
3862 | 7832
3863 | 46282
3864 | 26864
3865 | 20072
3866 | 5171
3867 | 40552
3868 | 49562
3869 | 18773
3870 | 21876
3871 | 11750
3872 | 17030
3873 | 10527
3874 | 47167
3875 | 25266
3876 | 6356
3877 | 25729
3878 | 11053
3879 | 7391
3880 | 21384
3881 | 20175
3882 | 14761
3883 | 12185
3884 | 28493
3885 | 22373
3886 | 36441
3887 | 46433
3888 | 3167
3889 | 34828
3890 | 37083
3891 | 2520
3892 | 44086
3893 | 4491
3894 | 44881
3895 | 5255
3896 | 46046
3897 | 12362
3898 | 14090
3899 | 4935
3900 | 9921
3901 | 18813
3902 | 14820
3903 | 19381
3904 | 42439
3905 | 45606
3906 | 33082
3907 | 2488
3908 | 36435
3909 | 7022
3910 | 46710
3911 | 43985
3912 | 30370
3913 | 37110
3914 | 10326
3915 | 43973
3916 | 29518
3917 | 42281
3918 | 12407
3919 | 29851
3920 | 26634
3921 | 24233
3922 | 30589
3923 | 2580
3924 | 37208
3925 | 43630
3926 | 7570
3927 | 40090
3928 | 5500
3929 | 41437
3930 | 18321
3931 | 12007
3932 | 37680
3933 | 20551
3934 | 2355
3935 | 16367
3936 | 17605
3937 | 18075
3938 | 36289
3939 | 45415
3940 | 43557
3941 | 48262
3942 | 18461
3943 | 25522
3944 | 12615
3945 | 40539
3946 | 5538
3947 | 13505
3948 | 9510
3949 | 15438
3950 | 30482
3951 | 16514
3952 | 6731
3953 | 21411
3954 | 45472
3955 | 16868
3956 | 8939
3957 | 28760
3958 | 16069
3959 | 13555
3960 | 43687
3961 | 4225
3962 | 29058
3963 | 45756
3964 | 863
3965 | 36438
3966 | 4801
3967 | 48552
3968 | 26021
3969 | 43620
3970 | 5347
3971 | 26911
3972 | 42104
3973 | 13021
3974 | 21801
3975 | 6322
3976 | 44109
3977 | 31489
3978 | 504
3979 | 4576
3980 | 3086
3981 | 47453
3982 | 2373
3983 | 42715
3984 | 32914
3985 | 41590
3986 | 26221
3987 | 42823
3988 | 40529
3989 | 771
3990 | 40441
3991 | 35598
3992 | 38515
3993 | 26811
3994 | 23892
3995 | 21796
3996 | 16109
3997 | 28435
3998 | 35165
3999 | 1317
4000 | 42723
4001 | 24684
4002 | 1646
4003 | 20442
4004 | 45959
4005 | 26272
4006 | 37393
4007 | 46700
4008 | 22492
4009 | 2938
4010 | 32587
4011 | 19346
4012 | 12724
4013 | 24917
4014 | 34060
4015 | 39906
4016 | 23040
4017 | 37614
4018 | 9935
4019 | 40322
4020 | 1124
4021 | 16582
4022 | 15026
4023 | 45486
4024 | 40307
4025 | 11142
4026 | 36216
4027 | 4349
4028 | 35071
4029 | 26146
4030 | 4893
4031 | 41806
4032 | 25986
4033 | 4924
4034 | 48490
4035 | 7599
4036 | 26730
4037 | 14012
4038 | 16276
4039 | 31533
4040 | 29481
4041 | 8897
4042 | 30135
4043 | 6047
4044 | 35914
4045 | 9676
4046 | 46522
4047 | 38312
4048 | 20235
4049 | 48245
4050 | 4380
4051 | 15149
4052 | 37290
4053 | 16318
4054 | 1105
4055 | 2156
4056 | 45200
4057 | 3401
4058 | 39373
4059 | 21025
4060 | 49643
4061 | 196
4062 | 30362
4063 | 45491
4064 | 21919
4065 | 12688
4066 | 15119
4067 | 37465
4068 | 48259
4069 | 9696
4070 | 39292
4071 | 19383
4072 | 13060
4073 | 47807
4074 | 42358
4075 | 27139
4076 | 8559
4077 | 40161
4078 | 47817
4079 | 16503
4080 | 10222
4081 | 22395
4082 | 46294
4083 | 41277
4084 | 27099
4085 | 29751
4086 | 4599
4087 | 41444
4088 | 14006
4089 | 41058
4090 | 7373
4091 | 12565
4092 | 22692
4093 | 15252
4094 | 34666
4095 | 12246
4096 | 13258
4097 | 7370
4098 | 46266
4099 | 5547
4100 | 22308
4101 | 33522
4102 | 17503
4103 | 324
4104 | 10505
4105 | 22717
4106 | 28783
4107 | 43606
4108 | 41672
4109 | 19595
4110 | 48025
4111 | 22970
4112 | 44909
4113 | 42901
4114 | 25557
4115 | 47572
4116 | 39822
4117 | 36329
4118 | 35336
4119 | 15304
4120 | 24921
4121 | 46908
4122 | 18702
4123 | 10909
4124 | 26553
4125 | 32376
4126 | 45366
4127 | 5275
4128 | 15113
4129 | 33931
4130 | 10519
4131 | 9746
4132 | 14398
4133 | 36727
4134 | 1029
4135 | 13944
4136 | 28096
4137 | 11296
4138 | 3507
4139 | 40408
4140 | 33090
4141 | 5244
4142 | 4419
4143 | 6227
4144 | 10901
4145 | 6570
4146 | 20824
4147 | 20923
4148 | 39637
4149 | 37781
4150 | 11405
4151 | 7375
4152 | 16535
4153 | 8319
4154 | 35536
4155 | 37489
4156 | 10886
4157 | 15646
4158 | 16633
4159 | 43773
4160 | 31275
4161 | 34291
4162 | 27312
4163 | 1258
4164 | 48916
4165 | 6278
4166 | 32070
4167 | 34369
4168 | 6204
4169 | 31846
4170 | 47126
4171 | 44340
4172 | 18576
4173 | 17785
4174 | 15617
4175 | 1694
4176 | 41303
4177 | 28685
4178 | 27531
4179 | 47238
4180 | 41231
4181 | 34520
4182 | 1857
4183 | 41423
4184 | 7835
4185 | 47818
4186 | 19412
4187 | 34310
4188 | 40384
4189 | 22906
4190 | 38858
4191 | 4627
4192 | 971
4193 | 2346
4194 | 36728
4195 | 3199
4196 | 17887
4197 | 3688
4198 | 27459
4199 | 10311
4200 | 6712
4201 | 29742
4202 | 48427
4203 | 43382
4204 | 39707
4205 | 6924
4206 | 16886
4207 | 9462
4208 | 5898
4209 | 30467
4210 | 11005
4211 | 43069
4212 | 8736
4213 | 35148
4214 | 27972
4215 | 35451
4216 | 44795
4217 | 3412
4218 | 8627
4219 | 39
4220 | 1406
4221 | 28319
4222 | 2619
4223 | 15294
4224 | 6473
4225 | 37802
4226 | 19044
4227 | 48327
4228 | 27833
4229 | 15427
4230 | 47576
4231 | 8187
4232 | 34851
4233 | 33516
4234 | 12311
4235 | 46598
4236 | 30547
4237 | 42171
4238 | 35213
4239 | 17157
4240 | 30633
4241 | 23453
4242 | 27462
4243 | 37978
4244 | 49201
4245 | 33758
4246 | 21897
4247 | 30578
4248 | 46271
4249 | 36812
4250 | 38248
4251 | 40378
4252 | 31563
4253 | 4782
4254 | 13638
4255 | 18786
4256 | 21638
4257 | 43283
4258 | 35350
4259 | 11452
4260 | 40961
4261 | 49501
4262 | 18839
4263 | 518
4264 | 43692
4265 | 12601
4266 | 1663
4267 | 2821
4268 | 14952
4269 | 43731
4270 | 28102
4271 | 45654
4272 | 16640
4273 | 38602
4274 | 31236
4275 | 25623
4276 | 35998
4277 | 37061
4278 | 20358
4279 | 1707
4280 | 162
4281 | 8058
4282 | 935
4283 | 10604
4284 | 8876
4285 | 28466
4286 | 23413
4287 | 12423
4288 | 1957
4289 | 16247
4290 | 38942
4291 | 36305
4292 | 21233
4293 | 23388
4294 | 20992
4295 | 35933
4296 | 28440
4297 | 28239
4298 | 31221
4299 | 4132
4300 | 44349
4301 | 1997
4302 | 37014
4303 | 25661
4304 | 45915
4305 | 7608
4306 | 38412
4307 | 38987
4308 | 13990
4309 | 14994
4310 | 42466
4311 | 47528
4312 | 18610
4313 | 31925
4314 | 34234
4315 | 49008
4316 | 32665
4317 | 35309
4318 | 26719
4319 | 2002
4320 | 42290
4321 | 45667
4322 | 47638
4323 | 22229
4324 | 2401
4325 | 1312
4326 | 12592
4327 | 27908
4328 | 10299
4329 | 20196
4330 | 25225
4331 | 2723
4332 | 37724
4333 | 4110
4334 | 38298
4335 | 28461
4336 | 38780
4337 | 36135
4338 | 3045
4339 | 28160
4340 | 5645
4341 | 1342
4342 | 43676
4343 | 24004
4344 | 44949
4345 | 8149
4346 | 22547
4347 | 31683
4348 | 4392
4349 | 10660
4350 | 25436
4351 | 38008
4352 | 8145
4353 | 9737
4354 | 49062
4355 | 13727
4356 | 8386
4357 | 16984
4358 | 33823
4359 | 34055
4360 | 23710
4361 | 24617
4362 | 43617
4363 | 40341
4364 | 16255
4365 | 44926
4366 | 24849
4367 | 39516
4368 | 11914
4369 | 17410
4370 | 46139
4371 | 37769
4372 | 42851
4373 | 43056
4374 | 25637
4375 | 24711
4376 | 27429
4377 | 21820
4378 | 341
4379 | 12710
4380 | 27688
4381 | 35741
4382 | 41508
4383 | 25628
4384 | 9967
4385 | 23
4386 | 9484
4387 | 8197
4388 | 45803
4389 | 17276
4390 | 20447
4391 | 21454
4392 | 23841
4393 | 32421
4394 | 37152
4395 | 43970
4396 | 3284
4397 | 12300
4398 | 30727
4399 | 16515
4400 | 16920
4401 | 27540
4402 | 38485
4403 | 33190
4404 | 39081
4405 | 31663
4406 | 39639
4407 | 44345
4408 | 3372
4409 | 6323
4410 | 25453
4411 | 23704
4412 | 31272
4413 | 37305
4414 | 21568
4415 | 11826
4416 | 37988
4417 | 24375
4418 | 47743
4419 | 16516
4420 | 17206
4421 | 5092
4422 | 18661
4423 | 32702
4424 | 47060
4425 | 26396
4426 | 48705
4427 | 29762
4428 | 3161
4429 | 11288
4430 | 41280
4431 | 16340
4432 | 12236
4433 | 23606
4434 | 25659
4435 | 8284
4436 | 9960
4437 | 9932
4438 | 47259
4439 | 45177
4440 | 36561
4441 | 15986
4442 | 25195
4443 | 37737
4444 | 1232
4445 | 23996
4446 | 3639
4447 | 28390
4448 | 45452
4449 | 32367
4450 | 18258
4451 | 28751
4452 | 9406
4453 | 5430
4454 | 20506
4455 | 19372
4456 | 32051
4457 | 7573
4458 | 15526
4459 | 9168
4460 | 11908
4461 | 17764
4462 | 1801
4463 | 27150
4464 | 17008
4465 | 36993
4466 | 28996
4467 | 1306
4468 | 39742
4469 | 28168
4470 | 13763
4471 | 38596
4472 | 42624
4473 | 3406
4474 | 47417
4475 | 47512
4476 | 47351
4477 | 7317
4478 | 29511
4479 | 6054
4480 | 630
4481 | 40803
4482 | 34097
4483 | 32877
4484 | 34123
4485 | 3741
4486 | 11782
4487 | 43324
4488 | 38215
4489 | 19319
4490 | 24933
4491 | 6492
4492 | 26431
4493 | 5988
4494 | 46031
4495 | 46790
4496 | 9536
4497 | 5461
4498 | 48534
4499 | 384
4500 | 42536
4501 | 41630
4502 | 17312
4503 | 10842
4504 | 8954
4505 | 39115
4506 | 34976
4507 | 9687
4508 | 31956
4509 | 16972
4510 | 48248
4511 | 25083
4512 | 1607
4513 | 26282
4514 | 26382
4515 | 791
4516 | 6110
4517 | 30198
4518 | 10196
4519 | 13480
4520 | 3982
4521 | 24580
4522 | 15638
4523 | 27064
4524 | 38923
4525 | 24426
4526 | 7078
4527 | 20362
4528 | 2427
4529 | 26196
4530 | 5389
4531 | 36372
4532 | 39995
4533 | 29404
4534 | 12556
4535 | 1277
4536 | 6999
4537 | 16309
4538 | 17130
4539 | 19359
4540 | 37141
4541 | 28394
4542 | 37412
4543 | 46030
4544 | 230
4545 | 21921
4546 | 10082
4547 | 21808
4548 | 14708
4549 | 1649
4550 | 6101
4551 | 35180
4552 | 44088
4553 | 35132
4554 | 44311
4555 | 30579
4556 | 18890
4557 | 11375
4558 | 44733
4559 | 46702
4560 | 47637
4561 | 40874
4562 | 19581
4563 | 11193
4564 | 3636
4565 | 11293
4566 | 21511
4567 | 28690
4568 | 14763
4569 | 9130
4570 | 1026
4571 | 36364
4572 | 7343
4573 | 19461
4574 | 10338
4575 | 8062
4576 | 43006
4577 | 31058
4578 | 1725
4579 | 313
4580 | 40627
4581 | 22649
4582 | 24905
4583 | 31320
4584 | 2641
4585 | 31019
4586 | 37088
4587 | 10200
4588 | 21719
4589 | 21066
4590 | 47127
4591 | 47896
4592 | 14266
4593 | 10974
4594 | 4541
4595 | 49163
4596 | 6531
4597 | 48373
4598 | 47004
4599 | 15896
4600 | 38303
4601 | 48641
4602 | 5924
4603 | 46322
4604 | 8485
4605 | 29265
4606 | 35776
4607 | 9002
4608 | 26679
4609 | 9671
4610 | 10678
4611 | 3642
4612 | 3418
4613 | 25824
4614 | 43681
4615 | 28917
4616 | 12951
4617 | 48483
4618 | 8320
4619 | 18926
4620 | 36370
4621 | 31157
4622 | 35727
4623 | 12038
4624 | 48511
4625 | 9744
4626 | 23865
4627 | 25454
4628 | 25831
4629 | 27252
4630 | 25102
4631 | 8502
4632 | 37263
4633 | 2903
4634 | 38510
4635 | 12204
4636 | 21429
4637 | 19117
4638 | 49076
4639 | 14407
4640 | 36544
4641 | 47350
4642 | 18616
4643 | 19710
4644 | 25460
4645 | 511
4646 | 44169
4647 | 20574
4648 | 37300
4649 | 41329
4650 | 46891
4651 | 16797
4652 | 35143
4653 | 40897
4654 | 12275
4655 | 11499
4656 | 28886
4657 | 26694
4658 | 3703
4659 | 11556
4660 | 32354
4661 | 48519
4662 | 38630
4663 | 10409
4664 | 35432
4665 | 30525
4666 | 27554
4667 | 47265
4668 | 21471
4669 | 7309
4670 | 29109
4671 | 46253
4672 | 34661
4673 | 23523
4674 | 28921
4675 | 35379
4676 | 16139
4677 | 14881
4678 | 23224
4679 | 2142
4680 | 43507
4681 | 28018
4682 | 892
4683 | 47543
4684 | 4252
4685 | 12776
4686 | 33949
4687 | 37119
4688 | 14848
4689 | 33825
4690 | 30897
4691 | 22557
4692 | 35059
4693 | 6631
4694 | 6590
4695 | 38566
4696 | 12110
4697 | 15647
4698 | 35110
4699 | 43965
4700 | 49347
4701 | 37888
4702 | 16813
4703 | 1466
4704 | 1189
4705 | 46096
4706 | 15527
4707 | 14379
4708 | 46900
4709 | 33817
4710 | 27762
4711 | 44016
4712 | 25672
4713 | 3177
4714 | 47292
4715 | 44482
4716 | 43459
4717 | 45398
4718 | 2608
4719 | 17302
4720 | 49195
4721 | 27530
4722 | 40458
4723 | 44593
4724 | 2562
4725 | 21125
4726 | 9714
4727 | 33445
4728 | 4061
4729 | 20830
4730 | 49277
4731 | 44997
4732 | 45593
4733 | 15347
4734 | 11066
4735 | 11129
4736 | 4910
4737 | 8487
4738 | 18076
4739 | 44067
4740 | 21745
4741 | 29995
4742 | 14488
4743 | 1462
4744 | 14689
4745 | 22226
4746 | 2494
4747 | 11436
4748 | 5652
4749 | 19426
4750 | 18914
4751 | 33121
4752 | 12337
4753 | 1838
4754 | 44205
4755 | 25851
4756 | 934
4757 | 46579
4758 | 46025
4759 | 7793
4760 | 400
4761 | 5756
4762 | 38347
4763 | 9422
4764 | 14626
4765 | 16555
4766 | 14643
4767 | 547
4768 | 21979
4769 | 13780
4770 | 29161
4771 | 36621
4772 | 11454
4773 | 34988
4774 | 42289
4775 | 31028
4776 | 44800
4777 | 27030
4778 | 5054
4779 | 1046
4780 | 49303
4781 | 41768
4782 | 45700
4783 | 7551
4784 | 40371
4785 | 4156
4786 | 36117
4787 | 18766
4788 | 17085
4789 | 43508
4790 | 8358
4791 | 24573
4792 | 16200
4793 | 3617
4794 | 33847
4795 | 44045
4796 | 33093
4797 | 22952
4798 | 46855
4799 | 32897
4800 | 12686
4801 | 4195
4802 | 42547
4803 | 1823
4804 | 44829
4805 | 41323
4806 | 38158
4807 | 15540
4808 | 5854
4809 | 16639
4810 | 29963
4811 | 2545
4812 | 29327
4813 | 19373
4814 | 2960
4815 | 49878
4816 | 17552
4817 | 24973
4818 | 10859
4819 | 32657
4820 | 25240
4821 | 9244
4822 | 20758
4823 | 18213
4824 | 27244
4825 | 47877
4826 | 48871
4827 | 4632
4828 | 27953
4829 | 28535
4830 | 35853
4831 | 34765
4832 | 2700
4833 | 46435
4834 | 25297
4835 | 31615
4836 | 21108
4837 | 33277
4838 | 46711
4839 | 19457
4840 | 20234
4841 | 34897
4842 | 39457
4843 | 33760
4844 | 48166
4845 | 19828
4846 | 34848
4847 | 15034
4848 | 15445
4849 | 25886
4850 | 17645
4851 | 18032
4852 | 25602
4853 | 33058
4854 | 14228
4855 | 45262
4856 | 28371
4857 | 3791
4858 | 11228
4859 | 39087
4860 | 28583
4861 | 23369
4862 | 36284
4863 | 38928
4864 | 14861
4865 | 7655
4866 | 25031
4867 | 40556
4868 | 3491
4869 | 37424
4870 | 14302
4871 | 21924
4872 | 23849
4873 | 33838
4874 | 17
4875 | 15793
4876 | 10684
4877 | 27949
4878 | 40168
4879 | 15749
4880 | 37464
4881 | 43400
4882 | 20592
4883 | 19607
4884 | 36439
4885 | 21010
4886 | 31899
4887 | 47258
4888 | 13942
4889 | 16954
4890 | 25821
4891 | 48042
4892 | 23008
4893 | 428
4894 | 29017
4895 | 48673
4896 | 39785
4897 | 43596
4898 | 7884
4899 | 5714
4900 | 41368
4901 | 5063
4902 | 47291
4903 | 26782
4904 | 29937
4905 | 43852
4906 | 33110
4907 | 20449
4908 | 11547
4909 | 39420
4910 | 929
4911 | 19014
4912 | 578
4913 | 20881
4914 | 32810
4915 | 38492
4916 | 18385
4917 | 11092
4918 | 692
4919 | 16894
4920 | 14155
4921 | 598
4922 | 34328
4923 | 1451
4924 | 8510
4925 | 3677
4926 | 18748
4927 | 14675
4928 | 45929
4929 | 6159
4930 | 8650
4931 | 9802
4932 | 33704
4933 | 31514
4934 | 21782
4935 | 19102
4936 | 6097
4937 | 15153
4938 | 12689
4939 | 31067
4940 | 12001
4941 | 24267
4942 | 18109
4943 | 24830
4944 | 38361
4945 | 39097
4946 | 40936
4947 | 18876
4948 | 22129
4949 | 20225
4950 | 36121
4951 | 39231
4952 | 10718
4953 | 23921
4954 | 12690
4955 | 41751
4956 | 29715
4957 | 48141
4958 | 32302
4959 | 5651
4960 | 39683
4961 | 21881
4962 | 35177
4963 | 8620
4964 | 32038
4965 | 20660
4966 | 24374
4967 | 5337
4968 | 40297
4969 | 16719
4970 | 45920
4971 | 33603
4972 | 97
4973 | 24561
4974 | 14239
4975 | 47362
4976 | 27199
4977 | 14552
4978 | 31907
4979 | 38487
4980 | 45487
4981 | 4029
4982 | 4300
4983 | 11561
4984 | 13278
4985 | 8911
4986 | 14381
4987 | 2138
4988 | 8746
4989 | 32004
4990 | 30627
4991 | 49612
4992 | 7628
4993 | 19551
4994 | 13201
4995 | 17473
4996 | 27256
4997 | 11202
4998 | 24863
4999 | 25201
5000 | 16508
5001 |
--------------------------------------------------------------------------------
/cifar10_checkpoints_active_set/active_set_cycle_0.txt:
--------------------------------------------------------------------------------
1 | 17247
2 | 5130
3 | 35434
4 | 37432
5 | 31987
6 | 15352
7 | 33268
8 | 39392
9 | 46362
10 | 41900
11 | 35256
12 | 49615
13 | 21440
14 | 34460
15 | 24502
16 | 41651
17 | 15353
18 | 33542
19 | 16004
20 | 23610
21 | 27934
22 | 13979
23 | 32290
24 | 28548
25 | 42039
26 | 22112
27 | 36195
28 | 41855
29 | 14190
30 | 37674
31 | 4868
32 | 2189
33 | 14479
34 | 1187
35 | 1708
36 | 34173
37 | 9945
38 | 5665
39 | 48246
40 | 40131
41 | 2248
42 | 30535
43 | 5432
44 | 11689
45 | 30539
46 | 27724
47 | 38783
48 | 31635
49 | 12922
50 | 25431
51 | 46585
52 | 927
53 | 17395
54 | 40271
55 | 32761
56 | 36610
57 | 41456
58 | 42148
59 | 29544
60 | 4470
61 | 38098
62 | 29099
63 | 9813
64 | 26499
65 | 23602
66 | 32365
67 | 32483
68 | 25843
69 | 22276
70 | 49941
71 | 18704
72 | 33249
73 | 29286
74 | 15240
75 | 31286
76 | 29880
77 | 16734
78 | 28009
79 | 7225
80 | 33386
81 | 45419
82 | 5472
83 | 39904
84 | 39670
85 | 25808
86 | 49559
87 | 43740
88 | 47355
89 | 39927
90 | 30971
91 | 10326
92 | 21087
93 | 36155
94 | 31674
95 | 15225
96 | 34781
97 | 48516
98 | 16423
99 | 18854
100 | 5028
101 | 34459
102 | 30811
103 | 4271
104 | 37160
105 | 9881
106 | 20188
107 | 28525
108 | 27986
109 | 12883
110 | 19634
111 | 37729
112 | 2014
113 | 17838
114 | 28273
115 | 16912
116 | 46434
117 | 11475
118 | 35725
119 | 37178
120 | 40516
121 | 10617
122 | 40317
123 | 14509
124 | 16380
125 | 16213
126 | 47458
127 | 48317
128 | 48105
129 | 37049
130 | 45085
131 | 28444
132 | 23629
133 | 15677
134 | 14754
135 | 24365
136 | 39486
137 | 23352
138 | 7647
139 | 16048
140 | 8199
141 | 32573
142 | 29336
143 | 14335
144 | 42908
145 | 10675
146 | 12818
147 | 39379
148 | 43660
149 | 5371
150 | 24079
151 | 49176
152 | 1249
153 | 38718
154 | 20969
155 | 24333
156 | 13368
157 | 16002
158 | 17107
159 | 9596
160 | 33214
161 | 46631
162 | 40648
163 | 38536
164 | 12345
165 | 13712
166 | 9619
167 | 20924
168 | 23805
169 | 18383
170 | 938
171 | 9384
172 | 38580
173 | 37493
174 | 29
175 | 47689
176 | 41266
177 | 32188
178 | 2010
179 | 35594
180 | 28917
181 | 31105
182 | 44930
183 | 24549
184 | 29772
185 | 21564
186 | 3582
187 | 9430
188 | 10650
189 | 40761
190 | 8934
191 | 20759
192 | 2490
193 | 19438
194 | 32990
195 | 8898
196 | 42057
197 | 5843
198 | 23449
199 | 32326
200 | 18951
201 | 17222
202 | 12429
203 | 3938
204 | 8853
205 | 38185
206 | 29783
207 | 34189
208 | 29860
209 | 5346
210 | 4079
211 | 4941
212 | 18808
213 | 9221
214 | 10578
215 | 24514
216 | 24356
217 | 35042
218 | 46480
219 | 30114
220 | 13716
221 | 2473
222 | 3076
223 | 33451
224 | 598
225 | 26412
226 | 38235
227 | 628
228 | 11691
229 | 1493
230 | 12659
231 | 43951
232 | 33922
233 | 23854
234 | 32602
235 | 18737
236 | 2330
237 | 9314
238 | 49349
239 | 32934
240 | 7865
241 | 33617
242 | 30415
243 | 8207
244 | 45088
245 | 48100
246 | 2950
247 | 10243
248 | 8774
249 | 33638
250 | 35411
251 | 45737
252 | 42179
253 | 34109
254 | 27315
255 | 38419
256 | 7311
257 | 13850
258 | 49128
259 | 13707
260 | 24252
261 | 44167
262 | 9895
263 | 25615
264 | 7847
265 | 695
266 | 3063
267 | 36574
268 | 29412
269 | 2932
270 | 26421
271 | 25514
272 | 49735
273 | 37233
274 | 24690
275 | 46922
276 | 11263
277 | 33694
278 | 5699
279 | 34787
280 | 4821
281 | 18803
282 | 32109
283 | 8096
284 | 45509
285 | 32884
286 | 33162
287 | 35873
288 | 21732
289 | 47473
290 | 44582
291 | 41636
292 | 46277
293 | 2107
294 | 34018
295 | 39650
296 | 23481
297 | 9874
298 | 22875
299 | 33670
300 | 24567
301 | 46987
302 | 17101
303 | 20124
304 | 36279
305 | 45364
306 | 40556
307 | 12409
308 | 20980
309 | 29593
310 | 1012
311 | 34724
312 | 15087
313 | 46367
314 | 23462
315 | 40548
316 | 650
317 | 22286
318 | 44967
319 | 8759
320 | 32194
321 | 30913
322 | 26178
323 | 29400
324 | 11474
325 | 3979
326 | 22690
327 | 42010
328 | 49507
329 | 8296
330 | 7347
331 | 30743
332 | 3113
333 | 48891
334 | 34547
335 | 43564
336 | 8663
337 | 48851
338 | 40680
339 | 17763
340 | 49837
341 | 28380
342 | 37909
343 | 19273
344 | 15500
345 | 13747
346 | 3585
347 | 47336
348 | 33229
349 | 25920
350 | 1811
351 | 1424
352 | 35750
353 | 47991
354 | 5956
355 | 31961
356 | 33471
357 | 46394
358 | 31880
359 | 39819
360 | 36068
361 | 4490
362 | 31086
363 | 13800
364 | 35286
365 | 31391
366 | 33864
367 | 18745
368 | 7002
369 | 43664
370 | 46964
371 | 15735
372 | 33926
373 | 25097
374 | 33347
375 | 33416
376 | 1664
377 | 21144
378 | 43077
379 | 48013
380 | 33596
381 | 4798
382 | 37504
383 | 21903
384 | 44568
385 | 14128
386 | 9401
387 | 47105
388 | 48618
389 | 18106
390 | 28742
391 | 5874
392 | 22458
393 | 7991
394 | 11060
395 | 22796
396 | 4967
397 | 22628
398 | 45010
399 | 4854
400 | 21930
401 | 32870
402 | 33076
403 | 20790
404 | 3277
405 | 35991
406 | 24735
407 | 27170
408 | 19928
409 | 47220
410 | 40635
411 | 31947
412 | 26018
413 | 20910
414 | 34750
415 | 42231
416 | 18203
417 | 40525
418 | 1601
419 | 22924
420 | 46108
421 | 32627
422 | 34381
423 | 47317
424 | 9611
425 | 35147
426 | 9124
427 | 77
428 | 28140
429 | 33489
430 | 39589
431 | 42984
432 | 9566
433 | 30636
434 | 7299
435 | 28113
436 | 23377
437 | 45123
438 | 7612
439 | 43288
440 | 33728
441 | 15923
442 | 2401
443 | 21924
444 | 16397
445 | 9666
446 | 6393
447 | 44303
448 | 27646
449 | 45956
450 | 35263
451 | 37066
452 | 4524
453 | 15396
454 | 6013
455 | 752
456 | 25288
457 | 10159
458 | 26913
459 | 44770
460 | 14482
461 | 44866
462 | 33647
463 | 28456
464 | 39396
465 | 23738
466 | 16235
467 | 11325
468 | 7490
469 | 36004
470 | 38499
471 | 14468
472 | 43754
473 | 47693
474 | 32033
475 | 31600
476 | 39012
477 | 37439
478 | 6142
479 | 32309
480 | 45349
481 | 18368
482 | 20169
483 | 27071
484 | 33950
485 | 49344
486 | 30158
487 | 24943
488 | 31119
489 | 15086
490 | 21000
491 | 40830
492 | 24507
493 | 5994
494 | 20722
495 | 22408
496 | 27267
497 | 8097
498 | 9096
499 | 17677
500 | 14275
501 | 18719
502 | 19242
503 | 16925
504 | 24462
505 | 38031
506 | 49932
507 | 28617
508 | 46514
509 | 41653
510 | 37592
511 | 25961
512 | 13647
513 | 16953
514 | 45600
515 | 7683
516 | 36238
517 | 11702
518 | 37235
519 | 841
520 | 38464
521 | 45157
522 | 49993
523 | 36848
524 | 23832
525 | 31969
526 | 43205
527 | 38919
528 | 49426
529 | 42916
530 | 31352
531 | 20307
532 | 8965
533 | 44217
534 | 37929
535 | 23703
536 | 45283
537 | 30198
538 | 41217
539 | 23895
540 | 1731
541 | 27019
542 | 8667
543 | 31604
544 | 26636
545 | 833
546 | 9965
547 | 30613
548 | 16286
549 | 14417
550 | 13217
551 | 25608
552 | 31323
553 | 49348
554 | 21027
555 | 33640
556 | 21615
557 | 8548
558 | 31138
559 | 27404
560 | 7622
561 | 6899
562 | 14300
563 | 33838
564 | 43728
565 | 17626
566 | 22516
567 | 28292
568 | 25685
569 | 18471
570 | 45672
571 | 42239
572 | 24269
573 | 42060
574 | 23156
575 | 19399
576 | 46520
577 | 27132
578 | 26344
579 | 47226
580 | 25614
581 | 33598
582 | 44281
583 | 30047
584 | 36703
585 | 20895
586 | 39277
587 | 29710
588 | 17995
589 | 3779
590 | 1103
591 | 18754
592 | 44889
593 | 44272
594 | 18316
595 | 36208
596 | 41153
597 | 3886
598 | 14238
599 | 41147
600 | 31322
601 | 14851
602 | 22090
603 | 39039
604 | 30945
605 | 41262
606 | 48901
607 | 20155
608 | 46748
609 | 9189
610 | 7077
611 | 37938
612 | 17609
613 | 6895
614 | 41844
615 | 49040
616 | 28780
617 | 36935
618 | 28248
619 | 30083
620 | 29963
621 | 22503
622 | 10359
623 | 34081
624 | 6670
625 | 46328
626 | 25799
627 | 38157
628 | 15797
629 | 9407
630 | 33650
631 | 27625
632 | 47824
633 | 47290
634 | 33742
635 | 4458
636 | 40759
637 | 34871
638 | 27101
639 | 14964
640 | 39974
641 | 160
642 | 2582
643 | 37253
644 | 17722
645 | 4385
646 | 37269
647 | 30768
648 | 10642
649 | 31720
650 | 42347
651 | 5635
652 | 40822
653 | 45444
654 | 46206
655 | 32319
656 | 8225
657 | 33241
658 | 23933
659 | 3142
660 | 49759
661 | 43655
662 | 10248
663 | 15906
664 | 28963
665 | 8690
666 | 42065
667 | 36005
668 | 28876
669 | 5102
670 | 1153
671 | 45466
672 | 23837
673 | 48141
674 | 49999
675 | 2280
676 | 46828
677 | 2390
678 | 39118
679 | 20761
680 | 38872
681 | 16268
682 | 49151
683 | 41576
684 | 45291
685 | 45399
686 | 24767
687 | 2320
688 | 14507
689 | 16673
690 | 35783
691 | 40013
692 | 2587
693 | 23752
694 | 29959
695 | 23232
696 | 29777
697 | 49447
698 | 46859
699 | 10824
700 | 2756
701 | 21877
702 | 42658
703 | 23263
704 | 11804
705 | 42673
706 | 41472
707 | 4492
708 | 24294
709 | 10846
710 | 42287
711 | 27073
712 | 43394
713 | 9595
714 | 22867
715 | 49345
716 | 31657
717 | 19678
718 | 30088
719 | 23514
720 | 2455
721 | 43453
722 | 10190
723 | 34263
724 | 20857
725 | 26304
726 | 5459
727 | 32886
728 | 19265
729 | 41017
730 | 17548
731 | 29967
732 | 33625
733 | 24381
734 | 8130
735 | 26526
736 | 2037
737 | 37145
738 | 40407
739 | 1907
740 | 19668
741 | 36844
742 | 32121
743 | 22316
744 | 5947
745 | 27306
746 | 7862
747 | 12875
748 | 20811
749 | 4858
750 | 9849
751 | 2005
752 | 20897
753 | 32681
754 | 20680
755 | 12283
756 | 35705
757 | 2029
758 | 2765
759 | 20781
760 | 2588
761 | 25582
762 | 39455
763 | 11920
764 | 41138
765 | 8095
766 | 39965
767 | 45308
768 | 21178
769 | 39987
770 | 41520
771 | 7796
772 | 4013
773 | 8938
774 | 22762
775 | 22292
776 | 10325
777 | 35081
778 | 19626
779 | 34810
780 | 26986
781 | 39132
782 | 18902
783 | 19769
784 | 10054
785 | 36129
786 | 49232
787 | 5021
788 | 12927
789 | 38482
790 | 31534
791 | 28805
792 | 8801
793 | 23311
794 | 33545
795 | 38231
796 | 24665
797 | 22658
798 | 24999
799 | 8181
800 | 36679
801 | 18354
802 | 21720
803 | 23969
804 | 21423
805 | 8570
806 | 47989
807 | 46330
808 | 32438
809 | 29699
810 | 34287
811 | 7821
812 | 35012
813 | 29571
814 | 18311
815 | 22596
816 | 22754
817 | 28098
818 | 37412
819 | 35076
820 | 45
821 | 47703
822 | 44474
823 | 37320
824 | 10314
825 | 26298
826 | 23015
827 | 45001
828 | 24220
829 | 5759
830 | 4334
831 | 15583
832 | 24680
833 | 14376
834 | 12336
835 | 14874
836 | 14498
837 | 8486
838 | 8127
839 | 21094
840 | 44686
841 | 35531
842 | 5515
843 | 38261
844 | 35827
845 | 41289
846 | 26474
847 | 48962
848 | 10420
849 | 47280
850 | 17694
851 | 10271
852 | 33624
853 | 2101
854 | 49121
855 | 7300
856 | 16986
857 | 9583
858 | 36991
859 | 37727
860 | 11308
861 | 45296
862 | 29675
863 | 8848
864 | 39996
865 | 4949
866 | 16272
867 | 22395
868 | 46889
869 | 44620
870 | 29252
871 | 5202
872 | 18594
873 | 21547
874 | 43825
875 | 140
876 | 13332
877 | 46920
878 | 22269
879 | 49221
880 | 31786
881 | 16197
882 | 8480
883 | 18276
884 | 1502
885 | 14240
886 | 40207
887 | 38037
888 | 30463
889 | 26310
890 | 9335
891 | 10049
892 | 206
893 | 29894
894 | 30049
895 | 42410
896 | 28535
897 | 48746
898 | 48322
899 | 48899
900 | 34202
901 | 27143
902 | 46598
903 | 49748
904 | 1631
905 | 2283
906 | 26881
907 | 35779
908 | 24151
909 | 14167
910 | 29522
911 | 16211
912 | 48845
913 | 4084
914 | 14721
915 | 29911
916 | 7342
917 | 23685
918 | 40431
919 | 14795
920 | 40505
921 | 29318
922 | 21149
923 | 46194
924 | 41248
925 | 699
926 | 14501
927 | 47670
928 | 20783
929 | 28268
930 | 37618
931 | 37043
932 | 6871
933 | 29409
934 | 25438
935 | 4261
936 | 37755
937 | 36258
938 | 12856
939 | 28643
940 | 24375
941 | 41857
942 | 39818
943 | 32580
944 | 13118
945 | 9251
946 | 9717
947 | 29822
948 | 9070
949 | 9646
950 | 20494
951 | 9539
952 | 25974
953 | 15394
954 | 22710
955 | 48917
956 | 1570
957 | 25697
958 | 47264
959 | 43668
960 | 29791
961 | 49150
962 | 10249
963 | 1020
964 | 43480
965 | 49652
966 | 31890
967 | 39240
968 | 49820
969 | 15423
970 | 6411
971 | 38270
972 | 44960
973 | 49230
974 | 35694
975 | 25150
976 | 39402
977 | 5197
978 | 48806
979 | 39484
980 | 2249
981 | 40034
982 | 26331
983 | 38223
984 | 23248
985 | 13940
986 | 13122
987 | 48640
988 | 30314
989 | 42758
990 | 2328
991 | 24863
992 | 32258
993 | 34940
994 | 2851
995 | 15061
996 | 21153
997 | 37012
998 | 17673
999 | 37590
1000 | 15306
1001 | 18733
1002 | 7877
1003 | 44113
1004 | 21131
1005 | 48531
1006 | 3626
1007 | 38349
1008 | 3847
1009 | 47224
1010 | 46943
1011 | 9455
1012 | 3961
1013 | 24097
1014 | 8530
1015 | 48137
1016 | 648
1017 | 5087
1018 | 9038
1019 | 19241
1020 | 38664
1021 | 11443
1022 | 4370
1023 | 13752
1024 | 1542
1025 | 39983
1026 | 43692
1027 | 9424
1028 | 5992
1029 | 2902
1030 | 4902
1031 | 7653
1032 | 11825
1033 | 47668
1034 | 20645
1035 | 30602
1036 | 12748
1037 | 22074
1038 | 14029
1039 | 33310
1040 | 12448
1041 | 17362
1042 | 21750
1043 | 36122
1044 | 1705
1045 | 15303
1046 | 8862
1047 | 7209
1048 | 35771
1049 | 24170
1050 | 3663
1051 | 26773
1052 | 2561
1053 | 13759
1054 | 35348
1055 | 27948
1056 | 8395
1057 | 7644
1058 | 16406
1059 | 35075
1060 | 19207
1061 | 18496
1062 | 34654
1063 | 25086
1064 | 49784
1065 | 47742
1066 | 10750
1067 | 36170
1068 | 12506
1069 | 15034
1070 | 31041
1071 | 35168
1072 | 13856
1073 | 20621
1074 | 37840
1075 | 7340
1076 | 36410
1077 | 26175
1078 | 15926
1079 | 44523
1080 | 27587
1081 | 47171
1082 | 33616
1083 | 19039
1084 | 18790
1085 | 10671
1086 | 5817
1087 | 20660
1088 | 39436
1089 | 35350
1090 | 28648
1091 | 7542
1092 | 885
1093 | 15899
1094 | 3301
1095 | 2346
1096 | 49357
1097 | 25041
1098 | 19225
1099 | 18242
1100 | 14399
1101 | 49956
1102 | 44238
1103 | 8726
1104 | 35887
1105 | 2193
1106 | 16319
1107 | 40176
1108 | 34555
1109 | 37008
1110 | 30453
1111 | 27825
1112 | 25528
1113 | 48014
1114 | 8888
1115 | 6549
1116 | 32792
1117 | 36330
1118 | 11961
1119 | 24409
1120 | 30315
1121 | 32858
1122 | 39145
1123 | 31002
1124 | 40534
1125 | 33051
1126 | 5574
1127 | 26864
1128 | 21139
1129 | 37947
1130 | 14811
1131 | 3693
1132 | 32687
1133 | 47846
1134 | 17980
1135 | 10018
1136 | 19950
1137 | 48594
1138 | 19057
1139 | 9191
1140 | 9659
1141 | 30470
1142 | 22045
1143 | 33851
1144 | 13418
1145 | 2789
1146 | 24926
1147 | 22510
1148 | 9199
1149 | 11921
1150 | 18376
1151 | 37941
1152 | 28403
1153 | 49268
1154 | 41972
1155 | 20839
1156 | 26982
1157 | 21018
1158 | 32480
1159 | 15837
1160 | 40960
1161 | 14421
1162 | 35216
1163 | 27816
1164 | 39237
1165 | 43513
1166 | 18088
1167 | 14199
1168 | 32289
1169 | 27845
1170 | 45320
1171 | 27549
1172 | 25130
1173 | 29611
1174 | 40727
1175 | 39928
1176 | 16867
1177 | 4038
1178 | 49449
1179 | 34729
1180 | 39834
1181 | 26807
1182 | 11884
1183 | 48994
1184 | 7844
1185 | 18948
1186 | 7151
1187 | 7840
1188 | 34413
1189 | 41342
1190 | 43569
1191 | 31621
1192 | 42094
1193 | 18163
1194 | 24533
1195 | 37255
1196 | 24019
1197 | 21321
1198 | 2948
1199 | 20266
1200 | 2163
1201 | 6097
1202 | 28399
1203 | 20673
1204 | 47449
1205 | 47903
1206 | 1932
1207 | 7397
1208 | 17329
1209 | 31420
1210 | 6583
1211 | 24403
1212 | 48651
1213 | 39809
1214 | 3253
1215 | 14793
1216 | 36583
1217 | 43179
1218 | 3193
1219 | 43589
1220 | 21885
1221 | 43312
1222 | 15975
1223 | 31318
1224 | 46405
1225 | 43041
1226 | 48504
1227 | 30974
1228 | 31191
1229 | 1838
1230 | 46541
1231 | 35460
1232 | 19888
1233 | 19044
1234 | 36339
1235 | 19157
1236 | 49693
1237 | 31501
1238 | 11985
1239 | 6063
1240 | 540
1241 | 23632
1242 | 27884
1243 | 11342
1244 | 31691
1245 | 2224
1246 | 5026
1247 | 21906
1248 | 5862
1249 | 17239
1250 | 33649
1251 | 45849
1252 | 33277
1253 | 13682
1254 | 33544
1255 | 18477
1256 | 25495
1257 | 9272
1258 | 47594
1259 | 26758
1260 | 37684
1261 | 12074
1262 | 16050
1263 | 7522
1264 | 34930
1265 | 34974
1266 | 47718
1267 | 17651
1268 | 15134
1269 | 31272
1270 | 14829
1271 | 39096
1272 | 18164
1273 | 35880
1274 | 37713
1275 | 18650
1276 | 41459
1277 | 3235
1278 | 40908
1279 | 35310
1280 | 36465
1281 | 30007
1282 | 18564
1283 | 46244
1284 | 9716
1285 | 18652
1286 | 25089
1287 | 39935
1288 | 18464
1289 | 33286
1290 | 21363
1291 | 33602
1292 | 10289
1293 | 49686
1294 | 25646
1295 | 30117
1296 | 34256
1297 | 38907
1298 | 38623
1299 | 48694
1300 | 10616
1301 | 4700
1302 | 17669
1303 | 42815
1304 | 21426
1305 | 32467
1306 | 18510
1307 | 30239
1308 | 44427
1309 | 3484
1310 | 40444
1311 | 16402
1312 | 47
1313 | 42861
1314 | 49008
1315 | 35718
1316 | 11194
1317 | 29198
1318 | 13438
1319 | 6177
1320 | 17598
1321 | 14835
1322 | 48392
1323 | 17786
1324 | 28307
1325 | 43507
1326 | 15124
1327 | 6616
1328 | 7761
1329 | 24742
1330 | 33481
1331 | 26588
1332 | 41834
1333 | 28734
1334 | 13397
1335 | 5204
1336 | 724
1337 | 9348
1338 | 26992
1339 | 13448
1340 | 14157
1341 | 17883
1342 | 28107
1343 | 30988
1344 | 9240
1345 | 1443
1346 | 27800
1347 | 26695
1348 | 9757
1349 | 28878
1350 | 17582
1351 | 24461
1352 | 13275
1353 | 21365
1354 | 864
1355 | 44038
1356 | 16616
1357 | 42329
1358 | 810
1359 | 21841
1360 | 46410
1361 | 15696
1362 | 43421
1363 | 6801
1364 | 7633
1365 | 4491
1366 | 27696
1367 | 46652
1368 | 34885
1369 | 37464
1370 | 7850
1371 | 31007
1372 | 9660
1373 | 36268
1374 | 16569
1375 | 25921
1376 | 15828
1377 | 6412
1378 | 9150
1379 | 24136
1380 | 2079
1381 | 9992
1382 | 43177
1383 | 5248
1384 | 28594
1385 | 34651
1386 | 16249
1387 | 7739
1388 | 44730
1389 | 16807
1390 | 41667
1391 | 12790
1392 | 27484
1393 | 5005
1394 | 28849
1395 | 24437
1396 | 23650
1397 | 20538
1398 | 3164
1399 | 42200
1400 | 12387
1401 | 44542
1402 | 18503
1403 | 17320
1404 | 45940
1405 | 47750
1406 | 38398
1407 | 5540
1408 | 40225
1409 | 22803
1410 | 2093
1411 | 32513
1412 | 49538
1413 | 14860
1414 | 8100
1415 | 30894
1416 | 13447
1417 | 18372
1418 | 7165
1419 | 1752
1420 | 46584
1421 | 33445
1422 | 43702
1423 | 3281
1424 | 26234
1425 | 39478
1426 | 30726
1427 | 40011
1428 | 34393
1429 | 49419
1430 | 17092
1431 | 47452
1432 | 44480
1433 | 27325
1434 | 41308
1435 | 36468
1436 | 48835
1437 | 31343
1438 | 13848
1439 | 2938
1440 | 16208
1441 | 33081
1442 | 48288
1443 | 6081
1444 | 34268
1445 | 32045
1446 | 6963
1447 | 44193
1448 | 40786
1449 | 42605
1450 | 44584
1451 | 33842
1452 | 90
1453 | 29812
1454 | 48092
1455 | 42480
1456 | 5913
1457 | 33377
1458 | 49020
1459 | 1532
1460 | 42889
1461 | 6927
1462 | 35673
1463 | 48370
1464 | 21332
1465 | 35451
1466 | 2875
1467 | 23159
1468 | 26019
1469 | 21922
1470 | 37198
1471 | 32321
1472 | 27865
1473 | 33474
1474 | 6133
1475 | 10057
1476 | 19158
1477 | 48676
1478 | 283
1479 | 44203
1480 | 42928
1481 | 48366
1482 | 38806
1483 | 20797
1484 | 26768
1485 | 44776
1486 | 8166
1487 | 13677
1488 | 40221
1489 | 12721
1490 | 11959
1491 | 23919
1492 | 4853
1493 | 15852
1494 | 474
1495 | 31058
1496 | 34907
1497 | 48692
1498 | 1768
1499 | 28112
1500 | 46771
1501 | 44973
1502 | 49233
1503 | 8162
1504 | 45691
1505 | 34197
1506 | 49142
1507 | 42547
1508 | 8598
1509 | 19827
1510 | 33894
1511 | 45351
1512 | 40370
1513 | 3003
1514 | 37554
1515 | 8153
1516 | 40066
1517 | 22850
1518 | 17365
1519 | 48742
1520 | 28237
1521 | 49692
1522 | 23922
1523 | 32939
1524 | 13661
1525 | 30866
1526 | 44267
1527 | 7228
1528 | 13053
1529 | 36946
1530 | 12155
1531 | 31337
1532 | 33635
1533 | 23218
1534 | 37906
1535 | 38626
1536 | 33917
1537 | 13329
1538 | 11320
1539 | 31414
1540 | 14702
1541 | 44390
1542 | 25663
1543 | 17449
1544 | 14919
1545 | 46886
1546 | 19099
1547 | 2348
1548 | 22748
1549 | 33879
1550 | 36917
1551 | 49832
1552 | 16339
1553 | 31346
1554 | 4102
1555 | 10883
1556 | 13630
1557 | 5744
1558 | 19249
1559 | 5492
1560 | 32320
1561 | 33955
1562 | 22826
1563 | 33841
1564 | 29021
1565 | 34886
1566 | 34658
1567 | 13686
1568 | 18499
1569 | 18446
1570 | 9357
1571 | 28608
1572 | 43487
1573 | 9334
1574 | 46697
1575 | 44852
1576 | 23942
1577 | 48957
1578 | 34858
1579 | 21835
1580 | 31094
1581 | 16904
1582 | 49386
1583 | 43877
1584 | 5877
1585 | 40446
1586 | 6883
1587 | 1655
1588 | 36036
1589 | 38673
1590 | 6186
1591 | 3201
1592 | 11119
1593 | 48834
1594 | 10784
1595 | 23261
1596 | 34029
1597 | 15834
1598 | 35794
1599 | 11680
1600 | 46160
1601 | 16190
1602 | 287
1603 | 32846
1604 | 19838
1605 | 11011
1606 | 8302
1607 | 5859
1608 | 41016
1609 | 45066
1610 | 33642
1611 | 18858
1612 | 7909
1613 | 28308
1614 | 25219
1615 | 39777
1616 | 6402
1617 | 4475
1618 | 4361
1619 | 6030
1620 | 22406
1621 | 46555
1622 | 46295
1623 | 43971
1624 | 41057
1625 | 5610
1626 | 34714
1627 | 27920
1628 | 20784
1629 | 19771
1630 | 6263
1631 | 45402
1632 | 43339
1633 | 33101
1634 | 41694
1635 | 20528
1636 | 22216
1637 | 37223
1638 | 5966
1639 | 23862
1640 | 19580
1641 | 37967
1642 | 26482
1643 | 40756
1644 | 30753
1645 | 20920
1646 | 44693
1647 | 9489
1648 | 11359
1649 | 15411
1650 | 36222
1651 | 25218
1652 | 42187
1653 | 23935
1654 | 30587
1655 | 27413
1656 | 33801
1657 | 41594
1658 | 3057
1659 | 11632
1660 | 20390
1661 | 31910
1662 | 25716
1663 | 29810
1664 | 6511
1665 | 37297
1666 | 2648
1667 | 28811
1668 | 21948
1669 | 2083
1670 | 27317
1671 | 31499
1672 | 24611
1673 | 39140
1674 | 46347
1675 | 11718
1676 | 8133
1677 | 11568
1678 | 13201
1679 | 46226
1680 | 16449
1681 | 15083
1682 | 49500
1683 | 17401
1684 | 42141
1685 | 14070
1686 | 36543
1687 | 37105
1688 | 30975
1689 | 26253
1690 | 3646
1691 | 25772
1692 | 6169
1693 | 43402
1694 | 11449
1695 | 39129
1696 | 35307
1697 | 6596
1698 | 3575
1699 | 46950
1700 | 39979
1701 | 17821
1702 | 1120
1703 | 7812
1704 | 23807
1705 | 39789
1706 | 11929
1707 | 45479
1708 | 19060
1709 | 5586
1710 | 26160
1711 | 32350
1712 | 6466
1713 | 7835
1714 | 49280
1715 | 12904
1716 | 17074
1717 | 20335
1718 | 24177
1719 | 11874
1720 | 37429
1721 | 41012
1722 | 38127
1723 | 46402
1724 | 3565
1725 | 49146
1726 | 1856
1727 | 30737
1728 | 11192
1729 | 19422
1730 | 14125
1731 | 1048
1732 | 7343
1733 | 10439
1734 | 21193
1735 | 27254
1736 | 42504
1737 | 3177
1738 | 48928
1739 | 1573
1740 | 43812
1741 | 38620
1742 | 27212
1743 | 11047
1744 | 197
1745 | 25934
1746 | 8286
1747 | 10565
1748 | 5493
1749 | 5915
1750 | 18755
1751 | 2162
1752 | 25771
1753 | 9291
1754 | 9345
1755 | 15471
1756 | 34407
1757 | 22865
1758 | 3749
1759 | 11344
1760 | 15444
1761 | 10929
1762 | 39151
1763 | 27556
1764 | 48040
1765 | 6619
1766 | 22413
1767 | 30424
1768 | 38894
1769 | 27831
1770 | 28028
1771 | 31013
1772 | 20208
1773 | 35287
1774 | 28704
1775 | 47131
1776 | 11419
1777 | 12798
1778 | 23376
1779 | 11596
1780 | 42825
1781 | 1555
1782 | 14234
1783 | 23475
1784 | 26939
1785 | 37965
1786 | 45857
1787 | 18408
1788 | 20050
1789 | 5430
1790 | 30058
1791 | 550
1792 | 23824
1793 | 5678
1794 | 26539
1795 | 47539
1796 | 5218
1797 | 19113
1798 | 13733
1799 | 1966
1800 | 41937
1801 | 21818
1802 | 5980
1803 | 6602
1804 | 14590
1805 | 23197
1806 | 12647
1807 | 45816
1808 | 41486
1809 | 23884
1810 | 25812
1811 | 46002
1812 | 11858
1813 | 40506
1814 | 36414
1815 | 28631
1816 | 48946
1817 | 41815
1818 | 6618
1819 | 25664
1820 | 32160
1821 | 27270
1822 | 16758
1823 | 12783
1824 | 45330
1825 | 46841
1826 | 41446
1827 | 42845
1828 | 10209
1829 | 30490
1830 | 34801
1831 | 27235
1832 | 37038
1833 | 91
1834 | 34649
1835 | 10126
1836 | 21250
1837 | 46659
1838 | 31479
1839 | 19738
1840 | 14568
1841 | 5848
1842 | 43105
1843 | 21744
1844 | 20892
1845 | 28712
1846 | 15562
1847 | 7389
1848 | 10488
1849 | 6557
1850 | 23145
1851 | 18865
1852 | 4025
1853 | 28787
1854 | 36474
1855 | 25253
1856 | 39898
1857 | 24305
1858 | 35368
1859 | 27938
1860 | 48517
1861 | 34579
1862 | 44513
1863 | 59
1864 | 3863
1865 | 44399
1866 | 13463
1867 | 16646
1868 | 39375
1869 | 19839
1870 | 40668
1871 | 10534
1872 | 28597
1873 | 48112
1874 | 7478
1875 | 21347
1876 | 19853
1877 | 8104
1878 | 18482
1879 | 25055
1880 | 4697
1881 | 5800
1882 | 4083
1883 | 43472
1884 | 5080
1885 | 49600
1886 | 8164
1887 | 40058
1888 | 28556
1889 | 29255
1890 | 43744
1891 | 41372
1892 | 18119
1893 | 5553
1894 | 5329
1895 | 41511
1896 | 47970
1897 | 35754
1898 | 47997
1899 | 37514
1900 | 15844
1901 | 19830
1902 | 18769
1903 | 2132
1904 | 41269
1905 | 42508
1906 | 43295
1907 | 46568
1908 | 43981
1909 | 24411
1910 | 26357
1911 | 38992
1912 | 31913
1913 | 37912
1914 | 17835
1915 | 9737
1916 | 41521
1917 | 6405
1918 | 49089
1919 | 49466
1920 | 25492
1921 | 26609
1922 | 809
1923 | 1124
1924 | 13584
1925 | 29692
1926 | 49140
1927 | 43685
1928 | 39552
1929 | 8986
1930 | 33972
1931 | 28157
1932 | 8974
1933 | 46529
1934 | 47518
1935 | 49325
1936 | 32794
1937 | 5110
1938 | 40532
1939 | 8467
1940 | 7539
1941 | 13001
1942 | 37668
1943 | 20534
1944 | 49900
1945 | 46230
1946 | 20252
1947 | 47654
1948 | 33980
1949 | 28942
1950 | 18442
1951 | 28953
1952 | 18479
1953 | 3178
1954 | 20418
1955 | 11976
1956 | 49576
1957 | 845
1958 | 36211
1959 | 18486
1960 | 28488
1961 | 4435
1962 | 24147
1963 | 5242
1964 | 37939
1965 | 5545
1966 | 12382
1967 | 20032
1968 | 6319
1969 | 19080
1970 | 8714
1971 | 16872
1972 | 47721
1973 | 46757
1974 | 44898
1975 | 39850
1976 | 19727
1977 | 4484
1978 | 20210
1979 | 32021
1980 | 8029
1981 | 46215
1982 | 40246
1983 | 9228
1984 | 34978
1985 | 20601
1986 | 40954
1987 | 39095
1988 | 4437
1989 | 46657
1990 | 29979
1991 | 8761
1992 | 23772
1993 | 26904
1994 | 24384
1995 | 16502
1996 | 24598
1997 | 35100
1998 | 7771
1999 | 31136
2000 | 14986
2001 | 28903
2002 | 34950
2003 | 27479
2004 | 30131
2005 | 1640
2006 | 26975
2007 | 18300
2008 | 30528
2009 | 4382
2010 | 16155
2011 | 18272
2012 | 13691
2013 | 29128
2014 | 45111
2015 | 11562
2016 | 6432
2017 | 36755
2018 | 27446
2019 | 9777
2020 | 26380
2021 | 1881
2022 | 13363
2023 | 27173
2024 | 25675
2025 | 22173
2026 | 36982
2027 | 7559
2028 | 47239
2029 | 14377
2030 | 34840
2031 | 33369
2032 | 10485
2033 | 19161
2034 | 25931
2035 | 32533
2036 | 6894
2037 | 14051
2038 | 16433
2039 | 22677
2040 | 43296
2041 | 30242
2042 | 46789
2043 | 14996
2044 | 1762
2045 | 24942
2046 | 11820
2047 | 4497
2048 | 11582
2049 | 15723
2050 | 20778
2051 | 38281
2052 | 18437
2053 | 36294
2054 | 25114
2055 | 4055
2056 | 38909
2057 | 29070
2058 | 39488
2059 | 18136
2060 | 14773
2061 | 27391
2062 | 14082
2063 | 21978
2064 | 2858
2065 | 25003
2066 | 21733
2067 | 40550
2068 | 8403
2069 | 46753
2070 | 16195
2071 | 46164
2072 | 25643
2073 | 36552
2074 | 46526
2075 | 27725
2076 | 40195
2077 | 32201
2078 | 6311
2079 | 4998
2080 | 21048
2081 | 25879
2082 | 20904
2083 | 38283
2084 | 43044
2085 | 41582
2086 | 13746
2087 | 18821
2088 | 19813
2089 | 26997
2090 | 44703
2091 | 20096
2092 | 42575
2093 | 15744
2094 | 14164
2095 | 7100
2096 | 3030
2097 | 6611
2098 | 22050
2099 | 2922
2100 | 38805
2101 | 6505
2102 | 36965
2103 | 14256
2104 | 10519
2105 | 33296
2106 | 42977
2107 | 25371
2108 | 7822
2109 | 46319
2110 | 14111
2111 | 8066
2112 | 47626
2113 | 9650
2114 | 9963
2115 | 17613
2116 | 9019
2117 | 3533
2118 | 158
2119 | 2792
2120 | 22740
2121 | 27167
2122 | 45645
2123 | 22247
2124 | 4857
2125 | 35175
2126 | 41216
2127 | 4864
2128 | 40023
2129 | 27579
2130 | 9724
2131 | 33342
2132 | 41523
2133 | 20154
2134 | 10736
2135 | 46506
2136 | 8997
2137 | 37960
2138 | 25498
2139 | 41711
2140 | 13927
2141 | 26645
2142 | 13987
2143 | 14573
2144 | 14935
2145 | 42080
2146 | 16959
2147 | 39932
2148 | 10654
2149 | 18304
2150 | 14974
2151 | 4286
2152 | 27491
2153 | 14699
2154 | 5180
2155 | 661
2156 | 24776
2157 | 7903
2158 | 36575
2159 | 47257
2160 | 18014
2161 | 175
2162 | 40842
2163 | 5944
2164 | 26745
2165 | 38712
2166 | 15519
2167 | 28407
2168 | 6331
2169 | 4317
2170 | 2712
2171 | 12959
2172 | 44641
2173 | 21955
2174 | 11845
2175 | 49199
2176 | 9852
2177 | 15625
2178 | 33920
2179 | 15627
2180 | 47576
2181 | 28647
2182 | 33458
2183 | 45938
2184 | 14447
2185 | 32280
2186 | 725
2187 | 40259
2188 | 1269
2189 | 31075
2190 | 44565
2191 | 14359
2192 | 14560
2193 | 18320
2194 | 13778
2195 | 24810
2196 | 24883
2197 | 16527
2198 | 35443
2199 | 49645
2200 | 23932
2201 | 29827
2202 | 41005
2203 | 8652
2204 | 37585
2205 | 14888
2206 | 31446
2207 | 46660
2208 | 3314
2209 | 41101
2210 | 27853
2211 | 14852
2212 | 6472
2213 | 45255
2214 | 48413
2215 | 33027
2216 | 844
2217 | 48429
2218 | 23078
2219 | 26850
2220 | 48538
2221 | 20782
2222 | 49204
2223 | 41766
2224 | 41919
2225 | 32882
2226 | 33253
2227 | 28219
2228 | 29131
2229 | 21078
2230 | 1294
2231 | 24933
2232 | 25556
2233 | 2419
2234 | 5998
2235 | 19098
2236 | 44003
2237 | 20521
2238 | 28596
2239 | 17584
2240 | 47573
2241 | 36083
2242 | 12636
2243 | 41530
2244 | 14087
2245 | 43030
2246 | 22949
2247 | 21772
2248 | 18398
2249 | 32585
2250 | 18550
2251 | 46591
2252 | 17674
2253 | 3717
2254 | 4756
2255 | 42983
2256 | 4193
2257 | 24658
2258 | 44939
2259 | 49718
2260 | 45002
2261 | 33167
2262 | 35942
2263 | 7896
2264 | 4280
2265 | 32007
2266 | 14038
2267 | 24900
2268 | 27964
2269 | 45881
2270 | 21603
2271 | 6612
2272 | 34298
2273 | 47120
2274 | 41770
2275 | 42664
2276 | 14303
2277 | 46321
2278 | 48621
2279 | 45299
2280 | 37124
2281 | 45555
2282 | 12282
2283 | 30857
2284 | 4297
2285 | 4182
2286 | 3736
2287 | 27213
2288 | 14492
2289 | 15155
2290 | 17146
2291 | 47384
2292 | 30802
2293 | 3397
2294 | 677
2295 | 31615
2296 | 32384
2297 | 20306
2298 | 3176
2299 | 39607
2300 | 18628
2301 | 25250
2302 | 36662
2303 | 29862
2304 | 20978
2305 | 27214
2306 | 19584
2307 | 23421
2308 | 9353
2309 | 35526
2310 | 27852
2311 | 47166
2312 | 34824
2313 | 180
2314 | 49699
2315 | 7407
2316 | 9915
2317 | 17039
2318 | 693
2319 | 10478
2320 | 31751
2321 | 43147
2322 | 6509
2323 | 20274
2324 | 10706
2325 | 36665
2326 | 16356
2327 | 20142
2328 | 5486
2329 | 13427
2330 | 22318
2331 | 7188
2332 | 32929
2333 | 4573
2334 | 42665
2335 | 1615
2336 | 19168
2337 | 36536
2338 | 12484
2339 | 48533
2340 | 36480
2341 | 44857
2342 | 39958
2343 | 30289
2344 | 10150
2345 | 49138
2346 | 47891
2347 | 2465
2348 | 9507
2349 | 21949
2350 | 20573
2351 | 48159
2352 | 49669
2353 | 22972
2354 | 9153
2355 | 36406
2356 | 20282
2357 | 24513
2358 | 36488
2359 | 16058
2360 | 36105
2361 | 44737
2362 | 8834
2363 | 27757
2364 | 49751
2365 | 12717
2366 | 42903
2367 | 47664
2368 | 32928
2369 | 33664
2370 | 632
2371 | 36457
2372 | 33697
2373 | 47796
2374 | 24967
2375 | 19848
2376 | 1148
2377 | 14787
2378 | 18560
2379 | 9149
2380 | 29366
2381 | 32225
2382 | 19650
2383 | 45701
2384 | 24290
2385 | 5669
2386 | 29202
2387 | 13513
2388 | 14914
2389 | 38930
2390 | 5919
2391 | 48023
2392 | 19936
2393 | 3560
2394 | 37591
2395 | 2253
2396 | 10404
2397 | 10728
2398 | 20374
2399 | 35622
2400 | 18065
2401 | 16749
2402 | 17045
2403 | 48787
2404 | 38242
2405 | 11952
2406 | 20123
2407 | 20412
2408 | 43486
2409 | 3750
2410 | 28809
2411 | 20485
2412 | 16888
2413 | 35611
2414 | 37677
2415 | 19285
2416 | 19385
2417 | 38543
2418 | 27063
2419 | 18637
2420 | 25437
2421 | 23729
2422 | 24040
2423 | 18028
2424 | 11957
2425 | 29835
2426 | 35304
2427 | 4232
2428 | 14656
2429 | 12975
2430 | 44061
2431 | 37577
2432 | 33529
2433 | 6940
2434 | 20810
2435 | 1315
2436 | 4666
2437 | 30300
2438 | 1069
2439 | 38708
2440 | 2282
2441 | 14664
2442 | 27891
2443 | 30306
2444 | 38033
2445 | 5440
2446 | 32608
2447 | 16503
2448 | 10605
2449 | 37431
2450 | 26653
2451 | 5653
2452 | 29172
2453 | 24485
2454 | 272
2455 | 34589
2456 | 35023
2457 | 26946
2458 | 9202
2459 | 30008
2460 | 22823
2461 | 434
2462 | 42401
2463 | 4753
2464 | 13646
2465 | 40757
2466 | 13762
2467 | 15781
2468 | 36467
2469 | 11190
2470 | 27428
2471 | 27455
2472 | 23779
2473 | 32754
2474 | 18115
2475 | 40486
2476 | 20303
2477 | 13012
2478 | 45987
2479 | 43925
2480 | 48563
2481 | 2088
2482 | 43620
2483 | 3599
2484 | 40530
2485 | 27234
2486 | 10947
2487 | 18512
2488 | 49806
2489 | 19331
2490 | 19790
2491 | 17958
2492 | 29101
2493 | 47141
2494 | 32961
2495 | 7394
2496 | 29849
2497 | 15643
2498 | 390
2499 | 3494
2500 | 8860
2501 | 49474
2502 | 9729
2503 | 26382
2504 | 8683
2505 | 42432
2506 | 48135
2507 | 8917
2508 | 19933
2509 | 22870
2510 | 13387
2511 | 15354
2512 | 40783
2513 | 36308
2514 | 49803
2515 | 12581
2516 | 31555
2517 | 32821
2518 | 47964
2519 | 17445
2520 | 36958
2521 | 11153
2522 | 44214
2523 | 15186
2524 | 38758
2525 | 41099
2526 | 10484
2527 | 14673
2528 | 3162
2529 | 44914
2530 | 11899
2531 | 47038
2532 | 11245
2533 | 7454
2534 | 33631
2535 | 26686
2536 | 1911
2537 | 10201
2538 | 32625
2539 | 1344
2540 | 4004
2541 | 48934
2542 | 16204
2543 | 8373
2544 | 8851
2545 | 9104
2546 | 23437
2547 | 4808
2548 | 20747
2549 | 6577
2550 | 19176
2551 | 6873
2552 | 15089
2553 | 17006
2554 | 45237
2555 | 1204
2556 | 17399
2557 | 30567
2558 | 25265
2559 | 4255
2560 | 3271
2561 | 7699
2562 | 13151
2563 | 22890
2564 | 24951
2565 | 40997
2566 | 11016
2567 | 2722
2568 | 21352
2569 | 47929
2570 | 24473
2571 | 7685
2572 | 22840
2573 | 4366
2574 | 7729
2575 | 35166
2576 | 47065
2577 | 875
2578 | 37419
2579 | 40831
2580 | 25661
2581 | 31376
2582 | 26753
2583 | 48711
2584 | 44756
2585 | 8586
2586 | 47778
2587 | 31574
2588 | 18856
2589 | 24440
2590 | 24650
2591 | 18563
2592 | 20292
2593 | 17055
2594 | 20684
2595 | 15378
2596 | 21595
2597 | 9295
2598 | 4997
2599 | 10555
2600 | 24890
2601 | 27690
2602 | 45903
2603 | 48381
2604 | 46842
2605 | 5036
2606 | 39147
2607 | 36487
2608 | 49316
2609 | 48882
2610 | 4042
2611 | 30543
2612 | 45448
2613 | 15312
2614 | 22469
2615 | 34887
2616 | 3960
2617 | 36016
2618 | 11097
2619 | 28340
2620 | 28857
2621 | 9987
2622 | 18721
2623 | 26543
2624 | 10382
2625 | 21834
2626 | 2549
2627 | 7755
2628 | 2736
2629 | 37391
2630 | 32849
2631 | 41501
2632 | 41371
2633 | 40992
2634 | 45960
2635 | 8742
2636 | 17619
2637 | 46084
2638 | 26174
2639 | 44748
2640 | 1873
2641 | 7103
2642 | 4127
2643 | 14322
2644 | 42582
2645 | 6561
2646 | 23661
2647 | 33138
2648 | 24831
2649 | 31303
2650 | 32785
2651 | 15293
2652 | 30290
2653 | 23801
2654 | 3221
2655 | 12310
2656 | 5270
2657 | 33795
2658 | 5700
2659 | 37894
2660 | 40632
2661 | 10669
2662 | 9205
2663 | 26349
2664 | 45633
2665 | 15606
2666 | 27805
2667 | 6778
2668 | 20801
2669 | 46169
2670 | 34512
2671 | 5399
2672 | 17165
2673 | 21767
2674 | 45125
2675 | 33768
2676 | 5517
2677 | 11285
2678 | 10104
2679 | 21920
2680 | 9355
2681 | 6530
2682 | 48630
2683 | 21548
2684 | 18511
2685 | 18082
2686 | 7938
2687 | 17595
2688 | 37790
2689 | 34738
2690 | 5372
2691 | 13375
2692 | 27671
2693 | 7590
2694 | 20732
2695 | 28404
2696 | 48161
2697 | 5729
2698 | 39445
2699 | 42038
2700 | 31856
2701 | 1423
2702 | 43063
2703 | 13792
2704 | 42919
2705 | 4125
2706 | 42828
2707 | 26134
2708 | 31864
2709 | 36104
2710 | 23774
2711 | 1780
2712 | 10556
2713 | 11770
2714 | 11575
2715 | 25854
2716 | 18212
2717 | 26917
2718 | 16444
2719 | 46010
2720 | 49680
2721 | 35265
2722 | 38306
2723 | 26237
2724 | 42356
2725 | 38245
2726 | 40799
2727 | 39381
2728 | 21879
2729 | 675
2730 | 908
2731 | 4120
2732 | 35842
2733 | 47621
2734 | 5849
2735 | 34299
2736 | 31561
2737 | 14405
2738 | 20807
2739 | 48666
2740 | 29474
2741 | 3206
2742 | 4161
2743 | 49715
2744 | 3174
2745 | 19211
2746 | 29945
2747 | 39846
2748 | 16852
2749 | 2125
2750 | 11072
2751 | 29796
2752 | 14963
2753 | 42798
2754 | 33555
2755 | 19252
2756 | 14477
2757 | 13456
2758 | 42016
2759 | 24703
2760 | 48571
2761 | 34424
2762 | 28241
2763 | 36944
2764 | 12649
2765 | 48302
2766 | 38819
2767 | 38696
2768 | 45819
2769 | 15485
2770 | 22103
2771 | 33001
2772 | 19708
2773 | 7697
2774 | 24952
2775 | 14929
2776 | 24105
2777 | 6338
2778 | 38489
2779 | 37911
2780 | 37395
2781 | 47659
2782 | 28550
2783 | 39851
2784 | 15898
2785 | 31485
2786 | 10768
2787 | 37880
2788 | 46669
2789 | 173
2790 | 8223
2791 | 20603
2792 | 36121
2793 | 2877
2794 | 27292
2795 | 24909
2796 | 37341
2797 | 16556
2798 | 20938
2799 | 42178
2800 | 45828
2801 | 10413
2802 | 36150
2803 | 2120
2804 | 9274
2805 | 36782
2806 | 20484
2807 | 21198
2808 | 48715
2809 | 39228
2810 | 37451
2811 | 16453
2812 | 13356
2813 | 24352
2814 | 16643
2815 | 1580
2816 | 16280
2817 | 14259
2818 | 26591
2819 | 18569
2820 | 20156
2821 | 20495
2822 | 38427
2823 | 34207
2824 | 28661
2825 | 2028
2826 | 39677
2827 | 45215
2828 | 39967
2829 | 43404
2830 | 3965
2831 | 39458
2832 | 40608
2833 | 16795
2834 | 41096
2835 | 3173
2836 | 11536
2837 | 44106
2838 | 44361
2839 | 48683
2840 | 45728
2841 | 12135
2842 | 42817
2843 | 47505
2844 | 38954
2845 | 7921
2846 | 29382
2847 | 12593
2848 | 10175
2849 | 5267
2850 | 8140
2851 | 32277
2852 | 39660
2853 | 15340
2854 | 28723
2855 | 26138
2856 | 35189
2857 | 44792
2858 | 41406
2859 | 10206
2860 | 47090
2861 | 48083
2862 | 45007
2863 | 14432
2864 | 7476
2865 | 35867
2866 | 7162
2867 | 28427
2868 | 42745
2869 | 36453
2870 | 24028
2871 | 16653
2872 | 732
2873 | 18773
2874 | 8954
2875 | 47729
2876 | 44848
2877 | 19083
2878 | 33313
2879 | 6082
2880 | 3421
2881 | 33702
2882 | 22430
2883 | 30162
2884 | 47183
2885 | 29251
2886 | 8805
2887 | 17642
2888 | 12884
2889 | 43053
2890 | 35112
2891 | 20361
2892 | 38888
2893 | 27305
2894 | 5510
2895 | 25204
2896 | 681
2897 | 4512
2898 | 14223
2899 | 16566
2900 | 40004
2901 | 8836
2902 | 14724
2903 | 33853
2904 | 49172
2905 | 5205
2906 | 7870
2907 | 31347
2908 | 46187
2909 | 49155
2910 | 27401
2911 | 28854
2912 | 48935
2913 | 3747
2914 | 45579
2915 | 45219
2916 | 4495
2917 | 40247
2918 | 10424
2919 | 3047
2920 | 26377
2921 | 22073
2922 | 40905
2923 | 7192
2924 | 33294
2925 | 42243
2926 | 30140
2927 | 37749
2928 | 34888
2929 | 25353
2930 | 19835
2931 | 2579
2932 | 19635
2933 | 10907
2934 | 33737
2935 | 11155
2936 | 40373
2937 | 3451
2938 | 6519
2939 | 19683
2940 | 35949
2941 | 14093
2942 | 14026
2943 | 46074
2944 | 45627
2945 | 26755
2946 | 19437
2947 | 40940
2948 | 45915
2949 | 42396
2950 | 18176
2951 | 32795
2952 | 28221
2953 | 14896
2954 | 17501
2955 | 30126
2956 | 40600
2957 | 35964
2958 | 21678
2959 | 40934
2960 | 813
2961 | 22086
2962 | 19338
2963 | 21190
2964 | 32137
2965 | 47333
2966 | 19240
2967 | 39316
2968 | 21916
2969 | 18574
2970 | 14669
2971 | 12144
2972 | 8252
2973 | 30711
2974 | 3853
2975 | 6794
2976 | 47221
2977 | 49422
2978 | 48537
2979 | 2416
2980 | 26700
2981 | 10995
2982 | 30657
2983 | 45181
2984 | 27392
2985 | 10541
2986 | 43535
2987 | 20414
2988 | 33259
2989 | 37312
2990 | 46471
2991 | 42451
2992 | 30387
2993 | 9099
2994 | 35386
2995 | 28997
2996 | 19800
2997 | 5962
2998 | 4802
2999 | 11847
3000 | 37151
3001 | 15424
3002 | 17925
3003 | 45863
3004 | 48230
3005 | 7911
3006 | 20885
3007 | 15093
3008 | 4031
3009 | 35620
3010 | 37140
3011 | 33733
3012 | 14845
3013 | 30526
3014 | 43111
3015 | 11438
3016 | 36877
3017 | 587
3018 | 4181
3019 | 3804
3020 | 33420
3021 | 40438
3022 | 7516
3023 | 22860
3024 | 40811
3025 | 13410
3026 | 26428
3027 | 15657
3028 | 7321
3029 | 7825
3030 | 11903
3031 | 32397
3032 | 6463
3033 | 41801
3034 | 30011
3035 | 41749
3036 | 49210
3037 | 2810
3038 | 30041
3039 | 46385
3040 | 28980
3041 | 26542
3042 | 1802
3043 | 32855
3044 | 17715
3045 | 1402
3046 | 3341
3047 | 7968
3048 | 48022
3049 | 39122
3050 | 49305
3051 | 25815
3052 | 44612
3053 | 19477
3054 | 32690
3055 | 38372
3056 | 11588
3057 | 34552
3058 | 1371
3059 | 14084
3060 | 16409
3061 | 42529
3062 | 29426
3063 | 49874
3064 | 41448
3065 | 3865
3066 | 22082
3067 | 42584
3068 | 25565
3069 | 1367
3070 | 37940
3071 | 23606
3072 | 3504
3073 | 16442
3074 | 36285
3075 | 32521
3076 | 7025
3077 | 26771
3078 | 1447
3079 | 21481
3080 | 4881
3081 | 7976
3082 | 45019
3083 | 39657
3084 | 34953
3085 | 30138
3086 | 3070
3087 | 35221
3088 | 10510
3089 | 34338
3090 | 39756
3091 | 33731
3092 | 42374
3093 | 22785
3094 | 48866
3095 | 10596
3096 | 10460
3097 | 5230
3098 | 2241
3099 | 16475
3100 | 24204
3101 | 38936
3102 | 27872
3103 | 22686
3104 | 6721
3105 | 22353
3106 | 19456
3107 | 5292
3108 | 45072
3109 | 49364
3110 | 7650
3111 | 49698
3112 | 28501
3113 | 17776
3114 | 22260
3115 | 32412
3116 | 15232
3117 | 154
3118 | 32434
3119 | 26120
3120 | 42416
3121 | 27117
3122 | 35838
3123 | 6829
3124 | 41327
3125 | 26566
3126 | 18033
3127 | 31128
3128 | 38148
3129 | 13797
3130 | 30813
3131 | 47191
3132 | 26513
3133 | 45793
3134 | 49307
3135 | 3742
3136 | 31133
3137 | 38572
3138 | 20386
3139 | 23605
3140 | 41260
3141 | 15039
3142 | 47640
3143 | 26409
3144 | 17153
3145 | 26091
3146 | 29550
3147 | 42049
3148 | 24635
3149 | 11318
3150 | 2965
3151 | 2729
3152 | 44917
3153 | 13806
3154 | 45295
3155 | 2684
3156 | 29931
3157 | 37654
3158 | 18454
3159 | 43461
3160 | 40200
3161 | 11584
3162 | 37617
3163 | 30877
3164 | 37107
3165 | 15063
3166 | 38922
3167 | 22968
3168 | 1131
3169 | 12619
3170 | 1051
3171 | 2134
3172 | 14940
3173 | 39637
3174 | 21846
3175 | 10676
3176 | 23257
3177 | 32170
3178 | 23517
3179 | 20921
3180 | 7918
3181 | 7486
3182 | 24394
3183 | 7648
3184 | 20775
3185 | 42232
3186 | 33758
3187 | 30644
3188 | 9158
3189 | 3323
3190 | 11144
3191 | 39010
3192 | 8737
3193 | 46336
3194 | 30812
3195 | 3698
3196 | 17231
3197 | 1259
3198 | 49082
3199 | 17272
3200 | 19641
3201 | 45730
3202 | 7638
3203 | 39954
3204 | 45770
3205 | 437
3206 | 34817
3207 | 49818
3208 | 11459
3209 | 42980
3210 | 2625
3211 | 33630
3212 | 24950
3213 | 37774
3214 | 20541
3215 | 43688
3216 | 47474
3217 | 35848
3218 | 49433
3219 | 41722
3220 | 26211
3221 | 9406
3222 | 47712
3223 | 45765
3224 | 43734
3225 | 23458
3226 | 26698
3227 | 26403
3228 | 6367
3229 | 14514
3230 | 33608
3231 | 26139
3232 | 28506
3233 | 49948
3234 | 20324
3235 | 33543
3236 | 46273
3237 | 2650
3238 | 46306
3239 | 38707
3240 | 8309
3241 | 42896
3242 | 21935
3243 | 23479
3244 | 32339
3245 | 27632
3246 | 46404
3247 | 12407
3248 | 25709
3249 | 8891
3250 | 22909
3251 | 38318
3252 | 31448
3253 | 38026
3254 | 35851
3255 | 38122
3256 | 29847
3257 | 34652
3258 | 7799
3259 | 31852
3260 | 13168
3261 | 31558
3262 | 10165
3263 | 23086
3264 | 4966
3265 | 47472
3266 | 16998
3267 | 21146
3268 | 31859
3269 | 7710
3270 | 28494
3271 | 23628
3272 | 42956
3273 | 41924
3274 | 48369
3275 | 26268
3276 | 21200
3277 | 12214
3278 | 49028
3279 | 20887
3280 | 34388
3281 | 15719
3282 | 28732
3283 | 19040
3284 | 6826
3285 | 43666
3286 | 28203
3287 | 42136
3288 | 18029
3289 | 30012
3290 | 26084
3291 | 18254
3292 | 11466
3293 | 34156
3294 | 124
3295 | 40142
3296 | 6246
3297 | 45944
3298 | 11310
3299 | 44163
3300 | 14024
3301 | 43117
3302 | 9797
3303 | 1038
3304 | 12459
3305 | 44695
3306 | 15035
3307 | 571
3308 | 18736
3309 | 27022
3310 | 18895
3311 | 44999
3312 | 48747
3313 | 42562
3314 | 38336
3315 | 22176
3316 | 7070
3317 | 27164
3318 | 25076
3319 | 42169
3320 | 33799
3321 | 7916
3322 | 40521
3323 | 9237
3324 | 18024
3325 | 16756
3326 | 32709
3327 | 36642
3328 | 37457
3329 | 16455
3330 | 12302
3331 | 19556
3332 | 10253
3333 | 49624
3334 | 1874
3335 | 23054
3336 | 35732
3337 | 15804
3338 | 49708
3339 | 19322
3340 | 7215
3341 | 26492
3342 | 1132
3343 | 960
3344 | 49949
3345 | 9112
3346 | 34288
3347 | 33173
3348 | 8979
3349 | 23406
3350 | 37479
3351 | 23097
3352 | 37227
3353 | 27385
3354 | 44814
3355 | 18543
3356 | 44248
3357 | 4208
3358 | 8053
3359 | 31427
3360 | 48854
3361 | 24852
3362 | 19665
3363 | 37332
3364 | 15846
3365 | 12736
3366 | 15060
3367 | 41074
3368 | 3631
3369 | 6672
3370 | 48325
3371 | 17858
3372 | 14906
3373 | 3805
3374 | 32746
3375 | 14188
3376 | 4123
3377 | 26339
3378 | 6093
3379 | 10058
3380 | 31984
3381 | 18509
3382 | 49962
3383 | 11726
3384 | 49853
3385 | 39357
3386 | 38677
3387 | 24423
3388 | 39469
3389 | 18173
3390 | 18571
3391 | 44883
3392 | 46545
3393 | 25877
3394 | 6172
3395 | 20021
3396 | 15810
3397 | 46073
3398 | 6101
3399 | 39120
3400 | 12491
3401 | 23549
3402 | 27010
3403 | 20332
3404 | 30938
3405 | 15517
3406 | 42819
3407 | 10532
3408 | 12337
3409 | 39997
3410 | 5375
3411 | 27651
3412 | 42790
3413 | 33551
3414 | 34422
3415 | 39808
3416 | 24781
3417 | 17523
3418 | 6935
3419 | 409
3420 | 29720
3421 | 4550
3422 | 23084
3423 | 27928
3424 | 23747
3425 | 25704
3426 | 2439
3427 | 34028
3428 | 44825
3429 | 45355
3430 | 5679
3431 | 41873
3432 | 17301
3433 | 16008
3434 | 45248
3435 | 36661
3436 | 4668
3437 | 9901
3438 | 39343
3439 | 48650
3440 | 298
3441 | 10961
3442 | 40096
3443 | 18396
3444 | 17566
3445 | 40235
3446 | 18126
3447 | 46550
3448 | 5124
3449 | 30906
3450 | 19019
3451 | 45607
3452 | 33201
3453 | 43521
3454 | 3435
3455 | 44735
3456 | 20734
3457 | 9847
3458 | 32565
3459 | 40856
3460 | 48361
3461 | 30143
3462 | 25373
3463 | 187
3464 | 640
3465 | 26366
3466 | 28011
3467 | 16639
3468 | 46009
3469 | 46134
3470 | 22081
3471 | 44733
3472 | 4959
3473 | 32922
3474 | 10364
3475 | 2111
3476 | 28956
3477 | 11404
3478 | 44795
3479 | 1948
3480 | 33260
3481 | 46721
3482 | 26020
3483 | 36463
3484 | 19087
3485 | 16822
3486 | 25229
3487 | 33594
3488 | 19511
3489 | 36044
3490 | 20022
3491 | 23680
3492 | 26429
3493 | 8545
3494 | 47497
3495 | 20384
3496 | 44259
3497 | 22332
3498 | 45453
3499 | 45350
3500 | 42436
3501 | 27123
3502 | 1909
3503 | 3317
3504 | 45230
3505 | 49907
3506 | 1930
3507 | 11881
3508 | 12272
3509 | 46391
3510 | 14863
3511 | 43629
3512 | 13185
3513 | 44338
3514 | 30928
3515 | 49893
3516 | 22965
3517 | 35818
3518 | 15853
3519 | 13790
3520 | 28392
3521 | 29499
3522 | 27116
3523 | 8764
3524 | 470
3525 | 35122
3526 | 32187
3527 | 16162
3528 | 24052
3529 | 42238
3530 | 42485
3531 | 28771
3532 | 12474
3533 | 47092
3534 | 42747
3535 | 19739
3536 | 38131
3537 | 49413
3538 | 43449
3539 | 29158
3540 | 12844
3541 | 44049
3542 | 34709
3543 | 2783
3544 | 15427
3545 | 15791
3546 | 16334
3547 | 48720
3548 | 36338
3549 | 26752
3550 | 32317
3551 | 36773
3552 | 8921
3553 | 6986
3554 | 152
3555 | 10546
3556 | 33265
3557 | 48487
3558 | 6726
3559 | 27985
3560 | 44578
3561 | 1469
3562 | 4782
3563 | 5996
3564 | 589
3565 | 37919
3566 | 35473
3567 | 43163
3568 | 2275
3569 | 27230
3570 | 30401
3571 | 14822
3572 | 21378
3573 | 30382
3574 | 26533
3575 | 17812
3576 | 21814
3577 | 994
3578 | 10772
3579 | 23778
3580 | 36499
3581 | 5943
3582 | 10584
3583 | 40005
3584 | 20018
3585 | 43774
3586 | 25848
3587 | 25865
3588 | 39758
3589 | 2701
3590 | 27836
3591 | 17242
3592 | 5034
3593 | 49846
3594 | 8238
3595 | 44063
3596 | 33981
3597 | 45505
3598 | 24026
3599 | 17160
3600 | 36409
3601 | 15270
3602 | 43193
3603 | 33755
3604 | 33203
3605 | 19816
3606 | 570
3607 | 15604
3608 | 40834
3609 | 30197
3610 | 37595
3611 | 23561
3612 | 32287
3613 | 40330
3614 | 48149
3615 | 33397
3616 | 34520
3617 | 3627
3618 | 17782
3619 | 44858
3620 | 11323
3621 | 44133
3622 | 30434
3623 | 46818
3624 | 545
3625 | 38486
3626 | 43152
3627 | 17737
3628 | 24908
3629 | 4790
3630 | 27697
3631 | 19755
3632 | 30036
3633 | 15539
3634 | 18997
3635 | 6808
3636 | 4054
3637 | 36562
3638 | 19247
3639 | 2135
3640 | 3389
3641 | 16187
3642 | 3348
3643 | 6842
3644 | 26810
3645 | 4478
3646 | 25916
3647 | 37472
3648 | 33036
3649 | 6278
3650 | 46640
3651 | 44130
3652 | 42608
3653 | 19821
3654 | 22706
3655 | 18058
3656 | 46364
3657 | 11570
3658 | 3146
3659 | 30174
3660 | 29406
3661 | 46896
3662 | 12980
3663 | 26973
3664 | 18641
3665 | 47270
3666 | 22871
3667 | 2228
3668 | 19372
3669 | 33485
3670 | 45939
3671 | 29359
3672 | 17956
3673 | 4445
3674 | 48548
3675 | 113
3676 | 38356
3677 | 3933
3678 | 14363
3679 | 24472
3680 | 13442
3681 | 36135
3682 | 3955
3683 | 22198
3684 | 18956
3685 | 18323
3686 | 14370
3687 | 29648
3688 | 25895
3689 | 28249
3690 | 31738
3691 | 29481
3692 | 4157
3693 | 38094
3694 | 35158
3695 | 30991
3696 | 10034
3697 | 14788
3698 | 41803
3699 | 25742
3700 | 46018
3701 | 41129
3702 | 25917
3703 | 9823
3704 | 41496
3705 | 34929
3706 | 5863
3707 | 9689
3708 | 26673
3709 | 49451
3710 | 48153
3711 | 34506
3712 | 40465
3713 | 3035
3714 | 12900
3715 | 28920
3716 | 23844
3717 | 22789
3718 | 28023
3719 | 35056
3720 | 26345
3721 | 17377
3722 | 24812
3723 | 45699
3724 | 16399
3725 | 12751
3726 | 12985
3727 | 9472
3728 | 9851
3729 | 5366
3730 | 33026
3731 | 16376
3732 | 45790
3733 | 39472
3734 | 9560
3735 | 16109
3736 | 16811
3737 | 25156
3738 | 5241
3739 | 18686
3740 | 39944
3741 | 28048
3742 | 14452
3743 | 1341
3744 | 30651
3745 | 28102
3746 | 20614
3747 | 22942
3748 | 47731
3749 | 6321
3750 | 21113
3751 | 31320
3752 | 38615
3753 | 22772
3754 | 8461
3755 | 43168
3756 | 45630
3757 | 19408
3758 | 47460
3759 | 42184
3760 | 43343
3761 | 36987
3762 | 45888
3763 | 9044
3764 | 31723
3765 | 6522
3766 | 46103
3767 | 31350
3768 | 24858
3769 | 42887
3770 | 5674
3771 | 898
3772 | 32177
3773 | 2553
3774 | 27574
3775 | 5536
3776 | 49965
3777 | 18874
3778 | 20681
3779 | 16654
3780 | 33191
3781 | 28256
3782 | 24449
3783 | 3364
3784 | 22678
3785 | 12722
3786 | 17807
3787 | 48349
3788 | 48272
3789 | 20078
3790 | 27451
3791 | 47983
3792 | 16467
3793 | 30121
3794 | 14745
3795 | 14928
3796 | 14126
3797 | 19931
3798 | 35008
3799 | 36513
3800 | 22444
3801 | 14680
3802 | 26669
3803 | 42951
3804 | 17157
3805 | 27682
3806 | 17110
3807 | 26356
3808 | 13237
3809 | 6441
3810 | 32241
3811 | 38435
3812 | 6481
3813 | 38884
3814 | 2852
3815 | 16824
3816 | 5542
3817 | 33605
3818 | 24469
3819 | 18350
3820 | 38212
3821 | 26490
3822 | 34899
3823 | 25957
3824 | 49578
3825 | 47924
3826 | 27637
3827 | 29740
3828 | 26692
3829 | 25154
3830 | 35407
3831 | 582
3832 | 40061
3833 | 19629
3834 | 10730
3835 | 37186
3836 | 36589
3837 | 17499
3838 | 23873
3839 | 24944
3840 | 19960
3841 | 40859
3842 | 11595
3843 | 25701
3844 | 31034
3845 | 45747
3846 | 42550
3847 | 6409
3848 | 26697
3849 | 5317
3850 | 3975
3851 | 32440
3852 | 19759
3853 | 8642
3854 | 36680
3855 | 46455
3856 | 31671
3857 | 48857
3858 | 19642
3859 | 34708
3860 | 20186
3861 | 48714
3862 | 48456
3863 | 21109
3864 | 19636
3865 | 5812
3866 | 10562
3867 | 36260
3868 | 31789
3869 | 30348
3870 | 16815
3871 | 18804
3872 | 24940
3873 | 8901
3874 | 33689
3875 | 237
3876 | 25197
3877 | 28719
3878 | 15120
3879 | 12794
3880 | 29872
3881 | 34915
3882 | 30340
3883 | 28815
3884 | 22036
3885 | 33120
3886 | 12744
3887 | 41195
3888 | 12705
3889 | 14596
3890 | 40464
3891 | 8390
3892 | 42126
3893 | 641
3894 | 46601
3895 | 37636
3896 | 10156
3897 | 29644
3898 | 5560
3899 | 47665
3900 | 14374
3901 | 14261
3902 | 10214
3903 | 24599
3904 | 41479
3905 | 25310
3906 | 13119
3907 | 22599
3908 | 23889
3909 | 15511
3910 | 5396
3911 | 9133
3912 | 23330
3913 | 17589
3914 | 3150
3915 | 48865
3916 | 32911
3917 | 24715
3918 | 47923
3919 | 44878
3920 | 19651
3921 | 7613
3922 | 14233
3923 | 40182
3924 | 40141
3925 | 9454
3926 | 35214
3927 | 26389
3928 | 6449
3929 | 21816
3930 | 28293
3931 | 48237
3932 | 12479
3933 | 34332
3934 | 39314
3935 | 22180
3936 | 7120
3937 | 21891
3938 | 18823
3939 | 15290
3940 | 47055
3941 | 10449
3942 | 35689
3943 | 36412
3944 | 16000
3945 | 17081
3946 | 42874
3947 | 6696
3948 | 43929
3949 | 7819
3950 | 19599
3951 | 10216
3952 | 47137
3953 | 16344
3954 | 44347
3955 | 41968
3956 | 29026
3957 | 14939
3958 | 40266
3959 | 18914
3960 | 37882
3961 | 662
3962 | 30216
3963 | 48219
3964 | 13942
3965 | 28240
3966 | 6401
3967 | 48198
3968 | 44911
3969 | 24970
3970 | 23304
3971 | 45150
3972 | 10778
3973 | 6261
3974 | 17473
3975 | 10871
3976 | 1679
3977 | 19383
3978 | 49942
3979 | 44935
3980 | 22958
3981 | 39259
3982 | 28853
3983 | 23727
3984 | 45808
3985 | 6164
3986 | 22136
3987 | 34591
3988 | 49606
3989 | 17848
3990 | 48695
3991 | 16031
3992 | 38128
3993 | 46747
3994 | 3255
3995 | 49801
3996 | 4795
3997 | 12365
3998 | 27672
3999 | 6764
4000 | 30925
4001 | 47063
4002 | 31424
4003 | 2298
4004 | 20716
4005 | 39075
4006 | 8525
4007 | 161
4008 | 46582
4009 | 49828
4010 | 48286
4011 | 26352
4012 | 47825
4013 | 11345
4014 | 43872
4015 | 45185
4016 | 37959
4017 | 3904
4018 | 26481
4019 | 4397
4020 | 32726
4021 | 12172
4022 | 13702
4023 | 46479
4024 | 42963
4025 | 44022
4026 | 23838
4027 | 44882
4028 | 18104
4029 | 1512
4030 | 15418
4031 | 31663
4032 | 4092
4033 | 4514
4034 | 11593
4035 | 35142
4036 | 32714
4037 | 18700
4038 | 3800
4039 | 9540
4040 | 49876
4041 | 46453
4042 | 16816
4043 | 11529
4044 | 28204
4045 | 9037
4046 | 26402
4047 | 24216
4048 | 29399
4049 | 36735
4050 | 17894
4051 | 18607
4052 | 49985
4053 | 18140
4054 | 9378
4055 | 4670
4056 | 33264
4057 | 44420
4058 | 39184
4059 | 3155
4060 | 24878
4061 | 1994
4062 | 23865
4063 | 7306
4064 | 21716
4065 | 41314
4066 | 19254
4067 | 9122
4068 | 42266
4069 | 8424
4070 | 16856
4071 | 8222
4072 | 13641
4073 | 29239
4074 | 41867
4075 | 47378
4076 | 27896
4077 | 46580
4078 | 32933
4079 | 3313
4080 | 24376
4081 | 2586
4082 | 29475
4083 | 723
4084 | 23080
4085 | 34471
4086 | 35315
4087 | 37642
4088 | 42032
4089 | 25042
4090 | 567
4091 | 5953
4092 | 7966
4093 | 39364
4094 | 19843
4095 | 48299
4096 | 19513
4097 | 3680
4098 | 47612
4099 | 17063
4100 | 19975
4101 | 36262
4102 | 23215
4103 | 32567
4104 | 20219
4105 | 22010
4106 | 18055
4107 | 32165
4108 | 25126
4109 | 2689
4110 | 26563
4111 | 46704
4112 | 16483
4113 | 32622
4114 | 23153
4115 | 49697
4116 | 43916
4117 | 8707
4118 | 7744
4119 | 43383
4120 | 6775
4121 | 32023
4122 | 47597
4123 | 33078
4124 | 31763
4125 | 5048
4126 | 48156
4127 | 21172
4128 | 35572
4129 | 6862
4130 | 36792
4131 | 30788
4132 | 36551
4133 | 3405
4134 | 16315
4135 | 31425
4136 | 6830
4137 | 3518
4138 | 24414
4139 | 34979
4140 | 1721
4141 | 21802
4142 | 20350
4143 | 39896
4144 | 10003
4145 | 32532
4146 | 13992
4147 | 26457
4148 | 13109
4149 | 3123
4150 | 18645
4151 | 2417
4152 | 38779
4153 | 16140
4154 | 38817
4155 | 38987
4156 | 19775
4157 | 7514
4158 | 28979
4159 | 45898
4160 | 45478
4161 | 31392
4162 | 45037
4163 | 20000
4164 | 43046
4165 | 43035
4166 | 7447
4167 | 20298
4168 | 8022
4169 | 5806
4170 | 12866
4171 | 793
4172 | 9160
4173 | 42202
4174 | 23312
4175 | 21140
4176 | 29773
4177 | 42135
4178 | 21830
4179 | 28310
4180 | 31903
4181 | 13728
4182 | 9282
4183 | 26863
4184 | 40445
4185 | 36403
4186 | 14753
4187 | 37318
4188 | 38162
4189 | 36933
4190 | 19090
4191 | 48965
4192 | 36091
4193 | 23666
4194 | 47832
4195 | 3745
4196 | 9664
4197 | 33446
4198 | 10434
4199 | 13079
4200 | 18253
4201 | 12351
4202 | 47019
4203 | 45726
4204 | 17923
4205 | 30460
4206 | 28782
4207 | 30366
4208 | 11942
4209 | 7947
4210 | 24894
4211 | 3753
4212 | 13982
4213 | 12600
4214 | 10810
4215 | 30510
4216 | 42583
4217 | 909
4218 | 17360
4219 | 22426
4220 | 34869
4221 | 40636
4222 | 41078
4223 | 15795
4224 | 22888
4225 | 20491
4226 | 47562
4227 | 24451
4228 | 30252
4229 | 43029
4230 | 16330
4231 | 35562
4232 | 11566
4233 | 43348
4234 | 32560
4235 | 3170
4236 | 39079
4237 | 21028
4238 | 44310
4239 | 44577
4240 | 7569
4241 | 22374
4242 | 1508
4243 | 1404
4244 | 47119
4245 | 5250
4246 | 24085
4247 | 36131
4248 | 9076
4249 | 39094
4250 | 18593
4251 | 38608
4252 | 4507
4253 | 32037
4254 | 23858
4255 | 42429
4256 | 24039
4257 | 16443
4258 | 29601
4259 | 28807
4260 | 41434
4261 | 49551
4262 | 25336
4263 | 5672
4264 | 16830
4265 | 11559
4266 | 21257
4267 | 38158
4268 | 8766
4269 | 20082
4270 | 35249
4271 | 47694
4272 | 26777
4273 | 35211
4274 | 29564
4275 | 49553
4276 | 25013
4277 | 7668
4278 | 44763
4279 | 23757
4280 | 28683
4281 | 49827
4282 | 17630
4283 | 12418
4284 | 45771
4285 | 14389
4286 | 21699
4287 | 35192
4288 | 23513
4289 | 6942
4290 | 9599
4291 | 38733
4292 | 38332
4293 | 6717
4294 | 12610
4295 | 41253
4296 | 32551
4297 | 442
4298 | 42898
4299 | 6219
4300 | 19132
4301 | 15648
4302 | 15334
4303 | 12020
4304 | 46314
4305 | 20898
4306 | 37348
4307 | 8006
4308 | 5487
4309 | 23085
4310 | 29764
4311 | 30504
4312 | 7233
4313 | 40124
4314 | 34695
4315 | 39787
4316 | 7507
4317 | 19336
4318 | 31354
4319 | 39424
4320 | 37051
4321 | 18153
4322 | 38436
4323 | 30406
4324 | 47342
4325 | 38631
4326 | 47886
4327 | 27747
4328 | 11665
4329 | 16479
4330 | 37550
4331 | 31498
4332 | 31314
4333 | 19567
4334 | 15135
4335 | 45727
4336 | 5977
4337 | 31183
4338 | 4851
4339 | 1391
4340 | 16141
4341 | 10369
4342 | 12688
4343 | 21823
4344 | 8998
4345 | 7329
4346 | 1597
4347 | 1665
4348 | 36722
4349 | 10191
4350 | 39802
4351 | 16700
4352 | 3998
4353 | 2166
4354 | 43622
4355 | 25760
4356 | 29850
4357 | 32077
4358 | 30147
4359 | 42502
4360 | 487
4361 | 7104
4362 | 29537
4363 | 8574
4364 | 39011
4365 | 38477
4366 | 13020
4367 | 32836
4368 | 43047
4369 | 14736
4370 | 35301
4371 | 42617
4372 | 1558
4373 | 12194
4374 | 48647
4375 | 20360
4376 | 21862
4377 | 49851
4378 | 17013
4379 | 18145
4380 | 21295
4381 | 32183
4382 | 37329
4383 | 34610
4384 | 9555
4385 | 5105
4386 | 9882
4387 | 32171
4388 | 42720
4389 | 2426
4390 | 14718
4391 | 28507
4392 | 11265
4393 | 45807
4394 | 7702
4395 | 38443
4396 | 5251
4397 | 10664
4398 | 38111
4399 | 1032
4400 | 42388
4401 | 39362
4402 | 38815
4403 | 1370
4404 | 14464
4405 | 35719
4406 | 8278
4407 | 45717
4408 | 20875
4409 | 44043
4410 | 27532
4411 | 16425
4412 | 14287
4413 | 12792
4414 | 4066
4415 | 19124
4416 | 5284
4417 | 36747
4418 | 8348
4419 | 34089
4420 | 35436
4421 | 39956
4422 | 34004
4423 | 45626
4424 | 48500
4425 | 45912
4426 | 31652
4427 | 49865
4428 | 22714
4429 | 42847
4430 | 27061
4431 | 33613
4432 | 18382
4433 | 7580
4434 | 27674
4435 | 6397
4436 | 36209
4437 | 31526
4438 | 29067
4439 | 36498
4440 | 18565
4441 | 2599
4442 | 37534
4443 | 34656
4444 | 40669
4445 | 2721
4446 | 35416
4447 | 21880
4448 | 24929
4449 | 9154
4450 | 33104
4451 | 19149
4452 | 34198
4453 | 34135
4454 | 16395
4455 | 15323
4456 | 36798
4457 | 34712
4458 | 31778
4459 | 12771
4460 | 49152
4461 | 34657
4462 | 14876
4463 | 40645
4464 | 42870
4465 | 5929
4466 | 49631
4467 | 22576
4468 | 6250
4469 | 5916
4470 | 35826
4471 | 10068
4472 | 34315
4473 | 8972
4474 | 47879
4475 | 33384
4476 | 7096
4477 | 36780
4478 | 31423
4479 | 1720
4480 | 30955
4481 | 38255
4482 | 38809
4483 | 18546
4484 | 2487
4485 | 28546
4486 | 24821
4487 | 49000
4488 | 35707
4489 | 19530
4490 | 49347
4491 | 4159
4492 | 10456
4493 | 10620
4494 | 9567
4495 | 22340
4496 | 7857
4497 | 29826
4498 | 36650
4499 | 45809
4500 | 38460
4501 | 23783
4502 | 47785
4503 | 49029
4504 | 42885
4505 | 25094
4506 | 38873
4507 | 18703
4508 | 12970
4509 | 8298
4510 | 33208
4511 | 22959
4512 | 40750
4513 | 28534
4514 | 49453
4515 | 30946
4516 | 39099
4517 | 12822
4518 | 22075
4519 | 27752
4520 | 45520
4521 | 5465
4522 | 38768
4523 | 46438
4524 | 47031
4525 | 40812
4526 | 5437
4527 | 39879
4528 | 44332
4529 | 4783
4530 | 43218
4531 | 31983
4532 | 27085
4533 | 23645
4534 | 45755
4535 | 13867
4536 | 21584
4537 | 21518
4538 | 3766
4539 | 5170
4540 | 5083
4541 | 40157
4542 | 14361
4543 | 1384
4544 | 35358
4545 | 2917
4546 | 36179
4547 | 35741
4548 | 21221
4549 | 44157
4550 | 42689
4551 | 19505
4552 | 3672
4553 | 18252
4554 | 19640
4555 | 42058
4556 | 45154
4557 | 10163
4558 | 37387
4559 | 18759
4560 | 25736
4561 | 1633
4562 | 48654
4563 | 10390
4564 | 23433
4565 | 1353
4566 | 30853
4567 | 35733
4568 | 7292
4569 | 2206
4570 | 8532
4571 | 40072
4572 | 46190
4573 | 20165
4574 | 10071
4575 | 46755
4576 | 21766
4577 | 2637
4578 | 33794
4579 | 13070
4580 | 25883
4581 | 16407
4582 | 31252
4583 | 24345
4584 | 26769
4585 | 15384
4586 | 3719
4587 | 15936
4588 | 18166
4589 | 31540
4590 | 19679
4591 | 39274
4592 | 11504
4593 | 23325
4594 | 18213
4595 | 26647
4596 | 4223
4597 | 19323
4598 | 11601
4599 | 39434
4600 | 32355
4601 | 13454
4602 | 2886
4603 | 36734
4604 | 42262
4605 | 33858
4606 | 307
4607 | 24436
4608 | 24474
4609 | 35943
4610 | 35085
4611 | 8145
4612 | 43384
4613 | 20176
4614 | 12902
4615 | 48615
4616 | 44410
4617 | 8213
4618 | 4407
4619 | 12467
4620 | 46280
4621 | 2218
4622 | 23979
4623 | 6152
4624 | 27788
4625 | 40166
4626 | 21571
4627 | 44775
4628 | 22311
4629 | 8788
4630 | 41173
4631 | 17590
4632 | 13128
4633 | 27435
4634 | 33913
4635 | 47005
4636 | 19549
4637 | 19826
4638 | 46390
4639 | 35260
4640 | 46189
4641 | 8826
4642 | 46004
4643 | 12950
4644 | 26011
4645 | 27575
4646 | 40819
4647 | 20735
4648 | 4603
4649 | 3463
4650 | 27570
4651 | 28405
4652 | 32563
4653 | 11430
4654 | 40699
4655 | 5562
4656 | 22117
4657 | 48468
4658 | 48442
4659 | 23115
4660 | 3175
4661 | 13308
4662 | 29805
4663 | 23758
4664 | 11755
4665 | 23426
4666 | 13096
4667 | 39359
4668 | 19796
4669 | 1043
4670 | 49732
4671 | 15817
4672 | 10743
4673 | 38300
4674 | 33729
4675 | 39884
4676 | 12948
4677 | 38644
4678 | 43419
4679 | 1102
4680 | 5937
4681 | 21866
4682 | 29222
4683 | 1587
4684 | 38820
4685 | 28199
4686 | 49823
4687 | 12562
4688 | 12288
4689 | 43104
4690 | 44713
4691 | 11774
4692 | 47512
4693 | 17187
4694 | 24076
4695 | 2024
4696 | 8959
4697 | 43614
4698 | 6666
4699 | 28285
4700 | 23169
4701 | 16205
4702 | 31713
4703 | 42000
4704 | 11856
4705 | 40734
4706 | 35064
4707 | 679
4708 | 7399
4709 | 30360
4710 | 16943
4711 | 15280
4712 | 33520
4713 | 38027
4714 | 30702
4715 | 14609
4716 | 1279
4717 | 28846
4718 | 17393
4719 | 43821
4720 | 21478
4721 | 6237
4722 | 12404
4723 | 8413
4724 | 40361
4725 | 49783
4726 | 32902
4727 | 26817
4728 | 42264
4729 | 26152
4730 | 39597
4731 | 26222
4732 | 47238
4733 | 4489
4734 | 21121
4735 | 36978
4736 | 47690
4737 | 16143
4738 | 34006
4739 | 42624
4740 | 45671
4741 | 40043
4742 | 41776
4743 | 37723
4744 | 29651
4745 | 38759
4746 | 15463
4747 | 16684
4748 | 43511
4749 | 29384
4750 | 35280
4751 | 32745
4752 | 34622
4753 | 17264
4754 | 16909
4755 | 24273
4756 | 24477
4757 | 30785
4758 | 45825
4759 | 47641
4760 | 5591
4761 | 18310
4762 | 16664
4763 | 22220
4764 | 10161
4765 | 27810
4766 | 42875
4767 | 23303
4768 | 18666
4769 | 19146
4770 | 33088
4771 | 5271
4772 | 47278
4773 | 45844
4774 | 1186
4775 | 26610
4776 | 25375
4777 | 18760
4778 | 21786
4779 | 10118
4780 | 11360
4781 | 34077
4782 | 15330
4783 | 34049
4784 | 11552
4785 | 881
4786 | 19429
4787 | 41495
4788 | 28547
4789 | 41079
4790 | 24001
4791 | 39581
4792 | 19199
4793 | 38017
4794 | 22543
4795 | 18937
4796 | 3143
4797 | 25476
4798 | 6016
4799 | 10698
4800 | 33437
4801 | 28915
4802 | 21184
4803 | 24530
4804 | 3846
4805 | 34726
4806 | 45307
4807 | 28601
4808 | 35699
4809 | 3722
4810 | 4252
4811 | 26668
4812 | 19356
4813 | 49125
4814 | 26496
4815 | 28483
4816 | 47426
4817 | 6834
4818 | 9425
4819 | 23562
4820 | 5235
4821 | 39801
4822 | 8103
4823 | 17906
4824 | 18467
4825 | 20675
4826 | 10187
4827 | 30717
4828 | 6158
4829 | 12456
4830 | 43008
4831 | 24133
4832 | 43067
4833 | 29197
4834 | 42101
4835 | 43788
4836 | 28514
4837 | 7262
4838 | 42973
4839 | 45696
4840 | 32589
4841 | 36918
4842 | 14825
4843 | 16551
4844 | 31399
4845 | 25091
4846 | 18020
4847 | 11806
4848 | 47307
4849 | 12816
4850 | 14545
4851 | 22447
4852 | 34348
4853 | 5395
4854 | 42349
4855 | 27369
4856 | 19661
4857 | 42561
4858 | 26446
4859 | 16369
4860 | 30118
4861 | 3477
4862 | 24029
4863 | 1223
4864 | 31956
4865 | 46195
4866 | 16773
4867 | 49583
4868 | 33898
4869 | 2332
4870 | 36143
4871 | 17706
4872 | 39546
4873 | 26655
4874 | 41560
4875 | 19486
4876 | 41284
4877 | 13963
4878 | 35178
4879 | 32605
4880 | 22366
4881 | 1253
4882 | 40015
4883 | 5865
4884 | 11984
4885 | 37819
4886 | 26868
4887 | 29784
4888 | 24343
4889 | 14071
4890 | 26625
4891 | 16973
4892 | 46752
4893 | 31298
4894 | 25963
4895 | 47577
4896 | 14197
4897 | 13491
4898 | 47315
4899 | 9947
4900 | 36684
4901 | 15119
4902 | 11797
4903 | 31686
4904 | 44182
4905 | 21926
4906 | 15588
4907 | 9911
4908 | 47269
4909 | 10751
4910 | 13429
4911 | 43679
4912 | 2655
4913 | 39557
4914 | 40168
4915 | 28304
4916 | 12654
4917 | 15180
4918 | 47875
4919 | 36928
4920 | 48996
4921 | 186
4922 | 42102
4923 | 6984
4924 | 38116
4925 | 34773
4926 | 22466
4927 | 11715
4928 | 13699
4929 | 40711
4930 | 23166
4931 | 37141
4932 | 798
4933 | 40059
4934 | 23229
4935 | 25832
4936 | 27791
4937 | 1590
4938 | 41996
4939 | 34214
4940 | 33593
4941 | 20305
4942 | 30343
4943 | 900
4944 | 15978
4945 | 4142
4946 | 49931
4947 | 44479
4948 | 23471
4949 | 46356
4950 | 37383
4951 | 16533
4952 | 41357
4953 | 5286
4954 | 31989
4955 | 16821
4956 | 1332
4957 | 37447
4958 | 35749
4959 | 33326
4960 | 16094
4961 | 49370
4962 | 4538
4963 | 14278
4964 | 31566
4965 | 27341
4966 | 10316
4967 | 2058
4968 | 10030
4969 | 6766
4970 | 26942
4971 | 49879
4972 | 41228
4973 | 7694
4974 | 43169
4975 | 2047
4976 | 17276
4977 | 18947
4978 | 31845
4979 | 30796
4980 | 40158
4981 | 10723
4982 | 47614
4983 | 39841
4984 | 24116
4985 | 13407
4986 | 12979
4987 | 16975
4988 | 38916
4989 | 8999
4990 | 37968
4991 | 21471
4992 | 8435
4993 | 26373
4994 | 9382
4995 | 31772
4996 | 43642
4997 | 36983
4998 | 20851
4999 | 19688
5000 | 10658
5001 |
--------------------------------------------------------------------------------
/dataset.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | import torch
3 | from torchvision import datasets
4 | from torch.utils.data import Dataset
5 | from torch.utils.data import DataLoader
6 | from PIL import Image
7 | import pdb
8 |
9 | def get_dataset(name):
10 | if name == 'MNIST':
11 | return get_MNIST()
12 | elif name == 'FashionMNIST':
13 | return get_FashionMNIST()
14 | elif name == 'SVHN':
15 | return get_SVHN()
16 | elif name == 'CIFAR10':
17 | return get_CIFAR10()
18 | elif name == 'CIFAR100':
19 | return get_CIFAR100()
20 | elif name == 'CALTECH256':
21 | return get_CALTECH256()
22 | elif name == 'TINY_IMAGENET':
23 | return get_TINY_IMAGENET()
24 |
25 | def get_MNIST():
26 | raw_tr = datasets.MNIST('./MNIST', train=True, download=True)
27 | raw_te = datasets.MNIST('./MNIST', train=False, download=True)
28 | X_tr = raw_tr.train_data
29 | Y_tr = raw_tr.train_labels
30 | X_te = raw_te.test_data
31 | Y_te = raw_te.test_labels
32 | return X_tr, Y_tr, X_te, Y_te
33 |
34 | def get_FashionMNIST():
35 | raw_tr = datasets.FashionMNIST('./FashionMNIST', train=True, download=True)
36 | raw_te = datasets.FashionMNIST('./FashionMNIST', train=False, download=True)
37 | X_tr = raw_tr.train_data
38 | Y_tr = raw_tr.train_labels
39 | X_te = raw_te.test_data
40 | Y_te = raw_te.test_labels
41 | return X_tr, Y_tr, X_te, Y_te
42 |
43 | def get_SVHN():
44 | data_tr = datasets.SVHN('./SVHN', split='train', download=True)
45 | data_te = datasets.SVHN('./SVHN', split='test', download=True)
46 | X_tr = data_tr.data
47 | Y_tr = torch.from_numpy(data_tr.labels)
48 | X_te = data_te.data
49 | Y_te = torch.from_numpy(data_te.labels)
50 | return X_tr, Y_tr, X_te, Y_te
51 |
52 | def get_CIFAR10():
53 | data_tr = datasets.CIFAR10('./CIFAR10', train=True, download=True)
54 | data_te = datasets.CIFAR10('./CIFAR10', train=False, download=True)
55 | X_tr = data_tr.train_data
56 | Y_tr = torch.from_numpy(np.array(data_tr.train_labels))
57 | X_te = data_te.test_data
58 | Y_te = torch.from_numpy(np.array(data_te.test_labels))
59 | return X_tr, Y_tr, X_te, Y_te
60 |
61 | def get_CIFAR100():
62 | data_tr = datasets.CIFAR100('./CIFAR100', train=True, download=True)
63 | data_te = datasets.CIFAR100('./CIFAR100', train=False, download=True)
64 | X_tr = data_tr.train_data
65 | Y_tr = torch.from_numpy(np.array(data_tr.train_labels))
66 | X_te = data_te.test_data
67 | Y_te = torch.from_numpy(np.array(data_te.test_labels))
68 | return X_tr, Y_tr, X_te, Y_te
69 |
70 | def get_CALTECH256():
71 | data_tr = datasets.Caltech256('./CALTECH256', train=True, download=True)
72 | data_te = datasets.Caltech256('./CALTECH256', train=False, download=True)
73 | X_tr = data_tr.train_data
74 | Y_tr = torch.from_numpy(np.array(data_tr.train_labels))
75 | X_te = data_te.test_data
76 | Y_te = torch.from_numpy(np.array(data_te.test_labels))
77 | return X_tr, Y_tr, X_te, Y_te
78 |
79 | def get_TINY_IMAGENET():
80 | data_tr = datasets.ImageFolder('./tiny-imagenet-200/train/')
81 | data_te = datasets.ImageFolder('./tiny-imagenet-200/val/')
82 |
83 | fp = open('./tiny-imagenet-200/val/val_annotations.txt', 'r')
84 | data = fp.readlines()
85 | val_img_dict = {}
86 | for line in data:
87 | words = line.split('\t')
88 | val_img_dict[words[0]] = words[1]
89 | fp.close()
90 |
91 | train_data = []
92 | train_labels = []
93 | for i in range(len(data_tr)):
94 | img = data_tr.__getitem__(i)[0]
95 | train_data.append(np.asarray(img))
96 | train_labels.append(data_tr.__getitem__(i)[1])
97 | train_data = np.concatenate(train_data)
98 | train_data = train_data.reshape((len(data_tr), 3, 64, 64))
99 | train_data = train_data.transpose((0, 2, 3, 1)) # convert to HWC
100 |
101 |
102 | test_data = []
103 | test_labels = []
104 | for i in range(len(data_te)):
105 | img = data_te.__getitem__(i)[0]
106 | test_data.append(np.asarray(img))
107 | img_name=(data_te.samples[i][0]).split('/')[-1]
108 | test_labels.append(data_tr.classes.index(val_img_dict[img_name]))
109 |
110 | test_data = np.concatenate(test_data)
111 | test_data = test_data.reshape((len(data_te), 3, 64, 64))
112 | test_data = test_data.transpose((0, 2, 3, 1)) # convert to HWC
113 |
114 | X_tr = train_data
115 | Y_tr = torch.from_numpy(np.array(train_labels))
116 | X_te = test_data
117 | Y_te = torch.from_numpy(np.array(test_labels))
118 |
119 | return X_tr, Y_tr, X_te, Y_te
120 |
121 | def get_handler(name):
122 | if name == 'MNIST':
123 | return DataHandler1
124 | elif name == 'FashionMNIST':
125 | return DataHandler1
126 | elif name == 'SVHN':
127 | return DataHandler2
128 | elif name == 'CIFAR10':
129 | return DataHandler3
130 | elif name == 'CIFAR100':
131 | return DataHandler3
132 | elif name == 'CALTECH256':
133 | return DataHandler4
134 | elif name == 'TINY_IMAGENET':
135 | return DataHandler5
136 |
137 | class DataHandler1(Dataset):
138 | def __init__(self, X, Y, transform=None):
139 | self.X = X
140 | self.Y = Y
141 | self.transform = transform
142 |
143 | def __getitem__(self, index):
144 | x, y = self.X[index], self.Y[index]
145 | if self.transform is not None:
146 | x = Image.fromarray(x.numpy(), mode='L')
147 | x = self.transform(x)
148 | return x, y, index
149 |
150 | def __len__(self):
151 | return len(self.X)
152 |
153 | class DataHandler2(Dataset):
154 | def __init__(self, X, Y, transform=None):
155 | self.X = X
156 | self.Y = Y
157 | self.transform = transform
158 |
159 | def __getitem__(self, index):
160 | x, y = self.X[index], self.Y[index]
161 | if self.transform is not None:
162 | x = Image.fromarray(np.transpose(x, (1, 2, 0)))
163 | x = self.transform(x)
164 | return x, y, index
165 |
166 | def __len__(self):
167 | return len(self.X)
168 |
169 | class DataHandler3(Dataset):
170 | def __init__(self, X, Y, transform=None):
171 | self.X = X
172 | self.Y = Y
173 | self.transform = transform
174 |
175 | def __getitem__(self, index):
176 | x, y = self.X[index], self.Y[index]
177 | if self.transform is not None:
178 | x = Image.fromarray(x)
179 | x = self.transform(x)
180 | return x, y, index
181 |
182 | def __len__(self):
183 | return len(self.X)
184 |
185 | class DataHandler4(Dataset):
186 | def __init__(self, X, Y, transform=None):
187 | self.X = X
188 | self.Y = Y
189 | self.transform = transform
190 |
191 | def __getitem__(self, index):
192 | x, y = self.X[index], self.Y[index]
193 | if self.transform is not None:
194 | x = Image.fromarray(x)
195 | x = self.transform(x)
196 | return x, y, index
197 |
198 | def __len__(self):
199 | return len(self.X)
200 |
201 |
202 | class DataHandler5(Dataset):
203 |
204 | def __init__(self, X, Y, transform=None):
205 | self.X = X
206 | self.Y = Y
207 | self.transform = transform
208 |
209 | def __getitem__(self, index):
210 | x, y = self.X[index], self.Y[index]
211 | if self.transform is not None:
212 | x = Image.fromarray(x)
213 | x = self.transform(x)
214 | return x, y, index
215 |
216 | def __len__(self):
217 | return len(self.X)
218 |
--------------------------------------------------------------------------------
/framework.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Javadzb/Class-Balanced-AL/70cff9d5a9da6123ddf170e2e0e614f2f8ce1f4e/framework.png
--------------------------------------------------------------------------------
/query_strategies/__init__.py:
--------------------------------------------------------------------------------
1 | from .random_sampling import RandomSampling
2 | from .entropy_sampling import EntropySampling
3 | from .kcenter_greedy import KCenterGreedy
4 | from .bayesian_active_learning_disagreement_dropout import BALDDropout
--------------------------------------------------------------------------------
/query_strategies/bayesian_active_learning_disagreement_dropout.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | import torch
3 | from .strategy import Strategy
4 |
5 | class BALDDropout(Strategy):
6 | def __init__(self, X, Y, X_te, Y_te, dataset, method, idxs_lb, net, handler, args, cycle, n_drop=10):
7 | super(BALDDropout, self).__init__(X, Y,X_te, Y_te, dataset, method, idxs_lb, net, handler, args, cycle)
8 | self.n_drop = n_drop
9 |
10 | def query(self, n):
11 | idxs_unlabeled = np.arange(self.n_pool)[~self.idxs_lb]
12 | probs = self.predict_prob_dropout_split(self.X[idxs_unlabeled], self.Y[idxs_unlabeled], self.n_drop)
13 | pb = probs.mean(0)
14 | entropy1 = (-pb*torch.log(pb)).sum(1)
15 | entropy2 = (-probs*torch.log(probs)).sum(2).mean(0)
16 | U = entropy2 - entropy1
17 | return idxs_unlabeled[U.sort()[1][:n]]
18 |
--------------------------------------------------------------------------------
/query_strategies/entropy_sampling.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | import torch
3 | from .strategy import Strategy
4 | import os
5 | import pickle
6 | import pdb
7 | import matplotlib.pyplot as plt
8 | from random import *
9 | import random
10 | import copy
11 | import cvxpy as cp
12 |
13 |
14 | class EntropySampling(Strategy):
15 | def __init__(self, X, Y, X_te, Y_te, dataset, method, idxs_lb, net, handler, args, cycle):
16 | super(EntropySampling, self).__init__(X, Y, X_te, Y_te, dataset, method, idxs_lb, net, handler, args, cycle)
17 |
18 | def query(self, n):
19 | idxs_unlabeled = np.arange(self.n_pool)[~self.idxs_lb]
20 | probs, P = self.predict_prob(self.X[idxs_unlabeled], self.Y[idxs_unlabeled])
21 | log_probs = torch.log(probs)
22 | U = (probs*log_probs).sum(1)
23 |
24 | if self.dataset == 'cifar10':
25 | num_classes=10
26 | elif self.dataset == 'cifar100':
27 | num_classes=100
28 |
29 | if 'imbalance' in self.method:
30 | return idxs_unlabeled[U.sort()[1][:n]]
31 |
32 | #=======================================================================
33 | # Optimization of maximum entropy with balancing
34 | #=======================================================================
35 |
36 | elif 'optimal' in self.method:
37 | b=n
38 | N=len(idxs_unlabeled)
39 | L1_DISTANCE=[]
40 | L1_Loss=[]
41 | ENT_Loss=[]
42 | probs = probs.numpy()
43 | U = U.numpy()
44 | # Adaptive counts of samples per cycle
45 | labeled_classes=self.Y[self.idxs_lb]
46 | _, counts = np.unique(labeled_classes, return_counts=True)
47 | class_threshold=int((2*n+(self.cycle+1)*n)/num_classes)
48 | class_share=class_threshold-counts
49 | samples_share= np.array([0 if c<0 else c for c in class_share]).reshape(num_classes,1)
50 | if self.dataset == 'cifar10':
51 | lamda=0.6
52 | elif self.dataset == 'cifar100':
53 | lamda=2
54 |
55 | for lam in [lamda]:
56 |
57 | z=cp.Variable((N,1),boolean=True)
58 | constraints = [sum(z) == b]
59 | cost = z.T @ U + lam * cp.norm1(probs.T @ z - samples_share)
60 | objective = cp.Minimize(cost)
61 | problem = cp.Problem(objective, constraints)
62 | problem.solve(solver=cp.GUROBI, verbose=True, TimeLimit=1000)
63 | print('Optimal value with gurobi : ', problem.value)
64 | print(problem.status)
65 | print("A solution z is")
66 | print(z.value.T)
67 | lb_flag = np.array(z.value.reshape(1, N)[0], dtype=bool)
68 | # -----------------Stats of optimization---------------------------------
69 | ENT_Loss.append(np.matmul(z.value.T, U))
70 | print('ENT LOSS= ', ENT_Loss)
71 | threshold = (2 * n / num_classes) + (self.cycle + 1) * n / num_classes
72 | round=self.cycle+1
73 | freq = torch.histc(torch.FloatTensor(self.Y[idxs_unlabeled[lb_flag]]), bins=num_classes)+torch.histc(torch.FloatTensor(self.Y[self.idxs_lb]), bins=num_classes)
74 | L1_distance = (sum(abs(freq - threshold)) * num_classes / (2 * (2 * n + round * n) * (num_classes - 1))).item()
75 | print('Lambda = ',lam)
76 | L1_DISTANCE.append(L1_distance)
77 | L1_Loss_term=np.linalg.norm(np.matmul(probs.T,z.value) - samples_share, ord=1)
78 | L1_Loss.append(L1_Loss_term)
79 |
80 | print('L1 Loss = ')
81 | for i in L1_Loss:
82 | print('%.3f' %i)
83 | print('L1_distance = ')
84 | for j in L1_DISTANCE:
85 | print('%.3f' % j)
86 | print('ENT LOSS = ')
87 | for k in ENT_Loss:
88 | print('%.3f' % k)
89 | return idxs_unlabeled[lb_flag]
90 |
--------------------------------------------------------------------------------
/query_strategies/kcenter_greedy.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | from .strategy import Strategy
3 | import copy
4 | import torch
5 |
6 | class KCenterGreedy(Strategy):
7 | def __init__(self, X, Y, X_te, Y_te,dataset, method, idxs_lb, net, handler, args, cycle):
8 | super(KCenterGreedy, self).__init__(X, Y, X_te, Y_te, dataset, method, idxs_lb, net, handler, args, cycle)
9 |
10 | def query(self, n):
11 |
12 | lb_flag = self.idxs_lb.copy()
13 | embedding = self.get_embedding_resnet(self.X, self.Y)
14 | embedding = embedding.numpy()
15 | embedding=np.around(embedding, decimals=2)
16 |
17 | from datetime import datetime
18 |
19 | print('calculate distance matrix')
20 | t_start = datetime.now()
21 | dist_mat = np.matmul(embedding, embedding.transpose())
22 | sq = np.array(dist_mat.diagonal()).reshape(len(self.X), 1)
23 | dist_mat *= -2
24 | dist_mat += sq
25 | dist_mat += sq.transpose()
26 | dist_mat = np.sqrt(dist_mat)
27 | print(datetime.now() - t_start)
28 | mat = dist_mat[~lb_flag, :][:, lb_flag]
29 |
30 | #===============UNBALANCED active set=========================
31 | if 'imbalance' in self.method:
32 | for i in range(n):
33 | if i%10 == 0:
34 | print('greedy solution {}/{}'.format(i, n))
35 | mat_min = mat.min(axis=1)
36 | q_idx_ = mat_min.argmax()
37 | q_idx = np.arange(self.n_pool)[~lb_flag][q_idx_]
38 | lb_flag[q_idx] = True
39 | mat = np.delete(mat, q_idx_, 0)
40 | mat = np.append(mat, dist_mat[~lb_flag, q_idx][:, None], axis=1)
41 | return np.arange(self.n_pool)[(self.idxs_lb ^ lb_flag)]
42 |
43 | # # #===============Class balanced active set=======================
44 | elif 'greedyOpt' in self.method:
45 | idxs_unlabeled = np.arange(self.n_pool)[~self.idxs_lb]
46 | N = len(idxs_unlabeled)
47 | probs, P = self.predict_prob(self.X[idxs_unlabeled], self.Y[idxs_unlabeled])
48 | if self.dataset == 'cifar10':
49 | num_classes=10
50 | lam=5
51 | elif self.dataset == 'cifar100':
52 | num_classes=100
53 | lam=50
54 |
55 | # Adaptive counts of samples per cycle
56 | labeled_classes=self.Y[self.idxs_lb]
57 | _, counts = np.unique(labeled_classes, return_counts=True)
58 | class_threshold=int((2*n+(self.cycle+1)*n)/num_classes)
59 | class_share=class_threshold-counts
60 | samples_share= np.array([0 if c<0 else c for c in class_share]).reshape(num_classes,1)
61 | probs = np.array(probs)
62 | L1_LOSS=[]
63 | L1_DISTANCE=[]
64 | MAX_DIST=[]
65 |
66 | MAT=copy.deepcopy(mat)
67 | for lamda in [lam]:
68 | lb_flag = self.idxs_lb.copy()
69 | Q = copy.deepcopy(probs)
70 | z=np.zeros(N, dtype=bool)
71 | mat=MAT
72 | max_dist=0
73 | for i in range(n):
74 | if i%10 == 0:
75 | print('greedy solution {}/{}'.format(i, n))
76 | mat_min = mat.min(axis=1)
77 | SAMPLE_SHARE = np.tile(samples_share, N-i)
78 | P_Z = np.tile(np.matmul(np.transpose(probs), z), (N-i,1))
79 | X = SAMPLE_SHARE - np.transpose(Q) - np.transpose(P_Z)
80 | q_idx_= np.argmin(-mat_min + (lamda/num_classes) * np.linalg.norm(X,axis=0,ord=1))
81 | max_dist = max_dist + mat_min[q_idx_]
82 | z_idx = np.arange(N)[~z][q_idx_]
83 | z[z_idx] = True
84 | Q = np.delete(probs, np.where(z==1)[0], 0)
85 | q_idx = np.arange(self.n_pool)[~lb_flag][q_idx_]
86 | lb_flag[q_idx] = True
87 | mat = np.delete(mat, q_idx_, 0)
88 | mat = np.append(mat, dist_mat[~lb_flag, q_idx][:, None], axis=1)
89 | threshold=(2*n/num_classes)+ (self.cycle+1)*n/num_classes #cycle 1
90 | round=self.cycle+1 #cycle 1
91 | freq = torch.histc(torch.FloatTensor(self.Y[lb_flag]), bins=num_classes)
92 | L1_distance= (sum(abs(freq - threshold)) * num_classes / (2 * (2 * n + round * n) * (num_classes - 1))).item()
93 | L1_DISTANCE.append(L1_distance)
94 | L1_LOSS.append(sum(np.linalg.norm(X,axis=0,ord=1))/(N-n))
95 | MAX_DIST.append(max_dist)
96 | print('lamda = ',lamda)
97 | print('Maximum Distance Samples = ', max_dist)
98 | print ('L1 DISTANCE = ', L1_DISTANCE)
99 | print('L1 LOSS AVERAGE= ',L1_LOSS )
100 | print('L1 DISTANCE = ',L1_DISTANCE)
101 | print('L1 LOSS = ',L1_LOSS)
102 | print('Max Distanced samples = ', MAX_DIST)
103 | return np.arange(self.n_pool)[(self.idxs_lb ^ lb_flag)]
104 |
105 |
--------------------------------------------------------------------------------
/query_strategies/random_sampling.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | from .strategy import Strategy
3 |
4 | class RandomSampling(Strategy):
5 | def __init__(self, X, Y, X_te, Y_te, dataset, method, idxs_lb, net, handler, args, cycle):
6 | super(RandomSampling, self).__init__(X, Y, X_te, Y_te, dataset, method, idxs_lb, net, handler, args, cycle)
7 |
8 | def query(self, n):
9 | return np.random.choice(np.where(self.idxs_lb==0)[0], n , replace=False)
10 |
--------------------------------------------------------------------------------
/query_strategies/strategy.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | import torch
3 | import torch.nn.functional as F
4 | import torch.optim as optim
5 | from torch.utils.data import DataLoader
6 | import sys
7 | from torch.optim.lr_scheduler import MultiStepLR
8 | import os
9 | import pickle
10 | from Cutout.model.resnet import ResNet18
11 | from torchvision import transforms
12 |
13 |
14 | #class Strategy:
15 | class Strategy(object):
16 | def __init__(self, X, Y, X_te, Y_te, cycle , dataset, method,idxs_lb, net, handler, args):
17 | self.X = X
18 | self.Y = Y
19 | self.X_te = X_te
20 | self.Y_te = Y_te
21 | self.cycle=cycle
22 | self.dataset=dataset
23 | self.idxs_lb = idxs_lb
24 | self.net = net
25 | self.handler = handler
26 | self.args = args
27 | self.n_pool = len(Y)
28 | self.method=method
29 | use_cuda = torch.cuda.is_available()
30 | self.device = torch.device("cuda" if use_cuda else "cpu")
31 |
32 | def query(self, n):
33 | pass
34 |
35 | def query_pseudoLabel(self, n):
36 | pass
37 |
38 | def update(self, idxs_lb):
39 | self.idxs_lb = idxs_lb
40 |
41 | def _train(self, loader_tr, optimizer):
42 | self.clf.train()
43 | for batch_idx, (x, y, idxs) in enumerate(loader_tr):
44 | x, y = x.to(self.device), y.to(self.device)
45 | optimizer.zero_grad()
46 | out, e1 = self.clf(x) #resnet
47 | loss = F.cross_entropy(out, y)
48 | sys.stdout.write('\r')
49 | sys.stdout.write('Loss : %3f ' % loss.item())
50 |
51 | loss.backward()
52 | optimizer.step()
53 |
54 | def train(self):
55 |
56 | ## resenet from Cutout train from scratch
57 | if self.dataset == 'cifar10':
58 | num_classes = 10
59 | elif self.dataset == 'cifar100':
60 | num_classes = 100
61 | net = ResNet18(num_classes=num_classes)
62 | self.net = net
63 | self.clf = self.net.to(self.device)
64 | n_epoch = self.args['n_epoch']
65 | optimizer = optim.SGD(
66 | self.clf.parameters(),
67 | lr=0.02,
68 | momentum=0.9,
69 | nesterov=True,
70 | weight_decay=5e-4)
71 | scheduler = MultiStepLR(
72 | optimizer, milestones=[60, 80], gamma=0.5)
73 |
74 | idxs_train = np.arange(self.n_pool)[self.idxs_lb]
75 |
76 | print('number of training samples : ', len(idxs_train))
77 |
78 | loader_tr = DataLoader(self.handler(self.X[idxs_train], self.Y[idxs_train], transform=self.args['transform']),
79 | shuffle=True, **self.args['loader_tr_args'])
80 |
81 | for epoch in range(1, n_epoch+1):
82 | sys.stdout.write('Epoch %3d' % epoch)
83 | self._train(loader_tr, optimizer)
84 | scheduler.step(epoch)
85 | for pg in optimizer.param_groups:
86 | print('lr = ',pg['lr'])
87 |
88 | if 'Random' in self.method:
89 | save_point = os.path.join(self.dataset+ '_checkpoints_active_set')
90 | if not os.path.exists(save_point):
91 | os.makedirs(save_point)
92 | torch.save({
93 | 'epoch': epoch,
94 | 'model_state_dict': self.clf.state_dict(),
95 | 'optimizer_state_dict': optimizer.state_dict()},
96 | os.path.join(save_point, 'checkpoint_cycle_' + str(self.cycle) + '.t7'))
97 | print('checkpoint saved ...')
98 |
99 | def predict(self, X, Y):
100 |
101 | print('inference on ', len(X), ' samples')
102 | loader_te = DataLoader(self.handler(X, Y, transform=self.args['transform']),
103 | shuffle=False, **self.args['loader_te_args'])
104 | self.clf.eval()
105 | P = torch.zeros(len(Y), dtype=Y.dtype)
106 | with torch.no_grad():
107 | for x, y, idxs in loader_te:
108 | x, y = x.to(self.device), y.to(self.device)
109 | #out, e1 = self.clf(x) #vgg
110 | out, e1= self.clf(x) # resnet
111 | pred = out.max(1)[1]
112 | P[idxs] = pred.cpu()
113 | return P
114 |
115 | def test(self, X, Y):
116 | if self.cycle > 0 :
117 | print('test the current model ...')
118 | elif self.cycle == 0: # only for cycle 0
119 | self.clf = self.net.to(self.device)
120 | print('loading checkpoint of cycle 0 for testing...')
121 | net = torch.load(
122 | os.path.join(self.dataset+ '_checkpoints_active_set', 'checkpoint_cycle_0.t7'))
123 | self.clf.load_state_dict(net['model_state_dict'])
124 |
125 | print('inference on ', len(X), ' samples')
126 | normalize = transforms.Normalize(
127 | mean=[x / 255.0 for x in [125.3, 123.0, 113.9]],
128 | std=[x / 255.0 for x in [63.0, 62.1, 66.7]])
129 | loader_te = DataLoader(self.handler(X,Y, transform= transforms.Compose([transforms.ToTensor(), normalize])))
130 | self.clf.eval()
131 | P = torch.zeros(len(Y), dtype=Y.dtype)
132 | with torch.no_grad():
133 | for x, y, idxs in loader_te:
134 | x, y = x.to(self.device), y.to(self.device)
135 | out, e1 = self.clf(x) #resnet
136 | pred = out.max(1)[1]
137 | P[idxs] = pred.cpu()
138 | return P
139 |
140 | def predict_prob(self, X, Y):
141 | loader_te = DataLoader(self.handler(X, Y, transform=self.args['transform']),
142 | shuffle=False, **self.args['loader_te_args'])
143 |
144 | self.clf.eval()
145 | if self.dataset=='cifar100':
146 | num_classes=100
147 | elif self.dataset=='cifar10':
148 | num_classes=10
149 | probs = torch.zeros([len(Y), num_classes])
150 | P = torch.zeros(len(Y), dtype=torch.int32)
151 | logits= torch.zeros([len(Y), num_classes])
152 | with torch.no_grad():
153 | for x, y, idxs in loader_te:
154 | x, y = x.to(self.device), y.to(self.device)
155 | out, e1 = self.clf(x) #Resnet
156 | pred = out.max(1)[1]
157 | P[idxs] = pred.cpu()
158 | prob = F.softmax(out, dim=1)
159 | probs[idxs] = prob.cpu()
160 | logits[idxs]=out.cpu()
161 | return probs, P
162 |
163 |
164 | def predict_prob_dropout(self, X, Y, n_drop):
165 | loader_te = DataLoader(self.handler(X, Y, transform=self.args['transform']),
166 | shuffle=False, **self.args['loader_te_args'])
167 |
168 | self.clf.train()
169 | probs = torch.zeros([len(Y), len(np.unique(Y))])
170 | for i in range(n_drop):
171 | print('n_drop {}/{}'.format(i+1, n_drop))
172 | with torch.no_grad():
173 | for x, y, idxs in loader_te:
174 | x, y = x.to(self.device), y.to(self.device)
175 | out, e1 = self.clf(x)
176 | prob = F.softmax(out, dim=1)
177 | probs[idxs] += prob.cpu()
178 | probs /= n_drop
179 |
180 | return probs
181 |
182 | def predict_prob_dropout_split(self, X, Y, n_drop):
183 | loader_te = DataLoader(self.handler(X, Y, transform=self.args['transform']),
184 | shuffle=False, **self.args['loader_te_args'])
185 |
186 | self.clf.train()
187 | probs = torch.zeros([n_drop, len(Y), len(np.unique(Y))])
188 | for i in range(n_drop):
189 | print('n_drop {}/{}'.format(i+1, n_drop))
190 | with torch.no_grad():
191 | for x, y, idxs in loader_te:
192 | x, y = x.to(self.device), y.to(self.device)
193 | out, e1 = self.clf(x) # resnet
194 | probs[i][idxs] += F.softmax(out, dim=1).cpu()
195 | return probs
196 |
197 | def get_embedding(self, X, Y):
198 | loader_te = DataLoader(self.handler(X, Y, transform=self.args['transform']),
199 | shuffle=False, **self.args['loader_te_args'])
200 | self.clf.eval()
201 | embedding = torch.zeros([len(Y), self.clf.get_embedding_dim()])
202 | with torch.no_grad():
203 | for x, y, idxs in loader_te:
204 | x, y = x.to(self.device), y.to(self.device)
205 | out, e1 = self.clf(x)
206 | embedding[idxs] = e1.cpu()
207 | return embedding
208 |
209 | def get_embedding_resnet(self,X,Y):
210 | loader_te = DataLoader(self.handler(X, Y, transform=self.args['transform']),
211 | shuffle=False, **self.args['loader_te_args'])
212 |
213 | self.clf.eval()
214 | embedding = torch.zeros([len(Y), 512])
215 | with torch.no_grad():
216 | for x, y, idxs in loader_te:
217 | x, y = x.to(self.device), y.to(self.device)
218 | out, e1 = self.clf(x)
219 | embedding[idxs] = e1.cpu()
220 | return embedding
221 |
222 |
223 | def test_prior_balanced(self, X_te,Y_te,Y_tr ):
224 |
225 | if self.cycle > 0 :
226 | print('test the current model ...')
227 | elif self.cycle == 0: # only for cycle 0
228 | self.clf = self.net.to(self.device)
229 | print('loading checkpoint of cycle 0 for testing...')
230 | net = torch.load(
231 | os.path.join(self.dataset+ '_checkpoints_active_set', 'checkpoint_cycle_0.t7'))
232 | self.clf.load_state_dict(net['model_state_dict'])
233 | print('inference on ', len(Y_te), ' samples')
234 |
235 | normalize = transforms.Normalize(
236 | mean=[x / 255.0 for x in [125.3, 123.0, 113.9]],
237 | std=[x / 255.0 for x in [63.0, 62.1, 66.7]])
238 | loader_te = DataLoader(self.handler(X_te,Y_te, transform= transforms.Compose([transforms.ToTensor(), normalize])))
239 | self.clf.eval()
240 | P = torch.zeros(len(Y_te), dtype=Y_te.dtype)
241 |
242 | if self.dataset == 'cifar10':
243 | num_classes = 10
244 | elif self.dataset == 'cifar100':
245 | num_classes = 100
246 |
247 | freq_np,_ = np.histogram(Y_tr[self.idxs_lb], bins=num_classes)
248 | freq=torch.from_numpy(freq_np).cuda()
249 | with torch.no_grad():
250 | for x, y, idxs in loader_te:
251 | x, y = x.to(self.device), y.to(self.device)
252 | out, e1 = self.clf(x)
253 | prob = F.softmax(out, dim=1)
254 | balanced_prob = prob / freq
255 | _, predicted = torch.max(balanced_prob, 1)
256 | P[idxs] = predicted.cpu()
257 |
258 | return P
259 |
--------------------------------------------------------------------------------
/run.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | from dataset import get_dataset, get_handler
3 | from torchvision import transforms
4 | import torch
5 | import os
6 | import argparse
7 | from Cutout.model.resnet import ResNet18
8 |
9 |
10 | from query_strategies import RandomSampling, EntropySampling, \
11 | KCenterGreedy, BALDDropout
12 |
13 | parser = argparse.ArgumentParser(description='CNN')
14 |
15 |
16 | parser.add_argument(
17 | '--method',
18 | default="none",
19 | help=
20 | 'name of the acquisition method'
21 | )
22 |
23 | parser.add_argument(
24 | '--dataset',
25 | default="none",
26 | help=
27 | 'name of the dataset'
28 | )
29 |
30 | parser.add_argument(
31 | '--imb_factor',
32 | type=float,
33 | default=1,
34 | help='Imbalance factor (0,1)'
35 | )
36 |
37 | parser.add_argument(
38 | '--imb_type',
39 | type=str,
40 | default='exp',
41 | help='step or exp'
42 | )
43 |
44 |
45 | inputs = parser.parse_args()
46 | method = inputs.method
47 | dataset= inputs.dataset
48 | imb_factor=inputs.imb_factor
49 | imb_type=inputs.imb_type
50 |
51 | # Seed parameters
52 | SEED = 1
53 | torch.manual_seed(SEED)
54 | torch.backends.cudnn.enabled = True
55 |
56 | NUM_INIT_LB=5000
57 | NUM_QUERY = 2500
58 | NUM_ROUND = 5
59 |
60 | DATA_NAME = str.upper(dataset)
61 | normalize = transforms.Normalize(
62 | mean=[x / 255.0 for x in [125.3, 123.0, 113.9]],
63 | std=[x / 255.0 for x in [63.0, 62.1, 66.7]])
64 |
65 | args_pool = {'CIFAR10':
66 | {'n_epoch': 100, 'transform': transforms.Compose([transforms.RandomCrop(32, padding=4), transforms.RandomHorizontalFlip(), transforms.ToTensor(), normalize]),
67 | 'loader_tr_args':{'batch_size': 256, 'num_workers': 1},
68 | 'loader_te_args':{'batch_size': 256, 'num_workers': 1}},
69 | 'CIFAR100':
70 | {'n_epoch': 100, 'transform': transforms.Compose([transforms.RandomCrop(32, padding=4), transforms.RandomHorizontalFlip(), transforms.ToTensor(), normalize]),
71 | 'loader_tr_args': {'batch_size': 256, 'num_workers': 1},
72 | 'loader_te_args': {'batch_size': 256, 'num_workers': 1}}}
73 | args = args_pool[DATA_NAME]
74 |
75 | s
76 |
77 | # load dataset
78 | X_tr, Y_tr, X_te, Y_te = get_dataset(DATA_NAME)
79 | n_pool = len(Y_tr)
80 |
81 | # ------------------load the saved active set cycle 0 -------------------------------------
82 | active_set = []
83 | if dataset=='cifar10':
84 | with open(dataset + '_checkpoints_active_set/active_set_cycle_0.txt', 'r') as f:
85 | for line in f:
86 | active_set.append(int(line))
87 | elif dataset=='cifar100':
88 | with open(dataset + '_checkpoints_active_set/active_set_cycle_0.txt', 'r') as f:
89 | for line in f:
90 | active_set.append(int(line))
91 |
92 | #Making the dataset imbalanced
93 | def get_img_num_per_cls(imb_type, imb_factor):
94 |
95 | if dataset == 'cifar10':
96 | num_classes = 10
97 | new_dataset_size=n_pool-len(active_set)
98 | elif dataset == 'cifar100':
99 | num_classes = 100
100 | new_dataset_size=n_pool-len(active_set)
101 |
102 | img_max = new_dataset_size / num_classes
103 | img_num_per_cls = []
104 | if imb_type == 'exp':
105 | for cls_idx in range(num_classes):
106 | num = img_max * (imb_factor ** (cls_idx / (num_classes - 1.0)))
107 | img_num_per_cls.append(int(num))
108 | elif imb_type == 'step':
109 | for cls_idx in range(num_classes // 2):
110 | img_num_per_cls.append(int(img_max))
111 | for cls_idx in range(num_classes // 2):
112 | img_num_per_cls.append(int(img_max * imb_factor))
113 | else:
114 | img_num_per_cls.extend([int(img_max)] * num_classes)
115 | return img_num_per_cls
116 |
117 | #-------------Create imbalanced dataset from original-----------------------------
118 | def gen_imbalanced_data(img_num_per_cls, X_tr, Y_tr, imb_idxs):
119 |
120 | classes = np.unique(Y_tr)
121 | imb_flag = np.zeros(n_pool, dtype=bool)
122 | active_set_bool=np.zeros(n_pool, dtype=bool)
123 | active_set_bool[active_set]=True
124 | if imb_idxs==[]:
125 | for c in classes:
126 | idx = np.where(np.logical_and(np.array(Y_tr == c), active_set_bool == False))[0]
127 | np.random.shuffle(idx)
128 | selec_idx = idx[:img_num_per_cls[c]]
129 | imb_flag[selec_idx]=True
130 | # Save new long_tailed dataset info to the disk
131 | print('long-tailed dataset indices is created and saved to disk !')
132 | with open(dataset + '_checkpoints_active_set/long_tailed_dataset_IF_'+str(int(1/imb_factor))+'.txt', 'w') as f:
133 | for item in np.arange(n_pool)[imb_flag].tolist():
134 | f.write('{}\n'.format(item))
135 | with open(dataset + '_checkpoints_active_set/long_tailed_dataset_IF_' + str(int(1 / imb_factor)) + '.txt','a') as f:
136 | for item in active_set:
137 | f.write('{}\n'.format(item))
138 | imb_flag[imb_idxs] = True
139 | # Add active set of cycle 0 to the end of newly created dataset
140 | X_tr_new = np.concatenate((X_tr[np.arange(n_pool)[imb_flag]], X_tr[np.arange(n_pool)[active_set_bool]]), axis=0)
141 | Y_tr_new = np.concatenate((Y_tr[np.arange(n_pool)[imb_flag]], Y_tr[np.arange(n_pool)[active_set_bool]]), axis=0)
142 | else:
143 | print('loading the long-tailed dataset form disk')
144 | X_tr_new = np.concatenate((X_tr[imb_idxs[:len(imb_idxs)-NUM_INIT_LB]], X_tr[imb_idxs[-NUM_INIT_LB:]]), axis=0)
145 | Y_tr_new = np.concatenate((Y_tr[imb_idxs[:len(imb_idxs)-NUM_INIT_LB]], Y_tr[imb_idxs[-NUM_INIT_LB:]]), axis=0)
146 |
147 | return X_tr_new, Y_tr_new
148 |
149 | # ------------------load the long_tailed dataset if exists----------------------------------
150 | imb_idxs = []
151 | if os.path.exists(dataset + '_checkpoints_active_set/long_tailed_dataset_IF_'+str(int(1/imb_factor))+'.txt'):
152 | with open(dataset + '_checkpoints_active_set/long_tailed_dataset_IF_'+str(int(1/imb_factor))+'.txt', 'r') as f:
153 | for line in f:
154 | imb_idxs.append(int(line))
155 | #-----------------------------------------------------------------------------------
156 |
157 | img_num_per_cls=get_img_num_per_cls(imb_type,imb_factor)
158 | X_tr,Y_tr= gen_imbalanced_data(img_num_per_cls, X_tr, Y_tr, imb_idxs)
159 |
160 | n_pool = len(Y_tr)
161 | print('New dataset size = ', n_pool)
162 | n_test = len(Y_te)
163 |
164 |
165 | print('number of labeled pool: {}'.format(NUM_INIT_LB))
166 | print('number of unlabeled pool: {}'.format(n_pool - NUM_INIT_LB))
167 | print('number of testing pool: {}'.format(n_test))
168 |
169 |
170 | # initialization with labeled pool
171 | idxs_lb = np.zeros(n_pool, dtype=bool)
172 | new_active_set = np.arange(n_pool)[-len(active_set):].tolist()
173 | idxs_lb[new_active_set]=True
174 | cycle = 0
175 | handler = get_handler(DATA_NAME)
176 |
177 | ## Configure Resnet 18
178 | if dataset == 'cifar10':
179 | num_classes = 10
180 | elif dataset == 'cifar100':
181 | num_classes = 100
182 |
183 | ## Loading resent with cutout
184 | net=ResNet18(num_classes=num_classes)
185 |
186 |
187 | if 'RandomSampling' in method:
188 | strategy = RandomSampling(X_tr, Y_tr, X_te, Y_te, cycle, dataset, method, idxs_lb, net, handler, args)
189 | elif 'EntropySampling' in method:
190 | strategy = EntropySampling(X_tr, Y_tr, X_te, Y_te, cycle, dataset, method, idxs_lb, net, handler, args)
191 | elif 'KCenterGreedy' in method:
192 | strategy = KCenterGreedy(X_tr, Y_tr, X_te, Y_te, cycle, dataset, method, idxs_lb, net, handler, args)
193 | elif 'BALDDropout' in method:
194 | strategy = BALDDropout(X_tr, Y_tr,X_te, Y_te, cycle, dataset, method, idxs_lb, net, handler, args, n_drop=10)
195 | elif 'CoreSet' in method:
196 | strategy = CoreSet(X_tr, Y_tr, X_te, Y_te, cycle, dataset, method, idxs_lb, net, handler, args)
197 |
198 | # print info
199 | print(DATA_NAME)
200 | print('SEED {}'.format(SEED))
201 | print(type(strategy).__name__)
202 |
203 | ## round 0 accuracy
204 | P = strategy.test(X_te, Y_te)
205 | acc = np.zeros(NUM_ROUND+1)
206 | acc[0] = 1.0 * (Y_te == P).sum().item() / len(Y_te)
207 | print('Cycle 0 testing accuracy {}'.format(acc[0]))
208 |
209 | for cycle in range(1, NUM_ROUND+1):
210 | print('Cycle {}'.format(cycle))
211 |
212 | # query
213 | print('query samples ...')
214 | q_idxs = strategy.query(NUM_QUERY)
215 | idxs_lb[q_idxs] = True
216 | print('samples selected so far = ', sum(idxs_lb))
217 |
218 | # update
219 | strategy.update(idxs_lb)
220 | strategy.cycle = cycle
221 |
222 | ## Writing active set to the disk for every cycle
223 | if not os.path.exists(dataset + '_results/' + method):
224 | os.mkdir(dataset + '_results/' + method)
225 |
226 | new_active_set.extend(np.arange(n_pool)[q_idxs].tolist())
227 | with open(dataset+'_results/' + method + '/active_set_cycle_' + str(cycle) + '.txt', 'w') as f:
228 | for item in new_active_set:
229 | f.write('{}\n'.format(item))
230 |
231 | # train
232 | strategy.train()
233 | # test accuracy
234 | P = strategy.test(X_te, Y_te)
235 | acc[cycle] = 1.0 * (Y_te==P).sum().item() / len(Y_te)
236 | print('testing accuracy {}'.format(acc))
237 |
238 | # print results
239 | print('SEED {}'.format(SEED))
240 | print(type(strategy).__name__)
241 | print(acc)
242 |
--------------------------------------------------------------------------------
/run_cycle_0.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | from dataset import get_dataset, get_handler
3 | from torchvision import transforms
4 | import torch
5 | import os
6 | import argparse
7 | from Cutout.model.resnet import ResNet18
8 |
9 |
10 | from query_strategies import RandomSampling, EntropySampling, \
11 | KCenterGreedy, BALDDropout
12 |
13 | parser = argparse.ArgumentParser(description='CNN')
14 |
15 |
16 | parser.add_argument(
17 | '--method',
18 | default="none",
19 | help=
20 | 'name of the acquisition method'
21 | )
22 |
23 | parser.add_argument(
24 | '--dataset',
25 | default="none",
26 | help=
27 | 'name of the dataset'
28 | )
29 |
30 | parser.add_argument(
31 | '--imb_factor',
32 | type=float,
33 | default=1,
34 | help='Imbalance factor (0,1)'
35 | )
36 |
37 | parser.add_argument(
38 | '--imb_type',
39 | type=str,
40 | default='exp',
41 | help='step or exp'
42 | )
43 |
44 |
45 | inputs = parser.parse_args()
46 | method = inputs.method
47 | dataset= inputs.dataset
48 | imb_factor=inputs.imb_factor
49 | imb_type=inputs.imb_type
50 |
51 | # Seed parameters
52 | SEED = 1
53 | torch.manual_seed(SEED)
54 | torch.backends.cudnn.enabled = True
55 |
56 | NUM_INIT_LB=5000
57 | NUM_QUERY = 2500
58 | NUM_ROUND = 5
59 |
60 | DATA_NAME = str.upper(dataset)
61 | normalize = transforms.Normalize(
62 | mean=[x / 255.0 for x in [125.3, 123.0, 113.9]],
63 | std=[x / 255.0 for x in [63.0, 62.1, 66.7]])
64 |
65 | args_pool = {'CIFAR10':
66 | {'n_epoch': 100, 'transform': transforms.Compose([transforms.RandomCrop(32, padding=4), transforms.RandomHorizontalFlip(), transforms.ToTensor(), normalize]),
67 | 'loader_tr_args':{'batch_size': 256, 'num_workers': 1},
68 | 'loader_te_args':{'batch_size': 256, 'num_workers': 1}},
69 | 'CIFAR100':
70 | {'n_epoch': 100, 'transform': transforms.Compose([transforms.RandomCrop(32, padding=4), transforms.RandomHorizontalFlip(), transforms.ToTensor(), normalize]),
71 | 'loader_tr_args': {'batch_size': 256, 'num_workers': 1},
72 | 'loader_te_args': {'batch_size': 256, 'num_workers': 1}}}
73 | args = args_pool[DATA_NAME]
74 |
75 |
76 |
77 | # load dataset
78 | X_tr, Y_tr, X_te, Y_te = get_dataset(DATA_NAME)
79 | n_pool = len(Y_tr)
80 |
81 | # ------------------load the saved active set cycle 0 -------------------------------------
82 | active_set = []
83 | if dataset=='cifar10':
84 | with open(dataset + '_checkpoints_active_set/active_set_cycle_0.txt', 'r') as f:
85 | for line in f:
86 | active_set.append(int(line))
87 | elif dataset=='cifar100':
88 | with open(dataset + '_checkpoints_active_set/active_set_cycle_0.txt', 'r') as f:
89 | for line in f:
90 | active_set.append(int(line))
91 |
92 | #Making the dataset imbalanced
93 | def get_img_num_per_cls(imb_type, imb_factor):
94 |
95 | if dataset == 'cifar10':
96 | num_classes = 10
97 | new_dataset_size=n_pool-len(active_set)
98 | elif dataset == 'cifar100':
99 | num_classes = 100
100 | new_dataset_size=n_pool-len(active_set)
101 |
102 | img_max = new_dataset_size / num_classes
103 | img_num_per_cls = []
104 | if imb_type == 'exp':
105 | for cls_idx in range(num_classes):
106 | num = img_max * (imb_factor ** (cls_idx / (num_classes - 1.0)))
107 | img_num_per_cls.append(int(num))
108 | elif imb_type == 'step':
109 | for cls_idx in range(num_classes // 2):
110 | img_num_per_cls.append(int(img_max))
111 | for cls_idx in range(num_classes // 2):
112 | img_num_per_cls.append(int(img_max * imb_factor))
113 | else:
114 | img_num_per_cls.extend([int(img_max)] * num_classes)
115 | return img_num_per_cls
116 |
117 | #-------------Create imbalanced dataset from original-----------------------------
118 | def gen_imbalanced_data(img_num_per_cls, X_tr, Y_tr, imb_idxs):
119 |
120 | classes = np.unique(Y_tr)
121 | imb_flag = np.zeros(n_pool, dtype=bool)
122 | active_set_bool=np.zeros(n_pool, dtype=bool)
123 | active_set_bool[active_set]=True
124 | if imb_idxs==[]:
125 | for c in classes:
126 | idx = np.where(np.logical_and(np.array(Y_tr == c), active_set_bool == False))[0]
127 | np.random.shuffle(idx)
128 | selec_idx = idx[:img_num_per_cls[c]]
129 | imb_flag[selec_idx]=True
130 | # Save new long_tailed dataset info to the disk
131 | print('long-tailed dataset indices is created and saved to disk !')
132 | with open(dataset + '_checkpoints_active_set/long_tailed_dataset_IF_'+str(int(1/imb_factor))+'.txt', 'w') as f:
133 | for item in np.arange(n_pool)[imb_flag].tolist():
134 | f.write('{}\n'.format(item))
135 | with open(dataset + '_checkpoints_active_set/long_tailed_dataset_IF_' + str(int(1 / imb_factor)) + '.txt','a') as f:
136 | for item in active_set:
137 | f.write('{}\n'.format(item))
138 | imb_flag[imb_idxs] = True
139 | # Add active set of cycle 0 to the end of newly created dataset
140 | X_tr_new = np.concatenate((X_tr[np.arange(n_pool)[imb_flag]], X_tr[np.arange(n_pool)[active_set_bool]]), axis=0)
141 | Y_tr_new = np.concatenate((Y_tr[np.arange(n_pool)[imb_flag]], Y_tr[np.arange(n_pool)[active_set_bool]]), axis=0)
142 | else:
143 | print('loading the long-tailed dataset form disk')
144 | X_tr_new = np.concatenate((X_tr[imb_idxs[:len(imb_idxs)-NUM_INIT_LB]], X_tr[imb_idxs[-NUM_INIT_LB:]]), axis=0)
145 | Y_tr_new = np.concatenate((Y_tr[imb_idxs[:len(imb_idxs)-NUM_INIT_LB]], Y_tr[imb_idxs[-NUM_INIT_LB:]]), axis=0)
146 |
147 | return X_tr_new, Y_tr_new
148 |
149 | # ------------------load the long_tailed dataset if exists----------------------------------
150 | imb_idxs = []
151 | if os.path.exists(dataset + '_checkpoints_active_set/long_tailed_dataset_IF_'+str(int(1/imb_factor))+'.txt'):
152 | with open(dataset + '_checkpoints_active_set/long_tailed_dataset_IF_'+str(int(1/imb_factor))+'.txt', 'r') as f:
153 | for line in f:
154 | imb_idxs.append(int(line))
155 | #-----------------------------------------------------------------------------------
156 |
157 | img_num_per_cls=get_img_num_per_cls(imb_type,imb_factor)
158 | X_tr,Y_tr= gen_imbalanced_data(img_num_per_cls, X_tr, Y_tr, imb_idxs)
159 |
160 | n_pool = len(Y_tr)
161 | print('New dataset size = ', n_pool)
162 | n_test = len(Y_te)
163 |
164 |
165 | print('number of labeled pool: {}'.format(NUM_INIT_LB))
166 | print('number of unlabeled pool: {}'.format(n_pool - NUM_INIT_LB))
167 | print('number of testing pool: {}'.format(n_test))
168 |
169 |
170 | # initialization with labeled pool
171 | idxs_lb = np.zeros(n_pool, dtype=bool)
172 | new_active_set = np.arange(n_pool)[-len(active_set):].tolist()
173 | idxs_lb[new_active_set]=True
174 | cycle = 0
175 | handler = get_handler(DATA_NAME)
176 |
177 | ## Configure Resnet 18
178 | if dataset == 'cifar10':
179 | num_classes = 10
180 | elif dataset == 'cifar100':
181 | num_classes = 100
182 |
183 | ## Loading resent with cutout
184 | net=ResNet18(num_classes=num_classes)
185 |
186 |
187 | if 'RandomSampling' in method:
188 | strategy = RandomSampling(X_tr, Y_tr, X_te, Y_te, cycle, dataset, method, idxs_lb, net, handler, args)
189 | elif 'EntropySampling' in method:
190 | strategy = EntropySampling(X_tr, Y_tr, X_te, Y_te, cycle, dataset, method, idxs_lb, net, handler, args)
191 | elif 'KCenterGreedy' in method:
192 | strategy = KCenterGreedy(X_tr, Y_tr, X_te, Y_te, cycle, dataset, method, idxs_lb, net, handler, args)
193 | elif 'BALDDropout' in method:
194 | strategy = BALDDropout(X_tr, Y_tr,X_te, Y_te, cycle, dataset, method, idxs_lb, net, handler, args, n_drop=10)
195 | elif 'CoreSet' in method:
196 | strategy = CoreSet(X_tr, Y_tr, X_te, Y_te, cycle, dataset, method, idxs_lb, net, handler, args)
197 |
198 | # print info
199 | print(DATA_NAME)
200 | print('SEED {}'.format(SEED))
201 | print(type(strategy).__name__)
202 |
203 | ## round 0 accuracy
204 | strategy.train()
205 | #Evaluate trained model
206 | P = strategy.test(X_te,Y_te)
207 | acc = np.zeros(NUM_ROUND+1)
208 | acc[0] = 1.0 * (Y_te == P).sum().item() / len(Y_te)
209 | print('Cycle 0 testing accuracy {}'.format(acc[0]))
210 |
--------------------------------------------------------------------------------