Skip to content

Instantly share code, notes, and snippets.

@roniemicro
Created May 22, 2013 02:04
Show Gist options
  • Save roniemicro/5624747 to your computer and use it in GitHub Desktop.
Save roniemicro/5624747 to your computer and use it in GitHub Desktop.
Sample Input for just fact to range 1000
709
230
709
989
304
59
318
914
932
622
455
391
968
417
229
618
258
394
223
338
121
32
530
745
404
281
751
583
463
620
978
66
145
37
811
881
767
955
344
300
214
399
159
988
787
792
347
219
368
140
510
658
278
866
740
560
361
977
639
628
957
933
298
96
929
703
301
650
616
747
738
544
846
53
230
481
973
63
832
678
846
745
183
857
802
597
337
252
686
570
895
550
837
143
968
984
120
265
158
297
834
416
518
666
864
566
670
833
547
192
705
33
711
245
224
932
712
205
301
803
398
40
537
350
104
211
44
768
659
686
383
802
438
944
667
665
269
956
497
81
489
199
945
247
944
605
634
886
991
672
634
250
477
369
548
27
720
156
468
430
585
984
976
203
410
368
202
541
42
242
691
187
798
83
573
338
564
841
429
716
657
34
353
556
925
575
926
562
723
960
279
950
879
178
956
463
750
651
106
295
183
386
273
171
494
825
568
306
551
955
593
424
690
256
440
739
759
658
692
975
113
660
458
367
560
231
323
600
477
811
377
907
691
408
222
32
558
464
931
152
907
947
144
990
111
354
895
799
961
619
825
285
851
237
24
642
609
161
57
614
572
848
35
415
587
308
539
752
991
961
681
856
649
815
63
452
880
331
737
737
550
457
345
452
977
673
939
794
45
949
160
506
54
763
61
782
850
85
243
367
809
355
799
456
759
562
349
773
55
184
947
552
507
172
233
497
489
987
260
824
829
634
630
275
884
555
454
46
501
720
315
842
996
607
304
915
256
185
22
972
579
896
544
244
832
746
489
420
369
196
930
731
20
196
487
902
121
225
235
167
519
251
754
212
570
736
176
271
121
667
64
66
490
504
508
795
543
216
131
219
617
264
986
515
559
617
713
426
706
753
383
166
905
641
581
441
512
743
417
484
354
45
473
1000
769
970
841
243
623
545
142
878
252
210
430
177
486
915
325
808
678
177
900
43
678
909
776
548
821
627
44
575
955
282
269
831
435
333
560
548
89
751
520
432
255
32
241
697
780
109
304
87
38
459
803
778
819
72
357
531
517
388
39
544
942
396
432
539
468
555
647
731
904
834
286
845
626
713
420
114
461
162
652
224
746
619
93
409
346
94
306
392
581
27
402
389
316
387
964
124
870
653
121
792
126
795
419
154
384
291
967
389
510
92
387
238
840
657
732
898
242
975
623
131
33
524
152
113
59
256
883
567
658
629
944
729
696
633
920
322
509
727
901
541
926
880
489
130
322
571
758
284
505
751
327
728
832
899
270
694
169
983
188
888
814
483
173
544
653
349
808
367
22
59
222
571
730
565
960
880
172
364
171
529
156
406
399
221
38
170
756
172
647
607
842
106
357
214
751
237
977
922
82
289
883
250
891
478
901
127
817
527
389
33
932
650
174
918
839
572
593
299
628
508
512
107
884
181
268
803
715
788
689
393
706
89
150
318
948
262
460
548
61
51
975
561
100
649
560
327
665
801
535
306
869
722
745
467
312
134
547
288
67
235
768
721
717
747
766
263
391
905
386
846
654
433
947
966
616
526
333
594
860
908
844
190
496
813
364
703
108
946
212
632
767
541
235
927
114
302
769
86
203
444
680
40
634
692
306
268
519
279
474
739
441
891
540
932
491
781
352
817
271
654
246
854
854
723
69
30
860
715
159
767
382
842
361
93
982
829
33
428
791
892
983
761
390
753
604
571
854
627
707
809
803
239
647
952
328
784
271
971
993
24
897
345
929
136
410
23
716
844
128
465
449
400
878
660
708
491
56
87
604
350
450
677
722
682
436
928
170
722
841
809
514
192
42
781
863
288
827
811
819
736
590
380
474
767
161
437
412
107
855
462
722
932
560
424
27
22
592
782
380
537
798
525
401
237
535
113
183
318
630
496
308
505
440
172
868
30
792
91
483
581
61
714
227
409
57
47
681
221
135
513
958
229
142
118
657
159
415
303
853
225
802
58
166
151
657
822
649
152
810
604
923
933
616
843
100
746
903
529
723
296
46
121
922
780
835
569
300
940
663
371
910
991
360
479
391
656
262
369
797
151
215
994
750
181
558
850
340
959
155
888
151
249
325
587
274
227
914
898
310
617
298
317
353
652
286
777
984
57
234
775
333
27
969
280
944
287
867
734
948
69
755
144
928
80
971
931
974
533
380
123
689
172
301
140
164
192
580
952
964
317
574
76
236
762
129
425
526
271
563
496
944
38
743
258
110
769
24
171
80
716
215
206
454
584
672
821
343
589
261
24
330
454
301
236
507
393
638
447
475
132
627
134
326
865
117
249
642
354
425
270
535
776
417
167
587
875
430
398
890
864
310
935
65
468
396
274
165
883
533
346
792
851
79
632
76
588
841
118
561
797
213
246
377
714
987
986
107
61
555
834
824
35
727
742
167
360
859
188
191
269
797
123
496
467
878
25
193
188
951
845
847
137
370
100
587
529
944
701
976
106
68
166
145
65
531
427
638
129
708
961
585
513
447
758
568
941
84
277
679
647
448
469
520
336
894
811
184
221
288
294
251
29
929
357
815
953
702
970
495
757
926
631
365
635
465
290
26
312
639
406
552
983
313
950
562
411
804
420
148
772
980
745
875
810
196
425
871
738
260
410
720
281
530
178
514
634
851
680
834
541
581
413
792
216
545
329
971
364
102
886
481
220
79
93
885
487
812
371
315
399
187
708
332
663
502
583
49
510
624
947
47
647
890
297
420
307
165
565
767
195
749
249
200
525
526
299
283
41
815
193
126
920
481
883
312
922
842
866
933
264
765
111
610
631
586
59
415
275
153
679
931
884
782
470
287
708
360
382
48
454
205
874
305
336
162
936
660
78
569
45
223
876
293
133
559
492
650
679
778
121
508
671
481
469
203
569
742
769
562
343
181
744
943
452
852
611
211
866
395
93
664
82
862
385
188
32
876
230
102
195
528
825
250
539
400
912
972
545
584
706
151
181
682
912
88
888
786
763
627
673
497
966
146
978
888
752
452
790
580
827
901
569
646
426
361
286
686
252
147
399
794
521
108
877
570
957
581
220
107
793
431
358
967
735
976
770
301
996
102
444
652
321
107
821
150
885
839
890
360
451
671
129
391
214
433
470
826
880
461
411
776
700
602
901
825
381
213
439
82
137
120
956
111
672
662
951
23
240
704
391
401
526
582
719
355
765
145
921
469
679
709
479
833
485
161
341
69
886
798
967
230
136
506
365
918
901
604
957
263
454
936
750
810
479
861
204
688
212
224
269
479
356
344
424
276
147
87
639
662
287
770
391
746
993
279
633
132
26
913
841
872
545
556
987
606
310
527
548
407
518
672
475
857
892
347
247
88
667
381
814
642
547
130
674
650
747
420
777
694
991
609
603
867
513
544
120
770
999
560
769
494
700
506
558
623
324
718
928
267
83
62
867
989
684
838
834
921
378
929
799
643
852
673
242
249
359
899
111
320
584
962
868
949
761
708
519
756
614
476
506
814
358
111
797
724
698
932
871
579
868
824
699
960
591
125
739
980
82
641
961
239
46
750
844
791
699
297
357
276
782
601
941
748
511
528
604
827
590
414
786
605
254
107
476
664
207
924
132
117
663
751
707
525
367
906
697
20
514
254
73
164
827
114
274
68
540
331
289
316
359
264
578
998
498
738
130
736
681
130
384
603
141
248
331
199
566
449
428
597
206
579
647
420
749
975
464
738
447
503
832
173
987
481
248
779
620
756
642
195
51
685
514
475
478
113
813
240
641
360
36
562
757
290
117
62
549
242
532
795
232
61
272
398
510
85
776
928
619
162
51
22
280
627
520
716
691
346
191
649
594
639
503
894
204
370
445
73
226
858
478
238
875
968
570
991
893
58
200
463
495
915
318
216
387
936
405
343
782
947
427
445
425
304
847
614
510
817
651
451
762
861
301
49
414
282
745
971
171
398
482
366
249
75
463
778
370
632
166
338
751
934
541
609
133
338
87
701
693
652
735
217
194
250
982
228
811
943
798
338
308
125
642
637
861
584
485
728
231
696
786
701
596
309
533
159
699
739
186
175
753
854
695
350
484
989
559
775
105
992
728
73
323
220
680
295
370
480
385
64
951
148
302
451
319
51
402
78
161
528
162
998
691
443
534
851
652
134
995
709
258
428
535
175
214
682
594
321
736
743
161
749
567
947
677
569
901
161
148
364
482
684
996
227
506
400
249
739
697
627
327
30
287
232
220
645
965
532
387
715
981
393
796
821
60
153
929
74
379
639
752
38
680
227
727
804
198
724
823
994
619
507
518
700
194
403
763
503
611
749
56
495
121
412
328
279
412
708
77
927
715
504
253
79
756
138
335
769
749
436
293
637
419
755
586
756
960
943
203
728
135
354
584
644
120
798
718
106
640
650
84
187
929
737
612
488
709
416
802
120
197
516
622
648
96
390
531
200
622
869
501
340
517
326
989
179
978
571
985
300
747
959
949
795
39
357
849
284
540
82
165
821
502
963
828
45
631
393
354
992
161
182
676
320
777
666
291
83
732
711
149
863
731
655
710
790
988
344
963
448
247
116
386
908
685
797
911
791
63
764
54
190
558
844
729
668
914
393
451
354
363
239
171
812
592
719
349
172
834
700
954
979
814
517
485
382
746
999
872
925
354
522
613
737
833
893
659
402
928
488
488
993
852
135
70
148
330
171
846
903
557
442
823
898
276
305
461
224
683
588
710
445
521
647
68
671
986
328
466
505
820
951
403
38
238
398
828
833
927
970
240
40
158
552
569
203
597
462
314
434
498
545
425
332
566
159
381
973
34
132
151
975
589
800
195
431
483
48
482
905
420
176
492
526
616
49
193
858
795
986
45
30
191
870
999
588
489
40
572
661
923
304
694
832
236
37
845
212
604
67
995
364
772
731
621
398
953
895
675
899
871
896
634
976
742
582
469
231
288
288
640
718
707
843
134
76
740
622
392
360
603
453
404
190
20
673
628
639
185
147
53
327
824
194
120
327
189
661
798
241
947
904
585
161
369
769
432
669
142
594
798
877
480
226
671
385
126
982
512
266
276
748
289
123
655
841
464
47
495
128
23
620
501
907
408
954
889
82
607
649
401
934
99
780
233
367
816
947
110
678
273
261
245
735
403
287
362
874
685
134
678
943
106
385
914
296
108
152
306
744
660
997
538
661
259
70
846
875
838
896
952
742
893
625
90
110
395
818
929
295
784
589
738
164
67
518
223
54
667
699
581
793
590
732
553
756
297
709
354
771
737
232
690
193
409
375
795
833
264
737
391
83
760
431
676
734
886
38
391
180
121
633
733
229
397
834
444
238
211
735
721
53
514
917
306
993
784
492
395
943
991
42
712
239
613
641
491
691
602
907
436
673
435
934
763
32
82
324
213
87
984
148
965
685
168
989
780
199
55
978
854
440
614
697
910
763
344
237
183
35
194
182
358
553
625
623
670
204
625
181
841
305
654
909
106
703
681
448
151
754
184
851
209
305
115
738
986
674
933
202
734
727
646
806
158
801
693
680
454
743
65
406
365
890
201
77
105
108
89
275
380
695
191
110
423
538
474
166
939
953
419
534
181
807
974
816
816
436
639
123
116
670
363
999
747
862
606
593
963
862
357
469
486
24
75
718
514
157
711
943
770
619
763
254
487
273
199
214
371
439
462
915
636
964
538
979
26
222
889
496
716
22
501
50
470
701
817
714
482
145
825
126
477
652
984
341
670
107
283
960
784
810
162
113
53
645
591
346
163
929
68
768
347
530
523
981
331
765
456
96
328
500
816
657
63
73
102
796
730
310
243
112
93
568
720
660
328
693
521
80
177
43
105
426
837
426
423
317
70
216
953
827
51
243
685
576
506
842
78
638
668
880
81
613
261
693
175
594
480
129
328
183
69
506
20
451
223
689
200
21
666
35
347
945
633
353
431
862
827
998
912
848
483
836
778
501
306
205
488
896
510
914
994
653
819
356
793
845
467
340
835
92
160
222
599
449
111
831
55
536
44
541
643
444
176
180
371
757
228
86
679
585
417
104
556
510
465
573
462
626
589
358
366
532
511
777
728
322
447
696
537
577
120
452
251
409
726
873
822
400
28
334
747
641
201
644
977
736
970
177
990
774
588
744
756
359
740
718
735
562
660
929
896
986
73
731
718
741
174
952
169
410
686
950
692
85
844
570
294
348
372
150
414
310
464
517
43
553
846
47
619
190
752
548
151
782
885
396
80
460
479
419
375
788
241
953
515
877
383
864
469
327
631
490
697
213
218
658
187
135
830
724
381
185
720
536
265
946
592
430
302
548
662
253
459
554
653
342
215
75
781
545
522
675
768
217
857
484
830
185
209
84
691
788
1000
548
566
891
257
497
178
831
400
22
723
455
419
687
944
100
774
622
75
594
452
410
783
312
894
142
339
81
109
401
430
239
517
298
289
634
126
415
621
620
377
845
660
44
258
207
130
226
229
556
227
30
259
512
674
774
809
168
706
345
866
105
46
58
891
416
870
744
853
702
942
776
230
73
475
982
954
95
175
719
542
858
257
814
925
983
443
624
601
562
950
976
521
177
520
245
162
901
348
241
476
375
159
319
942
651
168
326
547
351
98
599
733
546
164
986
487
840
90
841
271
342
91
994
52
617
871
800
291
774
684
106
958
416
235
230
550
616
719
37
998
974
879
847
801
603
929
544
908
84
595
446
799
491
90
399
442
443
119
741
298
33
898
339
336
825
188
508
35
948
166
117
346
985
556
482
746
46
591
470
225
677
977
418
223
26
947
172
709
638
226
70
182
642
989
939
573
621
1000
174
379
667
472
564
552
382
110
485
569
839
130
764
400
657
256
758
505
910
701
313
854
219
209
747
925
637
957
927
687
785
707
208
601
755
655
399
635
148
523
856
269
37
528
445
453
24
393
485
665
200
332
822
876
168
70
811
564
1000
803
301
678
336
293
609
699
229
715
601
596
281
813
614
827
584
803
494
383
739
407
580
703
839
822
717
775
485
790
262
80
750
526
43
547
254
736
397
675
71
653
190
434
782
981
739
282
518
955
911
190
842
299
62
617
865
208
981
552
189
406
81
454
868
127
154
293
541
76
553
529
280
468
147
149
670
45
251
596
819
985
715
856
331
68
892
410
278
452
631
206
261
880
268
706
373
586
632
898
214
274
96
260
858
160
471
723
925
948
132
786
508
892
886
418
189
695
129
79
59
574
649
719
701
251
823
836
245
922
497
399
255
350
988
849
823
711
183
193
568
748
380
854
565
676
444
839
414
219
714
607
207
573
54
128
527
480
764
842
486
155
729
758
664
303
286
334
174
158
263
522
579
425
996
800
989
338
371
156
26
601
686
31
723
449
808
395
722
586
93
726
113
246
349
995
460
133
933
678
874
464
710
728
957
961
999
622
800
858
665
331
987
861
45
314
627
203
949
540
303
570
770
488
108
214
337
128
624
822
966
900
962
647
544
811
722
393
388
323
979
275
346
384
353
998
753
474
898
815
477
562
252
431
834
127
471
60
692
119
175
407
387
998
436
707
746
772
856
683
146
881
546
550
395
314
88
31
848
511
556
324
372
461
570
169
285
624
221
764
434
969
93
851
175
974
278
645
335
610
376
851
272
336
479
702
811
121
190
904
330
426
582
690
636
238
274
766
104
998
339
364
544
715
380
191
331
828
487
460
292
326
263
896
765
649
781
732
615
787
661
673
179
218
975
935
286
873
345
259
291
269
825
823
42
338
53
389
855
559
84
153
617
899
519
818
645
840
470
639
786
349
518
320
397
868
756
75
304
405
785
611
846
399
697
179
887
820
94
465
766
167
49
703
329
370
162
618
893
908
526
423
345
770
743
825
982
415
905
74
690
795
612
840
787
405
938
392
139
198
503
418
64
633
381
151
408
698
172
295
528
853
951
85
271
87
355
226
954
821
440
932
463
81
806
946
116
290
565
483
740
435
299
248
711
977
100
456
856
904
551
831
531
676
762
605
565
262
335
486
313
122
343
686
604
226
388
930
793
51
560
452
727
549
463
937
744
217
187
639
690
988
316
263
902
376
941
22
246
315
683
623
40
282
614
317
132
248
337
791
857
671
923
297
102
540
995
522
165
316
643
700
892
948
449
553
660
935
507
297
295
245
417
637
135
320
272
806
27
147
654
529
308
187
673
21
825
409
913
966
934
292
484
637
481
786
950
720
785
390
441
449
712
52
520
529
598
234
298
192
291
905
358
145
127
562
791
602
935
155
219
306
109
146
694
452
438
502
838
766
297
703
743
479
515
718
990
298
448
26
692
437
922
559
430
619
314
814
296
80
432
760
873
504
633
857
291
145
763
95
113
688
178
894
432
386
687
280
848
925
665
677
472
558
940
90
869
971
869
943
169
416
297
261
914
580
544
466
255
696
474
546
737
488
426
962
488
170
245
701
92
449
269
224
621
557
345
480
696
219
810
950
409
630
530
620
342
533
823
932
588
143
554
875
747
165
61
907
912
813
171
999
685
831
242
629
156
434
118
748
891
325
139
834
36
721
150
857
138
363
488
295
307
449
20
100
145
700
64
730
724
352
465
193
665
110
582
912
60
187
259
892
472
309
816
595
32
689
137
971
302
71
522
516
394
632
835
183
891
132
434
430
903
750
146
246
31
247
309
91
331
800
768
914
421
170
880
234
395
535
493
962
834
637
923
615
849
692
57
144
43
423
192
988
469
44
195
176
747
261
404
128
970
308
664
814
738
890
331
731
145
258
235
831
752
100
712
591
691
630
627
963
544
590
318
443
403
196
612
964
850
153
866
43
996
675
927
591
442
505
150
125
262
840
345
577
58
421
868
445
901
445
584
678
432
635
811
757
705
226
416
649
339
903
716
816
408
919
577
245
514
980
337
377
748
318
823
200
712
619
411
175
498
137
908
271
688
558
691
947
393
133
587
211
196
550
933
485
189
60
596
757
954
350
892
506
621
654
688
682
753
695
322
765
462
688
620
722
331
357
939
34
450
899
145
632
421
74
538
32
337
59
982
166
780
579
833
513
861
867
921
60
181
648
600
250
795
135
699
70
341
35
574
961
874
560
72
930
33
456
510
437
854
917
755
433
975
686
162
397
489
958
541
297
958
478
266
594
514
441
166
276
720
570
577
783
685
100
366
124
994
715
850
720
757
670
895
578
556
669
839
158
484
927
528
411
141
186
300
815
601
624
981
359
485
983
948
484
865
497
47
177
361
852
577
880
47
301
423
600
505
530
903
778
847
773
884
402
673
752
701
914
75
684
202
320
618
292
706
61
431
772
96
107
96
867
672
917
686
791
319
499
822
269
354
294
597
496
626
271
591
215
489
890
898
622
772
158
138
460
831
497
364
924
512
895
198
759
154
832
712
177
582
276
526
866
173
669
715
96
736
998
878
536
645
743
127
437
729
854
26
505
343
810
666
954
316
580
668
528
984
624
125
421
232
911
598
359
360
921
219
555
233
622
551
734
188
474
705
130
73
447
282
427
224
20
355
861
487
142
526
174
221
294
886
543
251
443
57
710
915
69
92
891
98
123
592
810
99
82
669
680
766
899
905
227
472
88
411
646
46
563
751
679
806
822
54
542
637
833
865
939
856
76
332
124
331
482
20
763
378
549
21
128
845
246
916
885
107
33
836
307
953
861
363
80
778
246
570
418
410
119
78
65
185
941
941
215
932
719
797
593
44
893
721
433
311
452
313
440
110
837
647
828
266
55
343
340
137
528
473
172
550
264
640
48
862
702
936
183
919
833
961
301
77
133
808
616
146
535
79
853
480
537
826
244
928
108
691
477
845
688
745
784
78
286
590
891
926
341
318
29
293
824
512
867
479
232
282
677
348
496
212
162
238
115
392
519
977
38
425
491
940
726
403
293
955
185
907
629
377
839
68
733
36
693
430
330
267
208
124
614
918
334
713
330
364
551
326
672
413
826
528
383
422
640
428
660
237
943
611
245
196
232
186
334
146
439
717
651
423
61
334
429
875
50
601
375
857
864
628
701
216
511
998
152
271
433
822
904
869
597
683
719
383
484
671
793
624
62
390
849
947
773
912
122
219
624
856
297
737
74
317
608
388
73
855
780
489
102
603
45
887
129
141
90
938
613
544
148
489
544
431
925
858
381
876
673
911
94
499
97
985
142
373
393
927
494
99
304
93
630
751
44
292
519
949
319
879
620
785
362
722
904
840
878
156
848
228
120
991
422
510
755
620
87
797
55
853
792
692
686
65
54
287
901
65
786
162
425
208
504
412
453
341
159
636
708
803
211
928
426
457
628
888
310
623
891
609
575
167
967
672
945
405
337
190
655
206
931
725
409
885
266
407
421
329
273
800
416
836
432
34
609
291
712
653
722
994
591
788
972
829
39
39
101
132
497
461
286
714
953
674
270
949
885
770
267
684
265
351
982
256
531
489
669
493
672
787
32
752
168
354
266
877
950
755
116
227
534
119
776
610
852
991
989
400
402
520
971
427
133
269
445
45
507
331
607
82
511
307
199
877
604
288
419
313
757
857
988
690
449
145
162
873
629
695
605
219
776
638
571
537
860
556
766
201
360
541
422
39
226
195
244
389
918
590
448
117
442
347
758
540
241
539
406
524
283
767
98
406
47
143
49
34
484
229
964
725
91
138
114
364
800
450
167
270
127
278
355
288
985
204
404
757
891
319
528
542
796
226
450
961
177
996
386
880
966
270
59
636
680
102
665
76
270
93
948
518
195
335
140
828
425
429
909
361
438
468
527
928
204
52
679
902
183
256
599
132
344
680
993
915
166
435
112
155
599
104
625
153
141
759
783
754
723
41
310
334
844
984
403
701
472
247
785
231
67
864
690
732
581
475
823
580
510
154
418
603
805
482
179
156
944
570
322
67
898
21
570
674
145
887
157
842
616
809
769
908
810
859
659
720
695
639
531
614
731
241
601
437
888
247
592
526
645
750
719
729
951
369
707
401
305
177
769
369
638
758
630
972
449
241
504
94
686
190
116
34
830
696
661
639
849
380
882
284
222
316
994
778
881
103
721
496
342
816
278
265
538
94
368
423
946
972
227
818
555
109
560
804
806
538
599
228
687
881
69
410
658
249
166
213
688
206
613
958
257
842
644
528
315
779
965
242
339
109
809
928
301
395
881
960
659
748
414
185
402
769
114
903
971
551
195
998
373
676
382
808
49
255
889
179
950
851
458
429
591
595
287
425
905
68
98
503
390
345
107
510
976
44
36
783
181
240
102
189
916
533
29
44
700
36
29
197
481
310
810
984
721
467
623
290
406
109
174
414
979
309
657
221
446
668
817
50
249
296
868
728
356
759
533
630
247
184
28
583
871
137
58
925
727
708
837
522
766
519
127
692
465
642
105
301
775
678
494
666
194
721
530
654
654
371
916
602
652
700
886
356
157
331
164
254
611
335
928
142
21
315
938
358
809
361
410
748
981
76
49
669
998
532
69
948
829
350
194
942
935
604
640
497
302
893
148
931
373
330
896
130
135
478
646
392
49
448
593
583
83
822
462
59
698
711
467
629
882
698
331
669
114
875
271
25
324
843
990
995
993
694
742
485
127
29
231
793
148
903
654
785
44
955
752
798
276
277
741
678
812
433
346
764
151
533
760
901
224
179
729
446
509
443
465
227
976
929
675
581
124
745
591
374
863
475
920
923
712
211
894
114
619
535
237
245
66
559
146
184
981
864
344
265
884
561
66
338
722
234
996
737
958
955
406
331
579
363
965
435
44
513
923
898
304
25
988
95
839
952
391
815
636
936
819
452
154
66
524
816
346
888
213
280
689
551
99
655
171
619
887
316
234
202
831
89
847
863
634
313
508
733
512
833
167
394
189
26
284
920
861
681
828
930
289
191
297
516
650
367
623
262
687
564
303
258
615
628
287
107
158
898
55
882
511
238
557
221
418
948
291
179
93
913
206
358
242
470
764
848
97
447
951
272
364
199
248
683
277
555
585
700
540
870
460
417
388
992
824
415
525
277
175
787
184
533
443
154
72
136
126
568
403
894
176
651
900
202
71
494
797
849
760
680
800
229
743
320
141
152
969
978
508
954
917
783
153
521
557
317
761
169
348
655
586
728
260
416
332
572
752
673
214
530
813
47
937
937
903
591
754
661
991
927
369
37
556
165
980
876
548
849
346
571
446
129
646
930
220
549
622
330
329
239
489
578
743
762
951
51
940
249
262
556
890
263
108
469
72
896
703
618
417
768
790
359
422
952
584
519
58
69
789
456
765
173
641
995
551
865
843
514
855
275
629
820
667
948
705
288
447
32
303
728
163
73
130
515
276
181
399
476
755
938
834
949
97
475
671
799
235
354
612
363
647
669
873
470
321
39
198
475
699
518
762
225
767
727
328
58
988
758
91
801
348
213
757
829
288
163
578
970
779
212
258
581
317
449
995
488
834
479
549
49
828
391
117
90
268
769
404
950
596
723
642
513
799
836
557
96
356
220
362
529
218
437
763
185
844
598
994
874
243
305
778
971
835
631
331
323
628
197
357
248
81
74
89
592
146
847
234
712
302
644
24
455
516
49
165
157
269
133
871
647
510
500
885
300
719
259
422
924
864
974
187
895
425
775
395
59
352
244
769
715
124
455
544
749
691
29
424
497
551
37
624
788
655
81
869
977
480
254
390
911
978
156
876
928
647
862
578
874
436
991
201
105
805
635
942
430
744
376
561
224
711
308
255
316
677
30
730
60
119
617
236
286
970
688
461
348
745
336
638
95
397
143
492
844
383
201
236
479
674
111
576
319
749
947
745
211
576
347
468
492
616
367
940
28
838
607
905
137
721
178
576
665
235
644
659
969
819
135
388
896
482
213
467
782
663
973
131
475
353
51
84
311
991
485
541
138
585
893
245
293
575
388
391
622
931
532
704
481
151
436
418
699
166
684
236
632
456
385
375
125
988
123
558
498
262
970
1000
616
208
566
443
817
306
965
84
947
524
788
627
362
342
125
325
871
710
541
864
849
125
166
497
143
520
563
910
72
391
843
355
481
690
608
519
728
895
930
634
658
975
430
426
610
410
181
109
429
149
766
388
453
653
314
496
529
910
389
158
994
398
102
569
714
68
36
472
26
380
281
82
738
323
441
104
245
355
606
752
355
447
378
770
426
77
831
372
302
196
584
264
323
282
711
660
334
305
813
302
672
724
982
387
204
529
819
639
248
178
417
291
649
622
358
49
766
360
734
126
443
340
165
248
1000
43
706
628
321
419
976
991
706
946
88
570
38
612
584
71
618
859
596
689
330
675
706
186
493
520
24
738
952
362
115
109
83
663
88
474
677
410
527
576
126
63
543
631
241
573
718
361
376
437
162
964
379
605
440
200
587
557
663
247
847
262
432
828
515
179
819
197
419
279
446
39
895
39
385
568
811
411
238
529
501
873
96
135
796
413
543
92
69
472
689
614
130
39
136
444
334
554
937
778
529
25
732
360
71
874
595
383
767
126
126
574
995
205
398
165
600
97
32
842
900
264
102
858
761
674
207
918
521
806
442
256
26
630
406
558
595
605
191
76
111
700
381
496
875
395
87
72
771
641
871
488
136
914
863
980
779
205
647
289
95
935
314
592
872
130
447
634
506
213
156
627
804
170
24
296
142
463
143
837
329
80
115
993
722
461
31
979
185
595
474
518
36
942
555
806
124
490
856
587
784
679
488
74
883
499
35
954
758
409
568
499
256
378
708
395
694
867
547
855
938
863
668
624
346
826
182
897
725
726
652
417
450
42
208
380
350
705
413
509
761
232
379
38
550
553
688
654
53
168
450
609
98
26
250
608
42
588
177
866
712
840
816
125
484
263
295
563
184
788
178
922
151
913
558
436
231
606
54
791
761
328
722
240
607
48
199
469
106
226
540
711
87
832
366
691
885
362
750
623
386
749
311
231
889
490
124
711
280
536
770
806
856
365
380
730
503
929
516
207
538
724
290
434
810
700
285
154
673
338
592
561
956
587
812
399
34
926
58
863
696
344
873
697
337
280
405
116
766
705
220
804
357
117
408
35
920
447
571
475
829
192
802
376
913
303
700
444
527
258
360
893
500
28
362
466
187
72
799
360
416
360
292
298
544
369
894
494
417
70
245
673
372
903
398
68
257
876
956
366
408
449
48
800
671
572
219
113
404
723
580
482
435
872
731
649
118
498
766
830
282
552
286
749
283
512
363
619
949
347
599
166
656
517
105
584
230
992
444
618
990
270
728
481
821
281
558
878
59
505
26
63
515
911
695
702
562
978
695
66
48
675
609
824
291
462
529
246
156
309
56
1000
962
675
264
357
594
548
753
984
369
389
634
154
134
167
491
532
228
341
414
372
495
881
988
378
294
285
340
766
450
484
36
279
321
958
167
111
734
693
334
968
65
151
629
122
122
281
655
240
261
562
502
555
330
965
753
791
664
966
520
183
131
537
384
416
48
137
438
723
262
715
283
829
129
770
992
949
477
272
205
806
663
661
957
615
532
925
886
101
422
544
86
458
180
467
119
430
143
174
96
232
158
614
600
568
561
287
742
672
220
141
124
269
451
637
799
553
121
763
406
268
547
980
20
610
597
275
221
322
606
89
122
598
421
391
304
184
380
661
860
273
330
868
410
589
607
491
27
368
78
479
294
313
60
312
321
640
400
940
691
91
455
862
516
843
71
45
376
658
567
913
365
731
808
492
84
788
150
221
605
61
402
72
550
236
921
503
991
547
572
503
549
718
673
531
296
964
90
558
816
28
141
62
238
87
673
973
125
863
61
810
570
611
114
523
193
36
188
571
67
331
130
923
774
242
277
78
445
963
476
948
642
257
82
68
478
300
906
352
534
817
340
296
902
59
194
852
203
694
804
516
491
974
56
240
386
624
249
483
961
840
249
234
837
364
392
933
105
391
525
588
330
647
986
640
621
364
641
77
582
248
807
339
302
513
350
415
366
884
589
766
864
594
390
379
418
347
88
695
101
360
513
702
494
355
39
861
709
547
475
160
347
661
197
39
481
911
31
468
714
40
316
926
154
225
898
401
367
208
152
334
464
205
868
694
44
921
440
960
183
608
677
121
480
951
935
598
47
205
80
398
448
54
411
963
793
714
794
300
685
928
584
831
214
910
611
562
944
384
229
936
25
545
266
940
981
138
80
52
962
357
497
206
551
927
874
878
819
100
76
77
389
544
403
224
331
510
721
309
249
704
385
789
234
360
223
655
869
183
573
366
283
387
301
871
40
696
724
670
232
345
708
712
460
37
590
476
817
969
218
913
904
903
909
520
812
53
548
248
144
105
454
556
953
294
472
434
878
343
941
340
994
466
726
244
900
389
164
606
690
324
83
414
945
978
820
128
777
604
260
699
767
886
702
624
28
79
31
854
122
848
545
867
161
465
131
634
727
618
105
612
930
538
316
773
373
931
118
595
128
51
339
47
778
563
337
570
453
721
938
171
715
249
518
292
677
342
885
901
921
724
415
496
557
629
916
29
169
762
764
939
828
357
787
253
175
118
340
393
264
261
251
346
695
509
858
574
581
96
45
65
503
708
111
258
553
597
904
143
333
470
798
179
916
540
621
336
922
531
710
93
443
658
913
399
62
646
585
734
852
708
553
87
452
569
175
878
916
443
278
134
864
55
218
278
390
600
823
297
74
821
468
651
990
933
962
329
778
660
679
772
510
216
449
967
769
307
607
394
666
166
20
984
783
498
987
254
232
538
412
135
575
989
593
106
924
104
397
137
880
552
161
686
536
583
712
744
473
904
426
769
784
748
131
730
88
819
163
107
441
353
369
831
463
53
106
419
245
134
201
802
370
321
992
479
929
827
363
398
545
397
613
40
288
226
609
354
743
37
687
819
38
45
694
424
719
956
967
610
914
41
373
365
227
948
228
148
710
949
381
910
984
749
187
169
161
562
474
836
784
112
598
427
984
596
405
876
361
756
234
678
971
807
912
785
452
472
814
676
859
948
767
319
811
978
128
176
401
775
706
214
212
65
876
894
335
43
485
223
372
433
850
623
414
468
838
102
64
854
786
100
394
825
540
587
24
103
438
60
29
866
326
450
989
877
542
257
54
349
932
429
750
969
853
446
226
989
151
277
44
133
145
383
297
578
681
731
587
87
134
802
24
835
314
564
172
585
576
478
141
532
767
512
515
401
243
146
405
405
813
330
392
270
853
543
568
210
208
753
536
929
198
441
387
681
669
556
703
170
977
577
597
592
969
473
649
691
981
705
952
680
862
260
126
284
948
580
226
699
104
653
853
667
630
938
137
404
411
425
622
613
765
553
438
530
558
311
169
858
126
160
886
832
298
68
229
176
429
495
252
85
367
430
557
283
449
332
255
985
521
171
908
934
921
406
648
345
515
27
57
903
619
473
206
862
101
733
699
926
279
287
646
329
999
84
629
757
636
584
740
463
1000
775
582
152
464
137
245
38
839
601
312
826
500
664
876
769
273
296
556
573
496
937
426
451
36
596
88
128
210
713
613
799
864
276
623
227
375
726
209
588
551
71
936
626
748
732
933
554
812
716
782
97
101
484
575
450
422
986
895
357
151
720
854
32
116
635
51
180
654
212
542
36
630
399
947
303
383
677
376
216
738
33
394
479
73
890
110
326
195
272
109
463
461
604
481
123
717
872
828
992
320
556
261
341
97
605
344
838
386
500
187
736
52
208
373
738
413
191
995
80
336
417
671
447
157
365
476
91
704
986
992
700
353
777
348
524
912
689
109
270
756
200
366
152
714
261
721
875
140
351
285
692
845
439
620
308
221
985
839
918
79
977
543
285
755
876
803
585
133
649
242
561
514
759
913
427
762
191
456
890
235
388
924
201
740
339
937
47
653
501
589
641
802
846
461
728
543
852
645
522
703
488
743
728
639
213
847
580
198
980
558
782
698
303
950
568
23
115
641
643
472
876
707
242
912
592
748
68
699
705
855
337
660
203
631
773
152
527
168
609
983
665
48
551
547
95
362
812
654
750
713
137
659
147
212
701
409
216
421
267
242
436
452
30
985
777
887
696
32
717
838
516
173
227
886
197
765
746
143
934
672
282
172
488
233
276
84
56
274
698
462
342
153
44
416
581
697
247
530
495
280
785
894
301
713
647
130
702
369
293
291
933
77
672
980
717
174
283
325
270
507
76
871
295
432
511
749
28
776
576
540
173
896
731
338
944
639
945
723
103
341
698
808
809
831
939
193
823
484
167
933
361
127
312
667
126
97
855
468
334
242
782
919
708
899
553
149
483
933
140
703
363
681
981
711
563
972
103
755
807
180
909
928
329
114
426
831
815
131
95
555
517
77
865
684
140
289
254
328
880
614
192
70
500
408
160
982
194
500
125
705
668
244
548
310
175
470
418
382
400
532
194
29
577
279
826
817
430
46
812
875
174
663
122
785
514
503
197
640
684
395
24
41
407
676
64
60
879
212
287
300
843
321
170
852
515
849
664
337
598
172
267
809
327
99
911
888
406
966
112
666
70
659
782
726
23
495
439
178
479
322
33
587
183
477
23
81
330
806
379
225
643
665
580
130
356
883
596
377
175
815
885
79
314
309
436
798
497
682
691
664
938
800
637
260
382
20
735
659
22
150
953
481
565
546
771
799
263
74
158
235
803
52
554
840
436
327
949
256
848
256
820
536
294
665
138
301
457
912
343
623
573
842
423
124
365
794
839
856
48
613
578
460
327
637
101
989
435
713
358
83
96
197
827
777
507
898
497
710
410
210
810
956
20
922
752
134
42
429
784
299
691
539
876
72
709
610
506
524
311
486
625
277
203
507
711
404
598
518
734
506
241
856
172
675
326
388
958
513
578
432
607
111
230
833
71
52
968
950
789
427
65
627
770
840
186
203
473
399
567
505
848
670
930
890
394
762
509
222
60
278
991
802
307
290
627
514
123
399
124
677
949
699
677
155
792
789
47
267
111
762
412
861
839
221
515
310
492
236
569
424
21
411
300
560
866
837
902
563
53
134
139
771
986
357
186
50
691
125
767
699
609
512
136
603
708
139
958
98
468
78
507
995
840
912
468
685
321
771
74
980
842
236
30
253
901
382
552
314
468
810
383
518
983
630
717
713
454
426
298
255
322
288
322
951
556
800
513
198
634
91
103
784
527
707
781
103
693
776
797
945
122
882
857
705
254
135
195
210
78
99
497
779
53
866
996
295
148
75
435
78
825
761
991
955
89
564
427
320
363
557
918
963
635
341
228
279
383
989
531
75
560
140
572
690
642
830
565
988
600
698
235
326
893
818
776
513
509
789
932
906
890
705
917
368
43
167
457
220
390
248
745
308
919
549
525
968
127
182
994
86
928
709
893
942
838
261
438
440
807
401
333
878
315
241
794
141
311
362
563
530
274
856
836
909
174
345
356
634
471
882
318
534
153
106
447
945
661
72
958
734
983
381
593
237
597
144
548
282
455
924
547
226
36
852
804
896
288
509
64
667
693
969
501
368
237
853
860
335
361
251
375
415
54
729
730
945
757
415
179
791
477
873
408
290
656
234
650
270
280
60
630
88
791
443
562
570
197
986
170
92
919
798
649
464
965
463
744
59
795
73
668
687
377
209
146
722
172
965
373
994
149
959
92
857
767
285
499
159
35
506
337
218
374
732
802
880
773
566
636
521
709
99
54
950
154
894
743
541
546
101
955
123
876
265
413
32
621
495
314
116
732
394
382
711
688
53
832
684
458
55
405
371
502
493
299
600
789
966
236
728
798
587
432
601
499
919
612
556
352
92
988
441
325
650
305
592
878
723
739
855
20
894
52
588
171
273
420
618
320
425
588
302
928
460
769
466
981
960
687
467
941
56
558
152
776
292
104
840
946
779
523
414
440
138
556
193
699
422
419
24
710
252
817
243
934
700
982
699
359
388
640
746
426
389
986
232
123
303
763
475
892
223
185
340
738
731
939
165
123
938
296
778
978
446
923
553
818
328
92
318
596
184
471
412
770
108
311
679
329
681
317
478
714
34
705
634
914
711
217
505
406
841
50
918
141
27
907
249
580
323
61
306
710
348
178
445
992
195
494
514
413
446
730
848
415
213
122
315
966
77
354
232
566
131
662
446
163
958
768
313
219
686
888
661
701
880
745
847
109
650
554
716
374
580
39
606
973
760
397
364
896
793
369
327
603
770
170
342
63
294
506
745
716
436
611
404
570
798
207
635
85
492
492
305
212
100
207
731
428
694
549
781
704
896
260
790
518
796
537
605
820
979
122
564
109
554
211
514
316
104
528
791
920
702
307
262
908
969
252
244
741
996
579
584
389
385
30
639
310
209
781
255
475
69
596
751
361
58
670
992
921
758
726
334
650
299
980
586
501
243
174
124
932
684
486
756
932
242
657
857
960
971
903
274
987
509
948
325
491
912
25
857
422
799
802
245
259
263
550
298
952
867
955
372
1000
741
270
314
371
467
181
461
507
138
902
660
396
336
196
266
497
171
239
109
781
227
755
524
725
596
978
378
300
878
632
988
945
184
913
240
669
79
563
433
913
654
779
433
663
530
302
576
382
780
330
709
37
23
586
189
88
315
303
825
506
275
187
991
768
977
452
534
845
59
823
773
214
558
532
573
808
112
286
272
143
775
298
697
151
187
293
223
309
402
486
659
589
40
600
381
468
175
850
215
897
407
960
500
374
829
164
101
830
61
147
336
763
157
144
71
142
719
860
624
408
857
546
861
550
173
890
138
46
722
144
264
827
142
974
595
411
487
653
978
729
378
867
768
279
888
848
795
992
637
322
413
384
699
484
450
388
674
77
264
482
656
296
681
635
244
866
77
326
513
39
260
506
82
482
587
654
25
449
905
738
924
643
569
238
909
299
407
103
562
122
757
795
957
326
485
320
714
635
907
118
906
283
892
160
154
957
774
906
511
908
402
361
597
841
112
949
506
973
732
677
818
44
638
986
646
233
656
863
572
281
144
769
687
405
910
673
594
327
348
54
383
263
267
843
638
917
23
558
470
542
444
147
461
825
886
73
703
998
214
302
797
786
729
316
836
404
315
82
420
556
289
61
624
477
499
221
66
870
302
43
802
971
523
476
471
502
521
999
146
660
141
600
409
188
701
721
371
280
88
349
615
663
599
926
251
568
119
458
843
701
948
387
522
295
971
682
850
57
524
822
938
199
435
776
389
447
61
23
274
34
229
494
196
646
295
687
246
536
107
572
26
408
982
608
609
478
805
765
615
469
894
522
136
597
116
828
737
584
769
183
545
646
737
516
145
507
359
326
609
382
462
563
558
975
402
707
83
539
26
726
748
760
652
99
683
872
165
758
471
599
863
220
203
155
633
415
462
246
791
823
359
105
204
432
476
437
190
683
906
476
596
564
268
927
777
535
617
43
581
566
574
490
345
135
229
522
896
192
166
843
610
217
477
686
315
178
763
758
347
536
135
291
553
280
156
972
290
849
919
73
385
251
63
259
195
908
623
766
547
827
238
336
797
469
963
164
793
783
436
956
871
267
712
965
878
853
412
895
170
58
608
961
556
794
901
887
412
577
403
888
565
359
678
687
371
598
835
501
658
284
477
51
781
856
677
535
589
324
55
695
418
126
664
745
115
233
145
411
998
124
552
887
951
749
504
916
312
605
95
714
890
643
886
985
79
342
28
963
669
652
65
372
53
72
108
407
41
531
738
793
970
529
87
763
724
35
699
42
622
489
703
805
510
880
682
816
726
686
729
288
135
858
444
907
56
875
900
927
335
707
718
72
329
812
972
517
865
180
280
25
318
250
698
774
498
994
846
523
759
907
816
471
950
942
209
339
427
576
98
344
997
759
85
209
56
972
262
148
392
202
229
868
382
870
80
619
853
985
397
109
180
25
290
531
172
902
342
629
184
153
645
619
65
689
801
223
151
28
901
638
288
101
547
606
814
386
811
342
595
854
315
552
949
982
132
469
742
740
843
797
310
589
579
771
482
497
903
115
613
924
927
24
551
859
251
222
633
761
929
924
705
600
602
873
124
835
342
284
698
456
731
842
803
902
881
801
285
182
393
865
463
716
339
268
202
513
322
696
820
32
434
402
202
223
275
90
648
566
919
957
42
49
987
765
684
112
569
708
457
725
250
511
680
386
120
390
220
44
762
67
394
161
306
738
67
705
316
166
559
174
884
527
735
500
629
564
932
180
626
492
996
164
475
35
285
913
268
389
606
434
589
296
335
168
547
952
300
83
725
119
838
641
235
955
814
829
640
241
567
125
69
154
922
462
87
418
257
338
785
265
379
702
783
402
645
52
174
62
901
320
521
931
504
985
936
280
281
54
37
777
570
929
862
674
236
638
67
677
597
620
688
1000
520
846
365
386
341
794
169
30
888
434
685
638
537
225
42
463
115
137
784
209
940
629
60
91
898
690
415
814
324
780
959
631
48
868
314
247
405
433
533
857
263
425
236
224
939
324
497
523
317
98
917
499
698
207
607
366
946
620
149
829
419
818
617
140
924
768
631
966
837
930
283
580
986
294
155
667
727
300
339
461
887
917
437
667
823
643
541
518
382
428
252
720
882
732
643
506
207
545
335
582
656
324
400
181
115
40
441
988
883
153
549
276
844
632
325
712
336
956
842
548
186
113
722
489
731
525
56
751
838
199
407
75
843
576
886
639
593
645
114
205
426
865
145
950
188
225
581
634
216
166
531
455
357
656
579
136
949
194
817
872
856
711
846
427
417
705
759
976
458
146
155
281
337
473
110
519
881
676
223
434
464
234
588
239
897
95
805
641
553
722
966
871
261
120
673
656
358
712
999
208
691
505
565
234
616
940
442
948
960
24
234
111
99
179
31
882
823
393
417
42
525
146
501
748
34
387
868
762
668
596
626
299
311
742
360
64
281
303
162
272
426
230
612
647
102
983
823
421
136
569
396
302
865
429
404
502
175
532
449
746
364
358
622
268
298
856
524
753
315
524
249
455
261
313
377
79
473
683
21
819
798
621
744
439
592
589
676
133
684
554
398
607
428
977
985
113
654
847
75
338
716
623
704
516
463
274
511
369
230
260
568
113
847
551
479
453
687
626
334
622
579
454
715
345
860
494
735
818
396
716
975
782
505
599
546
453
52
112
31
537
356
696
502
265
282
359
581
345
169
541
359
989
843
230
419
942
679
868
853
418
506
462
280
122
661
452
756
268
990
808
900
582
849
29
804
295
86
44
71
114
999
333
753
253
493
865
491
435
866
139
357
877
984
85
934
320
204
183
352
942
333
401
174
504
730
219
493
202
258
587
909
741
236
983
534
374
511
397
931
787
440
268
230
232
849
567
976
396
115
772
317
512
45
853
798
304
978
287
549
968
797
26
153
265
821
530
682
373
897
787
757
35
381
275
470
446
101
927
404
349
393
258
649
940
125
200
809
962
613
233
974
629
723
324
746
647
793
936
218
250
670
73
952
141
691
159
98
537
702
182
200
179
59
602
369
265
572
406
206
516
616
55
785
169
36
500
726
907
153
237
121
985
811
218
533
125
387
902
93
505
689
296
363
868
93
823
456
448
406
489
952
929
986
736
964
566
698
552
93
63
861
397
392
616
339
240
482
967
451
541
456
351
64
288
895
453
494
922
911
508
608
450
104
239
744
314
530
841
747
482
808
77
955
434
50
124
234
139
799
706
883
57
206
74
1000
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment