0
0
0
0
2
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
11
11
11
11
11
11
11
11
11
11
17
17
17
19
19
19
35
46
50
56
56
57
57
57
57
57
57
57
57
58
58
58
58
60
60
60
60
62
62
62
62
63
63
63
63
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
66
68
68
68
70
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
71
73
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
74
76
77
77
77
77
79
80
80
80
80
80
80
80
80
80
80
80
81
83
85
85
85
85
87
89
89
89
89
89
89
89
89
89
89
89
91
91
91
91
91
91
93
94
94
95
96
99
99
102
103
104
107
107
108
108
108
108
111
111
112
114
114
114
117
117
117
117
117
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
120
121
121
121
121
125
126
126
126
126
126
126
126
126
126
126
126
126
126
126
129
132
132
132
132
132
137
137
137
137
140
140
140
140
147
147
147
147
147
147
147
147
154
165
168
168
169
169
169
169
170
170
170
170
177
177
177
177
177
177
177
177
177
177
177
177
177
177
177
177
177
177
180
180
180
180
182
182
182
182
182
182
182
182
191
191
191
195
196
196
196
196
196
196
196
196
197
197
197
201
209
213
220
230
240
240
242
242
242
253
253
261
261
264
264
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
276
279
279
279
285
285
285
285
285
287
287
287
287
287
287
287
287
287
289
290
291
295
296
300
304
318
333
345
360
371
374
381
387
387
387
387
387
387
387
387
387
394
398
398
398
398
409
415
419
419
419
422
429
429
444
445
454
454
458
458
461
473
481
508
525
525
526
526
526
526
528
531
531
531
545
575
587
587
590
593
593
593
599
604
604
604
622
639
660
686
689
689
711
730
742
766
766
791
821
853
875
884
915
925
954
976
1004
1004
1004
1004
1004
1004
1004
1004
1004
1004
1004
1009
1011
1035
1035
1035
1048
1057
1082
1082
1094
1117
1137
1145
1148
1154
1166
1191
1221
1265
1303
1303
1317
1337
1383
1406
1450
1501
1549
1549
1553
1556
1559
1559
1562
1572
1575
1589
1619
1672
1697
1721
1749
1788
1887
1926
1933
1943
1970
1970
1970
1970
1970
1970
1970
1970
1970
1970
1970
1970
1970
1970
1970
1970
1971
1971
1971
1971
1973
1973
1973
1973
1975
1975
1975
1975
1976
1976
1976
1976
1976
1976
1976
1976
1976
1976
1976
1976
1976
1976
1981
1981
1981
1981
1983
1983
1983
1983
1984
1984
1984
1984
1985
1985
1985
1985
1987
1987
1987
1987
1987
1987
1987
1987
1988
1988
1988
1988
1990
1990
1990
1990
1992
1992
1992
1992
1993
1993
1993
1993
1993
1993
1993
1993
1993
1993
1993
1993
1994
1994
1994
1994
1995
1995
1995
1995
1995
1995
1995
1995
1995
1995
1995
1996
1996
1996
1996
1997
1997
1997
1997
1999
2000
2000
2000
2000
2000
2000
2000
2000
2000
2001
2001
2001
2001
2001
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2002
2003
2003
2003
2003
2003
2003
2003
2003
2003
2003
2003
2003
2003
2003
2003
2003
2003
2003
2003
2003
2003
2003
2003
2006
2006
2006
2007
2008
2008
2008
2008
2008
2008
2008
2008
2008
2008
2008
2008
2008
2008
2008
2008
2008
2008
2008
2008
2008
2008
2008
2008
2008
2010
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2012
2014
2016
2019
2019
2019
2019
2019
2019
2019
2019
2019
2019
2021
2023
2026
2026
2026
2029
2029
2029
2029
2029
2029
2029
2029
2031
2033
2033
2033
2034
2034
2034
2034
2035
2035
2035
2035
2037
2039
2039
2039
2039
2039
2039
2039
2039
2040
2041
2041
2041
2041
2041
2041
2041
2041
2041
2041
2041
2041
2041
2044
2045
2045
2045
2045
2047
2047
2050
2054
2054
2057
2060
2062
2062
2065
2065
2065
2065
2065
2065
2065
2065
2065
2065
2065
2065
2065
2065
2065
2065
2065
2065
2065
2065
2065
2065
2065
2065
2065
2065
2067
2067
2067
2070
2072
2072
2076
2079
2081
2081
2081
2081
2081
2081
2081
2081
2081
2081
2081
2081
2081
2083
2083
2083
2083
2083
2083
2083
2083
2086
2086
2086
2086
2089
2089
2089
2089
2093
2093
2094
2094
2095
2096
2098
2098
2098
2098
2101
2105
2105
2109
2109
2109
2109
2112
2112
2112
2112
2112
2114
2114
2114
2117
2121
2121
2121
2121
2121
2121
2121
2121
2123
2123
2123
2123
2125
2125
2126
2126
2126
2127
2127
2127
2128
2131
2135
2137
2141
2142
2144
2144
2144
2144
2144
2144
2144
2144
2144
2144
2145
2145
2145
2145
2146
2146
2146
2146
2146
2146
2146
2146
2146
2146
2148
2148
2149
2149
2151
2151
2151
2151
2151
2151
2151
2151
2151
2151
2151
2151
2151
2151
2151
2151
2151
2152
2157
2157
2158
2159
2163
2163
2163
2167
2171
2175
2180
2185
2190
2190
2190
2190
2193
2193
2193
2196
2199
2203
2206
2211
2214
2214
2214
2214
2214
2214
2214
2214
2216
2216
2216
2220
2224
2224
2224
2224
2224
2224
2224
2224
2224
2224
2224
2225
2225
2225
2225
2228
2228
2228
2228
2231
2231
2231
2235
2236
2236
2236
2236
2236
2236
2236
2236
2238
2240
2240
2240
2240
2240
2240
2240
2240
2240
2240
2240
2242
2242
2242
2242
2242
2242
2242
2242
2242
2246
2246
2246
2250
2252
2255
2255
2256
2257
2258
2258
2258
2258
2258
2258
2258
2258
2259
2259
2259
2259
2259
2259
2259
2259
2259
2259
2259
2259
2259
2259
2259
2259
2259
2259
2259
2259
2260
2260
2260
2264
2264
2264
2264
2264
2264
2264
2264
2264
2264
2264
2264
2264
2264
2264
2264
2264
2265
2265
2265
2266
2266
2266
2266
2266
2266
2266
2266
2266
2266
2266
2266
2266
2266
2266
2267
2267
2267
2269
2269
2269
2271
2271
2271
2274
2277
2277
2277
2277
2277
2281
2284
2284
2284
2284
2284
2284
2285
2285
2285
2285
2285
2285
2285
2285
2285
2285
2285
2285
2285
2285
2285
2285
2288
2288
2288
2292
2292
2294
2294
2297
2297
2297
2297
2297
2297
2297
2297
2297
2297
2297
2297
2297
2297
2297
2297
2297
2297
2297
2301
2301
2305
2308
2308
2312
2314
2314
2314
2314
2314
2314
2314
2314
2314
2314
2314
2314
2314
2314
2316
2316
2316
2320
2322
2322
2322
2322
2322
2322
2322
2322
2322
2324
2328
2328
2328
2328
2328
2328
2328
2328
2328
2328
2328
2328
2332
2332
2332
2332
2334
2336
2338
2342
2343
2343
2344
2344
2346
2349
2353
2355
2359
2359
2362
2362
2364
2364
2365
2368
2372
2375
2379
2381
2385
2385
2390
2390
2392
2394
2394
2396
2396
2399
2399
2399
2404
2408
2412
2414
2414
2418
2422
2427
2432
2437
2441
2445
2450
2455
2460
2465
2466
2468
2473
2478
2483
2488
2488
2488
2492
2497
2502
2507
2511
2516
2521
2526
2531
2536
2539
2544
2548
2551
2556
2561
2565
2569
2573
2578
2578
2578
2578
2581
2581
2584
2584
2587
2587
2590
2590
2593
2597
2597
2597
2600
2600
2603
2605
2605
2605
2608
2609
2609
2609
2610
2614
2618
2621
2625
2625
2625
2625
2625
2625
2625
2628
2628
2628
2628
2628
2628
2628
2628
2629
2629
2629
2632
2632
2632
2632
2632
2632
2632
2632
2632
2632
2632
2632
2632
2632
2635
2637
2640
2643
2643
2643
2649
2649
2649
2649
2649
2649
2649
2651
2651
2665
2672
2673
2674
2684
2692
2692
2694
2704
2707
2707
2707
2711
2714
2714
2714
2719
2719
2719
2723
2723
2731
2731
2731
2731
2744
2750
2753
2754
2761
2776
2788
2788
2789
2790
2797
2797
2798
2800
2800
2806
2814
2829
2841
2841
2841
2841
2841
2841
2841
2849
2856
2856
2860
2862
2865
2866
2869
2871
2874
2874
2874
2889
2901
2901
2901
2901
2901
2901
2901
2904
2904
2904
2905
2906
2910
2910
2911
2912
2917
2917
2917
2919
2919
2919
2919
2920
2921
2922
2922
2922
2922
2931
2934
2934
2939
2951
2957
2957
2957
2957
2957
2958
2958
2958
2960
2971
2973
2974
2974
2974
2980
2980
2983
2983
2984
2984
2985
2995
3003
3013
3022
3026
3026
3038
3049
3049
3049
3061
3072
3072
3072
3081
3086
3086
3086
3090
3091
3099
3099
3099
3105
3110
3110
3122
3122
3122
3133
3140
3141
3143
3157
3168
3173
3182
3195
3195
3195
3200
3200
3205
3214
3214
3214
3217
3217
3220
3231
3231
3232
3232
3234
3234
3245
3245
3256
3256
3256
3256
3256
3256
3256
3260
3269
3277
3277
3277
3279
3279
3279
3279
3282
3282
3282
3282
3290
3298
3298
3303
3307
3308
3317
3322
3327
3333
3337
3346
3359
3373
3388
3397
3407
3407
3419
3432
3447
3452
3452
3456
3467
3478
3485
3488
3488
3490
3500
3500
3510
3516
3522
3522
3534
3547
3561
3570
3585
3590
3590
3590
3604
3605
3607
3607
3619
3619
3619
3628
3643
3646
3655
3661
3676
3684
3699
3712
3724
3731
3735
3740
3754
3767
3772
3778
3778
3783
3796
3805
3810
3823
3833
3845
3860
3873
3888
3888
3888
3888
3889
3889
3890
3893
3901
3901
3902
3906
3913
3913
3914
3914
3914
3914
3919
3925
3928
3941
3956
3962
3972
3985
4000
4015
4030
4036
4042
4052
4065
4080
4094
4098
4098
4104
4112
4122
4137
4137
4137
4149
4151
4151
4151
4165
4166
4178
4191
4205
4205
4208
4220
4232
4246
4261
4267
4267
4276
4279
4294
4302
4312
4326
4338
4339
4354
4360
4367
4367
4367
4367
4367
4367
4370
4376
4382
4382
4386
4389
4395
4403
4406
4420
4420
4425
4425
4433
4435
4435
4435
4435
4438
4446
4446
4450
4450
4459
4462
4462
4462
4482
4486
4489
4491
4491
4503
4503
4503
4503
4535
4535
4535
4566
4582
4613
4640
4646
4654
4676
4700
4706
4711
4736
4748
4748
4754
4770
4782
4782
4782
4804
4804
4804
4825
4825
4840
4840
4840
4840
4859
4859
4859
4889
4911
4944
4976
4976
4976
4985
5000
5000
5000
5015
5026
5052
5073
5105
5137
5145
5151
5152
5185
5213
5237
5272
5299
5314
5338
5368
5395
5404
5420
5446
5468
5498
5531
5566
5597
5597
5601
5602
5602
5603
5607
5617
5626
5626
5635
5647
5669
5672
5681
5693
5711
5712
5716
5726
5736
5736
5763
5795
5805
5823
5852
5883
5904
5932
5962
5983
6010
6040
6073
6092
6092
6107
6107
6109
6109
6109
6126
6153
6184
6211
6218
6227
6250
6269
6281
6306
6353
6399
6444
6473
6493
6537
6606
6653
6691
6729
6777
6832
6873
6922
6977
7012
7076
7141
7206
7252
7304
7359
7385
7432
7462
7462
7462
7462
7462
7466
7470
7475
7478
7478
7480
7480
7480
7480
7480
7480
7480
7480
7480
7480
7485
7486
7486
7486
7489
7489
7490
7490
7494
7494
7494
7494
7497
7497
7497
7497
7497
7497
7497
7497
7497
7502
7505
7505
7505
7506
7507
7507
7507
7508
7508
7508
7508
7513
7516
7516
7516
7516
7516
7516
7516
7516
7517
7517
7521
7523
7523
7523
7523
7523
7523
7524
7524
7524
7524
7524
7524
7524
7524
7524
7524
7524
7524
7524
7524
7524
7524
7524
7524
7524
7524
7524
7524
7524
7527
7531
7531
7534
7534
7534
7534
7534
7534
7534
7538
7538
7538
7538
7542
7542
7543
7543
7546
7546
7547
7547
7552
7553
7555
7555
7555
7555
7555
7555
7559
7559
7559
7559
7564
7564
7564
7564
7569
7569
7570
7570
7574
7574
7574
7574
7574
7574
7574
7577
7577
7577
7580
7583
7583
7586
7589
7594
7595
7595
7595
7598
7598
7598
7598
7598
7598
7601
7601
7601
7601
7601
7604
7604
7607
7607
7607
7607
7607
7607
7607
7607
7607
7607
7607
7607
7607
7607
7608
7608
7608
7611
7611
7611
7611
7611
7611
7612
7612
7612
7617
7620
7620
7620
7624
7628
7629
7629
7629
7629
7631
7631
7631
7631
7631
7631
7631
7631
7636
7636
7636
7636
7636
7641
7646
7646
7646
7646
7646
7646
7646
7646
7646
7646
7646
7646
7646
7647
7647
7651
7651
7651
7651
7651
7653
7653
7653
7653
7653
7653
7653
7653
7655
7655
7655
7655
7655
7655
7658
7661
7665
7665
7666
7668
7671
7671
7672
7677
7680
7680
7680
7680
7680
7685
7690
7695
7700
7700
7705
7710
7715
7715
7720
7725
7730
7730
7735
7740
7743
7746
7751
7755
7760
7760
7761
7761
7761
7761
7762
7765
7767
7768
7772
7776
7776
7776
7776
7776
7776
7777
7777
7777
7777
7777
7777
7777
7777
7780
7780
7780
7780
7780
7780
7780
7785
7785
7785
7785
7789
7789
7789
7789
7793
7793
7793
7793
7796
7796
7796
7801
7805
7805
7810
7815
7820
7822
7822
7823
7828
7833
7837
7841
7841
7844
7849
7852
7855
7857
7857
7857
7858
7860
7865
7865
7870
7870
7870
7870
7875
7875
7875
7875
7880
7880
7880
7880
7885
7885
7885
7890
7895
7895
7900
7905
7910
7915
7915
7918
7923
7927
7930
7934
7934
7937
7942
7945
7946
7951
7951
7951
7956
7961
7966
7969
7969
7972
7973
7977
7977
7981
7984
7984
7986
7986
7986
7986
7986
7989
7993
7998
8001
8001
8003
8005
8009
8012
8016
8017
8017
8017
8019
8024
8027
8027
8027
8027
8027
8030
8030
8030
8033
8033
8035
8035
8035
8035
8037
8037
8040
8043
8043
8047
8050
8050
8050
8050
8050
8050
8050
8050
8050
8050
8050
8050
8052
8054
8057
8057
8061
8061
8061
8061
8065
8065
8065
8065
8067
8067
8067
8067
8072
8072
8072
8072
8072
8072
8072
8072
8072
8072
8072
8072
8072
8072
8072
8072
8072
8072
8072
8072
8073
8073
8073
8073
8073
8076
8076
8081
8081
8084
8088
8091
8091
8094
8098
8103
8107
8107
8107
8111
8111
8111
8111
8111
8111
8116
8116
8119
8119
8119
8122
8122
8125
8125
8126
8130
8130
8130
8135
8140
8145
8145
8148
8149
8153
8156
8161
8166
8171
8175
8179
8179
8184
8188
8191
8195
8195
8198
8203
8208
8211
8213
8213
8214
8219
8223
8227
8232
8232
8232
8237
8242
8246
8246
8246
8246
8249
8249
8250
8251
8255
8255
8256
8257
8259
8259
8261
8261
8263
8267
8267
8271
8276
8281
8286
8291
8291
8295
8300
8305
8310
8314
8314
8317
8322
8327
8332
8335
8335
8339
8344
8349
8354
8354
8356
8358
8363
8363
8365
8367
8367
8371
8376
8381
8381
8386
8391
8396
8401
8406
8409
8414
8419
8422
8427
8432
8437
8442
8447
8450
8455
8459
8464
8464
8464
8464
8464
8464
8469
8471
8476
8476
8477
8479
8479
8479
8481
8484
8488
8493
8498
8503
8506
8506
8511
8511
8514
8517
8519
8524
8528
8533
8538
8538
8539
8541
8541
8541
8541
8541
8541
8541
8544
8544
8547
8551
8553
8553
8553
8553
8553
8553
8553
8553
8553
8555
8556
8561
8561
8561
8562
8562
8564
8564
8565
8568
8568
8572
8575
8580
8584
8585
8590
8594
8594
8596
8601
8606
8611
8616
8621
8626
8631
8634
8639
8644
8649
8654
8659
8662
8667
8671
8676
8681
8683
8687
8692
8696
8699
8703
8707
8710
8715
8718
8722
8727
8732
8737
8742
8747
8752
8757
8761
8765
8767
8768
8771
8775
8780
8784
8789
8793
8797
8797
8797
8797
8797
8798
8798
8798
8798
8798
8798
8798
8798
8800
8800
8804
8804
8804
8808
8813
8816
8820
8825
8830
8835
8840
8840
8840
8840
8844
8844
8844
8846
8850
8852
8857
8862
8866
8871
8876
8881
8886
8891
8896
8901
8906
8906
8906
8906
8906
8906
8906
8910
8910
8914
8914
8914
8918
8918
8921
8921
8923
8923
8923
8925
8929
8929
8932
8932
8932
8936
8939
8939
8939
8943
8948
8952
8952
8956
8956
8959
8959
8959
8963
8963
8967
8971
8971
8975
8975
8979
8983
8983
8983
8983
8987
8987
8987
8991
8995
8995
8997
9000
9004
9009
9014
9014
9014
9014
9014
9014
9014
9014
9014
9014
9017
9018
9018
9019
9019
9019
9019
9019
9019
9019
9033
9048
9048
9048
9052
9052
9059
9059
9062
9062
9069
9072
9080
9080
9080
9080
9080
9080
9080
9080
9095
9110
9110
9110
9125
9125
9137
9137
9151
9151
9163
9171
9186
9186
9186
9186
9200
9200
9205
9205
9217
9231
9243
9243
9258
9270
9275
9275
9287
9291
9291
9297
9297
9297
9298
9299
9304
9304
9312
9324
9324
9324
9324
9324
9324
9324
9324
9324
9324
9324
9324
9324
9324
9331
9335
9344
9344
9345
9352
9352
9352
9352
9352
9352
9357
9367
9367
9367
9378
9378
9385
9385
9393
9393
9400
9415
9429
9429
9429
9429
9429
9429
9429
9429
9435
9435
9445
9445
9457
9457
9470
9470
9482
9482
9495
9495
9501
9501
9511
9511
9511
9521
9528
9538
9548
9562
9569
9579
9579
9590
9605
9617
9632
9632
9632
9639
9639
9639
9639
9639
9639
9649
9663
9678
9685
9693
9704
9718
9730
9730
9732
9732
9732
9738
9738
9744
9755
9762
9771
9771
9777
9787
9797
9811
9826
9838
9847
9862
9877
9892
9892
9903
9909
9915
9929
9941
9956
9970
9985
10000
10006
10016
10030
10045
10057
10057
10057
10057
10057
10057
10057
10063
10073
10073
10073
10073
10073
10079
10088
10088
10094
10094
10104
10104
10104
10104
10104
10104
10104
10104
10105
10108
10108
10108
10122
10136
10136
10136
10136
10150
10161
10161
10161
10161
10161
10167
10176
10208
10222
10255
10282
10317
10348
10379
10408
10439
10469
10500
10500
10528
10543
10563
10593
10626
10660
10680
10700
10720
10740
10769
10801
10834
10834
10863
10895
10927
10958
10993
11020
11051
11082
11117
11152
11187
11187
11218
11248
11281
11281
11281
11281
11281
11281
11281
11281
11281
11281
11281
11281
11281
11281
11281
11281
11281
11281
11281
11281
11281
11281
11281
11281
11285
11288
11293
11293
11298
11303
11308
11308
11310
11310
11310
11310
11310
11310
11310
11310
11310
11311
11315
11315
11315
11315
11315
11315
11315
11315
11315
11315
11315
11315
11315
11315
11316
11318
11318
11323
11328
11333
11336
11339
11344
11344
11344
11344
11344
11347
11351
11356
11360
11365
11365
11370
11370
11371
11371
11371
11372
11372
11372
11372
11372
11372
11372
11372
11372
11372
11373
11373
11374
11378
11378
11381
11381
11381
11385
11385
11385
11385
11385
11385
11385
11385
11385
11385
11385
11385
11385
11385
11385
11385
11385
11385
11385
11385
11385
11386
11388
11388
11388
11391
11395
11395
11395
11395
11395
11395
11395
11395
11400
11405
11405
11410
11410
11412
11417
11417
11422
11422
11422
11422
11422
11422
11422
11422
11422
11422
11422
11422
11422
11422
11422
11422
11422
11422
11422
11422
11422
11422
11422
11422
11422
11422
11422
11422
11422
11427
11432
11437
11437
11437
11442
11447
11452
11452
11452
11452
11452
11453
11455
11455
11455
11455
11455
11455
11455
11455
11455
11458
11462
11462
11462
11464
11469
11474
11474
11474
11474
11474
11477
11481
11491
11506
11506
11506
11516
11516
11531
11541
11556
11571
11571
11571
11584
11594
11594
11604
11604
11619
11634
11649
11664
11679
11679
11694
11709
11709
11724
11739
11754
11754
11759
11764
11769
11774
11779
