summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MANIFEST192
-rw-r--r--README.txt2
-rw-r--r--config/gnu-flags130
-rw-r--r--config/lt_vers.am2
-rwxr-xr-xconfigure20
-rw-r--r--configure.in2
-rw-r--r--fortran/src/H5Tf.c26
-rw-r--r--fortran/src/H5Tff.f9058
-rw-r--r--fortran/src/H5_f.c2
-rw-r--r--fortran/src/H5f90global.f907
-rw-r--r--fortran/src/H5f90proto.h2
-rw-r--r--release_docs/RELEASE.txt2
-rw-r--r--src/H5.c14
-rw-r--r--src/H5A.c17
-rw-r--r--src/H5AC.c8
-rw-r--r--src/H5ACpkg.h9
-rw-r--r--src/H5Adense.c9
-rw-r--r--src/H5Aint.c13
-rw-r--r--src/H5B2.c4
-rw-r--r--src/H5B2cache.c6
-rw-r--r--src/H5B2int.c38
-rw-r--r--src/H5D.c2
-rw-r--r--src/H5Fprivate.h2
-rw-r--r--src/H5Tcompound.c6
-rw-r--r--src/H5Tnative.c2
-rw-r--r--src/H5Tpkg.h6
-rw-r--r--src/H5Tprivate.h2
-rw-r--r--src/H5Vprivate.h10
-rw-r--r--src/H5Znbit.c4
-rw-r--r--src/H5checksum.c10
-rw-r--r--src/H5public.h4
-rw-r--r--src/H5system.c8
-rw-r--r--src/H5trace.c44
-rw-r--r--src/Makefile.in2
-rw-r--r--test/fillval.c7
-rw-r--r--test/ohdr.c2
-rw-r--r--tools/h52jpeg/Makefile.am11
-rw-r--r--tools/h52jpeg/Makefile.in55
-rw-r--r--tools/h52jpeg/h52jpeg.c592
-rw-r--r--tools/h52jpeg/h52jpeg.sh87
-rw-r--r--tools/h52jpeg/h52jpegtst.c204
-rw-r--r--tools/h52jpeg/image24pixel.txt101475
-rw-r--r--tools/h52jpeg/image8.txt120006
-rw-r--r--tools/h52jpeg/testfiles/h52jpegtst.h5bin0 -> 227613 bytes
-rw-r--r--tools/h5copy/testfiles/h5copytst.h5 (renamed from tools/testfiles/h5copytst.h5)bin30448 -> 30448 bytes
-rw-r--r--tools/h5copy/testfiles/h5copytst.out.ls (renamed from tools/testfiles/h5copytst.out.ls)0
-rw-r--r--tools/h5copy/testh5copy.sh2
-rw-r--r--tools/h5diff/testfiles/h5diff_10.txt (renamed from tools/testfiles/h5diff_10.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_100.txt (renamed from tools/testfiles/h5diff_100.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_101.txt (renamed from tools/testfiles/h5diff_101.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_102.txt (renamed from tools/testfiles/h5diff_102.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_11.txt2
-rw-r--r--tools/h5diff/testfiles/h5diff_12.txt2
-rw-r--r--tools/h5diff/testfiles/h5diff_13.txt (renamed from tools/testfiles/h5diff_13.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_14.txt (renamed from tools/testfiles/h5diff_14.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_15.txt (renamed from tools/testfiles/h5diff_15.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_16_1.txt (renamed from tools/testfiles/h5diff_16_1.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_16_2.txt (renamed from tools/testfiles/h5diff_16_2.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_16_3.txt (renamed from tools/testfiles/h5diff_16_3.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_17.txt (renamed from tools/testfiles/h5diff_17.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_18.txt0
-rw-r--r--tools/h5diff/testfiles/h5diff_20.txt (renamed from tools/testfiles/h5diff_20.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_21.txt (renamed from tools/testfiles/h5diff_21.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_22.txt (renamed from tools/testfiles/h5diff_22.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_23.txt2
-rw-r--r--tools/h5diff/testfiles/h5diff_24.txt2
-rw-r--r--tools/h5diff/testfiles/h5diff_25.txt2
-rw-r--r--tools/h5diff/testfiles/h5diff_26.txt2
-rw-r--r--tools/h5diff/testfiles/h5diff_27.txt2
-rw-r--r--tools/h5diff/testfiles/h5diff_28.txt2
-rw-r--r--tools/h5diff/testfiles/h5diff_50.txt (renamed from tools/testfiles/h5diff_50.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_51.txt (renamed from tools/testfiles/h5diff_51.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_52.txt (renamed from tools/testfiles/h5diff_52.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_53.txt (renamed from tools/testfiles/h5diff_53.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_54.txt (renamed from tools/testfiles/h5diff_54.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_55.txt (renamed from tools/testfiles/h5diff_55.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_56.txt (renamed from tools/testfiles/h5diff_56.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_57.txt (renamed from tools/testfiles/h5diff_57.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_58.txt (renamed from tools/testfiles/h5diff_58.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_600.txt (renamed from tools/testfiles/h5diff_600.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_603.txt (renamed from tools/testfiles/h5diff_603.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_604.txt (renamed from tools/testfiles/h5diff_604.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_605.txt (renamed from tools/testfiles/h5diff_605.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_606.txt (renamed from tools/testfiles/h5diff_606.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_607.txt2
-rw-r--r--tools/h5diff/testfiles/h5diff_608.txt2
-rw-r--r--tools/h5diff/testfiles/h5diff_609.txt0
-rw-r--r--tools/h5diff/testfiles/h5diff_610.txt2
-rw-r--r--tools/h5diff/testfiles/h5diff_612.txt (renamed from tools/testfiles/h5diff_612.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_613.txt (renamed from tools/testfiles/h5diff_613.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_614.txt (renamed from tools/testfiles/h5diff_614.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_615.txt (renamed from tools/testfiles/h5diff_615.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_616.txt2
-rw-r--r--tools/h5diff/testfiles/h5diff_617.txt2
-rw-r--r--tools/h5diff/testfiles/h5diff_618.txt0
-rw-r--r--tools/h5diff/testfiles/h5diff_619.txt2
-rw-r--r--tools/h5diff/testfiles/h5diff_621.txt (renamed from tools/testfiles/h5diff_621.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_622.txt (renamed from tools/testfiles/h5diff_622.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_623.txt (renamed from tools/testfiles/h5diff_623.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_624.txt (renamed from tools/testfiles/h5diff_624.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_625.txt2
-rw-r--r--tools/h5diff/testfiles/h5diff_626.txt2
-rw-r--r--tools/h5diff/testfiles/h5diff_627.txt2
-rw-r--r--tools/h5diff/testfiles/h5diff_628.txt2
-rw-r--r--tools/h5diff/testfiles/h5diff_629.txt1
-rw-r--r--tools/h5diff/testfiles/h5diff_70.txt (renamed from tools/testfiles/h5diff_70.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_80.txt (renamed from tools/testfiles/h5diff_80.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_90.txt (renamed from tools/testfiles/h5diff_90.txt)3
-rw-r--r--tools/h5diff/testfiles/h5diff_attr1.h5 (renamed from tools/testfiles/h5diff_attr1.h5)bin26000 -> 26000 bytes
-rw-r--r--tools/h5diff/testfiles/h5diff_attr2.h5 (renamed from tools/testfiles/h5diff_attr2.h5)bin26000 -> 26000 bytes
-rw-r--r--tools/h5diff/testfiles/h5diff_basic1.h5 (renamed from tools/testfiles/h5diff_basic1.h5)bin9392 -> 9392 bytes
-rw-r--r--tools/h5diff/testfiles/h5diff_basic2.h5 (renamed from tools/testfiles/h5diff_basic2.h5)bin5728 -> 5728 bytes
-rw-r--r--tools/h5diff/testfiles/h5diff_dset1.h5 (renamed from tools/testfiles/h5diff_dset1.h5)bin22752 -> 22752 bytes
-rw-r--r--tools/h5diff/testfiles/h5diff_dset2.h5 (renamed from tools/testfiles/h5diff_dset2.h5)bin22752 -> 22752 bytes
-rw-r--r--tools/h5diff/testfiles/h5diff_dtypes.h5 (renamed from tools/testfiles/h5diff_dtypes.h5)bin10776 -> 10776 bytes
-rw-r--r--tools/h5diff/testfiles/h5diff_empty.h5 (renamed from tools/testfiles/h5diff_empty.h5)bin800 -> 800 bytes
-rw-r--r--tools/h5diff/testfiles/h5diff_hyper1.h5 (renamed from tools/testfiles/h5diff_hyper1.h5)bin1052720 -> 1052720 bytes
-rw-r--r--tools/h5diff/testfiles/h5diff_hyper2.h5 (renamed from tools/testfiles/h5diff_hyper2.h5)bin1052720 -> 1052720 bytes
-rw-r--r--tools/h5diff/testfiles/h5diff_types.h5 (renamed from tools/testfiles/h5diff_types.h5)bin4778 -> 4778 bytes
-rwxr-xr-xtools/h5diff/testh5diff.sh134
-rwxr-xr-xtools/h5repack/h5repack.sh.in12
-rw-r--r--tools/h5repack/testfiles/h5repack.info (renamed from tools/testfiles/info.h5repack)0
-rw-r--r--tools/h5repack/testfiles/h5repack_attr.h5 (renamed from tools/testfiles/h5repack_attr.h5)bin20056 -> 20056 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_deflate.h5 (renamed from tools/testfiles/h5repack_deflate.h5)bin5962 -> 5962 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_early.h5 (renamed from tools/testfiles/h5repack_early.h5)bin2067224 -> 2067224 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_ext.bin (renamed from tools/testfiles/h5repack_ext.bin)bin8 -> 8 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_ext.h5 (renamed from tools/testfiles/h5repack_ext.h5)bin1464 -> 1464 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_fill.h5 (renamed from tools/testfiles/h5repack_fill.h5)bin2072 -> 2072 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_filters.h5 (renamed from tools/testfiles/h5repack_filters.h5)bin29744 -> 29744 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_fletcher.h5 (renamed from tools/testfiles/h5repack_fletcher.h5)bin7880 -> 7880 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_hlink.h5 (renamed from tools/testfiles/h5repack_hlink.h5)bin6576 -> 6576 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_layout.h5 (renamed from tools/testfiles/h5repack_layout.h5)bin29384 -> 29384 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_nbit.h5 (renamed from tools/testfiles/h5repack_nbit.h5)bin13776 -> 13776 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_objs.h5 (renamed from tools/testfiles/h5repack_objs.h5)bin19589 -> 19589 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_shuffle.h5 (renamed from tools/testfiles/h5repack_shuffle.h5)bin7864 -> 7864 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_soffset.h5 (renamed from tools/testfiles/h5repack_soffset.h5)bin11052 -> 11052 bytes
-rw-r--r--tools/h5repack/testfiles/h5repack_szip.h5 (renamed from tools/testfiles/h5repack_szip.h5)bin5588 -> 5588 bytes
-rw-r--r--tools/testfiles/h5diff_11.txt5
-rw-r--r--tools/testfiles/h5diff_12.txt5
-rw-r--r--tools/testfiles/h5diff_18.txt3
-rw-r--r--tools/testfiles/h5diff_23.txt5
-rw-r--r--tools/testfiles/h5diff_24.txt5
-rw-r--r--tools/testfiles/h5diff_25.txt5
-rw-r--r--tools/testfiles/h5diff_26.txt5
-rw-r--r--tools/testfiles/h5diff_27.txt5
-rw-r--r--tools/testfiles/h5diff_28.txt5
-rw-r--r--tools/testfiles/h5diff_602.txt59
-rw-r--r--tools/testfiles/h5diff_607.txt5
-rw-r--r--tools/testfiles/h5diff_608.txt5
-rw-r--r--tools/testfiles/h5diff_609.txt3
-rw-r--r--tools/testfiles/h5diff_610.txt5
-rw-r--r--tools/testfiles/h5diff_611.txt59
-rw-r--r--tools/testfiles/h5diff_616.txt5
-rw-r--r--tools/testfiles/h5diff_617.txt5
-rw-r--r--tools/testfiles/h5diff_618.txt3
-rw-r--r--tools/testfiles/h5diff_619.txt5
-rw-r--r--tools/testfiles/h5diff_620.txt59
-rw-r--r--tools/testfiles/h5diff_625.txt5
-rw-r--r--tools/testfiles/h5diff_626.txt5
-rw-r--r--tools/testfiles/h5diff_627.txt5
-rw-r--r--tools/testfiles/h5diff_628.txt5
-rw-r--r--tools/testfiles/h5diff_629.txt4
-rw-r--r--windows/misc/typegen/h5fort_type_defines/h5fort_type_defines.vfproj24
-rw-r--r--windows/misc/typegen/h5fortran_detect/h5fortran_detect.vfproj24
-rw-r--r--windows/misc/typegen/h5match_types/h5match_types.vcproj8
-rw-r--r--windows/misc/typegen/h5tinit/h5tinit.vcproj8
-rw-r--r--windows/proj/hdf5_fortrandll/hdf5_fortrandll.vfproj28
-rw-r--r--windows/tools/h5copy/testh5copy.bat2
-rw-r--r--windows/tools/h5diff/testh5diff.bat159
-rw-r--r--windows/tools/h5repack/h5repack.bat9
-rw-r--r--windows_vnet/proj/all/all.sln2
171 files changed, 222998 insertions, 952 deletions
diff --git a/MANIFEST b/MANIFEST
index fb22acd..424338b 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1386,103 +1386,100 @@
#test files for h5diff
-./tools/testfiles/h5diff_10.txt
-./tools/testfiles/h5diff_11.txt
-./tools/testfiles/h5diff_12.txt
-./tools/testfiles/h5diff_13.txt
-./tools/testfiles/h5diff_14.txt
-./tools/testfiles/h5diff_15.txt
-./tools/testfiles/h5diff_16_1.txt
-./tools/testfiles/h5diff_16_2.txt
-./tools/testfiles/h5diff_16_3.txt
-./tools/testfiles/h5diff_17.txt
-./tools/testfiles/h5diff_18.txt
-./tools/testfiles/h5diff_20.txt
-./tools/testfiles/h5diff_21.txt
-./tools/testfiles/h5diff_22.txt
-./tools/testfiles/h5diff_23.txt
-./tools/testfiles/h5diff_24.txt
-./tools/testfiles/h5diff_25.txt
-./tools/testfiles/h5diff_26.txt
-./tools/testfiles/h5diff_27.txt
-./tools/testfiles/h5diff_28.txt
-./tools/testfiles/h5diff_50.txt
-./tools/testfiles/h5diff_51.txt
-./tools/testfiles/h5diff_52.txt
-./tools/testfiles/h5diff_53.txt
-./tools/testfiles/h5diff_54.txt
-./tools/testfiles/h5diff_55.txt
-./tools/testfiles/h5diff_56.txt
-./tools/testfiles/h5diff_57.txt
-./tools/testfiles/h5diff_58.txt
-./tools/testfiles/h5diff_600.txt
-./tools/testfiles/h5diff_602.txt
-./tools/testfiles/h5diff_603.txt
-./tools/testfiles/h5diff_604.txt
-./tools/testfiles/h5diff_605.txt
-./tools/testfiles/h5diff_606.txt
-./tools/testfiles/h5diff_607.txt
-./tools/testfiles/h5diff_608.txt
-./tools/testfiles/h5diff_609.txt
-./tools/testfiles/h5diff_610.txt
-./tools/testfiles/h5diff_611.txt
-./tools/testfiles/h5diff_612.txt
-./tools/testfiles/h5diff_613.txt
-./tools/testfiles/h5diff_614.txt
-./tools/testfiles/h5diff_615.txt
-./tools/testfiles/h5diff_616.txt
-./tools/testfiles/h5diff_617.txt
-./tools/testfiles/h5diff_618.txt
-./tools/testfiles/h5diff_619.txt
-./tools/testfiles/h5diff_620.txt
-./tools/testfiles/h5diff_621.txt
-./tools/testfiles/h5diff_622.txt
-./tools/testfiles/h5diff_623.txt
-./tools/testfiles/h5diff_624.txt
-./tools/testfiles/h5diff_625.txt
-./tools/testfiles/h5diff_626.txt
-./tools/testfiles/h5diff_627.txt
-./tools/testfiles/h5diff_628.txt
-./tools/testfiles/h5diff_629.txt
-./tools/testfiles/h5diff_70.txt
-./tools/testfiles/h5diff_80.txt
-./tools/testfiles/h5diff_90.txt
-./tools/testfiles/h5diff_100.txt
-./tools/testfiles/h5diff_101.txt
-./tools/testfiles/h5diff_102.txt
-
-
-./tools/testfiles/h5diff_basic1.h5
-./tools/testfiles/h5diff_basic2.h5
-./tools/testfiles/h5diff_dtypes.h5
-./tools/testfiles/h5diff_dset1.h5
-./tools/testfiles/h5diff_dset2.h5
-./tools/testfiles/h5diff_empty.h5
-./tools/testfiles/h5diff_hyper1.h5
-./tools/testfiles/h5diff_attr1.h5
-./tools/testfiles/h5diff_hyper2.h5
-./tools/testfiles/h5diff_attr2.h5
-./tools/testfiles/h5diff_types.h5
+./tools/h5diff/testfiles/h5diff_10.txt
+./tools/h5diff/testfiles/h5diff_11.txt
+./tools/h5diff/testfiles/h5diff_12.txt
+./tools/h5diff/testfiles/h5diff_13.txt
+./tools/h5diff/testfiles/h5diff_14.txt
+./tools/h5diff/testfiles/h5diff_15.txt
+./tools/h5diff/testfiles/h5diff_16_1.txt
+./tools/h5diff/testfiles/h5diff_16_2.txt
+./tools/h5diff/testfiles/h5diff_16_3.txt
+./tools/h5diff/testfiles/h5diff_17.txt
+./tools/h5diff/testfiles/h5diff_18.txt
+./tools/h5diff/testfiles/h5diff_20.txt
+./tools/h5diff/testfiles/h5diff_21.txt
+./tools/h5diff/testfiles/h5diff_22.txt
+./tools/h5diff/testfiles/h5diff_23.txt
+./tools/h5diff/testfiles/h5diff_24.txt
+./tools/h5diff/testfiles/h5diff_25.txt
+./tools/h5diff/testfiles/h5diff_26.txt
+./tools/h5diff/testfiles/h5diff_27.txt
+./tools/h5diff/testfiles/h5diff_28.txt
+./tools/h5diff/testfiles/h5diff_50.txt
+./tools/h5diff/testfiles/h5diff_51.txt
+./tools/h5diff/testfiles/h5diff_52.txt
+./tools/h5diff/testfiles/h5diff_53.txt
+./tools/h5diff/testfiles/h5diff_54.txt
+./tools/h5diff/testfiles/h5diff_55.txt
+./tools/h5diff/testfiles/h5diff_56.txt
+./tools/h5diff/testfiles/h5diff_57.txt
+./tools/h5diff/testfiles/h5diff_58.txt
+./tools/h5diff/testfiles/h5diff_600.txt
+./tools/h5diff/testfiles/h5diff_603.txt
+./tools/h5diff/testfiles/h5diff_604.txt
+./tools/h5diff/testfiles/h5diff_605.txt
+./tools/h5diff/testfiles/h5diff_606.txt
+./tools/h5diff/testfiles/h5diff_607.txt
+./tools/h5diff/testfiles/h5diff_608.txt
+./tools/h5diff/testfiles/h5diff_609.txt
+./tools/h5diff/testfiles/h5diff_610.txt
+./tools/h5diff/testfiles/h5diff_612.txt
+./tools/h5diff/testfiles/h5diff_613.txt
+./tools/h5diff/testfiles/h5diff_614.txt
+./tools/h5diff/testfiles/h5diff_615.txt
+./tools/h5diff/testfiles/h5diff_616.txt
+./tools/h5diff/testfiles/h5diff_617.txt
+./tools/h5diff/testfiles/h5diff_618.txt
+./tools/h5diff/testfiles/h5diff_619.txt
+./tools/h5diff/testfiles/h5diff_621.txt
+./tools/h5diff/testfiles/h5diff_622.txt
+./tools/h5diff/testfiles/h5diff_623.txt
+./tools/h5diff/testfiles/h5diff_624.txt
+./tools/h5diff/testfiles/h5diff_625.txt
+./tools/h5diff/testfiles/h5diff_626.txt
+./tools/h5diff/testfiles/h5diff_627.txt
+./tools/h5diff/testfiles/h5diff_628.txt
+./tools/h5diff/testfiles/h5diff_629.txt
+./tools/h5diff/testfiles/h5diff_70.txt
+./tools/h5diff/testfiles/h5diff_80.txt
+./tools/h5diff/testfiles/h5diff_90.txt
+./tools/h5diff/testfiles/h5diff_100.txt
+./tools/h5diff/testfiles/h5diff_101.txt
+./tools/h5diff/testfiles/h5diff_102.txt
+
+
+./tools/h5diff/testfiles/h5diff_basic1.h5
+./tools/h5diff/testfiles/h5diff_basic2.h5
+./tools/h5diff/testfiles/h5diff_dtypes.h5
+./tools/h5diff/testfiles/h5diff_dset1.h5
+./tools/h5diff/testfiles/h5diff_dset2.h5
+./tools/h5diff/testfiles/h5diff_empty.h5
+./tools/h5diff/testfiles/h5diff_hyper1.h5
+./tools/h5diff/testfiles/h5diff_attr1.h5
+./tools/h5diff/testfiles/h5diff_hyper2.h5
+./tools/h5diff/testfiles/h5diff_attr2.h5
+./tools/h5diff/testfiles/h5diff_types.h5
#test files for h5repack
-./tools/testfiles/h5repack_fill.h5
-./tools/testfiles/h5repack_objs.h5
-./tools/testfiles/h5repack_attr.h5
-./tools/testfiles/h5repack_hlink.h5
-./tools/testfiles/h5repack_layout.h5
-./tools/testfiles/h5repack_early.h5
-./tools/testfiles/h5repack_szip.h5
-./tools/testfiles/h5repack_deflate.h5
-./tools/testfiles/h5repack_shuffle.h5
-./tools/testfiles/h5repack_fletcher.h5
-./tools/testfiles/h5repack_filters.h5
-./tools/testfiles/h5repack_nbit.h5
-./tools/testfiles/h5repack_soffset.h5
-./tools/testfiles/info.h5repack
-./tools/testfiles/h5repack_ext.bin
-./tools/testfiles/h5repack_ext.h5
+./tools/h5repack/testfiles/h5repack_fill.h5
+./tools/h5repack/testfiles/h5repack_objs.h5
+./tools/h5repack/testfiles/h5repack_attr.h5
+./tools/h5repack/testfiles/h5repack_hlink.h5
+./tools/h5repack/testfiles/h5repack_layout.h5
+./tools/h5repack/testfiles/h5repack_early.h5
+./tools/h5repack/testfiles/h5repack_szip.h5
+./tools/h5repack/testfiles/h5repack_deflate.h5
+./tools/h5repack/testfiles/h5repack_shuffle.h5
+./tools/h5repack/testfiles/h5repack_fletcher.h5
+./tools/h5repack/testfiles/h5repack_filters.h5
+./tools/h5repack/testfiles/h5repack_nbit.h5
+./tools/h5repack/testfiles/h5repack_soffset.h5
+./tools/h5repack/testfiles/h5repack.info
+./tools/h5repack/testfiles/h5repack_ext.bin
+./tools/h5repack/testfiles/h5repack_ext.h5
@@ -1505,8 +1502,8 @@
./tools/testfiles/u513.txt
# test files for h5copy
-./tools/testfiles/h5copytst.h5
-./tools/testfiles/h5copytst.out.ls
+./tools/h5copy/testfiles/h5copytst.h5
+./tools/h5copy/testfiles/h5copytst.out.ls
# test files for h5mkgrp
./tools/testfiles/h5mkgrp_help.ls
@@ -1523,8 +1520,13 @@
#h52jpeg
./tools/h52jpeg/Makefile.in
./tools/h52jpeg/Makefile.am
+./tools/h52jpeg/h52jpeg.sh
./tools/h52jpeg/h52jpeg.c
./tools/h52jpeg/h52jpegtst.c
+./tools/h52jpeg/image24pixel.txt
+./tools/h52jpeg/image8.txt
+./tools/h52jpeg/testfiles/h52jpegtst.h5
+
# high level libraries
./hl/COPYING
diff --git a/README.txt b/README.txt
index ddcc8b4..35f2791 100644
--- a/README.txt
+++ b/README.txt
@@ -1,4 +1,4 @@
-HDF5 version 1.9.7 currently under development
+HDF5 version 1.9.8 currently under development
Please refer to the release_docs/INSTALL file for installation instructions.
------------------------------------------------------------------------------
diff --git a/config/gnu-flags b/config/gnu-flags
index 401bafe..a8e16cb 100644
--- a/config/gnu-flags
+++ b/config/gnu-flags
@@ -138,7 +138,7 @@ case "$cc_vendor-$cc_version" in
esac
# General
- H5_CFLAGS="$H5_CFLAGS $arch -ansi -pedantic -Wall -W -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline"
+ H5_CFLAGS="$H5_CFLAGS $arch -ansi -pedantic -Wall -W -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline"
# Production
case "$cc_vendor-$cc_version" in
@@ -187,7 +187,7 @@ case "$cc_vendor-$cc_version" in
# Closer to the gcc 4.4 release, we should check for additional flags to
# include and break it out into it's own section, like the other versions
# below. -QAK
- gcc-4.[123]*)
+ gcc-4.3*)
# Replace -ansi flag with -std=c99 flag
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
@@ -202,13 +202,13 @@ case "$cc_vendor-$cc_version" in
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
# Append warning flags from gcc-3.2* case
- H5_CFLAGS="$H5_CFLAGS -Wmissing-noreturn -Wpacked -Wdisabled-optimization -Wmultichar"
+ H5_CFLAGS="$H5_CFLAGS -Wmissing-noreturn -Wpacked -Wdisabled-optimization"
- # Enable mort format checking flags, beyond the basic -Wformat included
+ # Enable more format checking flags, beyond the basic -Wformat included
# in -Wall
- H5_CFLAGS="$H5_CFLAGS -Wformat-nonliteral -Wformat-security -Wformat-y2k"
+ H5_CFLAGS="$H5_CFLAGS -Wformat=2"
- # The "unreachable code" warning does not appear to be reliable yet...
+ # The "unreachable code" warning appears to be reliable now...
H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
# Append warning flags from gcc-3.3* case
@@ -221,9 +221,111 @@ case "$cc_vendor-$cc_version" in
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
# Append more extra warning flags that only gcc4.0+ know about
- H5_CFLAGS="$H5_CFLAGS -Wmissing-field-initializers -Wvariadic-macros"
+ H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Wnonnull -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
- # Append more extra warning flags that only gcc4.1+ know about
+ # Append more extra warning flags that only gcc 4.1+ know about
+ H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat -Wvolatile-register-var"
+
+ # Append more extra warning flags that only gcc 4.2+ know about
+ H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow"
+
+ # Append more extra warning flags that only gcc 4.3+ know about
+ #
+ # Technically, variable-length arrays are part of the C99 standard, but
+ # we should approach them a bit cautiously... -QAK
+ H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wvla"
+
+ # Try out the new "stack protector" feature in gcc 4.1
+ # (Strictly speaking this isn't really a "warning" flag, so it's added to
+ # the debugging flags)
+ #DEBUG_CFLAGS="$DEBUG_CFLAGS -Wstack-protector -fstack-protector-all"
+ ;;
+
+ gcc-4.2*)
+ # Replace -ansi flag with -std=c99 flag
+ H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
+
+ # Disable warnings about using 'long long' type
+ H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
+
+ # Append warning flags from gcc-3* case
+ # (don't use -Wpadded flag for normal builds, many of the warnings its
+ # issuing can't be fixed and they are making it hard to detect other,
+ # more important warnings)
+ #H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
+ H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
+
+ # Append warning flags from gcc-3.2* case
+ H5_CFLAGS="$H5_CFLAGS -Wmissing-noreturn -Wpacked -Wdisabled-optimization"
+
+ # Enable more format checking flags, beyond the basic -Wformat included
+ # in -Wall
+ H5_CFLAGS="$H5_CFLAGS -Wformat=2"
+
+ # The "unreachable code" warning does not appear to be reliable yet...
+ H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
+
+ # Append warning flags from gcc-3.3* case
+ H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
+
+ # Append warning flags from gcc-3.4* case
+ H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
+
+ # Replace old -W flag with new -Wextra flag
+ H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
+
+ # Append more extra warning flags that only gcc 4.0+ know about
+ H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Wnonnull -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
+
+ # Append more extra warning flags that only gcc 4.1+ know about
+ H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat -Wvolatile-register-var"
+
+ # Append more extra warning flags that only gcc 4.2+ know about
+ H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow"
+
+ # Try out the new "stack protector" feature in gcc 4.1
+ # (Strictly speaking this isn't really a "warning" flag, so it's added to
+ # the debugging flags)
+ #DEBUG_CFLAGS="$DEBUG_CFLAGS -Wstack-protector -fstack-protector-all"
+ ;;
+
+ gcc-4.1*)
+ # Replace -ansi flag with -std=c99 flag
+ H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
+
+ # Disable warnings about using 'long long' type
+ H5_CFLAGS="$H5_CFLAGS -Wno-long-long"
+
+ # Append warning flags from gcc-3* case
+ # (don't use -Wpadded flag for normal builds, many of the warnings its
+ # issuing can't be fixed and they are making it hard to detect other,
+ # more important warnings)
+ #H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
+ H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
+
+ # Append warning flags from gcc-3.2* case
+ H5_CFLAGS="$H5_CFLAGS -Wmissing-noreturn -Wpacked -Wdisabled-optimization"
+
+ # Enable more format checking flags, beyond the basic -Wformat included
+ # in -Wall
+ H5_CFLAGS="$H5_CFLAGS -Wformat=2"
+
+ # The "unreachable code" warning does not appear to be reliable yet...
+ H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
+
+ # Append warning flags from gcc-3.3* case
+ H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
+
+ # Append warning flags from gcc-3.4* case
+ H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
+
+ # Replace old -W flag with new -Wextra flag
+ H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
+
+ # Append more extra warning flags that only gcc 4.0+ know about
+ H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Wnonnull -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
+
+ # Append more extra warning flags that only gcc 4.1+ know about
H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat -Wvolatile-register-var"
# Try out the new "stack protector" feature in gcc 4.1
@@ -247,7 +349,7 @@ case "$cc_vendor-$cc_version" in
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
# Append warning flags from gcc-3.2* case
- H5_CFLAGS="$H5_CFLAGS -Wmissing-noreturn -Wpacked -Wdisabled-optimization -Wmultichar"
+ H5_CFLAGS="$H5_CFLAGS -Wmissing-noreturn -Wpacked -Wdisabled-optimization"
# The "format=2" warning generates too many warnings about valid
# usage in the library.
@@ -265,8 +367,8 @@ case "$cc_vendor-$cc_version" in
# Replace old -W flag with new -Wextra flag
H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
- # Append more extra warning flags that only gcc4.0+ know about
- H5_CFLAGS="$H5_CFLAGS -Wmissing-field-initializers -Wvariadic-macros"
+ # Append more extra warning flags that only gcc 4.0+ know about
+ H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Wnonnull -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
;;
gcc-3.4*)
@@ -284,7 +386,7 @@ case "$cc_vendor-$cc_version" in
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
# Append warning flags from gcc-3.2* case
- H5_CFLAGS="$H5_CFLAGS -Wmissing-noreturn -Wpacked -Wdisabled-optimization -Wmultichar"
+ H5_CFLAGS="$H5_CFLAGS -Wmissing-noreturn -Wpacked -Wdisabled-optimization"
# The "format=2" warning generates too many warnings about valid
# usage in the library.
@@ -318,7 +420,7 @@ case "$cc_vendor-$cc_version" in
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
# Append warning flags from gcc-3.2* case
- H5_CFLAGS="$H5_CFLAGS -Wmissing-noreturn -Wpacked -Wdisabled-optimization -Wmultichar"
+ H5_CFLAGS="$H5_CFLAGS -Wmissing-noreturn -Wpacked -Wdisabled-optimization"
# The "format=2" warning generates too many warnings about valid
# usage in the library.
@@ -346,7 +448,7 @@ case "$cc_vendor-$cc_version" in
H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
# Append more extra warning flags that only gcc3.2+ know about
- H5_CFLAGS="$H5_CFLAGS -Wmissing-noreturn -Wpacked -Wdisabled-optimization -Wmultichar"
+ H5_CFLAGS="$H5_CFLAGS -Wmissing-noreturn -Wpacked -Wdisabled-optimization"
# The "format=2" warning generates too many warnings about valid
# usage in the library.
diff --git a/config/lt_vers.am b/config/lt_vers.am
index e8922b4..75a15e8 100644
--- a/config/lt_vers.am
+++ b/config/lt_vers.am
@@ -17,7 +17,7 @@
# Add libtool shared library version numbers to the HDF5 library
# See libtool versioning documentation online.
LT_VERS_INTERFACE = 5
-LT_VERS_REVISION = 8
+LT_VERS_REVISION = 9
LT_VERS_AGE = 0
## If the API changes *at all*, increment LT_VERS_INTERFACE and
diff --git a/configure b/configure
index cc830b5..56b82e8 100755
--- a/configure
+++ b/configure
@@ -1,7 +1,7 @@
#! /bin/sh
# From configure.in Id: configure.in 15262 2008-06-23 19:16:31Z koziol .
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for HDF5 1.9.7.
+# Generated by GNU Autoconf 2.61 for HDF5 1.9.8.
#
# Report bugs to <help@hdfgroup.org>.
#
@@ -724,8 +724,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='HDF5'
PACKAGE_TARNAME='hdf5'
-PACKAGE_VERSION='1.9.7'
-PACKAGE_STRING='HDF5 1.9.7'
+PACKAGE_VERSION='1.9.8'
+PACKAGE_STRING='HDF5 1.9.8'
PACKAGE_BUGREPORT='help@hdfgroup.org'
ac_unique_file="src/H5.c"
@@ -1490,7 +1490,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures HDF5 1.9.7 to adapt to many kinds of systems.
+\`configure' configures HDF5 1.9.8 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1560,7 +1560,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of HDF5 1.9.7:";;
+ short | recursive ) echo "Configuration of HDF5 1.9.8:";;
esac
cat <<\_ACEOF
@@ -1742,7 +1742,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-HDF5 configure 1.9.7
+HDF5 configure 1.9.8
generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1756,7 +1756,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by HDF5 $as_me 1.9.7, which was
+It was created by HDF5 $as_me 1.9.8, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@
@@ -2451,7 +2451,7 @@ fi
# Define the identity of the package.
PACKAGE='hdf5'
- VERSION='1.9.7'
+ VERSION='1.9.8'
cat >>confdefs.h <<_ACEOF
@@ -51116,7 +51116,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by HDF5 $as_me 1.9.7, which was
+This file was extended by HDF5 $as_me 1.9.8, which was
generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -51169,7 +51169,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-HDF5 config.status 1.9.7
+HDF5 config.status 1.9.8
configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff --git a/configure.in b/configure.in
index dcc4a8c..922db87 100644
--- a/configure.in
+++ b/configure.in
@@ -26,7 +26,7 @@ dnl
dnl NOTE: Don't forget to change the version number here when we do a
dnl release!!!
dnl
-AC_INIT([HDF5], [1.9.7], [help@hdfgroup.org])
+AC_INIT([HDF5], [1.9.8], [help@hdfgroup.org])
AC_CONFIG_SRCDIR([src/H5.c])
AM_CONFIG_HEADER([src/H5config.h])
diff --git a/fortran/src/H5Tf.c b/fortran/src/H5Tf.c
index 633389b..490d739 100644
--- a/fortran/src/H5Tf.c
+++ b/fortran/src/H5Tf.c
@@ -1840,3 +1840,29 @@ nh5tcompiler_conv_c ( hid_t_f *src_id, hid_t_f *dst_id, int_f *c_flag)
ret_value = 0;
return ret_value;
}
+/*----------------------------------------------------------------------------
+ * Name: h5tget_native_type_c
+ * Purpose: Call H5Tget_native_type
+ * Inputs:
+ * dtype_id - Datatype identifier for the dataset datatype.
+ * direction - Direction of search.
+ * Outputs: native_dtype_id - The native datatype identifier for the specified dataset datatype
+ * Returns: 0 on success, -1 on failure
+ * Programmer: M.S. Breitenfeld
+ * June 18, 2008
+ * Modifications:
+ *---------------------------------------------------------------------------*/
+
+int_f
+nh5tget_native_type_c(hid_t_f *dtype_id, int_f *direction, hid_t_f *native_dtype_id)
+{
+ int ret_value = -1;
+ hid_t status;
+
+ status = H5Tget_native_type( (hid_t)*dtype_id, (H5T_direction_t)*direction);
+ if ( status < 0 ) return ret_value;
+ *native_dtype_id = (hid_t_f)status;
+ ret_value = 0;
+ return ret_value;
+}
+
diff --git a/fortran/src/H5Tff.f90 b/fortran/src/H5Tff.f90
index 8f12886..7a812ab 100644
--- a/fortran/src/H5Tff.f90
+++ b/fortran/src/H5Tff.f90
@@ -3646,4 +3646,62 @@ CONTAINS
END SUBROUTINE h5tcompiler_conv_f
+!----------------------------------------------------------------------
+! Name: h5tget_native_type_f
+!
+! Purpose: Returns the native datatype of a specified datatype.
+!
+! Inputs:
+! dtype_id - Datatype identifier for the dataset datatype.
+! *
+! direction - Direction of search:
+! H5T_DIR_DEFAULT = 0, /*default direction is inscendent */
+! H5T_DIR_ASCEND = 1, /*in inscendent order */
+! H5T_DIR_DESCEND = 2 /*in descendent order */
+! * NOTE: In C it is defined as a structure: H5T_direction_t
+!
+! Outputs:
+! native_dtype_id - The native datatype identifier for the specified dataset datatype
+! hdferr: - Error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: M.S. Breitenfeld
+! June 18, 2008
+!
+! Modifications: N/A
+!
+!----------------------------------------------------------------------
+
+ SUBROUTINE h5tget_native_type_f(dtype_id, direction, native_dtype_id, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_native_type_f
+!DEC$endif
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dtype_id ! Datatype identifier
+ INTEGER, INTENT(IN) :: direction ! Direction of search:
+ ! H5T_DIR_ASCEND_F = 1 in inscendent order
+ ! H5T_DIR_DESCEND_F = 2 in descendent order
+ INTEGER(HID_T), INTENT(OUT) :: native_dtype_id ! The native datatype identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+ INTERFACE
+ INTEGER FUNCTION h5tget_native_type_c(dtype_id, direction, native_dtype_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5TGET_NATIVE_TYPE_C'::h5tget_native_type_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dtype_id
+ INTEGER, INTENT(IN) :: direction
+ INTEGER(HID_T), INTENT(OUT) :: native_dtype_id
+ END FUNCTION h5tget_native_type_c
+ END INTERFACE
+
+ hdferr = h5tget_native_type_c(dtype_id, direction, native_dtype_id)
+ END SUBROUTINE h5tget_native_type_f
+
+
END MODULE H5T
diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c
index 8df766c..efc478d 100644
--- a/fortran/src/H5_f.c
+++ b/fortran/src/H5_f.c
@@ -484,6 +484,8 @@ nh5init_flags_c( int_f *h5d_flags, int_f *h5f_flags,
h5t_flags[28] = (int_f)H5T_STR_ERROR;
h5t_flags[29] = (int_f)H5T_VLEN;
h5t_flags[30] = (int_f)H5T_ARRAY;
+ h5t_flags[31] = (int_f)H5T_DIR_ASCEND;
+ h5t_flags[32] = (int_f)H5T_DIR_DESCEND;
/*
* H5Z flags
*/
diff --git a/fortran/src/H5f90global.f90 b/fortran/src/H5f90global.f90
index 251e49c..bf2d715 100644
--- a/fortran/src/H5f90global.f90
+++ b/fortran/src/H5f90global.f90
@@ -625,11 +625,10 @@
EQUIVALENCE(H5S_flags(19), H5S_SEL_HYPERSLABS_F)
EQUIVALENCE(H5S_flags(20), H5S_SEL_ALL_F)
-
!
! H5T flags declaration
!
- INTEGER, PARAMETER :: H5T_FLAGS_LEN = 31
+ INTEGER, PARAMETER :: H5T_FLAGS_LEN = 33
INTEGER H5T_flags(H5T_FLAGS_LEN)
!DEC$if defined(BUILD_HDF5_DLL)
!DEC$ ATTRIBUTES DLLEXPORT :: /H5T_FLAGS/
@@ -667,6 +666,8 @@
INTEGER :: H5T_STR_NULLPAD_F
INTEGER :: H5T_STR_SPACEPAD_F
INTEGER :: H5T_STR_ERROR_F
+ INTEGER :: H5T_DIR_ASCEND_F
+ INTEGER :: H5T_DIR_DESCEND_F
EQUIVALENCE(H5T_flags(1), H5T_NO_CLASS_F)
EQUIVALENCE(H5T_flags(2), H5T_INTEGER_F)
@@ -699,6 +700,8 @@
EQUIVALENCE(H5T_flags(29), H5T_STR_ERROR_F)
EQUIVALENCE(H5T_flags(30), H5T_VLEN_F)
EQUIVALENCE(H5T_flags(31), H5T_ARRAY_F)
+ EQUIVALENCE(H5T_flags(32), H5T_DIR_ASCEND_F)
+ EQUIVALENCE(H5T_flags(33), H5T_DIR_DESCEND_F)
!
! H5Z flags declaration
diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h
index b06be58..3f8f361 100644
--- a/fortran/src/H5f90proto.h
+++ b/fortran/src/H5f90proto.h
@@ -666,6 +666,7 @@ H5_FCDLL int_f nh5arename_c( hid_t_f *loc_id,
# define nh5tencode_c H5_FC_FUNC_(h5tencode_c, H5TENCODE_C)
# define nh5tget_create_plist_c H5_FC_FUNC_(h5tget_create_plist_c, H5TGET_CREATE_PLIST_C)
# define nh5tcompiler_conv_c H5_FC_FUNC_(h5tcompiler_conv_c, H5TCOMPILER_CONV_C)
+# define nh5tget_native_type_c H5_FC_FUNC_(h5tget_native_type_c, H5TGET_NATIVE_TYPE_C)
H5_FCDLL int_f nh5tcreate_c(int_f *class, size_t_f *size, hid_t_f *type_id);
H5_FCDLL int_f nh5topen_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_t_f *tapl_id );
@@ -728,6 +729,7 @@ H5_FCDLL int_f nh5tdecode_c ( _fcd buf, hid_t_f *obj_id );
H5_FCDLL int_f nh5tencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc );
H5_FCDLL int_f nh5tget_create_plist_c ( hid_t_f *dtype_id, hid_t_f *dtpl_id);
H5_FCDLL int_f nh5tcompiler_conv_c ( hid_t_f *src_id, hid_t_f *dst_id, int_f *c_flag);
+H5_FCDLL int_f nh5tget_native_type_c(hid_t_f *dtype_id, int_f *direction, hid_t_f *native_dtype_id);
/*
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 5d55094..1cb4650 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -1,4 +1,4 @@
-HDF5 version 1.9.7 currently under development
+HDF5 version 1.9.8 currently under development
================================================================================
diff --git a/src/H5.c b/src/H5.c
index 049501c..dd80b12 100644
--- a/src/H5.c
+++ b/src/H5.c
@@ -207,7 +207,7 @@ void
H5_term_library(void)
{
int pending, ntries = 0, n;
- unsigned at = 0;
+ size_t at = 0;
char loop[1024];
H5E_auto2_t func;
@@ -477,7 +477,7 @@ H5_debug_mask(const char *s)
FILE *stream = stderr;
char pkg_name[32], *rest;
size_t i;
- int clear;
+ hbool_t clear;
while (s && *s) {
if (HDisalpha(*s) || '-'==*s || '+'==*s) {
@@ -500,20 +500,20 @@ H5_debug_mask(const char *s)
/* Trace, all, or one? */
if (!HDstrcmp(pkg_name, "trace")) {
- H5_debug_g.trace = clear?NULL:stream;
+ H5_debug_g.trace = clear ? NULL : stream;
} else if (!HDstrcmp(pkg_name, "ttop")) {
H5_debug_g.trace = stream;
- H5_debug_g.ttop = !clear;
+ H5_debug_g.ttop = (hbool_t)!clear;
} else if (!HDstrcmp(pkg_name, "ttimes")) {
H5_debug_g.trace = stream;
- H5_debug_g.ttimes = !clear;
+ H5_debug_g.ttimes = (hbool_t)!clear;
} else if (!HDstrcmp(pkg_name, "all")) {
for (i=0; i<(size_t)H5_NPKGS; i++)
- H5_debug_g.pkg[i].stream = clear?NULL:stream;
+ H5_debug_g.pkg[i].stream = clear ? NULL : stream;
} else {
for (i=0; i<(size_t)H5_NPKGS; i++) {
if (!HDstrcmp(H5_debug_g.pkg[i].name, pkg_name)) {
- H5_debug_g.pkg[i].stream = clear?NULL:stream;
+ H5_debug_g.pkg[i].stream = clear ? NULL : stream;
break;
}
}
diff --git a/src/H5A.c b/src/H5A.c
index 955c809..13b5483 100644
--- a/src/H5A.c
+++ b/src/H5A.c
@@ -361,9 +361,11 @@ hid_t
H5A_create(const H5G_loc_t *loc, const char *name, const H5T_t *type,
const H5S_t *space, hid_t acpl_id, hid_t dxpl_id)
{
- H5A_t *attr = NULL;
- htri_t tri_ret; /* htri_t return value */
- hid_t ret_value; /* Return value */
+ H5A_t *attr = NULL;
+ hssize_t snelmts; /* elements in attribute */
+ size_t nelmts; /* elements in attribute */
+ htri_t tri_ret; /* htri_t return value */
+ hid_t ret_value; /* Return value */
FUNC_ENTER_NOAPI_NOINIT(H5A_create)
@@ -464,9 +466,14 @@ H5A_create(const H5G_loc_t *loc, const char *name, const H5T_t *type,
attr->dt_size = H5O_msg_raw_size(attr->oloc.file, H5O_DTYPE_ID, FALSE, attr->dt);
attr->ds_size = H5O_msg_raw_size(attr->oloc.file, H5O_SDSPACE_ID, FALSE, attr->ds);
+ /* Get # of elements for attribute's dataspace */
+ if((snelmts = H5S_GET_EXTENT_NPOINTS(attr->ds)) < 0)
+ HGOTO_ERROR(H5E_ATTR, H5E_CANTCOUNT, FAIL, "dataspace is invalid")
+ H5_ASSIGN_OVERFLOW(nelmts, snelmts, hssize_t, size_t);
+
HDassert(attr->dt_size > 0);
HDassert(attr->ds_size > 0);
- H5_ASSIGN_OVERFLOW(attr->data_size, H5S_GET_EXTENT_NPOINTS(attr->ds) * H5T_get_size(attr->dt), hssize_t, size_t);
+ attr->data_size = nelmts * H5T_get_size(attr->dt);
/* Hold the symbol table entry (and file) open */
if(H5O_open(&(attr->oloc)) < 0)
@@ -1271,6 +1278,8 @@ H5Aget_type(hid_t attr_id)
/* Mark any datatypes as being in memory now */
if(H5T_set_loc(dt, NULL, H5T_LOC_MEMORY) < 0)
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "invalid datatype location")
+
+ /* Lock copied type */
if(H5T_lock(dt, FALSE) < 0)
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "unable to lock transient datatype")
diff --git a/src/H5AC.c b/src/H5AC.c
index cd79e6a..e4639f3 100644
--- a/src/H5AC.c
+++ b/src/H5AC.c
@@ -43,8 +43,8 @@
*-------------------------------------------------------------------------
*/
-#define H5C_PACKAGE /*suppress error about including H5Cpkg */
#define H5AC_PACKAGE /*suppress error about including H5ACpkg */
+#define H5C_PACKAGE /*suppress error about including H5Cpkg */
#define H5F_PACKAGE /*suppress error about including H5Fpkg */
/* Interface initialization */
@@ -2319,7 +2319,7 @@ H5AC_unprotect(H5F_t *f, hid_t dxpl_id, const H5AC_class_t *type, haddr_t addr,
}
#endif /* H5AC__TRACE_FILE_ENABLED */
- dirtied = ( ( (flags & H5AC__DIRTIED_FLAG) == H5AC__DIRTIED_FLAG ) ||
+ dirtied = (hbool_t)( ( (flags & H5AC__DIRTIED_FLAG) == H5AC__DIRTIED_FLAG ) ||
( ((H5AC_info_t *)thing)->dirtied ) );
if ( dirtied ) {
@@ -3064,7 +3064,7 @@ H5AC_validate_config(H5AC_cache_config_t * config_ptr)
{
herr_t result;
herr_t ret_value = SUCCEED; /* Return value */
- int name_len;
+ size_t name_len;
H5C_auto_size_ctl_t internal_config;
FUNC_ENTER_NOAPI(H5AC_validate_config, FAIL)
@@ -3109,7 +3109,7 @@ H5AC_validate_config(H5AC_cache_config_t * config_ptr)
*/
name_len = HDstrlen(config_ptr->trace_file_name);
- if ( name_len <= 0 ) {
+ if ( name_len == 0 ) {
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, \
"config_ptr->trace_file_name is empty.")
diff --git a/src/H5ACpkg.h b/src/H5ACpkg.h
index 973f988..5f226ed 100644
--- a/src/H5ACpkg.h
+++ b/src/H5ACpkg.h
@@ -34,14 +34,12 @@
#ifndef _H5ACpkg_H
#define _H5ACpkg_H
-#define H5C_PACKAGE /*suppress error about including H5Cpkg */
-
/* Get package's private header */
-#include "H5Cprivate.h"
+#include "H5ACprivate.h"
/* Get needed headers */
-#include "H5Cpkg.h" /* Cache */
+#include "H5Cprivate.h" /* Cache */
#include "H5SLprivate.h" /* Skip lists */
@@ -323,4 +321,5 @@ typedef struct H5AC_aux_t
#endif /* H5_HAVE_PARALLEL */
-#endif /* _H5Cpkg_H */
+#endif /* _H5ACpkg_H */
+
diff --git a/src/H5Adense.c b/src/H5Adense.c
index de6bc8c..45537be 100644
--- a/src/H5Adense.c
+++ b/src/H5Adense.c
@@ -504,7 +504,7 @@ H5A_dense_insert(H5F_t *f, hid_t dxpl_id, const H5O_ainfo_t *ainfo, H5A_t *attr)
udata.common.shared_fheap = shared_fheap;
udata.common.name = attr->name;
udata.common.name_hash = H5_checksum_lookup3(attr->name, HDstrlen(attr->name), 0);
- udata.common.flags = mesg_flags;
+ H5_ASSIGN_OVERFLOW(udata.common.flags, mesg_flags, unsigned, uint8_t);
udata.common.corder = attr->crt_idx;
udata.common.found_op = NULL;
udata.common.found_op_data = NULL;
@@ -1034,6 +1034,13 @@ H5A_dense_iterate_bt2_cb(const void *_record, void *_bt2_udata)
case H5A_ATTR_OP_LIB:
/* Call the library's callback */
ret_value = (bt2_udata->attr_op->u.lib_op)(fh_udata.attr, bt2_udata->op_data);
+ break;
+
+ default:
+ HDassert("unknown attribute op type" && 0);
+#ifdef NDEBUG
+ HGOTO_ERROR(H5E_ATTR, H5E_UNSUPPORTED, FAIL, "unsupported attribute op type")
+#endif /* NDEBUG */
} /* end switch */
/* Release the space allocated for the attribute */
diff --git a/src/H5Aint.c b/src/H5Aint.c
index c08c6cf..71b6689 100644
--- a/src/H5Aint.c
+++ b/src/H5Aint.c
@@ -197,8 +197,8 @@ H5A_compact_build_table(H5F_t *f, hid_t dxpl_id, H5O_t *oh, H5_index_t idx_type,
udata.dxpl_id = dxpl_id;
udata.atable = atable;
udata.curr_attr = 0;
- udata.bogus_crt_idx = (oh->version == H5O_VERSION_1 ||
- !(oh->flags & H5O_HDR_ATTR_CRT_ORDER_TRACKED)) ? TRUE : FALSE;
+ udata.bogus_crt_idx = (hbool_t)((oh->version == H5O_VERSION_1 ||
+ !(oh->flags & H5O_HDR_ATTR_CRT_ORDER_TRACKED)) ? TRUE : FALSE);
/* Iterate over existing attributes, checking for attribute with same name */
op.op_type = H5O_MESG_OP_LIB;
@@ -564,6 +564,13 @@ H5A_attr_iterate_table(const H5A_attr_table_t *atable, hsize_t skip,
case H5A_ATTR_OP_LIB:
/* Call the library's callback */
ret_value = (attr_op->u.lib_op)(&(atable->attrs[u]), op_data);
+ break;
+
+ default:
+ HDassert("unknown attribute op type" && 0);
+#ifdef NDEBUG
+ HGOTO_ERROR(H5E_ATTR, H5E_UNSUPPORTED, FAIL, "unsupported attribute op type")
+#endif /* NDEBUG */
} /* end switch */
/* Increment the number of entries passed through */
@@ -649,7 +656,7 @@ H5A_get_ainfo(H5F_t *f, hid_t dxpl_id, H5O_t *oh, H5O_ainfo_t *ainfo)
HDassert(oh);
/* Retrieve the "attribute info" structure */
- if((ret_value = H5O_msg_read_real(f, dxpl_id, oh, H5O_AINFO_ID, ainfo))) {
+ if((ret_value = (H5O_ainfo_t *)H5O_msg_read_real(f, dxpl_id, oh, H5O_AINFO_ID, ainfo))) {
/* Check if we don't know how many attributes there are */
if(ret_value->nattrs == HSIZET_MAX) {
/* Check if we are using "dense" attribute storage */
diff --git a/src/H5B2.c b/src/H5B2.c
index 3bb79ee..ed17d12 100644
--- a/src/H5B2.c
+++ b/src/H5B2.c
@@ -1282,7 +1282,7 @@ H5B2_iterate_size(H5F_t *f, hid_t dxpl_id, const H5B2_class_t *type, haddr_t add
cache_udata.type = type;
/* Look up the B-tree header */
- if(NULL == (bt2 = H5AC2_protect(f, dxpl_id, H5AC2_BT2_HDR, addr, (size_t)H5B2_HEADER_SIZE(f), &cache_udata, H5AC2_READ)))
+ if(NULL == (bt2 = (H5B2_t *)H5AC2_protect(f, dxpl_id, H5AC2_BT2_HDR, addr, (size_t)H5B2_HEADER_SIZE(f), &cache_udata, H5AC2_READ)))
HGOTO_ERROR(H5E_BTREE, H5E_CANTPROTECT, FAIL, "unable to load B-tree header")
/* Safely grab pointer to reference counted shared B-tree info, so we can release the B-tree header if necessary */
@@ -1291,7 +1291,7 @@ H5B2_iterate_size(H5F_t *f, hid_t dxpl_id, const H5B2_class_t *type, haddr_t add
incr_rc = TRUE;
/* Get the pointer to the shared B-tree info */
- shared = H5RC_GET_OBJ(bt2->shared);
+ shared = (H5B2_shared_t *)H5RC_GET_OBJ(bt2->shared);
HDassert(shared);
/* Add size of header to B-tree metadata total */
diff --git a/src/H5B2cache.c b/src/H5B2cache.c
index fc24f00..ca73b3f 100644
--- a/src/H5B2cache.c
+++ b/src/H5B2cache.c
@@ -322,8 +322,10 @@ H5B2_cache_hdr_serialize(const H5F_t *f, haddr_t UNUSED addr, size_t UNUSED len,
UINT16ENCODE(p, shared->depth);
/* Split & merge %s */
- *p++ = shared->split_percent;
- *p++ = shared->merge_percent;
+ H5_CHECK_OVERFLOW(shared->split_percent, /* From: */ unsigned, /* To: */ uint8_t);
+ *p++ = (uint8_t)shared->split_percent;
+ H5_CHECK_OVERFLOW(shared->merge_percent, /* From: */ unsigned, /* To: */ uint8_t);
+ *p++ = (uint8_t)shared->merge_percent;
/* Root node pointer */
H5F_addr_encode(f, &p, bt2->root.addr);
diff --git a/src/H5B2int.c b/src/H5B2int.c
index 90e687a..6b0b911 100644
--- a/src/H5B2int.c
+++ b/src/H5B2int.c
@@ -149,6 +149,8 @@ H5B2_shared_init (H5F_t *f, H5B2_t *bt2, const H5B2_class_t *type,
unsigned split_percent, unsigned merge_percent)
{
H5B2_shared_t *shared = NULL; /* Shared B-tree information */
+ size_t sz_max_nrec; /* Temporary variable for range checking */
+ unsigned u_max_nrec_size; /* Temporary variable for range checking */
unsigned u; /* Local index variable */
herr_t ret_value = SUCCEED; /* Return value */
@@ -182,7 +184,8 @@ HDmemset(shared->page, 0, shared->node_size);
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed")
/* Initialize leaf node info */
- shared->node_info[0].max_nrec = H5B2_NUM_LEAF_REC(shared->node_size, shared->rrec_size);
+ sz_max_nrec = H5B2_NUM_LEAF_REC(shared->node_size, shared->rrec_size);
+ H5_ASSIGN_OVERFLOW(/* To: */ shared->node_info[0].max_nrec, /* From: */ sz_max_nrec, /* From: */ size_t, /* To: */ unsigned)
shared->node_info[0].split_nrec = (shared->node_info[0].max_nrec * shared->split_percent) / 100;
shared->node_info[0].merge_nrec = (shared->node_info[0].max_nrec * shared->merge_percent) / 100;
shared->node_info[0].cum_max_nrec = shared->node_info[0].max_nrec;
@@ -203,13 +206,15 @@ HDmemset(shared->page, 0, shared->node_size);
/* Compute size to store # of records in each node */
/* (uses leaf # of records because its the largest) */
- shared->max_nrec_size = H5V_limit_enc_size((uint64_t)shared->node_info[0].max_nrec);
+ u_max_nrec_size = H5V_limit_enc_size((uint64_t)shared->node_info[0].max_nrec);
+ H5_ASSIGN_OVERFLOW(/* To: */ shared->max_nrec_size, /* From: */ u_max_nrec_size, /* From: */ unsigned, /* To: */ unsigned char)
HDassert(shared->max_nrec_size <= H5B2_SIZEOF_RECORDS_PER_NODE);
/* Initialize internal node info */
if(depth > 0) {
for(u = 1; u < (depth + 1); u++) {
- shared->node_info[u].max_nrec = H5B2_NUM_INT_REC(f, shared, u);
+ sz_max_nrec = H5B2_NUM_INT_REC(f, shared, u);
+ H5_ASSIGN_OVERFLOW(/* To: */ shared->node_info[u].max_nrec, /* From: */ sz_max_nrec, /* From: */ size_t, /* To: */ unsigned)
HDassert(shared->node_info[u].max_nrec <= shared->node_info[u - 1].max_nrec);
shared->node_info[u].split_nrec = (shared->node_info[u].max_nrec * shared->split_percent) / 100;
@@ -217,7 +222,8 @@ HDmemset(shared->page, 0, shared->node_size);
shared->node_info[u].cum_max_nrec = ((shared->node_info[u].max_nrec + 1) *
shared->node_info[u - 1].cum_max_nrec) + shared->node_info[u].max_nrec;
- shared->node_info[u].cum_max_nrec_size = H5V_limit_enc_size((uint64_t)shared->node_info[u].cum_max_nrec);
+ u_max_nrec_size = H5V_limit_enc_size((uint64_t)shared->node_info[u].cum_max_nrec);
+ H5_ASSIGN_OVERFLOW(/* To: */ shared->node_info[u].cum_max_nrec_size, /* From: */ u_max_nrec_size, /* From: */ unsigned, /* To: */ unsigned char)
if((shared->node_info[u].nat_rec_fac = H5FL_fac_init(shared->type->nrec_size * shared->node_info[u].max_nrec)) == NULL)
HGOTO_ERROR(H5E_RESOURCE, H5E_CANTINIT, FAIL, "can't create node native key block factory")
@@ -559,6 +565,8 @@ H5B2_split_root(H5F_t *f, hid_t dxpl_id, H5B2_t *bt2, unsigned *bt2_flags_ptr)
H5B2_shared_t *shared; /* Pointer to B-tree's shared information */
unsigned new_root_flags = H5AC2__NO_FLAGS_SET; /* Cache flags for new root node */
H5B2_node_ptr_t old_root_ptr; /* Old node pointer to root node in B-tree */
+ size_t sz_max_nrec; /* Temporary variable for range checking */
+ unsigned u_max_nrec_size; /* Temporary variable for range checking */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI_NOINIT(H5B2_split_root)
@@ -579,12 +587,14 @@ H5B2_split_root(H5F_t *f, hid_t dxpl_id, H5B2_t *bt2, unsigned *bt2_flags_ptr)
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed")
/* Update node info for new depth of tree */
- shared->node_info[shared->depth].max_nrec = H5B2_NUM_INT_REC(f, shared, shared->depth);
+ sz_max_nrec = H5B2_NUM_INT_REC(f, shared, shared->depth);
+ H5_ASSIGN_OVERFLOW(/* To: */ shared->node_info[shared->depth].max_nrec, /* From: */ sz_max_nrec, /* From: */ size_t, /* To: */ unsigned)
shared->node_info[shared->depth].split_nrec = (shared->node_info[shared->depth].max_nrec * shared->split_percent) / 100;
shared->node_info[shared->depth].merge_nrec = (shared->node_info[shared->depth].max_nrec * shared->merge_percent) / 100;
shared->node_info[shared->depth].cum_max_nrec = ((shared->node_info[shared->depth].max_nrec + 1) *
shared->node_info[shared->depth - 1].cum_max_nrec) + shared->node_info[shared->depth].max_nrec;
- shared->node_info[shared->depth].cum_max_nrec_size = H5V_limit_enc_size((uint64_t)shared->node_info[shared->depth].cum_max_nrec);
+ u_max_nrec_size = H5V_limit_enc_size((uint64_t)shared->node_info[shared->depth].cum_max_nrec);
+ H5_ASSIGN_OVERFLOW(/* To: */ shared->node_info[shared->depth].cum_max_nrec_size, /* From: */ u_max_nrec_size, /* From: */ unsigned, /* To: */ unsigned char)
if((shared->node_info[shared->depth].nat_rec_fac = H5FL_fac_init(shared->type->nrec_size * shared->node_info[shared->depth].max_nrec)) == NULL)
HGOTO_ERROR(H5E_RESOURCE, H5E_CANTINIT, FAIL, "can't create node native key block factory")
if((shared->node_info[shared->depth].node_ptr_fac = H5FL_fac_init(sizeof(H5B2_node_ptr_t) * (shared->node_info[shared->depth].max_nrec + 1))) == NULL)
@@ -747,20 +757,20 @@ H5B2_redistribute2(H5F_t *f, hid_t dxpl_id, unsigned depth, H5B2_internal_t *int
/* Handle node pointers, if we have an internal node */
if(depth>1) {
- hsize_t moved_nrec=move_nrec; /* Total number of records moved, for internal redistrib */
+ hsize_t moved_nrec = move_nrec; /* Total number of records moved, for internal redistrib */
unsigned u; /* Local index variable */
/* Count the number of records being moved */
- for(u=0; u<move_nrec; u++)
+ for(u = 0; u < move_nrec; u++)
moved_nrec += right_node_ptrs[u].all_nrec;
- left_moved_nrec = moved_nrec;
- right_moved_nrec -= moved_nrec;
+ H5_ASSIGN_OVERFLOW(/* To: */ left_moved_nrec, /* From: */ moved_nrec, /* From: */ hsize_t, /* To: */ hssize_t)
+ right_moved_nrec -= (hssize_t)moved_nrec;
/* Copy node pointers from right node to left */
- HDmemcpy(&(left_node_ptrs[*left_nrec+1]),&(right_node_ptrs[0]),sizeof(H5B2_node_ptr_t)*move_nrec);
+ HDmemcpy(&(left_node_ptrs[*left_nrec + 1]), &(right_node_ptrs[0]), sizeof(H5B2_node_ptr_t) * move_nrec);
/* Slide node pointers in right node down */
- HDmemmove(&(right_node_ptrs[0]),&(right_node_ptrs[move_nrec]),sizeof(H5B2_node_ptr_t)*(new_right_nrec+1));
+ HDmemmove(&(right_node_ptrs[0]), &(right_node_ptrs[move_nrec]), sizeof(H5B2_node_ptr_t) * (new_right_nrec + 1));
} /* end if */
/* Update number of records in child nodes */
@@ -802,8 +812,8 @@ H5B2_redistribute2(H5F_t *f, hid_t dxpl_id, unsigned depth, H5B2_internal_t *int
/* Count the number of records being moved */
for(u=0; u<move_nrec; u++)
moved_nrec += right_node_ptrs[u].all_nrec;
- left_moved_nrec -= moved_nrec;
- right_moved_nrec = moved_nrec;
+ left_moved_nrec -= (hssize_t)moved_nrec;
+ H5_ASSIGN_OVERFLOW(/* To: */ right_moved_nrec, /* From: */ moved_nrec, /* From: */ hsize_t, /* To: */ hssize_t)
} /* end if */
/* Update number of records in child nodes */
diff --git a/src/H5D.c b/src/H5D.c
index 8d985b2..26e11b2 100644
--- a/src/H5D.c
+++ b/src/H5D.c
@@ -517,7 +517,7 @@ H5Dget_type(hid_t dset_id)
if(H5T_set_loc(copied_type, NULL, H5T_LOC_MEMORY) < 0)
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "invalid datatype location")
- /* Unlock copied type */
+ /* Lock copied type */
if(H5T_lock (copied_type, FALSE) < 0)
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "unable to lock transient datatype")
diff --git a/src/H5Fprivate.h b/src/H5Fprivate.h
index cd97758..c6706a4 100644
--- a/src/H5Fprivate.h
+++ b/src/H5Fprivate.h
@@ -309,6 +309,7 @@ typedef struct H5F_t H5F_t;
case 4: UINT32ENCODE(p,l); break; \
case 8: UINT64ENCODE(p,l); break; \
case 2: UINT16ENCODE(p,l); break; \
+ default: HDassert("bad sizeof size" && 0); \
}
#define H5F_ENCODE_LENGTH(f,p,l) H5F_ENCODE_LENGTH_LEN(p,l,H5F_SIZEOF_SIZE(f))
@@ -317,6 +318,7 @@ typedef struct H5F_t H5F_t;
case 4: UINT32DECODE(p,l); break; \
case 8: UINT64DECODE(p,l); break; \
case 2: UINT16DECODE(p,l); break; \
+ default: HDassert("bad sizeof size" && 0); \
}
#define H5F_DECODE_LENGTH(f,p,l) H5F_DECODE_LENGTH_LEN(p,l,H5F_SIZEOF_SIZE(f))
diff --git a/src/H5Tcompound.c b/src/H5Tcompound.c
index 660a76d..9942ea1 100644
--- a/src/H5Tcompound.c
+++ b/src/H5Tcompound.c
@@ -215,7 +215,7 @@ H5Tget_member_type(hid_t type_id, unsigned membno)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a compound datatype")
if (membno >= dt->shared->u.compnd.nmembs)
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid member number")
- if ((memb_dt=H5T_get_member_type(dt, membno))==NULL)
+ if ((memb_dt=H5T_get_member_type(dt, membno, H5T_COPY_REOPEN))==NULL)
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "unable to retrieve member type")
if ((ret_value = H5I_register(H5I_DATATYPE, memb_dt)) < 0)
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTREGISTER, FAIL, "unable register datatype atom")
@@ -251,7 +251,7 @@ done:
*-------------------------------------------------------------------------
*/
H5T_t *
-H5T_get_member_type(const H5T_t *dt, unsigned membno)
+H5T_get_member_type(const H5T_t *dt, unsigned membno, H5T_copy_t method)
{
H5T_t *ret_value = NULL;
@@ -261,7 +261,7 @@ H5T_get_member_type(const H5T_t *dt, unsigned membno)
assert(membno < dt->shared->u.compnd.nmembs);
/* Copy datatype into an atom */
- if (NULL == (ret_value = H5T_copy(dt->shared->u.compnd.memb[membno].type, H5T_COPY_REOPEN)))
+ if (NULL == (ret_value = H5T_copy(dt->shared->u.compnd.memb[membno].type, method)))
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, NULL, "unable to copy member datatype")
done:
diff --git a/src/H5Tnative.c b/src/H5Tnative.c
index da478c4..0deba66 100644
--- a/src/H5Tnative.c
+++ b/src/H5Tnative.c
@@ -277,7 +277,7 @@ H5T_get_native_type(H5T_t *dtype, H5T_direction_t direction, size_t *struct_alig
/* Construct child compound type and retrieve a list of their IDs, offsets, total size, and alignment for compound type. */
for(i=0; i<nmemb; i++) {
- if((memb_type = H5T_get_member_type(dtype, i))==NULL)
+ if((memb_type = H5T_get_member_type(dtype, i, H5T_COPY_TRANSIENT))==NULL)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "member type retrieval failed")
if((comp_mname[i] = H5T_get_member_name(dtype, i))==NULL)
diff --git a/src/H5Tpkg.h b/src/H5Tpkg.h
index 5cb668d..b0abb9a 100644
--- a/src/H5Tpkg.h
+++ b/src/H5Tpkg.h
@@ -340,9 +340,9 @@ typedef struct H5T_array_t {
} H5T_array_t;
typedef enum H5T_state_t {
- H5T_STATE_TRANSIENT, /*type is a modifiable transient */
- H5T_STATE_RDONLY, /*transient, not modifiable, closable*/
- H5T_STATE_IMMUTABLE, /*constant, not closable */
+ H5T_STATE_TRANSIENT, /*type is a modifiable, closable transient */
+ H5T_STATE_RDONLY, /*transient, not modifiable, closable */
+ H5T_STATE_IMMUTABLE, /*transient, not modifiable, not closable */
H5T_STATE_NAMED, /*named constant, not open */
H5T_STATE_OPEN /*named constant, open object header */
} H5T_state_t;
diff --git a/src/H5Tprivate.h b/src/H5Tprivate.h
index 2fe4c3a..36f8006 100644
--- a/src/H5Tprivate.h
+++ b/src/H5Tprivate.h
@@ -129,7 +129,7 @@ H5_DLL herr_t H5T_update_shared(H5T_t *type);
/* Field functions (for both compound & enumerated types) */
H5_DLL int H5T_get_nmembers(const H5T_t *dt);
-H5_DLL H5T_t *H5T_get_member_type(const H5T_t *dt, unsigned membno);
+H5_DLL H5T_t *H5T_get_member_type(const H5T_t *dt, unsigned membno, H5T_copy_t method);
H5_DLL size_t H5T_get_member_offset(const H5T_t *dt, unsigned membno);
/* Atomic functions */
diff --git a/src/H5Vprivate.h b/src/H5Vprivate.h
index e562880..2390584 100644
--- a/src/H5Vprivate.h
+++ b/src/H5Vprivate.h
@@ -302,7 +302,7 @@ H5V_vector_inc(int n, hsize_t *v1, const hsize_t *v2)
}
/* Lookup table for general log2(n) routine */
-static const char LogTable256[] =
+static const unsigned char LogTable256[] =
{
0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
@@ -356,15 +356,15 @@ H5V_log2_gen(uint64_t n)
#endif /* H5_BAD_LOG2_CODE_GENERATED */
if((ttt = (unsigned)(n >> 32)))
if((tt = (unsigned)(n >> 48)))
- r = (t = (unsigned)(n >> 56)) ? 56 + LogTable256[t] : 48 + LogTable256[tt & 0xFF];
+ r = (t = (unsigned)(n >> 56)) ? 56 + (unsigned)LogTable256[t] : 48 + (unsigned)LogTable256[tt & 0xFF];
else
- r = (t = (unsigned)(n >> 40)) ? 40 + LogTable256[t] : 32 + LogTable256[ttt & 0xFF];
+ r = (t = (unsigned)(n >> 40)) ? 40 + (unsigned)LogTable256[t] : 32 + (unsigned)LogTable256[ttt & 0xFF];
else
if((tt = (unsigned)(n >> 16)))
- r = (t = (unsigned)(n >> 24)) ? 24 + LogTable256[t] : 16 + LogTable256[tt & 0xFF];
+ r = (t = (unsigned)(n >> 24)) ? 24 + (unsigned)LogTable256[t] : 16 + (unsigned)LogTable256[tt & 0xFF];
else
/* Added 'uint8_t' cast to pacify PGCC compiler */
- r = (t = (unsigned)(n >> 8)) ? 8 + LogTable256[t] : LogTable256[(uint8_t)n];
+ r = (t = (unsigned)(n >> 8)) ? 8 + (unsigned)LogTable256[t] : (unsigned)LogTable256[(uint8_t)n];
#ifdef H5_BAD_LOG2_CODE_GENERATED
} /* end else */
#endif /* H5_BAD_LOG2_CODE_GENERATED */
diff --git a/src/H5Znbit.c b/src/H5Znbit.c
index 2423654..fabc7f0 100644
--- a/src/H5Znbit.c
+++ b/src/H5Znbit.c
@@ -326,7 +326,7 @@ H5Z_calc_parms_compound(const H5T_t *type)
/* For each member, calculate parameters */
for(u = 0; u < (unsigned)nmembers; u++) {
/* Get member datatype */
- if(NULL == (dtype_member = H5T_get_member_type(type, u)))
+ if(NULL == (dtype_member = H5T_get_member_type(type, u, H5T_COPY_TRANSIENT)))
HGOTO_ERROR(H5E_PLINE, H5E_BADTYPE, FAIL, "bad member datatype")
/* Get member datatype's class */
@@ -637,7 +637,7 @@ H5Z_set_parms_compound(const H5T_t *type, unsigned cd_values[])
/* For each member, set parameters */
for(u = 0; u < (unsigned)nmembers; u++) {
/* Get member datatype */
- if(NULL == (dtype_member = H5T_get_member_type(type, u)))
+ if(NULL == (dtype_member = H5T_get_member_type(type, u, H5T_COPY_TRANSIENT)))
HGOTO_ERROR(H5E_PLINE, H5E_BADTYPE, FAIL, "bad member datatype")
/* Get member datatype's class */
diff --git a/src/H5checksum.c b/src/H5checksum.c
index e42f152..3359722 100644
--- a/src/H5checksum.c
+++ b/src/H5checksum.c
@@ -126,10 +126,10 @@ H5_checksum_fletcher32(const void *_data, size_t _len)
* performed without numeric overflow)
*/
while (len) {
- unsigned tlen = len > 360 ? 360 : len;
+ size_t tlen = len > 360 ? 360 : len;
len -= tlen;
do {
- sum1 += (((uint16_t)data[0]) << 8) | ((uint16_t)data[1]);
+ sum1 += (uint32_t)(((uint16_t)data[0]) << 8) | ((uint16_t)data[1]);
data += 2;
sum2 += sum1;
} while (--tlen);
@@ -139,7 +139,7 @@ H5_checksum_fletcher32(const void *_data, size_t _len)
/* Check for odd # of bytes */
if(_len % 2) {
- sum1 += ((uint16_t)*data) << 8;
+ sum1 += (uint32_t)(((uint16_t)*data) << 8);
sum2 += sum1;
sum1 = (sum1 & 0xffff) + (sum1 >> 16);
sum2 = (sum2 & 0xffff) + (sum2 >> 16);
@@ -486,8 +486,8 @@ H5_hash_string(const char *str)
/* Sanity check */
HDassert(str);
- while(c = *str++)
- hash = ((hash << 5) + hash) + c; /* hash * 33 + c */
+ while((c = *str++))
+ hash = ((hash << 5) + hash) + (uint32_t)c; /* hash * 33 + c */
FUNC_LEAVE_NOAPI(hash)
} /* end H5_hash_string() */
diff --git a/src/H5public.h b/src/H5public.h
index a78e186..8b04f38 100644
--- a/src/H5public.h
+++ b/src/H5public.h
@@ -71,10 +71,10 @@ extern "C" {
/* Version numbers */
#define H5_VERS_MAJOR 1 /* For major interface/format changes */
#define H5_VERS_MINOR 9 /* For minor interface/format changes */
-#define H5_VERS_RELEASE 7 /* For tweaks, bug-fixes, or development */
+#define H5_VERS_RELEASE 8 /* For tweaks, bug-fixes, or development */
#define H5_VERS_SUBRELEASE "" /* For pre-releases like snap0 */
/* Empty string for real releases. */
-#define H5_VERS_INFO "HDF5 library version: 1.9.7" /* Full version string */
+#define H5_VERS_INFO "HDF5 library version: 1.9.8" /* Full version string */
#define H5check() H5check_version(H5_VERS_MAJOR,H5_VERS_MINOR, \
H5_VERS_RELEASE)
diff --git a/src/H5system.c b/src/H5system.c
index 4a49d71..6a8a91a 100644
--- a/src/H5system.c
+++ b/src/H5system.c
@@ -497,7 +497,7 @@ HDstrtoll(const char *s, const char **rest, int base)
if (sign>0) {
acc = ((uint64_t)1<<(8*sizeof(int64_t)-1))-1;
} else {
- acc = (uint64_t)1<<(8*sizeof(int64_t)-1);
+ acc = (int64_t)((uint64_t)1<<(8*sizeof(int64_t)-1));
}
errno = ERANGE;
}
@@ -622,9 +622,9 @@ H5_build_extpath(const char *name, char **extpath/*out*/)
if ((full_path=H5MM_strdup(name)) == NULL)
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed")
} else { /* relative pathname */
- if ((cwdpath=H5MM_malloc(MAX_PATH_LEN)) == NULL)
+ if (NULL == (cwdpath = (char *)H5MM_malloc(MAX_PATH_LEN)))
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed")
- if ((new_name=H5MM_strdup(name)) == NULL)
+ if (NULL == (new_name = (char *)H5MM_strdup(name)))
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed")
/*
@@ -652,7 +652,7 @@ H5_build_extpath(const char *name, char **extpath/*out*/)
cwdlen = HDstrlen(cwdpath);
HDassert(cwdlen);
path_len = cwdlen + HDstrlen(new_name) + 2;
- if ((full_path=H5MM_malloc(path_len)) == NULL)
+ if (NULL == (full_path = (char *)H5MM_malloc(path_len)))
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed")
HDstrcpy(full_path, cwdpath);
diff --git a/src/H5trace.c b/src/H5trace.c
index 926a590..4a42f0b 100644
--- a/src/H5trace.c
+++ b/src/H5trace.c
@@ -319,6 +319,9 @@ H5_trace (const double *returning, const char *func, const char *type, ...)
case H5D_ALLOC_TIME_INCR:
fprintf (out, "H5D_ALLOC_TIME_INCR");
break;
+ default:
+ fprintf (out, "%ld", (long)alloc_time);
+ break;
}
}
break;
@@ -368,6 +371,9 @@ H5_trace (const double *returning, const char *func, const char *type, ...)
case H5D_FILL_TIME_IFSET:
fprintf (out, "H5D_FILL_TIME_IFSET");
break;
+ default:
+ fprintf (out, "%ld", (long)fill_time);
+ break;
}
}
break;
@@ -394,6 +400,9 @@ H5_trace (const double *returning, const char *func, const char *type, ...)
case H5D_FILL_VALUE_USER_DEFINED:
fprintf (out, "H5D_FILL_VALUE_USER_DEFINED");
break;
+ default:
+ fprintf (out, "%ld", (long)fill_value);
+ break;
}
}
break;
@@ -619,6 +628,9 @@ H5_trace (const double *returning, const char *func, const char *type, ...)
case H5F_CLOSE_STRONG:
fprintf(out, "H5F_CLOSE_STRONG");
break;
+ default:
+ fprintf(out, "%ld", (long)degree);
+ break;
}
}
break;
@@ -643,6 +655,9 @@ H5_trace (const double *returning, const char *func, const char *type, ...)
fprintf(out, "H5F_SCOPE_DOWN "
"/*FOR INTERNAL USE ONLY!*/");
break;
+ default:
+ fprintf(out, "%ld", (long)scope);
+ break;
}
}
break;
@@ -663,6 +678,9 @@ H5_trace (const double *returning, const char *func, const char *type, ...)
case H5F_LIBVER_LATEST:
fprintf(out, "H5F_LIBVER_LATEST");
break;
+ default:
+ fprintf(out, "%ld", (long)libver_vers);
+ break;
}
}
break;
@@ -928,7 +946,7 @@ H5_trace (const double *returning, const char *func, const char *type, ...)
/* Save the rank of simple data spaces for arrays */
/* This may generate recursive call to the library... -QAK */
{
- H5S_t *space = H5I_object(obj);
+ H5S_t *space = (H5S_t *)H5I_object(obj);
if (H5S_SIMPLE==H5S_GET_EXTENT_TYPE(space)) {
asize[argno] = H5S_GET_EXTENT_NDIMS(space);
}
@@ -997,6 +1015,9 @@ H5_trace (const double *returning, const char *func, const char *type, ...)
case H5_INDEX_N:
fprintf(out, "H5_INDEX_N");
break;
+ default:
+ fprintf(out, "%ld", (long)idx_type);
+ break;
} /* end switch */
} /* end else */
break;
@@ -1026,6 +1047,9 @@ H5_trace (const double *returning, const char *func, const char *type, ...)
case H5_ITER_N:
fprintf(out, "H5_ITER_N");
break;
+ default:
+ fprintf(out, "%ld", (long)order);
+ break;
} /* end switch */
} /* end else */
break;
@@ -1169,6 +1193,12 @@ H5_trace (const double *returning, const char *func, const char *type, ...)
case H5L_TYPE_SOFT:
fprintf(out, "H5L_TYPE_SOFT");
break;
+ case H5L_TYPE_EXTERNAL:
+ fprintf(out, "H5L_TYPE_EXTERNAL");
+ break;
+ case H5L_TYPE_MAX:
+ fprintf(out, "H5L_TYPE_MAX");
+ break;
default:
fprintf(out, "%ld", (long)link_type);
break;
@@ -1286,6 +1316,9 @@ H5_trace (const double *returning, const char *func, const char *type, ...)
else {
H5O_type_t objtype = va_arg(ap, H5O_type_t); /*lint !e64 Type mismatch not really occuring */
switch(objtype) {
+ case H5O_TYPE_UNKNOWN:
+ fprintf(out, "H5O_TYPE_UNKNOWN");
+ break;
case H5O_TYPE_GROUP:
fprintf(out, "H5O_TYPE_GROUP");
break;
@@ -1295,6 +1328,9 @@ H5_trace (const double *returning, const char *func, const char *type, ...)
case H5O_TYPE_NAMED_DATATYPE:
fprintf(out, "H5O_TYPE_NAMED_DATATYPE");
break;
+ case H5O_TYPE_NTYPES:
+ fprintf(out, "H5O_TYPE_TYPES");
+ break;
default:
fprintf(out, "BADTYPE(%ld)", (long)objtype);
break;
@@ -1317,13 +1353,13 @@ H5_trace (const double *returning, const char *func, const char *type, ...)
}
} else {
hid_t pclass_id = va_arg (ap, hid_t);
- char *class_name=NULL;
+ char *class_name = NULL;
H5P_genclass_t *pclass;
/* Get the class name and print it */
/* This may generate recursive call to the library... -QAK */
- if(NULL != (pclass = H5I_object(pclass_id)) &&
- (class_name=H5P_get_class_name(pclass))!=NULL) {
+ if(NULL != (pclass = (H5P_genclass_t *)H5I_object(pclass_id)) &&
+ (class_name = H5P_get_class_name(pclass))!=NULL) {
fprintf (out, class_name);
H5MM_xfree(class_name);
} /* end if */
diff --git a/src/Makefile.in b/src/Makefile.in
index f11df74..8554d49 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -404,7 +404,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog
# Add libtool shared library version numbers to the HDF5 library
# See libtool versioning documentation online.
LT_VERS_INTERFACE = 5
-LT_VERS_REVISION = 8
+LT_VERS_REVISION = 9
LT_VERS_AGE = 0
H5detect_CFLAGS = -g
diff --git a/test/fillval.c b/test/fillval.c
index 29f37b4..e92872a 100644
--- a/test/fillval.c
+++ b/test/fillval.c
@@ -1513,7 +1513,7 @@ test_extend_cases(hid_t file, hid_t _dcpl, const char *dset_name,
/* Initialize dataspace & hyperslab info */
for(i = 0, nelmts = 1; i < 5; i++) {
- hs_size[i] = start_size[i] / 2;
+ hs_size[i] = (start_size[i] + 1) / 2;
hs_offset[i] = 0;
hs_stride[i] = 2;
nelmts *= hs_size[i];
@@ -1532,7 +1532,7 @@ test_extend_cases(hid_t file, hid_t _dcpl, const char *dset_name,
/* Select elements within file dataspace */
if(H5Sselect_hyperslab(fspace, H5S_SELECT_SET, hs_offset, hs_stride, hs_size, NULL) < 0) TEST_ERROR
- /* Write to all odd data locations */
+ /* Write to all even data locations */
if(H5Dwrite(dset, dtype, mspace, fspace, H5P_DEFAULT, buf) < 0) TEST_ERROR
/* Close memory dataspace */
@@ -1721,6 +1721,9 @@ test_extend_cases(hid_t file, hid_t _dcpl, const char *dset_name,
/* Verify the element read in is the value written out */
if(verify_rtn((unsigned)__LINE__, hs_offset, val_rd, buf) < 0) TEST_ERROR
+
+ /* Set the element back to fillval */
+ if(H5Dwrite(dset, dtype, mspace, fspace, H5P_DEFAULT, fillval) < 0) TEST_ERROR
/* Release any VL components */
if(H5Dvlen_reclaim(dtype, mspace, H5P_DEFAULT, val_rd) < 0) TEST_ERROR
diff --git a/test/ohdr.c b/test/ohdr.c
index 08fd860..0a25993 100644
--- a/test/ohdr.c
+++ b/test/ohdr.c
@@ -153,7 +153,7 @@ main(void)
*/
TESTING("object header overflow in memory");
for(i = 0; i < 40; i++) {
- time_new = (i + 1) * 1000 + 1;
+ time_new = (i + 1) * 1000 + 1000000;
if(H5O_msg_create(&oh_loc, H5O_MTIME_ID, 0, 0, &time_new, H5P_DATASET_XFER_DEFAULT) < 0)
FAIL_STACK_ERROR
} /* end for */
diff --git a/tools/h52jpeg/Makefile.am b/tools/h52jpeg/Makefile.am
index b3ccede..05ea153 100644
--- a/tools/h52jpeg/Makefile.am
+++ b/tools/h52jpeg/Makefile.am
@@ -23,23 +23,24 @@ include $(top_srcdir)/config/commence.am
# Include src and tools/lib directories
INCLUDES=-I$(top_srcdir)/src -I$(top_srcdir)/tools/lib -I$(top_srcdir)/hl/src
-# These are our main targets, the tools
+# These are our main targets
+TEST_PROG=h52jpegtst
+TEST_SCRIPT=$(srcdir)/h52jpeg.sh
-#TEST_SCRIPT=$(srcdir)/h52jpeg.sh
check_SCRIPTS=$(TEST_SCRIPT)
+check_PROGRAMS=$(TEST_PROG)
bin_PROGRAMS=h52jpeg
noinst_PROGRAMS=h52jpegtst
h52jpeg_SOURCES=h52jpeg.c
-
h52jpegtst_SOURCES=h52jpegtst.c
# Programs all depend on the hdf5 library, the tools library, and the HL
# library.
-LDADD=$(LIBH5_HL) $(LIBH5TOOLS) $(LIBHDF5)
+LDADD=$(LIBH5_HL) $(LIBH5TOOLS) $(LIBHDF5) -ljpeg
CHECK_CLEANFILES+=*.h5
-CHECK_CLEANFILES+=*.jpg
+CHECK_CLEANFILES+=*.jpeg
include $(top_srcdir)/config/conclude.am
diff --git a/tools/h52jpeg/Makefile.in b/tools/h52jpeg/Makefile.in
index f2b7ea6..606ee95 100644
--- a/tools/h52jpeg/Makefile.in
+++ b/tools/h52jpeg/Makefile.in
@@ -52,9 +52,10 @@ host_triplet = @host@
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/config/commence.am \
$(top_srcdir)/config/conclude.am
+check_PROGRAMS = $(am__EXEEXT_1)
bin_PROGRAMS = h52jpeg$(EXEEXT)
noinst_PROGRAMS = h52jpegtst$(EXEEXT)
-TESTS = $(am__EXEEXT_1)
+TESTS = $(check_PROGRAMS) $(check_SCRIPTS)
subdir = tools/h52jpeg
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
@@ -65,6 +66,7 @@ CONFIG_HEADER = $(top_builddir)/src/H5config.h
CONFIG_CLEAN_FILES =
am__installdirs = "$(DESTDIR)$(bindir)"
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+am__EXEEXT_1 = h52jpegtst$(EXEEXT)
PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
am_h52jpeg_OBJECTS = h52jpeg.$(OBJEXT)
h52jpeg_OBJECTS = $(am_h52jpeg_OBJECTS)
@@ -90,7 +92,6 @@ SOURCES = $(h52jpeg_SOURCES) $(h52jpegtst_SOURCES)
DIST_SOURCES = $(h52jpeg_SOURCES) $(h52jpegtst_SOURCES)
ETAGS = etags
CTAGS = ctags
-am__EXEEXT_1 =
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = /home1/packages/automake/automake-1.9.6/bin/aclocal-1.9 -I /afs/ncsa/projects/hdf/packages/libtool_1.5.14/Linux_2.4/share/aclocal
ADD_PARALLEL_FILES = @ADD_PARALLEL_FILES@
@@ -338,21 +339,21 @@ TRACE = perl $(top_srcdir)/bin/trace
# .chkexe files are used to mark tests that have run successfully.
# .chklog files are output from those tests.
# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 *.jpg
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 *.jpeg
# Include src and tools/lib directories
INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/tools/lib -I$(top_srcdir)/hl/src
-# These are our main targets, the tools
-
-#TEST_SCRIPT=$(srcdir)/h52jpeg.sh
+# These are our main targets
+TEST_PROG = h52jpegtst
+TEST_SCRIPT = $(srcdir)/h52jpeg.sh
check_SCRIPTS = $(TEST_SCRIPT)
h52jpeg_SOURCES = h52jpeg.c
h52jpegtst_SOURCES = h52jpegtst.c
# Programs all depend on the hdf5 library, the tools library, and the HL
# library.
-LDADD = $(LIBH5_HL) $(LIBH5TOOLS) $(LIBHDF5)
+LDADD = $(LIBH5_HL) $(LIBH5TOOLS) $(LIBHDF5) -ljpeg
# Automake needs to be taught how to build lib, progs, and tests targets.
# These will be filled in automatically for the most part (e.g.,
@@ -431,6 +432,13 @@ clean-binPROGRAMS:
rm -f $$p $$f ; \
done
+clean-checkPROGRAMS:
+ @list='$(check_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
+
clean-noinstPROGRAMS:
@list='$(noinst_PROGRAMS)'; for p in $$list; do \
f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
@@ -554,7 +562,7 @@ distdir: $(DISTFILES)
fi; \
done
check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) $(check_SCRIPTS)
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(check_SCRIPTS)
$(MAKE) $(AM_MAKEFLAGS) check-TESTS
check: check-am
all-am: Makefile $(PROGRAMS) all-local
@@ -588,8 +596,8 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
-clean-am: clean-binPROGRAMS clean-generic clean-libtool \
- clean-noinstPROGRAMS mostlyclean-am
+clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \
+ clean-libtool clean-noinstPROGRAMS mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
@@ -648,19 +656,20 @@ uninstall-am: uninstall-binPROGRAMS
.MAKE: install-am install-strip
.PHONY: CTAGS GTAGS all all-am all-local check check-TESTS check-am \
- clean clean-binPROGRAMS clean-generic clean-libtool \
- clean-noinstPROGRAMS ctags distclean distclean-compile \
- distclean-generic distclean-libtool distclean-tags distdir dvi \
- dvi-am html html-am info info-am install install-am \
- install-binPROGRAMS install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- mostlyclean-local pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-binPROGRAMS
+ clean clean-binPROGRAMS clean-checkPROGRAMS clean-generic \
+ clean-libtool clean-noinstPROGRAMS ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-binPROGRAMS install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \
+ pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-binPROGRAMS
# List all build rules defined by HDF5 Makefiles as "PHONY" targets here.
diff --git a/tools/h52jpeg/h52jpeg.c b/tools/h52jpeg/h52jpeg.c
index 56a7498..84fa145 100644
--- a/tools/h52jpeg/h52jpeg.c
+++ b/tools/h52jpeg/h52jpeg.c
@@ -13,15 +13,21 @@
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/* From jpeg documentation
+ *
+ * Include file for users of JPEG library.
+ * You will need to have included system headers that define at least
+ * the typedefs FILE and size_t before you can include jpeglib.h.
+ * (stdio.h is sufficient on ANSI-conforming systems.)
+ * You may also wish to include "jerror.h".
+ */
+
+#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
-
-
-#if 0
#include "jpeglib.h"
#include "jerror.h"
-#endif
#include "H5private.h"
#include "h5tools.h"
@@ -30,7 +36,6 @@
#include "H5IMpublic.h"
-
const char *progname = "h52jpeg";
int d_status = EXIT_SUCCESS;
@@ -54,14 +59,15 @@ typedef struct
const char *image_name;
int image_type;
int verbose;
-
-
} h52jpeg_opt_t;
/* prototypes */
static void usage(const char *prog);
-static int h52jpeg(h52jpeg_opt_t options);
+static int h52jpeg(h52jpeg_opt_t opt);
+static void make_jpeg_name( const char* template_name, const char* image_name, char* jpeg_name);
+static int do_image(hid_t fid, h52jpeg_opt_t opt, const char* image_name);
+static void write_JPEG_file(char *filename, JSAMPLE *image_buffer, int image_height, int image_width, int planes);
/*-------------------------------------------------------------------------
@@ -75,19 +81,19 @@ static int h52jpeg(h52jpeg_opt_t options);
*
*-------------------------------------------------------------------------
*/
-int main(int argc, char **argv)
+int main(int argc, const char *argv[])
{
- h52jpeg_opt_t options;
+ h52jpeg_opt_t opt;
const char *image_type = NULL;
- int opt;
+ int op;
/* initialze options to 0 */
- memset(&options,0,sizeof(h52jpeg_opt_t));
+ memset(&opt,0,sizeof(h52jpeg_opt_t));
/* parse command line options */
- while ((opt = get_option(argc, argv, s_opts, l_opts)) != EOF)
+ while ((op = get_option(argc, argv, s_opts, l_opts)) != EOF)
{
- switch ((char)opt)
+ switch ((char)op)
{
case 'h':
usage(progname);
@@ -96,13 +102,29 @@ int main(int argc, char **argv)
print_version(progname);
exit(EXIT_SUCCESS);
case 'v':
- options.verbose = 1;
+ opt.verbose = 1;
break;
case 'i':
- options.image_name = opt_arg;
+ opt.image_name = opt_arg;
break;
case 't':
image_type = opt_arg;
+
+
+ if ( HDstrcmp( image_type, "gray" ) == 0 )
+ {
+ opt.image_type = 0;
+ }
+ else if ( HDstrcmp( image_type, "true" ) == 0 )
+ {
+ opt.image_type = 1;
+ }
+ else
+ {
+ printf("<%s> is an invalid image type\n", image_type);
+ exit(EXIT_FAILURE);
+ }
+
break;
} /* switch */
@@ -113,8 +135,8 @@ int main(int argc, char **argv)
/* check for file names to be processed */
if ( argv[ opt_ind ] != NULL && argv[ opt_ind + 1 ] != NULL )
{
- options.file_name = argv[ opt_ind ];
- options.template_name = argv[ opt_ind + 1 ];
+ opt.file_name = argv[ opt_ind ];
+ opt.template_name = argv[ opt_ind + 1 ];
}
else
@@ -123,7 +145,7 @@ int main(int argc, char **argv)
exit(EXIT_FAILURE);
}
- if ( h52jpeg(options) < 0 )
+ if ( h52jpeg(opt) < 0 )
return 1;
@@ -149,20 +171,20 @@ static void usage(const char *prog)
printf(" OPTIONS\n");
printf(" -h, --help Print a usage message and exit\n");
printf(" -v, --verbose Verbose mode, print object information\n");
- printf(" -V, --version Print version number and exit\n");
+ printf(" -V, --version Print HDF5 version number and exit\n");
printf(" -i, --image Image name (full path in HDF5 file)\n");
- printf(" -t T, --type=T Type of image (8bit or 24bit)\n");
+ printf(" -t T, --type=T Type of image (graycolor or truecolor)\n");
printf("\n");
- printf(" T - is a string, either <8bit> or <24bit>\n");
+ printf(" T - is a string, either <gray> or <true>\n");
}
/*-------------------------------------------------------------------------
* Function: h52jpeg
*
- * Parameters: options at command line
+ * Parameters: OPT, options at command line
*
* Purpose: traverse the HDF5 file, save HDF5 images to jpeg files, translate
* 2D datasets of classes H5T_INTEGER and H5T_FLOAT to image data and save them
@@ -174,8 +196,114 @@ static void usage(const char *prog)
*/
static int h52jpeg(h52jpeg_opt_t opt)
{
- hid_t fid;
- trav_table_t *travt = NULL;
+ hid_t fid;
+ trav_table_t *travt = NULL;
+ size_t i;
+
+
+ /* open the HDF5 file */
+ if (( fid = h5tools_fopen(opt.file_name, H5F_ACC_RDONLY, H5P_DEFAULT, NULL, NULL, (size_t)0)) < 0)
+ {
+ error_msg(progname, "cannot open file <%s>\n", opt.file_name );
+ return -1;
+ }
+
+ /*-------------------------------------------------------------------------
+ * image/dataset name was specified at command line
+ *-------------------------------------------------------------------------
+ */
+
+ if ( opt.image_name )
+ {
+
+ /* read HDF5 image/dataset, save jpeg image */
+ do_image(fid, opt, opt.image_name);
+
+ }
+
+ /*-------------------------------------------------------------------------
+ * image name was not specified; traverse the file
+ *-------------------------------------------------------------------------
+ */
+
+ else
+
+ {
+
+ /* initialize traversal table */
+ trav_table_init(&travt);
+
+ /* get the list of objects in the file */
+ if ( h5trav_gettable(fid, travt) < 0 )
+ goto out;
+
+ /* search for images/datasets in file */
+ for ( i = 0; i < travt->nobjs; i++)
+ {
+
+ switch ( travt->objs[i].type )
+ {
+ default:
+ goto out;
+
+ case H5TRAV_TYPE_GROUP:
+ case H5TRAV_TYPE_NAMED_DATATYPE:
+ case H5TRAV_TYPE_LINK:
+ case H5TRAV_TYPE_UDLINK:
+
+ break;
+
+ case H5TRAV_TYPE_DATASET:
+
+ /* read HDF5 image/dataset, save jpeg image */
+ do_image(fid, opt, travt->objs[i].name);
+
+ break; /* H5TRAV_TYPE_DATASET */
+
+ } /* switch */
+
+ } /* i */
+
+
+ /* free table */
+ trav_table_free(travt);
+
+ } /* image_name */
+
+
+ /* close */
+ if ( H5Fclose(fid) < 0 )
+ return -1;
+
+ return 0;
+
+out:
+ H5E_BEGIN_TRY
+ {
+ H5Fclose(fid);
+
+ } H5E_END_TRY;
+
+
+ return -1;
+}
+
+
+
+/*-------------------------------------------------------------------------
+ * Function: do_image
+ *
+ * Parameters: HDF5 file id, command line options, an image name
+ *
+ * Purpose: read HDF5 image/dataset, save jpeg image
+ *
+ * Return: int
+ *
+ *-------------------------------------------------------------------------
+ */
+static
+int do_image(hid_t fid, h52jpeg_opt_t opt, const char* image_name)
+{
hsize_t width;
hsize_t height;
hsize_t planes;
@@ -191,187 +319,323 @@ static int h52jpeg(h52jpeg_opt_t opt)
hsize_t maxdim[H5S_MAX_RANK];
size_t size;
hsize_t nelmts;
- char* name;
- size_t i;
+ const char* name;
int j;
int done;
char jpeg_name[1024];
- /* open the HDF5 file */
- if (( fid = h5tools_fopen(opt.file_name, H5F_ACC_RDONLY, H5P_DEFAULT, NULL, NULL, (size_t)0)) < 0)
+ name = image_name;
+
+ /* build the jpeg file name */
+ make_jpeg_name( opt.template_name, image_name, jpeg_name);
+
+ done = 0;
+
+ if ( opt.verbose)
{
- error_msg(progname, "cannot open file <%s>\n", opt.file_name );
- return -1;
+ printf("%s ...", name );
}
- /* initialize traversal table */
- trav_table_init(&travt);
+ /*-------------------------------------------------------------------------
+ * HDF5 Image
+ *-------------------------------------------------------------------------
+ */
- /* get the list of objects in the file */
- if ( h5trav_gettable(fid, travt) < 0 )
- goto out;
-
- /* search for images/datasets in file */
- for ( i = 0; i < travt->nobjs; i++)
+ if ( H5IMis_image( fid, name ) )
{
- switch ( travt->objs[i].type )
- {
- default:
+ if ( H5IMget_image_info( fid, name, &width, &height, &planes, interlace, &npals ) < 0 )
goto out;
+
+ if (NULL == (buf = HDmalloc( (size_t)width * (size_t)height * (size_t)planes )))
+ goto out;
+
+ if ( H5IMread_image( fid, name, buf ) < 0 )
+ goto out;
+
+ /* write the jpeg file */
+ /* write the jpeg file */
+ write_JPEG_file (jpeg_name,
+ buf,
+ (int) height,
+ (int) width,
+ (int) planes);
+
+
+ free( buf );
+ buf = NULL;
+
+ done = 1;
+
+
+
+ }
+
+ /*-------------------------------------------------------------------------
+ * regular dataset
+ *-------------------------------------------------------------------------
+ */
+
+ else
+ {
+
+ if (( did = H5Dopen2( fid, name, H5P_DEFAULT )) < 0)
+ goto out;
+ if (( sid = H5Dget_space( did )) < 0 )
+ goto out;
+ if (( rank = H5Sget_simple_extent_ndims(sid)) < 0 )
+ goto out;
+ if (( tid = H5Dget_type( did )) < 0 )
+ goto out;
+ if (( tclass = H5Tget_class(tid)) < 0)
+ goto out;
+
+ if ( ( H5T_FLOAT == tclass || H5T_INTEGER == tclass) &&
+ ( rank == 2 ) )
+ {
- case H5TRAV_TYPE_GROUP:
- case H5TRAV_TYPE_NAMED_DATATYPE:
- case H5TRAV_TYPE_LINK:
- case H5TRAV_TYPE_UDLINK:
-
- break;
+ if ( H5Sget_simple_extent_dims( sid, dims, maxdim ) < 0 )
+ goto out;
- case H5TRAV_TYPE_DATASET:
-
- name = travt->objs[i].name;
- strcpy( jpeg_name, opt.template_name );
- strcat( jpeg_name, name );
-
- done = 0;
-
- if ( opt.verbose)
- printf("%s ...", name );
+ size = H5Tget_size( tid );
- /*-------------------------------------------------------------------------
- * HDF5 Image
- *-------------------------------------------------------------------------
- */
-
- if ( H5IMis_image( fid, name ) )
+ nelmts = 1;
+ for ( j = 0; j < rank; j++)
{
-
- if ( H5IMget_image_info( fid, name, &width, &height, &planes, interlace, &npals ) < 0 )
- goto out;
-
- if (NULL == (buf = HDmalloc( (size_t)width * (size_t)height * (size_t)planes )))
- goto out;
-
- if ( H5IMread_image( fid, name, buf ) < 0 )
- goto out;
-
- free( buf );
- buf = NULL;
-
-
-
+ nelmts *= dims[j];
}
+
+ if ( NULL == (buf = HDmalloc( (size_t)nelmts * size )))
+ goto out;
+ if ( H5Dread(did,tid,H5S_ALL,H5S_ALL,H5P_DEFAULT,buf) < 0 )
+ goto out;
- /*-------------------------------------------------------------------------
- * regular dataset
- *-------------------------------------------------------------------------
- */
+ height = dims[0];
+ width = dims[1];
- else
- {
+ if ( opt.image_type == 0 )
+ planes = 1;
+ else if ( opt.image_type == 1 )
+ planes = 3;
- if (( did = H5Dopen2( fid, name, H5P_DEFAULT )) < 0)
- goto out;
- if (( sid = H5Dget_space( did )) < 0 )
- goto out;
- if (( rank = H5Sget_simple_extent_ndims(sid)) < 0 )
- goto out;
- if (( tid = H5Dget_type( did )) < 0 )
- goto out;
- if (( tclass = H5Tget_class(tid)) < 0)
- goto out;
-
- if ( ( H5T_FLOAT == tclass || H5T_INTEGER == tclass) &&
- ( rank == 2 ) )
- {
-
- if ( H5Sget_simple_extent_dims( sid, dims, maxdim ) < 0 )
- goto out;
-
- size = H5Tget_size( tid );
-
- nelmts = 1;
- for ( j = 0; j < rank; j++)
- {
- nelmts *= dims[j];
- }
-
- if ( NULL == (buf = HDmalloc( (size_t)nelmts * size )))
- goto out;
- if ( H5Dread(did,tid,H5S_ALL,H5S_ALL,H5P_DEFAULT,buf) < 0 )
- goto out;
-
-
- free( buf );
- buf = NULL;
-
- }
-
-
-
- H5Sclose(sid);
- H5Tclose(tid);
- H5Dclose(did);
-
-
-
-
- } /* else */
-
-
- if ( opt.verbose)
- {
- if ( done )
- {
- printf("saved to %s\n", jpeg_name );
- }
- else
- {
- printf("\n");
- }
-
- }
+
+ free( buf );
+ buf = NULL;
-
- break; /* H5TRAV_TYPE_DATASET */
-
-
-
- } /* switch */
+ }
- } /* i */
-
-
-
- /* free table */
- trav_table_free(travt);
+ H5Sclose(sid);
+ H5Tclose(tid);
+ H5Dclose(did);
+
+
+
+
+ } /* else */
- /* close */
- if ( H5Fclose(fid) < 0 )
- return -1;
+ if ( opt.verbose)
+ {
+ if ( done )
+ {
+ printf("saved to %s\n", jpeg_name );
+ }
+ else
+ {
+ printf("\n");
+ }
+
+ }
return 0;
out:
H5E_BEGIN_TRY
{
-
+
H5Sclose(sid);
H5Tclose(tid);
H5Dclose(did);
- H5Fclose(fid);
} H5E_END_TRY;
-
+
if ( buf != NULL )
free( buf );
return -1;
+
}
+/*-------------------------------------------------------------------------
+ * Function: make_jpeg_name
+ *
+ * Parameters: template name (IN), image name (IN), jpeg name (IN/OUT)
+ *
+ * Purpose: build a name for the jpeg image file upon a template name
+ * and the HDF5 image name
+ *
+ * Return: void
+ *
+ *-------------------------------------------------------------------------
+ */
+static
+void make_jpeg_name( const char* template_name, const char* image_name, char* jpeg_name)
+{
+ int j;
+ int len;
+
+ HDstrcpy( jpeg_name, template_name );
+ HDstrcat( jpeg_name, image_name );
+ HDstrcat( jpeg_name, ".jpeg" );
+ len = HDstrlen( jpeg_name);
+
+ /* HDF5 path names might contain '/', replace with '_' */
+ for (j = 0; j < len; j++)
+ {
+ if (jpeg_name[j] == '/')
+ {
+ jpeg_name[j] = '_';
+ }
+ }
+
+}
+
+/*
+ * Sample routine for JPEG compression.
+ *
+ * IMAGE DATA FORMATS:
+ *
+ * The standard input image format is a rectangular array of pixels, with
+ * each pixel having the same number of "component" values (color channels).
+ * Each pixel row is an array of JSAMPLEs (which typically are unsigned chars).
+ * If you are working with color data, then the color values for each pixel
+ * must be adjacent in the row; for example, R,G,B,R,G,B,R,G,B,... for 24-bit
+ * RGB color.
+ *
+ * For this example, we'll assume that this data structure matches the way
+ * our application has stored the image in memory, so we can just pass a
+ * pointer to our image buffer.
+ */
+
+static
+void write_JPEG_file(char *filename,
+ JSAMPLE *image_buffer, /* Points to large array of R,G,B-order data */
+ int image_height, /* Number of rows in image */
+ int image_width, /* Number of columns in image */
+ int planes) /* # of color components per pixel */
+{
+ /* This struct contains the JPEG compression parameters and pointers to
+ * working space (which is allocated as needed by the JPEG library).
+ * It is possible to have several such structures, representing multiple
+ * compression/decompression processes, in existence at once. We refer
+ * to any one struct (and its associated working data) as a "JPEG object".
+ */
+ struct jpeg_compress_struct cinfo;
+ /* This struct represents a JPEG error handler. It is declared separately
+ * because applications often want to supply a specialized error handler
+ * (see the second half of this file for an example). But here we just
+ * take the easy way out and use the standard error handler, which will
+ * print a message on stderr and call exit() if compression fails.
+ * Note that this struct must live as long as the main JPEG parameter
+ * struct, to avoid dangling-pointer problems.
+ */
+ struct jpeg_error_mgr jerr;
+ /* More stuff */
+ FILE * outfile; /* target file */
+ JSAMPROW row_pointer[1]; /* pointer to JSAMPLE row[s] */
+ int row_stride; /* physical row width in image buffer */
+
+ /* Step 1: allocate and initialize JPEG compression object */
+
+ /* We have to set up the error handler first, in case the initialization
+ * step fails. (Unlikely, but it could happen if you are out of memory.)
+ * This routine fills in the contents of struct jerr, and returns jerr's
+ * address which we place into the link field in cinfo.
+ */
+ cinfo.err = jpeg_std_error(&jerr);
+ /* Now we can initialize the JPEG compression object. */
+ jpeg_create_compress(&cinfo);
+
+ /* Step 2: specify data destination (eg, a file) */
+ /* Note: steps 2 and 3 can be done in either order. */
+
+ /* Here we use the library-supplied code to send compressed data to a
+ * stdio stream. You can also write your own code to do something else.
+ * VERY IMPORTANT: use "b" option to fopen() if you are on a machine that
+ * requires it in order to write binary files.
+ */
+ if ((outfile = fopen(filename, "wb")) == NULL) {
+ fprintf(stderr, "can't open %s\n", filename);
+ exit(1);
+ }
+ jpeg_stdio_dest(&cinfo, outfile);
+
+ /* Step 3: set parameters for compression */
+
+ /* First we supply a description of the input image.
+ * Four fields of the cinfo struct must be filled in:
+ */
+ cinfo.image_width = image_width; /* image width and height, in pixels */
+ cinfo.image_height = image_height;
+ cinfo.input_components = planes; /* # of color components per pixel */
+
+ /* colorspace of input image */
+ if (planes == 3)
+ cinfo.in_color_space = JCS_RGB;
+ else if (planes == 1)
+ cinfo.in_color_space = JCS_GRAYSCALE;
+
+ /* Now use the library's routine to set default compression parameters.
+ * (You must set at least cinfo.in_color_space before calling this,
+ * since the defaults depend on the source color space.)
+ */
+ jpeg_set_defaults(&cinfo);
+ /* Now you can set any non-default parameters you wish to.
+ * Here we just illustrate the use of quality (quantization table) scaling:
+ */
+ jpeg_set_quality(&cinfo, 100, TRUE /* limit to baseline-JPEG values */);
+
+ /* Step 4: Start compressor */
+
+ /* TRUE ensures that we will write a complete interchange-JPEG file.
+ * Pass TRUE unless you are very sure of what you're doing.
+ */
+ jpeg_start_compress(&cinfo, TRUE);
+
+ /* Step 5: while (scan lines remain to be written) */
+ /* jpeg_write_scanlines(...); */
+
+ /* Here we use the library's state variable cinfo.next_scanline as the
+ * loop counter, so that we don't have to keep track ourselves.
+ * To keep things simple, we pass one scanline per call; you can pass
+ * more if you wish, though.
+ */
+ row_stride = image_width * planes; /* JSAMPLEs per row in image_buffer */
+
+ while (cinfo.next_scanline < cinfo.image_height) {
+ /* jpeg_write_scanlines expects an array of pointers to scanlines.
+ * Here the array is only one element long, but you could pass
+ * more than one scanline at a time if that's more convenient.
+ */
+ row_pointer[0] = & image_buffer[cinfo.next_scanline * row_stride];
+ (void) jpeg_write_scanlines(&cinfo, row_pointer, 1);
+ }
+
+ /* Step 6: Finish compression */
+
+ jpeg_finish_compress(&cinfo);
+ /* After finish_compress, we can close the output file. */
+ fclose(outfile);
+
+ /* Step 7: release JPEG compression object */
+
+ /* This is an important step since it will release a good deal of memory. */
+ jpeg_destroy_compress(&cinfo);
+
+ /* And we're done! */
+}
diff --git a/tools/h52jpeg/h52jpeg.sh b/tools/h52jpeg/h52jpeg.sh
new file mode 100644
index 0000000..b1e1109
--- /dev/null
+++ b/tools/h52jpeg/h52jpeg.sh
@@ -0,0 +1,87 @@
+#! /bin/sh
+#
+# Copyright by The HDF Group.
+# Copyright by the Board of Trustees of the University of Illinois.
+# All rights reserved.
+#
+# This file is part of HDF5. The full HDF5 copyright notice, including
+# terms governing use, modification, and redistribution, is contained in
+# the files COPYING and Copyright.html. COPYING can be found at the root
+# of the source code distribution tree; Copyright.html can be found at the
+# root level of an installed copy of the electronic HDF5 document set and
+# is linked from the top-level documents page. It can also be found at
+# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have
+# access to either file, you may request a copy from help@hdfgroup.org.
+#
+# Tests for the h52jpeg tool
+# Pedro Vicente Nunes (THG), 6/16/2008
+
+TOOL=h52jpeg # The tool name
+TOOL_BIN=`pwd`/$TOOL # The path of the tool binary
+
+SRCFILE=h52jpegtst.h5
+INDIR=$srcdir/testfiles
+TESTFILE="$INDIR/$SRCFILE"
+
+nerrors=0
+
+
+# Print a line-line message left justified in a field of 70 characters
+# beginning with the word "Testing".
+#
+TESTING() {
+ SPACES=" "
+ echo "Testing $* $SPACES" | cut -c1-70 | tr -d '\012'
+}
+
+# Just call the tool binary with the command line parameters
+# and use the return value of main to print FAILED or PASSED
+#
+TOOLTEST()
+{
+ # Run test.
+ # Tflops interprets "$@" as "" when no parameter is given (e.g., the
+ # case of missing file name). Changed it to use $@ till Tflops fixes it.
+
+ if [ "`uname -s`" = "TFLOPS O/S" ]; then
+ $RUNSERIAL $TOOL_BIN $@
+ else
+ $RUNSERIAL $TOOL_BIN "$@"
+ fi
+
+ RET=$?
+ if [ $RET != 0 ] ; then
+ echo "*FAILED*"
+ nerrors="`expr $nerrors + 1`"
+ else
+ echo " PASSED"
+ fi
+}
+
+
+
+##############################################################################
+# The tests
+# To avoid the printing of the complete full path of the test file, that hides
+# all the other parameters for long paths, the printing of the command line
+# is done first in
+# TESTING with the name only of the test file $TOOL, not its full path $TESTFILE
+##############################################################################
+
+
+# Test for traversing the file and export all images/datasets to jpeg
+TESTING $TOOL $SRCFILE myjpeg1
+TOOLTEST $TESTFILE myjpeg1
+
+# Test for reading an image path
+TESTING $TOOL -i image8bit $SRCFILE myjpeg2
+TOOLTEST -i image8bit $TESTFILE myjpeg2
+
+
+
+if test $nerrors -eq 0 ; then
+ echo "All $TOOL tests passed."
+fi
+
+exit $nerrors
+
diff --git a/tools/h52jpeg/h52jpegtst.c b/tools/h52jpeg/h52jpegtst.c
index f3e13de..3a4b277 100644
--- a/tools/h52jpeg/h52jpegtst.c
+++ b/tools/h52jpeg/h52jpegtst.c
@@ -1,23 +1,181 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by The HDF Group. *
- * Copyright by the Board of Trustees of the University of Illinois. *
- * All rights reserved. *
- * *
- * This file is part of HDF5. The full HDF5 copyright notice, including *
- * terms governing use, modification, and redistribution, is contained in *
- * the files COPYING and Copyright.html. COPYING can be found at the root *
- * of the source code distribution tree; Copyright.html can be found at the *
- * root level of an installed copy of the electronic HDF5 document set and *
- * is linked from the top-level documents page. It can also be found at *
- * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
- * access to either file, you may request a copy from help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-
-int main( void )
-{
-
- return 0;
-
-}
-
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group. *
+ * Copyright by the Board of Trustees of the University of Illinois. *
+ * All rights reserved. *
+ * *
+ * This file is part of HDF5. The full HDF5 copyright notice, including *
+ * terms governing use, modification, and redistribution, is contained in *
+ * the files COPYING and Copyright.html. COPYING can be found at the root *
+ * of the source code distribution tree; Copyright.html can be found at the *
+ * root level of an installed copy of the electronic HDF5 document set and *
+ * is linked from the top-level documents page. It can also be found at *
+ * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+ * access to either file, you may request a copy from help@hdfgroup.org. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+#include "hdf5.h"
+#include "hdf5_hl.h"
+#include <stdlib.h>
+#include <string.h>
+
+#define DATA_FILE1 "image8.txt"
+#define DATA_FILE2 "image24pixel.txt"
+#define IMAGE1_NAME "image8bit"
+#define IMAGE2_NAME "image24bitpixel"
+#define PAL_NAME "palette"
+#define PAL_ENTRIES 256
+
+static int read_data(const char* file_name, hsize_t *width, hsize_t *height );
+unsigned char *gbuf = 0; /* global buffer for image data */
+
+int main( void )
+{
+ hid_t fid; /* HDF5 file identifier */
+ hsize_t width; /* width of image */
+ hsize_t height; /* height of image */
+ unsigned char pal[ PAL_ENTRIES * 3 ]; /* palette array */
+ hsize_t pal_dims[2] = {PAL_ENTRIES,3}; /* palette dimensions */
+ int i, n;
+
+ /* create a new HDF5 file using default properties. */
+ if (( fid = H5Fcreate( "h52jpegtst.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT )) < 0 )
+ return 1;
+
+ /* read first data file */
+ if ( read_data( DATA_FILE1, &width, &height ) < 0 )
+ goto out;
+
+ /* make the image */
+ if ( H5IMmake_image_8bit( fid, IMAGE1_NAME, width, height, gbuf ) < 0 )
+ goto out;
+
+ /*-------------------------------------------------------------------------
+ * define a palette, blue to red tones
+ *-------------------------------------------------------------------------
+ */
+ for ( i=0, n=0; i<PAL_ENTRIES*3; i+=3, n++)
+ {
+ pal[i] =n; /* red */
+ pal[i+1]=0; /* green */
+ pal[i+2]=255-n; /* blue */
+ }
+
+ /* make a palette */
+ if ( H5IMmake_palette( fid, PAL_NAME, pal_dims, pal ) < 0 )
+ goto out;
+
+ /* attach the palette to the image */
+ if ( H5IMlink_palette( fid, IMAGE1_NAME, PAL_NAME ) < 0 )
+ goto out;
+
+ /*-------------------------------------------------------------------------
+ * true color image example with pixel interlace in RGB type
+ *-------------------------------------------------------------------------
+ */
+
+ /* read second data file */
+ if ( read_data( DATA_FILE2, &width, &height ) < 0 )
+ goto out;
+
+ /* make dataset */
+ if ( H5IMmake_image_24bit( fid, IMAGE2_NAME, width, height, "INTERLACE_PIXEL", gbuf ) < 0 )
+ goto out;
+
+ /* close the file. */
+ H5Fclose( fid );
+
+ return 0;
+
+out:
+ printf("Error on return function...Exiting\n");
+ H5Fclose( fid );
+ return 1;
+}
+
+
+/*-------------------------------------------------------------------------
+ * read_data
+ * utility function to read ASCII image data
+ * the files have a header of the type
+ *
+ * components
+ * n
+ * height
+ * n
+ * width
+ * n
+ *
+ * followed by the image data
+ *
+ *-------------------------------------------------------------------------
+ */
+
+static int read_data( const char* fname, /*IN*/
+ hsize_t *width, /*OUT*/
+ hsize_t *height /*OUT*/ )
+{
+ int i, n;
+ int color_planes;
+ char str[20];
+ FILE *f;
+ int w, h;
+ char *srcdir = getenv("srcdir"); /* the source directory */
+ char data_file[512]=""; /* buffer to hold name of existing data file */
+
+/*-------------------------------------------------------------------------
+ * compose the name of the file to open, using "srcdir", if appropriate
+ *-------------------------------------------------------------------------
+ */
+ strcpy(data_file, "");
+ if (srcdir)
+ {
+ strcpy(data_file, srcdir);
+ strcat(data_file, "/");
+ }
+ strcat(data_file,fname);
+
+/*-------------------------------------------------------------------------
+ * read
+ *-------------------------------------------------------------------------
+ */
+
+ f = fopen(data_file, "r");
+ if ( f == NULL )
+ {
+ printf( "Could not open file %s. Try set $srcdir \n", data_file );
+ return -1;
+ }
+
+ fscanf( f, "%s", str );
+ fscanf( f, "%d", &color_planes );
+ fscanf( f, "%s", str );
+ fscanf( f, "%d", &h);
+ fscanf( f, "%s", str );
+ fscanf( f, "%d", &w);
+
+ *width = (hsize_t)w;
+ *height = (hsize_t)h;
+
+ if ( gbuf )
+ {
+ free( gbuf );
+ gbuf=NULL;
+ }
+
+ gbuf = (unsigned char*) malloc (w * h * color_planes * sizeof( unsigned char ));
+
+ for (i = 0; i < h * w * color_planes ; i++)
+ {
+ fscanf( f, "%d",&n );
+ gbuf[i] = (unsigned char)n;
+ }
+ fclose(f);
+
+ return 1;
+
+}
+
+
+
+
+
diff --git a/tools/h52jpeg/image24pixel.txt b/tools/h52jpeg/image24pixel.txt
new file mode 100644
index 0000000..8af73f2
--- /dev/null
+++ b/tools/h52jpeg/image24pixel.txt
@@ -0,0 +1,101475 @@
+components
+3
+height
+149
+width
+227
+48
+47
+45
+48
+47
+45
+49
+48
+46
+50
+49
+47
+53
+49
+46
+53
+49
+46
+54
+50
+47
+54
+50
+47
+56
+51
+47
+56
+51
+47
+58
+51
+45
+58
+51
+45
+58
+51
+45
+58
+51
+45
+58
+51
+45
+58
+51
+45
+58
+50
+47
+57
+49
+46
+57
+49
+46
+56
+48
+45
+56
+48
+45
+57
+49
+46
+57
+49
+46
+58
+50
+47
+56
+48
+45
+56
+48
+45
+56
+48
+45
+56
+48
+45
+56
+48
+45
+56
+48
+45
+56
+48
+45
+56
+48
+45
+54
+46
+43
+54
+46
+43
+54
+46
+43
+53
+45
+42
+53
+45
+42
+52
+44
+41
+52
+44
+41
+52
+44
+41
+52
+44
+41
+52
+44
+41
+52
+44
+41
+52
+44
+41
+52
+44
+41
+52
+44
+41
+52
+44
+41
+50
+45
+41
+47
+42
+36
+47
+44
+37
+47
+44
+37
+48
+45
+38
+49
+46
+39
+50
+47
+40
+51
+48
+41
+51
+48
+41
+54
+51
+44
+54
+51
+44
+55
+52
+45
+56
+53
+46
+56
+53
+46
+57
+54
+47
+58
+55
+48
+58
+55
+46
+65
+58
+48
+66
+60
+48
+68
+62
+50
+70
+64
+52
+73
+65
+52
+74
+66
+53
+75
+67
+54
+75
+67
+54
+77
+68
+53
+77
+68
+53
+79
+67
+51
+78
+66
+50
+79
+67
+51
+79
+67
+51
+80
+68
+52
+82
+69
+53
+82
+63
+49
+89
+63
+50
+98
+64
+52
+110
+66
+53
+125
+69
+54
+139
+72
+56
+153
+71
+57
+163
+70
+55
+175
+71
+58
+184
+71
+57
+190
+69
+58
+197
+71
+59
+199
+71
+62
+202
+71
+63
+203
+72
+64
+208
+69
+64
+231
+70
+76
+237
+67
+76
+235
+68
+75
+235
+69
+73
+238
+67
+73
+239
+66
+68
+241
+62
+66
+244
+61
+65
+248
+59
+65
+247
+58
+64
+244
+58
+63
+240
+60
+63
+233
+63
+64
+226
+64
+62
+215
+63
+60
+203
+65
+55
+187
+61
+47
+181
+64
+46
+181
+64
+46
+180
+63
+45
+180
+63
+45
+179
+64
+45
+178
+63
+45
+175
+64
+45
+173
+64
+44
+170
+65
+44
+166
+65
+45
+162
+66
+44
+159
+64
+42
+155
+65
+41
+152
+64
+42
+150
+65
+44
+148
+62
+45
+146
+63
+47
+146
+63
+47
+145
+62
+46
+145
+62
+44
+144
+61
+43
+146
+60
+43
+146
+60
+43
+148
+63
+43
+148
+63
+43
+148
+61
+42
+148
+61
+42
+148
+61
+42
+149
+62
+43
+150
+63
+44
+150
+64
+47
+150
+63
+54
+149
+62
+53
+151
+61
+50
+159
+63
+49
+169
+66
+51
+179
+68
+51
+188
+68
+52
+191
+68
+52
+185
+63
+48
+181
+65
+50
+172
+70
+56
+158
+72
+59
+135
+72
+57
+111
+65
+50
+84
+56
+42
+67
+51
+38
+61
+53
+50
+57
+53
+52
+57
+53
+52
+55
+51
+50
+55
+49
+49
+54
+48
+48
+53
+48
+45
+53
+48
+45
+55
+50
+47
+55
+50
+47
+55
+50
+47
+54
+49
+46
+54
+49
+45
+53
+48
+44
+53
+48
+44
+52
+49
+44
+47
+47
+45
+46
+48
+45
+47
+47
+45
+47
+47
+45
+48
+47
+45
+48
+47
+45
+50
+46
+45
+50
+46
+45
+53
+44
+45
+52
+43
+44
+52
+42
+43
+51
+41
+42
+55
+40
+43
+61
+46
+49
+69
+54
+57
+80
+58
+60
+106
+66
+67
+124
+73
+72
+141
+77
+77
+149
+79
+79
+159
+87
+91
+170
+100
+110
+170
+111
+131
+159
+116
+144
+148
+123
+163
+135
+127
+174
+128
+134
+186
+126
+136
+189
+115
+121
+173
+96
+97
+145
+84
+75
+118
+80
+68
+104
+83
+74
+103
+79
+71
+94
+77
+72
+94
+84
+81
+98
+102
+100
+111
+124
+125
+130
+141
+145
+144
+153
+158
+152
+163
+169
+159
+162
+168
+154
+158
+160
+147
+143
+146
+129
+123
+124
+108
+102
+103
+85
+88
+87
+69
+81
+78
+69
+85
+82
+91
+85
+81
+98
+85
+81
+98
+48
+47
+45
+48
+47
+45
+49
+48
+46
+49
+48
+46
+52
+48
+45
+53
+49
+46
+54
+50
+47
+54
+50
+47
+56
+51
+47
+56
+51
+47
+58
+51
+45
+58
+51
+45
+58
+51
+45
+58
+51
+45
+58
+51
+45
+58
+51
+45
+57
+49
+46
+57
+49
+46
+56
+48
+45
+56
+48
+45
+56
+48
+45
+56
+48
+45
+57
+49
+46
+57
+49
+46
+56
+48
+45
+56
+48
+45
+56
+48
+45
+56
+48
+45
+56
+48
+45
+56
+48
+45
+56
+48
+45
+56
+48
+45
+54
+46
+43
+54
+46
+43
+53
+45
+42
+53
+45
+42
+53
+45
+42
+52
+44
+41
+52
+44
+41
+52
+44
+41
+53
+45
+42
+53
+45
+42
+53
+45
+42
+53
+45
+42
+53
+45
+42
+53
+45
+42
+53
+45
+42
+51
+46
+42
+48
+43
+37
+48
+45
+38
+48
+45
+38
+49
+46
+39
+50
+47
+40
+51
+48
+41
+52
+49
+42
+52
+49
+42
+54
+51
+44
+54
+51
+44
+55
+52
+45
+55
+52
+45
+56
+53
+46
+57
+54
+47
+58
+55
+48
+58
+55
+46
+64
+57
+47
+65
+59
+47
+67
+61
+49
+69
+63
+51
+72
+64
+51
+73
+65
+52
+74
+66
+53
+74
+66
+53
+76
+67
+52
+76
+67
+52
+77
+65
+49
+77
+65
+49
+77
+65
+49
+78
+66
+50
+79
+67
+51
+81
+68
+52
+80
+62
+48
+85
+63
+49
+94
+65
+51
+106
+67
+52
+120
+68
+54
+132
+69
+52
+146
+69
+53
+156
+67
+51
+167
+67
+52
+175
+65
+52
+181
+65
+52
+188
+66
+55
+192
+68
+58
+196
+69
+60
+197
+70
+61
+205
+67
+64
+225
+69
+73
+231
+66
+73
+232
+67
+73
+234
+68
+72
+237
+68
+71
+239
+66
+68
+243
+64
+67
+246
+63
+67
+248
+59
+65
+247
+58
+64
+244
+58
+63
+240
+60
+63
+233
+63
+64
+224
+65
+62
+213
+64
+60
+202
+64
+54
+185
+62
+47
+181
+64
+46
+180
+63
+45
+180
+63
+45
+180
+63
+45
+178
+63
+44
+176
+63
+45
+175
+64
+45
+173
+64
+44
+169
+64
+43
+166
+65
+45
+161
+65
+43
+159
+64
+42
+155
+65
+41
+152
+64
+42
+150
+65
+44
+148
+62
+45
+146
+63
+47
+145
+62
+46
+145
+62
+46
+145
+62
+44
+144
+61
+43
+146
+60
+43
+146
+60
+43
+148
+63
+43
+147
+62
+42
+148
+61
+42
+148
+61
+42
+148
+61
+42
+149
+62
+43
+150
+63
+44
+150
+64
+47
+148
+64
+53
+149
+62
+53
+152
+62
+51
+160
+62
+49
+171
+65
+51
+181
+68
+52
+189
+67
+52
+191
+68
+53
+187
+65
+50
+183
+67
+54
+172
+70
+56
+156
+73
+59
+133
+71
+58
+108
+64
+51
+83
+57
+42
+66
+52
+41
+62
+54
+51
+58
+54
+53
+57
+53
+52
+56
+52
+51
+56
+50
+50
+55
+49
+49
+54
+49
+46
+54
+49
+46
+55
+50
+47
+55
+50
+47
+55
+50
+47
+54
+49
+46
+54
+49
+45
+53
+48
+44
+53
+48
+44
+52
+49
+44
+47
+47
+45
+46
+48
+45
+47
+47
+45
+47
+47
+45
+48
+47
+45
+48
+47
+45
+50
+46
+45
+50
+46
+45
+51
+45
+45
+53
+44
+45
+52
+42
+43
+51
+41
+42
+53
+41
+43
+60
+45
+48
+67
+52
+55
+78
+56
+58
+100
+62
+61
+118
+69
+65
+134
+74
+73
+143
+78
+76
+154
+84
+86
+164
+97
+106
+165
+108
+125
+157
+114
+142
+145
+123
+162
+134
+128
+174
+127
+133
+185
+123
+132
+187
+111
+117
+169
+91
+91
+141
+81
+72
+117
+79
+67
+105
+79
+70
+101
+79
+71
+95
+80
+72
+95
+82
+78
+95
+91
+89
+102
+110
+111
+116
+131
+135
+136
+148
+153
+149
+153
+158
+151
+154
+160
+148
+153
+157
+143
+143
+145
+131
+126
+127
+111
+106
+107
+89
+93
+91
+76
+86
+83
+74
+88
+83
+90
+86
+82
+97
+88
+81
+97
+47
+46
+44
+47
+46
+44
+48
+47
+45
+49
+48
+46
+52
+48
+45
+52
+48
+45
+53
+49
+46
+53
+49
+46
+55
+50
+46
+55
+50
+46
+55
+50
+46
+55
+50
+46
+57
+50
+44
+57
+50
+44
+57
+50
+44
+57
+50
+44
+57
+49
+46
+56
+48
+46
+55
+47
+45
+55
+47
+45
+55
+47
+45
+55
+47
+45
+56
+48
+46
+57
+49
+47
+56
+48
+46
+56
+48
+46
+56
+48
+46
+56
+48
+46
+56
+48
+46
+56
+48
+46
+56
+48
+46
+56
+48
+46
+54
+46
+44
+53
+45
+43
+53
+45
+43
+53
+45
+43
+52
+44
+42
+52
+44
+42
+52
+44
+42
+52
+44
+42
+53
+45
+43
+53
+45
+43
+53
+45
+43
+53
+45
+43
+53
+45
+43
+53
+45
+43
+53
+45
+43
+51
+46
+42
+50
+45
+39
+49
+46
+39
+50
+47
+40
+51
+48
+41
+51
+48
+41
+52
+49
+42
+52
+49
+42
+53
+50
+43
+54
+51
+44
+54
+51
+44
+54
+51
+44
+55
+52
+45
+56
+53
+46
+57
+54
+47
+57
+54
+47
+58
+55
+46
+63
+56
+46
+64
+58
+46
+66
+60
+48
+68
+62
+50
+71
+63
+52
+72
+64
+53
+72
+64
+51
+72
+64
+51
+73
+64
+49
+73
+64
+49
+75
+63
+49
+75
+63
+49
+75
+63
+47
+76
+64
+48
+77
+65
+49
+78
+66
+50
+77
+65
+49
+81
+65
+49
+89
+66
+50
+100
+67
+50
+113
+67
+51
+124
+67
+50
+135
+66
+50
+146
+65
+48
+152
+60
+45
+160
+58
+43
+167
+59
+46
+175
+61
+50
+181
+64
+54
+186
+68
+58
+191
+70
+61
+197
+68
+62
+217
+67
+69
+225
+64
+70
+227
+66
+71
+231
+66
+70
+234
+68
+70
+240
+67
+69
+244
+65
+68
+248
+63
+68
+250
+59
+64
+249
+58
+63
+245
+59
+64
+240
+61
+64
+232
+64
+64
+220
+65
+61
+209
+64
+59
+198
+64
+53
+183
+61
+46
+179
+64
+45
+179
+64
+45
+178
+63
+44
+178
+63
+45
+176
+63
+45
+175
+62
+44
+173
+64
+44
+170
+63
+45
+167
+64
+45
+165
+64
+44
+161
+65
+43
+157
+65
+44
+154
+63
+42
+152
+64
+42
+149
+64
+43
+148
+62
+45
+145
+62
+46
+145
+62
+46
+145
+62
+46
+144
+61
+43
+144
+61
+43
+144
+61
+43
+144
+61
+43
+145
+62
+44
+145
+62
+44
+146
+60
+43
+146
+60
+43
+147
+61
+44
+147
+61
+44
+148
+63
+43
+149
+63
+46
+149
+65
+54
+150
+63
+53
+154
+62
+51
+163
+62
+50
+175
+65
+52
+185
+67
+53
+191
+68
+53
+193
+67
+53
+192
+68
+56
+184
+70
+59
+174
+73
+61
+153
+74
+61
+129
+71
+59
+104
+64
+52
+81
+58
+44
+66
+53
+44
+63
+55
+52
+61
+55
+55
+60
+54
+54
+58
+52
+52
+57
+52
+49
+56
+51
+48
+55
+50
+47
+55
+50
+47
+54
+50
+47
+54
+50
+47
+54
+50
+47
+53
+49
+46
+53
+50
+45
+52
+49
+44
+52
+49
+44
+50
+49
+44
+46
+48
+45
+44
+49
+45
+46
+48
+45
+46
+48
+45
+47
+47
+45
+47
+47
+45
+48
+47
+45
+50
+46
+45
+53
+47
+47
+52
+46
+46
+53
+44
+45
+52
+42
+43
+52
+42
+43
+57
+45
+47
+62
+50
+52
+73
+53
+54
+91
+57
+55
+108
+63
+57
+124
+69
+64
+134
+73
+68
+144
+79
+77
+152
+91
+96
+155
+102
+118
+148
+109
+136
+140
+119
+158
+131
+125
+173
+125
+130
+185
+117
+126
+183
+102
+109
+164
+84
+86
+137
+77
+69
+118
+76
+65
+107
+77
+65
+101
+79
+70
+99
+81
+72
+99
+77
+72
+94
+78
+75
+92
+91
+91
+101
+113
+116
+121
+133
+137
+136
+135
+140
+134
+138
+143
+136
+141
+144
+133
+134
+138
+124
+120
+122
+108
+102
+105
+88
+90
+91
+77
+86
+83
+76
+90
+85
+91
+90
+84
+96
+91
+83
+96
+46
+45
+43
+47
+46
+44
+47
+46
+44
+48
+47
+45
+51
+47
+44
+52
+48
+45
+52
+48
+45
+52
+48
+45
+54
+49
+45
+54
+49
+45
+54
+49
+45
+54
+49
+45
+56
+49
+43
+56
+49
+43
+56
+49
+43
+56
+49
+43
+55
+47
+45
+55
+47
+45
+54
+46
+44
+54
+46
+44
+54
+46
+44
+54
+46
+44
+55
+47
+45
+55
+47
+45
+56
+48
+46
+56
+48
+46
+56
+48
+46
+56
+48
+46
+56
+48
+46
+56
+48
+46
+56
+48
+46
+56
+48
+46
+53
+45
+43
+53
+45
+43
+53
+45
+43
+52
+44
+42
+52
+44
+42
+52
+44
+42
+51
+43
+41
+51
+43
+41
+54
+46
+44
+54
+46
+44
+54
+46
+44
+54
+46
+44
+54
+46
+44
+54
+46
+44
+54
+46
+44
+52
+47
+44
+51
+48
+43
+51
+48
+41
+51
+48
+41
+52
+49
+42
+52
+49
+42
+53
+50
+43
+53
+50
+43
+53
+50
+43
+53
+50
+43
+53
+50
+43
+54
+51
+44
+55
+52
+45
+56
+53
+46
+56
+53
+46
+57
+54
+47
+57
+54
+45
+62
+55
+45
+63
+57
+45
+64
+58
+46
+66
+60
+48
+69
+61
+50
+69
+61
+50
+70
+62
+49
+70
+62
+49
+71
+61
+49
+71
+62
+47
+72
+60
+46
+73
+61
+47
+73
+61
+47
+74
+62
+46
+76
+64
+48
+74
+65
+48
+75
+68
+50
+78
+69
+52
+85
+68
+52
+94
+68
+51
+105
+68
+50
+115
+66
+49
+126
+65
+47
+134
+63
+45
+140
+57
+41
+148
+57
+39
+157
+57
+42
+163
+60
+45
+172
+64
+51
+179
+69
+56
+184
+72
+60
+193
+70
+62
+210
+68
+67
+218
+65
+67
+222
+66
+67
+226
+68
+67
+231
+67
+68
+236
+66
+67
+243
+64
+67
+247
+63
+65
+250
+59
+64
+249
+58
+63
+245
+59
+64
+238
+62
+64
+229
+65
+64
+218
+66
+61
+205
+64
+57
+194
+64
+51
+181
+61
+45
+176
+64
+44
+176
+64
+44
+176
+64
+44
+175
+62
+44
+174
+63
+44
+174
+63
+44
+172
+63
+43
+169
+64
+45
+166
+63
+44
+163
+64
+43
+160
+64
+42
+156
+64
+43
+152
+64
+42
+150
+64
+41
+148
+63
+42
+145
+62
+44
+145
+62
+46
+145
+62
+46
+144
+61
+45
+144
+61
+43
+144
+61
+43
+143
+60
+42
+143
+60
+42
+144
+61
+43
+144
+61
+43
+143
+60
+42
+143
+60
+42
+146
+60
+43
+145
+62
+44
+148
+62
+45
+146
+63
+45
+149
+65
+54
+150
+63
+53
+156
+62
+50
+166
+64
+52
+178
+66
+54
+188
+67
+56
+193
+67
+55
+194
+66
+55
+194
+70
+60
+186
+74
+63
+172
+76
+64
+151
+75
+62
+124
+70
+58
+98
+64
+52
+76
+58
+46
+65
+55
+45
+64
+56
+53
+62
+57
+54
+61
+55
+55
+60
+55
+52
+58
+53
+50
+57
+52
+49
+56
+51
+48
+56
+51
+48
+54
+50
+47
+54
+50
+47
+54
+50
+47
+51
+50
+46
+53
+50
+45
+50
+49
+44
+50
+49
+44
+49
+50
+45
+45
+50
+46
+45
+50
+46
+47
+49
+46
+47
+49
+46
+48
+48
+46
+48
+48
+46
+49
+48
+46
+49
+48
+46
+53
+49
+48
+54
+48
+48
+53
+47
+47
+53
+44
+45
+52
+43
+44
+54
+44
+45
+58
+48
+49
+68
+50
+50
+84
+55
+49
+99
+59
+51
+113
+65
+55
+123
+69
+59
+130
+72
+68
+137
+82
+85
+141
+95
+108
+139
+105
+130
+131
+115
+152
+125
+121
+171
+120
+125
+181
+111
+119
+181
+96
+102
+162
+81
+82
+139
+76
+69
+121
+76
+64
+112
+76
+64
+104
+80
+69
+103
+81
+70
+102
+76
+67
+94
+71
+66
+86
+77
+76
+90
+94
+94
+102
+106
+110
+113
+117
+121
+120
+120
+125
+119
+122
+128
+118
+119
+122
+111
+107
+111
+97
+96
+98
+84
+87
+89
+76
+84
+84
+76
+93
+87
+89
+93
+86
+93
+93
+86
+94
+45
+45
+45
+45
+45
+45
+46
+45
+43
+47
+46
+44
+48
+47
+45
+49
+48
+46
+51
+47
+44
+52
+48
+45
+51
+47
+44
+51
+47
+44
+52
+47
+43
+52
+47
+43
+52
+47
+43
+52
+47
+43
+54
+47
+41
+54
+47
+41
+52
+47
+44
+52
+47
+44
+51
+46
+43
+51
+46
+43
+51
+46
+43
+51
+46
+43
+52
+47
+44
+52
+47
+44
+53
+48
+45
+53
+48
+45
+53
+48
+45
+53
+48
+45
+53
+48
+45
+53
+48
+45
+53
+48
+45
+53
+48
+45
+51
+46
+43
+51
+46
+43
+50
+45
+42
+50
+45
+42
+50
+45
+42
+49
+44
+41
+49
+44
+41
+49
+44
+41
+52
+47
+44
+52
+47
+44
+52
+47
+44
+52
+47
+44
+52
+47
+44
+52
+47
+44
+52
+47
+44
+52
+47
+44
+52
+49
+44
+52
+49
+44
+52
+49
+44
+52
+49
+44
+52
+49
+44
+53
+50
+45
+53
+50
+45
+53
+50
+45
+53
+50
+45
+53
+50
+45
+54
+51
+46
+54
+51
+46
+55
+52
+47
+56
+53
+48
+57
+54
+49
+57
+54
+47
+60
+53
+45
+61
+54
+44
+63
+56
+46
+64
+57
+47
+66
+58
+47
+67
+59
+48
+67
+59
+48
+67
+59
+46
+68
+58
+46
+68
+58
+46
+70
+58
+46
+71
+59
+45
+72
+60
+46
+73
+61
+47
+74
+62
+48
+73
+64
+49
+74
+71
+54
+77
+72
+53
+82
+71
+53
+89
+70
+53
+98
+69
+51
+106
+68
+49
+117
+66
+47
+125
+62
+44
+130
+59
+41
+139
+58
+41
+147
+58
+42
+154
+61
+44
+163
+66
+50
+172
+70
+56
+178
+74
+61
+187
+73
+63
+204
+71
+66
+212
+68
+67
+216
+68
+66
+221
+69
+66
+226
+66
+66
+233
+65
+65
+240
+61
+64
+244
+60
+62
+249
+58
+63
+248
+58
+60
+244
+60
+62
+237
+63
+62
+225
+66
+62
+211
+67
+58
+197
+65
+53
+185
+63
+48
+178
+63
+45
+174
+63
+44
+174
+63
+44
+174
+63
+44
+173
+62
+45
+172
+62
+45
+172
+62
+45
+170
+63
+45
+168
+62
+46
+164
+63
+45
+160
+63
+44
+158
+63
+43
+154
+63
+44
+151
+63
+43
+149
+62
+42
+147
+62
+42
+145
+62
+44
+144
+63
+46
+143
+62
+45
+143
+62
+45
+143
+62
+45
+142
+61
+44
+142
+61
+44
+142
+61
+44
+142
+61
+44
+142
+61
+44
+142
+61
+44
+142
+61
+44
+143
+60
+44
+143
+62
+45
+145
+62
+46
+144
+63
+46
+148
+66
+52
+151
+65
+52
+157
+64
+49
+168
+64
+51
+182
+65
+55
+191
+67
+57
+197
+66
+56
+196
+65
+55
+190
+67
+59
+183
+72
+63
+166
+76
+67
+144
+74
+64
+116
+69
+59
+90
+62
+50
+69
+57
+45
+60
+53
+43
+64
+57
+51
+64
+56
+53
+63
+55
+53
+62
+54
+51
+61
+53
+50
+60
+52
+49
+57
+52
+48
+56
+51
+47
+54
+50
+47
+52
+51
+47
+52
+51
+47
+50
+51
+46
+51
+50
+46
+49
+50
+45
+49
+50
+45
+48
+50
+45
+45
+50
+46
+44
+50
+46
+45
+50
+46
+45
+50
+46
+47
+49
+46
+47
+49
+46
+48
+48
+46
+49
+48
+46
+51
+50
+48
+53
+49
+48
+53
+49
+48
+52
+46
+46
+50
+44
+44
+52
+43
+44
+55
+46
+47
+61
+47
+46
+78
+53
+46
+89
+57
+46
+101
+61
+49
+110
+64
+51
+115
+66
+59
+121
+75
+75
+128
+90
+101
+131
+103
+128
+127
+112
+151
+122
+120
+170
+117
+123
+183
+107
+115
+180
+95
+100
+166
+84
+84
+148
+79
+71
+131
+76
+66
+119
+78
+65
+109
+78
+66
+104
+77
+65
+101
+74
+65
+96
+71
+66
+89
+71
+70
+88
+75
+75
+87
+77
+80
+85
+93
+99
+99
+96
+102
+98
+98
+105
+97
+96
+102
+92
+90
+96
+84
+87
+91
+77
+85
+88
+77
+88
+88
+80
+94
+89
+86
+96
+87
+88
+96
+87
+90
+44
+44
+44
+44
+44
+44
+46
+45
+43
+46
+45
+43
+47
+46
+44
+48
+47
+45
+51
+47
+44
+51
+47
+44
+50
+46
+43
+50
+46
+43
+51
+46
+42
+51
+46
+42
+51
+46
+42
+51
+46
+42
+53
+46
+40
+53
+45
+42
+51
+46
+43
+51
+46
+43
+50
+45
+42
+49
+44
+41
+49
+44
+41
+50
+45
+42
+51
+46
+43
+51
+46
+43
+51
+46
+43
+51
+46
+43
+51
+46
+43
+51
+46
+43
+51
+46
+43
+51
+46
+43
+51
+46
+43
+51
+46
+43
+50
+45
+42
+50
+45
+42
+50
+45
+42
+50
+45
+42
+49
+44
+41
+49
+44
+41
+49
+44
+41
+48
+43
+40
+51
+46
+43
+51
+46
+43
+51
+46
+43
+51
+46
+43
+51
+46
+43
+51
+46
+43
+51
+46
+43
+51
+46
+43
+52
+49
+44
+52
+49
+44
+52
+49
+44
+52
+49
+44
+52
+49
+44
+52
+49
+44
+52
+49
+44
+52
+49
+44
+52
+49
+44
+53
+50
+45
+53
+50
+45
+54
+51
+46
+55
+52
+47
+56
+53
+48
+56
+53
+48
+56
+53
+46
+59
+52
+44
+60
+53
+43
+61
+54
+44
+62
+55
+45
+64
+55
+46
+65
+57
+46
+65
+57
+46
+65
+57
+46
+67
+57
+47
+67
+57
+45
+69
+57
+45
+70
+58
+46
+71
+59
+47
+72
+60
+46
+74
+62
+48
+72
+65
+49
+74
+71
+54
+73
+72
+54
+78
+71
+53
+86
+70
+54
+92
+69
+51
+100
+67
+50
+110
+64
+48
+118
+62
+45
+123
+60
+43
+130
+59
+41
+140
+59
+42
+148
+61
+44
+156
+64
+49
+163
+70
+53
+170
+74
+58
+180
+74
+61
+196
+72
+64
+204
+69
+65
+209
+70
+65
+214
+69
+64
+222
+67
+65
+228
+64
+62
+236
+62
+63
+241
+58
+60
+247
+59
+60
+244
+58
+59
+240
+60
+61
+233
+64
+61
+220
+67
+61
+205
+67
+56
+190
+64
+50
+177
+62
+44
+174
+63
+44
+171
+64
+44
+170
+63
+43
+170
+63
+43
+170
+63
+45
+169
+62
+44
+169
+62
+44
+168
+63
+44
+165
+62
+45
+162
+63
+44
+160
+63
+44
+155
+62
+44
+151
+63
+43
+149
+62
+42
+147
+62
+41
+145
+63
+42
+143
+62
+43
+143
+62
+45
+143
+62
+45
+143
+62
+45
+142
+61
+44
+142
+61
+44
+142
+61
+44
+141
+60
+43
+142
+61
+44
+139
+60
+43
+141
+60
+43
+139
+60
+43
+139
+60
+45
+140
+61
+44
+141
+62
+47
+142
+63
+46
+148
+66
+52
+151
+65
+50
+160
+64
+50
+172
+66
+53
+185
+67
+57
+194
+67
+58
+197
+66
+58
+194
+65
+59
+186
+65
+57
+177
+73
+64
+163
+78
+71
+141
+78
+69
+111
+71
+61
+83
+63
+52
+65
+59
+47
+57
+54
+45
+64
+57
+51
+65
+55
+53
+63
+55
+52
+62
+54
+51
+60
+52
+49
+57
+52
+48
+56
+51
+47
+55
+52
+47
+52
+51
+47
+52
+51
+47
+51
+52
+47
+50
+51
+46
+50
+51
+46
+48
+50
+45
+48
+50
+45
+46
+51
+45
+45
+51
+47
+45
+51
+47
+46
+51
+47
+46
+51
+47
+48
+50
+47
+48
+50
+47
+49
+49
+47
+49
+49
+47
+50
+49
+47
+51
+50
+48
+51
+50
+48
+52
+48
+47
+50
+46
+45
+49
+45
+44
+52
+46
+46
+56
+46
+44
+71
+52
+45
+79
+52
+41
+88
+56
+43
+96
+60
+48
+101
+63
+54
+109
+71
+70
+121
+89
+100
+130
+107
+133
+128
+117
+159
+124
+124
+178
+119
+124
+188
+110
+117
+187
+100
+104
+175
+91
+91
+161
+82
+77
+143
+76
+66
+126
+79
+65
+114
+76
+64
+104
+73
+61
+99
+72
+62
+96
+72
+66
+94
+69
+67
+88
+64
+66
+79
+59
+64
+70
+66
+71
+74
+68
+77
+74
+74
+81
+74
+74
+81
+73
+73
+81
+70
+75
+81
+69
+79
+85
+73
+86
+87
+79
+94
+89
+83
+96
+89
+83
+96
+88
+85
+43
+43
+43
+43
+43
+43
+44
+44
+44
+45
+45
+45
+47
+46
+44
+47
+46
+44
+48
+47
+45
+48
+47
+45
+49
+45
+42
+49
+45
+42
+49
+45
+42
+49
+45
+42
+50
+45
+41
+50
+45
+41
+50
+45
+41
+50
+45
+41
+50
+45
+42
+50
+44
+44
+49
+43
+43
+49
+43
+43
+49
+43
+43
+49
+43
+43
+50
+44
+44
+50
+44
+44
+49
+43
+43
+49
+43
+43
+49
+43
+43
+49
+43
+43
+49
+43
+43
+49
+43
+43
+49
+43
+43
+49
+43
+43
+50
+44
+44
+50
+44
+44
+50
+44
+44
+49
+43
+43
+49
+43
+43
+49
+43
+43
+48
+42
+42
+48
+42
+42
+51
+45
+45
+51
+45
+45
+51
+45
+45
+51
+45
+45
+51
+45
+45
+51
+45
+45
+51
+45
+45
+51
+46
+43
+52
+49
+44
+52
+49
+44
+52
+49
+44
+51
+48
+43
+51
+48
+43
+51
+48
+43
+51
+48
+43
+51
+48
+43
+52
+49
+44
+52
+49
+44
+53
+50
+45
+54
+51
+46
+55
+52
+47
+55
+52
+47
+56
+53
+48
+56
+53
+46
+58
+51
+43
+59
+52
+44
+60
+53
+45
+61
+54
+46
+63
+54
+47
+63
+54
+45
+63
+54
+45
+63
+55
+44
+66
+56
+46
+66
+56
+46
+69
+56
+47
+69
+57
+45
+71
+59
+47
+72
+60
+48
+74
+62
+50
+72
+64
+51
+72
+69
+54
+71
+70
+52
+75
+69
+53
+81
+68
+52
+88
+67
+50
+95
+66
+50
+102
+63
+46
+110
+61
+44
+118
+61
+44
+124
+58
+42
+133
+57
+41
+140
+59
+42
+147
+61
+46
+155
+66
+50
+162
+70
+55
+172
+70
+56
+187
+70
+60
+194
+70
+62
+201
+70
+62
+208
+69
+62
+217
+68
+64
+226
+67
+63
+234
+64
+64
+240
+62
+62
+242
+58
+58
+241
+59
+58
+236
+60
+60
+228
+65
+60
+214
+67
+59
+198
+68
+54
+181
+64
+47
+170
+61
+41
+170
+63
+45
+169
+64
+45
+169
+64
+45
+168
+63
+44
+168
+62
+46
+168
+62
+46
+167
+61
+45
+165
+62
+45
+163
+61
+46
+160
+63
+46
+158
+63
+45
+154
+63
+45
+150
+63
+44
+147
+62
+42
+145
+63
+42
+143
+62
+41
+143
+62
+43
+141
+62
+45
+141
+62
+45
+140
+61
+44
+140
+61
+46
+140
+61
+46
+139
+60
+45
+139
+60
+45
+139
+60
+45
+138
+61
+45
+138
+59
+44
+137
+60
+44
+138
+60
+47
+139
+62
+46
+139
+61
+48
+140
+63
+47
+146
+67
+50
+152
+66
+49
+161
+65
+49
+174
+66
+54
+188
+67
+58
+194
+67
+60
+196
+67
+61
+192
+67
+61
+185
+70
+65
+178
+81
+74
+165
+88
+82
+143
+88
+81
+115
+82
+73
+87
+73
+62
+67
+67
+55
+60
+63
+54
+62
+57
+51
+64
+55
+50
+62
+55
+49
+61
+54
+48
+58
+53
+47
+57
+52
+46
+56
+51
+47
+54
+51
+46
+52
+51
+46
+52
+51
+46
+51
+52
+47
+49
+51
+46
+49
+51
+46
+46
+51
+45
+46
+51
+45
+46
+51
+45
+45
+51
+47
+45
+51
+47
+45
+51
+47
+45
+51
+47
+46
+51
+47
+46
+51
+47
+48
+50
+47
+48
+50
+47
+48
+48
+46
+49
+49
+47
+50
+50
+48
+50
+49
+47
+48
+47
+45
+47
+46
+44
+50
+46
+45
+52
+47
+44
+63
+48
+43
+68
+48
+41
+75
+51
+41
+84
+56
+45
+90
+60
+52
+100
+70
+70
+117
+93
+106
+131
+115
+141
+137
+128
+171
+133
+132
+190
+126
+131
+199
+116
+122
+198
+109
+112
+189
+99
+101
+175
+86
+83
+154
+76
+67
+130
+75
+63
+113
+73
+60
+103
+71
+59
+99
+69
+62
+95
+70
+66
+93
+68
+66
+87
+63
+65
+78
+59
+63
+72
+58
+66
+69
+62
+72
+71
+68
+77
+72
+71
+81
+73
+71
+81
+72
+74
+82
+71
+78
+86
+75
+85
+88
+77
+94
+90
+79
+97
+89
+78
+97
+88
+79
+43
+43
+43
+43
+43
+43
+44
+44
+44
+44
+44
+44
+46
+44
+45
+47
+46
+44
+48
+47
+45
+48
+47
+45
+49
+45
+42
+49
+45
+42
+49
+45
+42
+49
+45
+42
+50
+45
+41
+50
+45
+41
+50
+45
+41
+50
+45
+42
+50
+44
+44
+49
+43
+43
+49
+43
+43
+48
+42
+42
+48
+42
+42
+49
+43
+43
+49
+43
+43
+50
+44
+44
+48
+42
+42
+48
+42
+42
+48
+42
+42
+48
+42
+42
+48
+42
+42
+48
+42
+42
+48
+42
+42
+48
+42
+42
+50
+44
+44
+50
+44
+44
+50
+44
+44
+49
+43
+43
+49
+43
+43
+48
+42
+42
+48
+42
+42
+48
+42
+42
+50
+44
+44
+50
+44
+44
+50
+44
+44
+50
+44
+44
+50
+44
+44
+50
+44
+44
+50
+44
+44
+50
+44
+44
+51
+47
+44
+51
+48
+43
+51
+48
+43
+51
+48
+43
+51
+48
+43
+51
+48
+43
+51
+48
+43
+51
+48
+43
+52
+49
+44
+52
+49
+44
+53
+50
+45
+54
+51
+46
+54
+51
+46
+55
+52
+47
+56
+53
+48
+56
+53
+48
+57
+50
+44
+58
+51
+43
+59
+52
+44
+60
+53
+45
+62
+53
+46
+62
+53
+46
+62
+53
+46
+62
+53
+44
+66
+56
+47
+66
+56
+46
+69
+56
+47
+69
+56
+47
+71
+58
+49
+73
+61
+49
+74
+62
+50
+73
+63
+51
+70
+67
+52
+70
+67
+52
+74
+66
+53
+79
+65
+52
+84
+65
+50
+92
+64
+50
+98
+62
+48
+106
+60
+45
+113
+60
+46
+119
+57
+42
+125
+56
+41
+133
+56
+40
+140
+58
+44
+149
+61
+47
+155
+66
+52
+164
+66
+53
+178
+70
+58
+186
+69
+59
+193
+70
+62
+202
+71
+63
+212
+71
+64
+222
+70
+65
+231
+67
+65
+238
+66
+64
+237
+59
+59
+235
+59
+59
+231
+62
+59
+223
+66
+59
+209
+68
+58
+191
+68
+52
+175
+64
+45
+164
+62
+40
+166
+65
+45
+166
+65
+45
+165
+64
+44
+165
+64
+46
+165
+64
+46
+164
+63
+45
+164
+63
+45
+164
+62
+47
+162
+62
+46
+159
+64
+46
+156
+63
+46
+152
+63
+45
+149
+62
+43
+145
+63
+42
+143
+62
+41
+143
+62
+43
+141
+62
+45
+141
+62
+45
+141
+62
+45
+140
+61
+44
+140
+61
+46
+139
+60
+45
+139
+60
+45
+138
+61
+45
+138
+61
+45
+136
+60
+46
+136
+60
+46
+136
+60
+46
+136
+60
+47
+135
+62
+47
+136
+62
+49
+139
+63
+49
+145
+68
+50
+150
+67
+49
+162
+66
+52
+173
+67
+54
+186
+67
+59
+193
+68
+62
+193
+68
+62
+187
+69
+65
+185
+80
+76
+178
+91
+84
+165
+101
+92
+145
+102
+93
+117
+95
+84
+91
+85
+73
+71
+77
+65
+67
+73
+63
+60
+57
+50
+63
+56
+50
+62
+55
+49
+59
+54
+48
+57
+52
+46
+55
+52
+45
+54
+51
+46
+52
+51
+46
+52
+51
+46
+51
+52
+46
+50
+52
+47
+49
+51
+46
+47
+52
+46
+46
+51
+45
+46
+51
+45
+46
+51
+45
+45
+51
+47
+45
+51
+47
+45
+51
+47
+45
+51
+47
+46
+51
+47
+46
+51
+47
+48
+50
+47
+48
+50
+47
+47
+47
+45
+48
+48
+46
+50
+50
+48
+50
+50
+48
+49
+48
+46
+48
+47
+45
+48
+47
+45
+51
+47
+44
+56
+44
+44
+59
+44
+41
+67
+48
+42
+75
+55
+48
+83
+60
+54
+94
+73
+72
+116
+98
+110
+135
+122
+148
+144
+138
+182
+140
+141
+198
+132
+136
+207
+122
+128
+204
+114
+120
+198
+105
+107
+182
+87
+87
+159
+73
+68
+132
+69
+61
+110
+71
+60
+100
+68
+60
+97
+67
+62
+94
+67
+65
+89
+64
+67
+86
+64
+68
+80
+62
+69
+75
+71
+81
+82
+75
+87
+85
+81
+94
+87
+85
+96
+88
+83
+95
+85
+82
+94
+84
+84
+94
+83
+89
+95
+83
+94
+91
+76
+97
+90
+74
+97
+90
+74
+44
+45
+47
+44
+45
+47
+44
+45
+47
+44
+46
+45
+45
+45
+45
+45
+45
+45
+46
+45
+43
+46
+45
+43
+47
+46
+44
+47
+46
+44
+49
+45
+42
+48
+44
+41
+48
+44
+41
+48
+44
+41
+47
+43
+40
+47
+43
+40
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+48
+44
+43
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+48
+44
+43
+48
+44
+43
+49
+45
+44
+49
+45
+44
+50
+46
+45
+49
+45
+44
+49
+45
+44
+49
+45
+44
+49
+45
+44
+49
+45
+44
+49
+45
+44
+49
+45
+44
+49
+45
+44
+48
+44
+41
+49
+45
+42
+50
+46
+43
+51
+47
+44
+51
+47
+44
+51
+47
+44
+51
+47
+44
+51
+47
+44
+51
+47
+44
+51
+47
+44
+51
+47
+44
+51
+47
+44
+52
+48
+45
+53
+49
+46
+54
+50
+47
+55
+52
+47
+56
+48
+45
+57
+50
+44
+58
+51
+45
+59
+52
+46
+61
+52
+47
+62
+53
+46
+62
+53
+46
+62
+53
+46
+63
+52
+46
+63
+53
+44
+66
+53
+45
+67
+54
+46
+68
+55
+47
+70
+57
+48
+71
+58
+49
+70
+60
+50
+71
+63
+52
+72
+64
+53
+74
+64
+54
+80
+63
+53
+84
+62
+51
+88
+60
+49
+94
+57
+48
+98
+54
+43
+109
+57
+46
+116
+56
+45
+124
+56
+43
+131
+57
+44
+141
+59
+47
+147
+61
+48
+152
+63
+49
+158
+62
+48
+167
+65
+51
+173
+65
+52
+181
+67
+56
+190
+69
+58
+202
+71
+61
+212
+71
+62
+222
+69
+63
+229
+67
+64
+232
+64
+63
+234
+66
+65
+230
+68
+65
+218
+69
+62
+200
+68
+56
+183
+66
+49
+170
+65
+46
+162
+66
+44
+162
+65
+46
+161
+64
+45
+162
+63
+44
+162
+62
+46
+161
+61
+45
+161
+61
+45
+162
+62
+46
+160
+63
+47
+156
+60
+44
+154
+61
+44
+152
+60
+45
+149
+62
+45
+147
+61
+44
+144
+61
+43
+142
+61
+42
+140
+62
+42
+139
+60
+43
+139
+60
+43
+138
+61
+45
+137
+60
+44
+137
+60
+44
+137
+60
+44
+136
+58
+45
+135
+59
+45
+137
+61
+47
+134
+60
+47
+134
+60
+47
+135
+61
+48
+136
+62
+51
+136
+64
+50
+137
+65
+53
+139
+65
+52
+145
+69
+53
+151
+68
+52
+163
+69
+57
+177
+73
+62
+186
+71
+64
+187
+68
+62
+187
+69
+65
+184
+77
+71
+180
+90
+82
+175
+102
+95
+163
+113
+102
+145
+115
+104
+126
+114
+100
+106
+106
+94
+86
+94
+83
+73
+81
+70
+76
+76
+66
+74
+70
+61
+66
+62
+53
+60
+56
+47
+57
+53
+44
+55
+52
+43
+54
+51
+44
+51
+51
+43
+52
+51
+46
+51
+52
+46
+49
+52
+45
+49
+52
+45
+48
+50
+45
+47
+49
+44
+44
+49
+43
+44
+49
+43
+45
+50
+46
+45
+50
+46
+45
+50
+46
+45
+50
+46
+47
+49
+46
+47
+49
+46
+47
+49
+46
+47
+49
+46
+48
+50
+47
+48
+50
+47
+49
+49
+47
+49
+49
+47
+49
+49
+47
+49
+49
+47
+49
+49
+47
+52
+48
+47
+52
+43
+48
+59
+47
+51
+65
+51
+50
+67
+52
+47
+74
+59
+54
+93
+79
+79
+121
+109
+121
+139
+133
+159
+147
+144
+187
+148
+150
+207
+144
+149
+217
+131
+137
+211
+116
+122
+198
+106
+110
+183
+95
+98
+167
+90
+91
+148
+76
+73
+116
+72
+66
+100
+65
+62
+93
+62
+62
+88
+63
+66
+85
+65
+73
+86
+76
+85
+92
+85
+96
+98
+98
+113
+110
+110
+125
+120
+118
+134
+124
+114
+127
+117
+108
+121
+111
+103
+117
+104
+95
+107
+95
+87
+95
+80
+91
+90
+70
+96
+90
+68
+99
+93
+71
+44
+45
+47
+44
+45
+47
+44
+45
+47
+44
+45
+47
+45
+45
+45
+45
+45
+45
+46
+44
+45
+46
+45
+43
+47
+46
+44
+46
+45
+43
+48
+44
+41
+48
+44
+41
+47
+43
+40
+47
+43
+40
+47
+43
+40
+47
+43
+40
+46
+42
+41
+46
+42
+41
+46
+42
+41
+46
+42
+41
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+48
+44
+43
+48
+44
+43
+48
+44
+43
+49
+45
+44
+49
+45
+44
+49
+45
+44
+49
+45
+44
+49
+45
+44
+49
+45
+44
+49
+45
+44
+49
+45
+44
+49
+45
+44
+49
+45
+44
+48
+44
+43
+48
+44
+41
+49
+45
+42
+50
+46
+43
+51
+47
+44
+51
+47
+44
+50
+46
+43
+50
+46
+43
+50
+46
+43
+50
+46
+43
+50
+46
+43
+50
+46
+43
+51
+47
+44
+52
+48
+45
+53
+49
+46
+54
+50
+47
+56
+48
+46
+57
+49
+46
+58
+50
+47
+59
+52
+46
+61
+52
+47
+62
+53
+48
+62
+53
+48
+61
+52
+45
+63
+52
+46
+63
+52
+46
+65
+52
+46
+66
+53
+45
+67
+54
+46
+69
+56
+48
+71
+58
+50
+72
+59
+51
+72
+62
+53
+72
+62
+53
+76
+61
+54
+79
+62
+54
+81
+61
+52
+86
+59
+50
+90
+57
+48
+95
+55
+47
+104
+55
+48
+112
+55
+46
+119
+55
+45
+129
+57
+45
+137
+57
+46
+144
+60
+49
+150
+60
+49
+155
+61
+49
+162
+64
+51
+167
+65
+51
+172
+66
+53
+180
+68
+56
+190
+69
+58
+201
+70
+60
+212
+69
+61
+219
+68
+61
+223
+68
+64
+224
+69
+64
+222
+70
+65
+212
+71
+62
+196
+70
+56
+178
+67
+50
+165
+66
+45
+158
+66
+45
+159
+67
+46
+158
+66
+45
+159
+64
+46
+158
+63
+45
+158
+63
+45
+158
+63
+45
+158
+62
+46
+158
+62
+46
+154
+61
+44
+153
+62
+44
+150
+61
+45
+148
+61
+44
+144
+61
+43
+143
+62
+43
+140
+62
+42
+140
+61
+44
+139
+60
+43
+138
+61
+43
+137
+60
+44
+137
+60
+44
+137
+60
+44
+135
+59
+43
+135
+59
+45
+133
+60
+45
+134
+60
+47
+133
+61
+47
+133
+61
+49
+131
+61
+49
+132
+62
+50
+134
+64
+54
+135
+65
+55
+136
+66
+54
+147
+71
+57
+151
+69
+55
+163
+71
+60
+175
+74
+64
+184
+73
+66
+184
+71
+65
+183
+76
+70
+179
+84
+78
+177
+100
+92
+170
+113
+102
+159
+126
+111
+144
+127
+111
+127
+124
+109
+109
+115
+101
+90
+102
+90
+78
+88
+77
+76
+78
+65
+75
+73
+61
+69
+67
+55
+64
+61
+52
+61
+58
+49
+56
+56
+46
+52
+52
+44
+49
+49
+41
+50
+51
+45
+50
+51
+45
+48
+51
+44
+47
+50
+43
+47
+49
+44
+46
+48
+43
+46
+48
+43
+46
+48
+43
+47
+49
+46
+45
+50
+46
+47
+49
+46
+47
+49
+46
+47
+49
+46
+47
+49
+46
+47
+49
+46
+47
+49
+46
+48
+50
+47
+48
+50
+47
+49
+49
+47
+49
+49
+47
+49
+49
+47
+49
+49
+47
+49
+49
+47
+50
+48
+49
+53
+43
+52
+57
+45
+55
+60
+50
+51
+63
+53
+51
+72
+63
+58
+94
+86
+84
+120
+114
+124
+138
+136
+158
+147
+147
+185
+148
+151
+202
+144
+150
+212
+132
+139
+207
+121
+129
+194
+113
+121
+184
+107
+116
+173
+104
+110
+158
+92
+95
+128
+88
+90
+113
+83
+85
+106
+82
+87
+106
+84
+94
+104
+90
+103
+109
+102
+118
+118
+114
+130
+127
+116
+136
+127
+126
+146
+135
+131
+149
+137
+126
+142
+129
+118
+134
+121
+114
+128
+113
+102
+116
+101
+90
+101
+84
+89
+88
+67
+94
+88
+62
+97
+91
+67
+44
+45
+47
+44
+45
+47
+44
+45
+47
+44
+45
+47
+44
+45
+47
+44
+46
+45
+45
+45
+45
+45
+45
+45
+46
+45
+43
+46
+45
+43
+46
+45
+43
+45
+44
+42
+47
+43
+40
+46
+42
+39
+46
+42
+39
+46
+42
+39
+44
+43
+41
+44
+42
+43
+44
+42
+43
+44
+42
+43
+43
+41
+42
+43
+41
+42
+43
+41
+42
+43
+41
+42
+45
+43
+44
+45
+43
+44
+45
+43
+44
+45
+43
+44
+45
+43
+44
+45
+43
+44
+45
+43
+44
+45
+43
+44
+44
+42
+43
+44
+42
+43
+45
+43
+44
+45
+43
+44
+45
+43
+44
+46
+44
+45
+46
+44
+45
+46
+44
+45
+46
+44
+45
+46
+44
+45
+46
+44
+45
+47
+45
+46
+47
+45
+46
+47
+45
+46
+47
+45
+46
+47
+46
+44
+48
+44
+43
+48
+44
+43
+49
+45
+44
+50
+46
+45
+50
+46
+45
+50
+46
+45
+50
+46
+45
+49
+45
+44
+49
+45
+44
+49
+45
+44
+49
+45
+44
+49
+45
+44
+50
+46
+45
+51
+47
+46
+52
+48
+47
+53
+49
+46
+56
+48
+46
+57
+49
+46
+58
+50
+47
+59
+51
+48
+61
+51
+49
+61
+52
+47
+61
+52
+47
+61
+52
+47
+63
+52
+48
+63
+52
+46
+65
+52
+46
+65
+52
+46
+67
+54
+48
+68
+55
+49
+70
+57
+51
+71
+58
+52
+72
+59
+53
+74
+59
+54
+75
+60
+55
+78
+61
+54
+80
+59
+54
+83
+58
+53
+86
+55
+50
+91
+54
+46
+99
+54
+48
+107
+54
+46
+116
+53
+44
+125
+55
+47
+135
+57
+47
+141
+59
+48
+148
+60
+48
+150
+60
+49
+157
+63
+51
+160
+64
+52
+162
+64
+51
+168
+64
+51
+177
+67
+54
+186
+68
+56
+197
+69
+58
+205
+68
+58
+213
+70
+64
+215
+72
+64
+212
+73
+66
+204
+73
+63
+190
+69
+58
+174
+67
+51
+161
+66
+46
+156
+65
+46
+157
+66
+47
+156
+65
+46
+156
+63
+46
+155
+62
+45
+155
+62
+45
+155
+62
+45
+155
+62
+47
+155
+63
+48
+152
+60
+45
+150
+61
+45
+148
+60
+46
+147
+61
+46
+143
+62
+45
+140
+61
+44
+139
+60
+43
+138
+61
+43
+137
+60
+42
+137
+60
+42
+137
+60
+44
+135
+59
+43
+135
+59
+45
+133
+60
+45
+132
+58
+45
+131
+59
+45
+132
+60
+48
+130
+60
+48
+130
+60
+50
+130
+62
+51
+131
+63
+52
+133
+65
+56
+135
+67
+58
+136
+68
+57
+148
+74
+61
+151
+72
+59
+160
+72
+62
+172
+75
+68
+178
+75
+70
+179
+76
+71
+178
+83
+77
+174
+96
+86
+173
+115
+103
+166
+129
+113
+157
+140
+122
+145
+142
+123
+130
+137
+119
+115
+128
+111
+99
+113
+98
+88
+99
+85
+78
+82
+68
+77
+78
+64
+72
+73
+59
+68
+68
+56
+64
+64
+52
+57
+59
+46
+52
+54
+43
+47
+49
+38
+48
+49
+41
+48
+49
+41
+47
+48
+42
+47
+48
+42
+46
+47
+42
+46
+47
+42
+47
+47
+45
+47
+47
+45
+47
+47
+45
+46
+48
+45
+47
+47
+45
+47
+47
+45
+47
+47
+45
+47
+47
+45
+47
+47
+45
+47
+47
+45
+48
+48
+46
+48
+48
+46
+48
+48
+46
+48
+48
+46
+48
+48
+46
+48
+48
+46
+48
+48
+46
+49
+47
+50
+54
+43
+57
+55
+43
+57
+56
+47
+52
+59
+54
+51
+72
+69
+62
+95
+94
+89
+122
+122
+124
+139
+141
+154
+144
+148
+177
+146
+151
+191
+143
+149
+199
+132
+142
+195
+125
+137
+187
+123
+137
+182
+124
+139
+178
+125
+140
+171
+125
+136
+154
+119
+131
+143
+113
+126
+135
+110
+125
+130
+110
+126
+126
+111
+130
+126
+121
+142
+133
+131
+153
+141
+139
+161
+148
+145
+168
+152
+144
+165
+148
+136
+157
+138
+131
+150
+131
+124
+141
+123
+106
+123
+105
+92
+104
+84
+86
+86
+62
+91
+87
+58
+93
+89
+62
+45
+46
+48
+45
+46
+48
+45
+46
+48
+45
+46
+48
+45
+46
+48
+45
+46
+48
+46
+46
+46
+46
+46
+46
+46
+45
+43
+46
+45
+43
+45
+44
+42
+45
+44
+42
+46
+42
+39
+46
+42
+39
+46
+42
+39
+46
+42
+41
+44
+42
+43
+43
+41
+42
+43
+41
+42
+43
+41
+42
+43
+41
+42
+42
+40
+41
+42
+40
+41
+42
+40
+41
+44
+42
+43
+44
+42
+43
+44
+42
+43
+44
+42
+43
+44
+42
+43
+44
+42
+43
+44
+42
+43
+44
+42
+43
+44
+42
+43
+44
+42
+43
+44
+42
+43
+44
+42
+43
+44
+42
+43
+45
+43
+44
+45
+43
+44
+45
+43
+44
+45
+43
+44
+46
+44
+45
+46
+44
+45
+46
+44
+45
+46
+44
+45
+47
+45
+46
+47
+45
+46
+47
+45
+46
+47
+43
+42
+48
+44
+43
+49
+45
+44
+49
+45
+44
+49
+45
+44
+49
+45
+44
+48
+44
+43
+48
+44
+43
+48
+44
+43
+48
+44
+43
+48
+44
+43
+48
+44
+43
+49
+45
+44
+50
+46
+45
+51
+47
+46
+52
+48
+47
+57
+49
+47
+58
+50
+48
+59
+51
+49
+60
+52
+49
+61
+51
+49
+61
+51
+49
+61
+51
+49
+61
+52
+47
+62
+51
+47
+62
+51
+47
+64
+50
+47
+64
+51
+45
+65
+52
+46
+67
+54
+48
+68
+55
+49
+69
+56
+50
+70
+57
+51
+72
+57
+52
+73
+58
+53
+74
+59
+54
+76
+58
+54
+78
+57
+52
+81
+56
+51
+84
+53
+48
+94
+55
+50
+101
+54
+48
+111
+54
+47
+120
+56
+47
+130
+57
+48
+138
+58
+47
+144
+60
+49
+148
+62
+49
+153
+63
+52
+155
+63
+52
+155
+63
+50
+159
+63
+49
+165
+65
+50
+174
+66
+53
+184
+68
+55
+191
+69
+58
+199
+71
+62
+203
+72
+64
+202
+74
+65
+195
+73
+62
+182
+70
+58
+170
+66
+53
+158
+65
+48
+153
+64
+46
+153
+65
+45
+153
+65
+45
+152
+63
+45
+151
+62
+44
+151
+62
+44
+153
+62
+44
+153
+61
+46
+151
+62
+46
+149
+60
+44
+148
+61
+44
+147
+61
+46
+144
+61
+45
+142
+61
+44
+138
+61
+43
+138
+61
+45
+137
+60
+44
+136
+59
+41
+136
+59
+41
+135
+59
+43
+135
+59
+43
+132
+59
+44
+132
+59
+44
+131
+59
+45
+128
+59
+44
+129
+59
+47
+128
+60
+49
+128
+60
+49
+129
+62
+53
+131
+64
+55
+131
+67
+58
+135
+68
+60
+136
+69
+60
+148
+76
+64
+150
+72
+60
+158
+71
+62
+167
+74
+67
+174
+76
+73
+174
+81
+76
+173
+93
+86
+170
+106
+94
+167
+128
+111
+161
+143
+121
+154
+154
+130
+143
+155
+131
+134
+149
+128
+122
+139
+120
+109
+123
+106
+98
+109
+93
+83
+90
+74
+81
+85
+70
+75
+79
+64
+69
+73
+58
+64
+68
+54
+59
+61
+48
+53
+55
+44
+49
+51
+40
+48
+49
+41
+47
+48
+40
+46
+47
+41
+46
+45
+40
+46
+45
+41
+46
+45
+41
+47
+46
+44
+48
+47
+45
+47
+46
+44
+47
+46
+44
+47
+46
+44
+47
+46
+44
+47
+46
+44
+46
+46
+44
+47
+46
+44
+46
+46
+44
+48
+47
+45
+47
+47
+45
+48
+47
+45
+47
+47
+45
+47
+47
+45
+47
+47
+45
+47
+47
+45
+50
+45
+49
+55
+44
+58
+54
+42
+56
+51
+45
+49
+57
+54
+49
+72
+74
+63
+98
+102
+88
+123
+128
+122
+139
+144
+147
+141
+147
+163
+143
+150
+176
+140
+149
+182
+131
+144
+178
+129
+144
+175
+133
+153
+178
+141
+164
+182
+146
+168
+179
+147
+168
+171
+144
+164
+163
+140
+160
+158
+135
+158
+152
+130
+153
+143
+125
+152
+137
+129
+156
+139
+136
+163
+144
+148
+176
+154
+152
+177
+155
+148
+173
+151
+139
+163
+141
+133
+155
+132
+127
+146
+124
+107
+124
+105
+88
+102
+79
+83
+86
+59
+89
+85
+56
+90
+86
+57
+43
+47
+50
+43
+47
+50
+43
+47
+50
+43
+47
+50
+45
+46
+48
+45
+46
+48
+46
+46
+46
+46
+46
+46
+45
+45
+45
+45
+45
+45
+46
+45
+43
+45
+44
+42
+45
+44
+42
+44
+43
+41
+44
+43
+41
+44
+43
+41
+44
+42
+43
+44
+42
+43
+44
+42
+43
+43
+41
+42
+43
+41
+42
+42
+40
+41
+42
+40
+41
+42
+40
+41
+44
+42
+43
+44
+42
+43
+44
+42
+43
+44
+42
+43
+44
+42
+43
+44
+42
+43
+44
+42
+43
+44
+42
+43
+44
+42
+43
+44
+42
+43
+44
+42
+43
+44
+42
+43
+44
+42
+43
+43
+41
+42
+43
+41
+42
+43
+41
+42
+44
+42
+43
+45
+43
+44
+45
+43
+44
+46
+44
+45
+46
+44
+45
+47
+45
+46
+47
+45
+46
+47
+45
+46
+47
+43
+42
+48
+44
+43
+48
+44
+43
+48
+44
+43
+48
+44
+43
+48
+44
+43
+47
+43
+42
+46
+42
+41
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+48
+44
+43
+49
+45
+44
+51
+47
+46
+52
+48
+47
+57
+48
+49
+58
+50
+48
+59
+51
+49
+60
+52
+50
+61
+51
+50
+61
+51
+49
+60
+50
+48
+60
+50
+48
+61
+50
+48
+61
+50
+46
+63
+49
+46
+63
+49
+46
+64
+50
+47
+65
+51
+48
+66
+53
+47
+67
+54
+48
+68
+54
+51
+67
+56
+52
+68
+57
+53
+69
+58
+54
+71
+57
+54
+72
+57
+52
+75
+56
+52
+78
+53
+48
+88
+55
+50
+95
+54
+48
+105
+55
+48
+114
+55
+47
+125
+58
+49
+134
+60
+49
+140
+62
+50
+144
+62
+50
+151
+64
+54
+151
+63
+53
+151
+63
+53
+151
+63
+51
+156
+64
+51
+163
+67
+53
+171
+67
+54
+179
+69
+56
+186
+69
+59
+189
+71
+61
+190
+72
+62
+185
+71
+61
+176
+68
+56
+166
+65
+53
+155
+63
+48
+151
+64
+47
+151
+64
+45
+151
+64
+45
+150
+63
+46
+149
+62
+45
+148
+61
+44
+149
+60
+44
+150
+61
+47
+150
+61
+47
+149
+60
+46
+147
+59
+45
+146
+60
+47
+142
+60
+46
+139
+60
+45
+137
+60
+44
+137
+60
+44
+136
+60
+44
+135
+59
+43
+134
+58
+42
+134
+58
+42
+134
+58
+42
+131
+58
+43
+131
+58
+43
+130
+58
+44
+128
+58
+46
+128
+58
+48
+128
+60
+49
+128
+61
+52
+127
+63
+54
+130
+66
+57
+131
+68
+61
+135
+70
+64
+136
+72
+63
+145
+75
+65
+146
+72
+61
+154
+71
+63
+163
+76
+69
+168
+80
+76
+168
+88
+81
+169
+102
+93
+166
+118
+104
+162
+140
+119
+155
+153
+128
+149
+164
+135
+140
+163
+135
+134
+157
+131
+126
+145
+125
+116
+130
+113
+106
+117
+101
+92
+101
+82
+86
+95
+76
+78
+85
+67
+69
+76
+58
+63
+70
+54
+60
+64
+50
+55
+58
+47
+54
+56
+45
+48
+49
+41
+48
+48
+40
+46
+45
+40
+47
+44
+39
+47
+43
+40
+47
+43
+42
+49
+45
+44
+50
+46
+45
+49
+45
+44
+49
+45
+44
+49
+45
+44
+49
+45
+44
+49
+45
+44
+47
+46
+44
+49
+45
+44
+47
+46
+44
+50
+46
+45
+48
+47
+45
+50
+46
+45
+48
+47
+45
+48
+47
+45
+48
+47
+45
+48
+47
+45
+50
+45
+49
+56
+44
+58
+53
+41
+53
+49
+43
+43
+54
+54
+44
+71
+76
+56
+96
+104
+81
+122
+131
+112
+136
+146
+135
+141
+151
+150
+143
+154
+160
+141
+153
+165
+134
+150
+163
+135
+155
+162
+144
+170
+169
+155
+185
+177
+160
+192
+179
+152
+183
+168
+154
+182
+167
+155
+183
+168
+152
+183
+165
+145
+177
+156
+137
+171
+146
+137
+171
+144
+144
+177
+148
+146
+179
+150
+149
+180
+149
+144
+173
+143
+136
+162
+133
+132
+155
+129
+123
+146
+120
+103
+122
+100
+84
+98
+73
+81
+84
+57
+85
+84
+56
+86
+85
+57
+44
+48
+51
+44
+48
+51
+44
+48
+51
+44
+48
+51
+46
+47
+49
+46
+47
+49
+47
+47
+47
+47
+47
+47
+46
+46
+46
+46
+46
+46
+47
+46
+44
+46
+45
+43
+46
+45
+43
+46
+45
+43
+45
+44
+42
+45
+44
+42
+45
+43
+44
+45
+43
+44
+45
+43
+44
+44
+42
+43
+43
+41
+42
+42
+40
+41
+42
+40
+41
+42
+40
+41
+43
+41
+42
+43
+41
+42
+43
+41
+42
+43
+41
+42
+43
+41
+42
+43
+41
+42
+43
+41
+42
+43
+41
+42
+44
+42
+43
+44
+42
+43
+43
+41
+42
+43
+41
+42
+43
+41
+42
+42
+40
+41
+42
+40
+41
+42
+40
+41
+44
+42
+43
+44
+42
+43
+44
+42
+43
+45
+43
+44
+46
+44
+45
+46
+44
+45
+47
+45
+46
+47
+45
+46
+47
+43
+42
+47
+43
+42
+48
+44
+43
+48
+44
+43
+47
+43
+42
+47
+43
+42
+46
+42
+41
+45
+41
+40
+48
+44
+43
+48
+44
+43
+47
+43
+42
+48
+44
+43
+49
+45
+44
+50
+46
+45
+51
+47
+46
+52
+48
+47
+58
+49
+50
+58
+49
+50
+59
+51
+49
+60
+52
+50
+61
+51
+50
+60
+50
+49
+60
+50
+48
+59
+49
+47
+61
+50
+48
+60
+49
+47
+62
+48
+45
+62
+48
+45
+63
+49
+46
+64
+50
+47
+65
+52
+46
+63
+52
+46
+64
+53
+49
+64
+55
+50
+64
+57
+51
+65
+58
+52
+66
+57
+52
+67
+56
+52
+70
+55
+52
+72
+53
+47
+81
+53
+49
+88
+53
+47
+97
+54
+47
+108
+56
+45
+117
+57
+46
+128
+60
+47
+134
+62
+48
+139
+61
+49
+147
+63
+53
+149
+62
+53
+147
+63
+53
+147
+63
+52
+149
+66
+52
+154
+66
+52
+160
+67
+52
+165
+68
+52
+172
+66
+53
+176
+68
+56
+180
+69
+58
+177
+69
+59
+170
+66
+55
+161
+63
+52
+154
+62
+49
+150
+62
+48
+149
+63
+46
+148
+63
+43
+147
+61
+44
+147
+61
+44
+147
+60
+43
+147
+60
+43
+148
+60
+46
+148
+60
+46
+147
+59
+45
+146
+60
+45
+143
+60
+46
+141
+59
+45
+138
+59
+44
+137
+60
+44
+135
+59
+43
+135
+59
+43
+134
+58
+42
+134
+58
+42
+133
+57
+41
+131
+58
+41
+131
+58
+43
+129
+57
+42
+127
+57
+45
+127
+57
+45
+128
+60
+49
+127
+60
+51
+127
+63
+54
+128
+65
+56
+130
+67
+60
+133
+70
+63
+136
+73
+66
+138
+73
+67
+142
+74
+65
+144
+71
+62
+151
+72
+67
+159
+78
+74
+167
+86
+82
+167
+96
+90
+169
+112
+101
+164
+131
+114
+156
+148
+125
+150
+161
+131
+143
+168
+138
+136
+167
+136
+131
+160
+132
+126
+150
+126
+121
+136
+117
+112
+123
+106
+100
+112
+92
+93
+105
+83
+82
+94
+74
+74
+83
+64
+66
+75
+58
+62
+69
+53
+58
+64
+50
+57
+60
+49
+51
+52
+44
+50
+50
+42
+49
+46
+41
+47
+44
+39
+47
+41
+41
+48
+42
+42
+49
+43
+43
+50
+44
+44
+49
+43
+43
+49
+43
+43
+49
+43
+43
+49
+43
+43
+49
+43
+43
+48
+44
+43
+48
+44
+43
+48
+44
+43
+49
+45
+44
+49
+45
+44
+49
+45
+44
+49
+45
+44
+47
+46
+44
+47
+46
+44
+47
+46
+44
+50
+44
+46
+56
+42
+55
+53
+40
+49
+51
+43
+40
+53
+54
+38
+69
+75
+49
+92
+103
+71
+117
+130
+100
+134
+147
+121
+142
+155
+138
+145
+158
+148
+144
+159
+154
+139
+158
+152
+141
+165
+151
+151
+180
+158
+162
+197
+165
+169
+206
+173
+165
+201
+173
+166
+202
+176
+167
+203
+177
+164
+200
+172
+151
+190
+159
+139
+179
+145
+136
+176
+141
+141
+178
+144
+142
+178
+142
+144
+178
+143
+141
+172
+138
+132
+161
+130
+128
+153
+123
+119
+142
+114
+100
+120
+93
+81
+95
+69
+77
+81
+54
+81
+81
+53
+82
+81
+53
+44
+48
+51
+44
+48
+51
+44
+48
+51
+44
+48
+51
+46
+47
+49
+46
+47
+49
+46
+47
+49
+46
+47
+49
+47
+47
+47
+47
+47
+47
+47
+47
+47
+47
+47
+47
+47
+46
+44
+47
+46
+44
+46
+45
+43
+46
+45
+43
+47
+45
+46
+46
+44
+45
+46
+44
+45
+45
+43
+44
+44
+42
+43
+43
+41
+42
+43
+41
+42
+42
+40
+41
+43
+41
+42
+43
+41
+42
+43
+41
+42
+43
+41
+42
+43
+41
+42
+43
+41
+42
+43
+41
+42
+43
+41
+42
+43
+41
+42
+43
+41
+42
+43
+41
+42
+42
+40
+41
+42
+40
+41
+42
+40
+41
+41
+39
+40
+41
+39
+40
+43
+41
+42
+43
+41
+42
+44
+42
+43
+45
+43
+44
+46
+44
+45
+46
+44
+45
+47
+45
+46
+47
+45
+46
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+47
+43
+42
+46
+42
+41
+45
+41
+40
+44
+40
+39
+48
+44
+43
+48
+44
+43
+48
+44
+43
+48
+44
+43
+49
+45
+44
+50
+46
+45
+52
+48
+47
+52
+48
+47
+58
+49
+50
+59
+50
+51
+59
+50
+51
+60
+51
+52
+61
+51
+50
+60
+50
+49
+60
+50
+49
+59
+49
+48
+60
+49
+47
+60
+49
+47
+62
+48
+47
+61
+47
+46
+62
+48
+45
+62
+48
+45
+63
+49
+46
+62
+51
+47
+61
+54
+48
+59
+54
+48
+59
+56
+51
+60
+57
+52
+61
+58
+53
+62
+57
+51
+64
+55
+50
+67
+54
+48
+71
+52
+46
+79
+52
+43
+89
+52
+43
+100
+53
+43
+110
+56
+44
+120
+58
+45
+127
+59
+46
+133
+59
+46
+143
+60
+52
+145
+60
+53
+144
+62
+51
+143
+64
+51
+144
+65
+50
+147
+66
+49
+151
+65
+50
+153
+64
+48
+160
+62
+49
+166
+64
+52
+170
+66
+55
+170
+66
+57
+165
+64
+54
+159
+62
+53
+151
+61
+50
+149
+63
+50
+146
+63
+45
+146
+63
+45
+145
+62
+44
+144
+61
+43
+145
+59
+42
+145
+59
+42
+146
+60
+45
+146
+60
+45
+145
+59
+46
+145
+59
+46
+142
+59
+45
+141
+59
+45
+138
+59
+46
+136
+58
+45
+134
+58
+44
+132
+59
+44
+133
+57
+41
+133
+57
+41
+131
+58
+41
+130
+57
+40
+130
+57
+42
+129
+57
+42
+126
+56
+44
+126
+56
+44
+128
+60
+49
+128
+61
+52
+128
+64
+55
+129
+66
+57
+132
+69
+62
+133
+73
+65
+136
+75
+70
+140
+77
+70
+140
+73
+65
+142
+72
+64
+152
+74
+70
+161
+83
+79
+168
+93
+88
+169
+104
+98
+169
+123
+110
+164
+142
+121
+153
+156
+129
+146
+167
+134
+137
+172
+139
+130
+170
+136
+128
+161
+132
+127
+153
+128
+126
+139
+119
+120
+129
+110
+106
+120
+97
+100
+114
+91
+90
+104
+81
+81
+93
+73
+73
+84
+67
+67
+76
+59
+62
+68
+54
+60
+63
+52
+54
+55
+47
+52
+52
+44
+51
+48
+43
+48
+43
+39
+49
+40
+41
+49
+40
+41
+50
+41
+42
+52
+43
+44
+50
+41
+42
+50
+41
+42
+50
+41
+42
+50
+41
+42
+50
+41
+42
+48
+42
+42
+48
+42
+42
+48
+42
+42
+49
+43
+43
+49
+43
+43
+48
+44
+43
+48
+44
+43
+48
+44
+43
+48
+44
+43
+48
+44
+43
+49
+43
+45
+54
+41
+50
+53
+41
+45
+52
+45
+37
+52
+54
+33
+65
+72
+38
+87
+99
+59
+113
+128
+87
+130
+146
+109
+141
+156
+125
+144
+160
+134
+144
+162
+140
+139
+161
+138
+141
+168
+137
+149
+184
+142
+160
+200
+148
+164
+208
+157
+169
+211
+171
+168
+210
+174
+167
+209
+173
+161
+203
+165
+147
+189
+151
+133
+175
+135
+130
+172
+132
+135
+176
+134
+136
+174
+133
+140
+177
+136
+139
+171
+134
+129
+159
+123
+123
+148
+116
+113
+136
+107
+95
+115
+87
+77
+93
+66
+73
+79
+51
+74
+77
+48
+76
+76
+48
+46
+47
+49
+44
+48
+49
+46
+47
+49
+46
+47
+49
+46
+48
+47
+46
+48
+47
+46
+48
+47
+47
+47
+47
+48
+48
+46
+48
+48
+46
+48
+48
+46
+48
+47
+45
+48
+47
+45
+48
+47
+43
+47
+46
+44
+49
+45
+44
+50
+46
+45
+49
+45
+44
+49
+45
+44
+48
+44
+43
+47
+43
+44
+44
+42
+43
+43
+41
+42
+43
+41
+42
+43
+41
+42
+43
+41
+42
+43
+41
+42
+43
+41
+42
+43
+41
+42
+43
+41
+42
+43
+41
+44
+43
+41
+42
+43
+41
+44
+43
+41
+42
+45
+40
+44
+42
+40
+41
+44
+40
+41
+41
+39
+40
+41
+39
+40
+40
+38
+39
+42
+40
+41
+43
+41
+42
+44
+42
+43
+44
+43
+41
+45
+43
+44
+46
+45
+43
+47
+46
+44
+47
+46
+44
+45
+44
+42
+45
+44
+42
+47
+43
+42
+47
+43
+42
+46
+42
+41
+45
+41
+40
+44
+40
+39
+44
+40
+39
+49
+45
+44
+50
+45
+42
+50
+45
+42
+50
+45
+42
+51
+46
+43
+52
+47
+44
+53
+48
+45
+54
+49
+46
+59
+51
+49
+59
+51
+49
+60
+52
+50
+60
+52
+50
+61
+51
+49
+60
+50
+48
+59
+49
+47
+59
+49
+47
+60
+49
+47
+60
+49
+47
+61
+47
+46
+61
+47
+46
+61
+47
+44
+62
+48
+45
+63
+49
+46
+61
+50
+46
+62
+51
+45
+61
+54
+46
+60
+55
+49
+57
+57
+49
+57
+58
+50
+58
+58
+50
+59
+56
+49
+63
+54
+47
+67
+50
+43
+74
+49
+44
+84
+50
+41
+94
+51
+42
+104
+54
+43
+111
+57
+45
+118
+60
+46
+123
+59
+47
+135
+61
+50
+139
+61
+51
+139
+63
+50
+140
+64
+50
+142
+64
+51
+143
+64
+49
+146
+63
+49
+149
+61
+47
+152
+60
+47
+156
+62
+50
+162
+66
+54
+161
+67
+55
+158
+66
+55
+153
+63
+52
+150
+62
+50
+148
+62
+49
+148
+62
+47
+147
+61
+46
+144
+61
+45
+142
+61
+44
+142
+61
+44
+140
+61
+44
+140
+61
+46
+141
+62
+47
+142
+60
+46
+142
+60
+46
+139
+60
+47
+138
+59
+46
+136
+58
+45
+135
+59
+45
+132
+59
+44
+132
+59
+44
+130
+58
+43
+128
+59
+43
+127
+58
+42
+126
+59
+42
+126
+59
+43
+124
+58
+42
+124
+58
+44
+124
+58
+46
+128
+62
+50
+129
+62
+53
+128
+64
+54
+130
+67
+58
+133
+70
+61
+133
+74
+66
+136
+77
+69
+139
+79
+71
+140
+73
+67
+142
+73
+68
+147
+80
+74
+152
+92
+84
+157
+104
+96
+157
+117
+105
+158
+135
+117
+157
+153
+128
+147
+162
+133
+143
+170
+137
+137
+172
+139
+129
+169
+135
+127
+162
+132
+125
+155
+127
+122
+144
+121
+116
+136
+111
+103
+126
+98
+98
+121
+93
+92
+112
+85
+85
+103
+79
+78
+93
+72
+71
+82
+65
+64
+73
+56
+61
+65
+51
+56
+56
+46
+56
+53
+46
+53
+48
+44
+51
+43
+41
+50
+40
+41
+50
+40
+41
+51
+41
+42
+52
+42
+43
+50
+41
+44
+48
+42
+42
+48
+42
+44
+50
+41
+42
+50
+41
+44
+50
+41
+44
+50
+41
+44
+50
+41
+44
+51
+42
+45
+51
+42
+45
+49
+43
+45
+49
+43
+45
+48
+44
+45
+48
+44
+45
+48
+44
+45
+49
+43
+47
+52
+41
+47
+52
+42
+43
+52
+45
+37
+52
+54
+33
+63
+70
+37
+84
+96
+56
+109
+124
+81
+129
+144
+103
+137
+153
+116
+141
+158
+122
+141
+161
+126
+136
+161
+122
+138
+167
+123
+145
+182
+130
+155
+196
+136
+159
+203
+144
+159
+201
+153
+158
+199
+157
+157
+198
+154
+152
+193
+149
+140
+183
+138
+130
+173
+128
+133
+174
+130
+140
+181
+137
+132
+171
+127
+137
+174
+133
+137
+169
+130
+126
+156
+120
+118
+143
+111
+108
+131
+102
+90
+110
+83
+74
+90
+63
+70
+76
+50
+70
+74
+47
+70
+72
+48
+47
+48
+43
+46
+48
+43
+47
+48
+43
+48
+49
+44
+48
+49
+44
+48
+49
+44
+49
+50
+45
+50
+49
+45
+51
+50
+46
+52
+51
+47
+52
+51
+47
+54
+50
+47
+53
+49
+46
+52
+49
+44
+51
+47
+44
+52
+47
+44
+53
+48
+45
+53
+48
+45
+52
+47
+44
+51
+46
+43
+50
+44
+44
+49
+45
+44
+48
+44
+43
+48
+44
+43
+46
+44
+45
+46
+44
+45
+45
+45
+47
+45
+45
+47
+44
+44
+46
+43
+43
+45
+42
+41
+46
+41
+41
+43
+46
+41
+47
+46
+41
+45
+47
+40
+47
+46
+41
+45
+47
+41
+45
+46
+41
+45
+46
+42
+43
+46
+42
+43
+47
+43
+42
+47
+43
+42
+45
+44
+42
+46
+45
+41
+45
+45
+43
+45
+46
+41
+46
+47
+42
+46
+47
+42
+45
+45
+45
+45
+45
+45
+46
+44
+45
+47
+45
+46
+47
+46
+44
+48
+47
+45
+50
+46
+43
+50
+46
+43
+50
+45
+42
+52
+44
+41
+53
+45
+42
+54
+46
+43
+56
+47
+42
+58
+49
+44
+58
+49
+42
+59
+50
+43
+61
+52
+45
+61
+52
+45
+62
+53
+48
+62
+53
+48
+62
+53
+48
+61
+52
+47
+60
+51
+46
+59
+50
+45
+61
+50
+46
+60
+49
+45
+60
+49
+47
+59
+48
+46
+61
+47
+46
+62
+48
+47
+62
+48
+47
+64
+49
+46
+66
+47
+41
+66
+49
+41
+60
+51
+42
+57
+54
+45
+53
+56
+45
+52
+55
+46
+54
+54
+46
+59
+50
+45
+64
+45
+41
+71
+41
+39
+79
+39
+39
+86
+41
+38
+91
+46
+40
+97
+53
+44
+102
+60
+48
+109
+63
+48
+121
+65
+48
+127
+64
+47
+134
+65
+49
+139
+66
+51
+143
+64
+51
+147
+61
+48
+147
+59
+47
+146
+56
+45
+147
+59
+47
+147
+61
+46
+148
+65
+49
+149
+66
+50
+148
+67
+50
+146
+65
+48
+145
+62
+46
+145
+59
+44
+151
+59
+48
+151
+58
+50
+146
+59
+49
+140
+61
+48
+136
+63
+48
+132
+63
+47
+130
+63
+46
+130
+63
+46
+136
+64
+49
+136
+63
+48
+138
+62
+49
+137
+61
+48
+136
+60
+47
+135
+59
+46
+132
+58
+45
+131
+59
+45
+123
+57
+43
+126
+64
+51
+118
+60
+46
+112
+56
+41
+118
+62
+45
+118
+62
+45
+118
+59
+45
+125
+63
+50
+125
+59
+47
+131
+63
+52
+136
+68
+57
+139
+72
+63
+138
+76
+65
+135
+77
+66
+133
+79
+67
+135
+78
+69
+144
+76
+73
+149
+84
+80
+147
+99
+89
+142
+113
+97
+138
+125
+106
+134
+138
+113
+135
+151
+124
+136
+159
+130
+139
+166
+135
+138
+167
+137
+139
+168
+138
+138
+168
+140
+132
+165
+136
+124
+161
+130
+114
+155
+123
+110
+151
+117
+104
+142
+105
+97
+133
+95
+91
+122
+88
+89
+116
+85
+90
+110
+83
+86
+101
+78
+79
+88
+69
+73
+75
+61
+66
+63
+54
+64
+57
+51
+58
+48
+46
+53
+43
+42
+51
+39
+41
+51
+39
+43
+51
+39
+43
+49
+38
+42
+47
+41
+45
+45
+41
+42
+45
+40
+44
+45
+39
+41
+47
+38
+43
+49
+38
+44
+51
+38
+45
+51
+38
+45
+52
+39
+46
+52
+39
+46
+51
+40
+48
+50
+40
+48
+48
+41
+49
+47
+42
+49
+47
+42
+49
+47
+42
+48
+47
+41
+45
+49
+43
+43
+48
+45
+40
+47
+47
+35
+60
+63
+42
+86
+92
+64
+112
+122
+88
+127
+139
+103
+141
+156
+117
+139
+157
+115
+140
+161
+118
+140
+166
+119
+138
+168
+118
+137
+170
+117
+142
+180
+123
+153
+191
+134
+159
+193
+143
+157
+190
+143
+150
+186
+138
+143
+179
+131
+136
+174
+125
+133
+171
+124
+131
+170
+123
+133
+170
+126
+131
+168
+125
+131
+166
+126
+128
+158
+124
+121
+148
+117
+114
+137
+109
+104
+124
+99
+89
+107
+85
+77
+90
+70
+74
+82
+61
+68
+73
+51
+62
+65
+46
+47
+48
+42
+48
+49
+43
+48
+49
+43
+48
+49
+43
+49
+50
+44
+49
+50
+44
+50
+49
+44
+51
+50
+45
+52
+51
+46
+52
+51
+46
+55
+52
+47
+55
+52
+47
+54
+51
+46
+53
+50
+45
+53
+48
+44
+53
+48
+44
+55
+47
+44
+55
+47
+44
+54
+46
+44
+54
+46
+44
+51
+46
+43
+50
+45
+42
+48
+44
+43
+48
+44
+43
+48
+44
+45
+47
+45
+46
+47
+45
+48
+45
+45
+47
+45
+44
+49
+43
+42
+47
+41
+42
+46
+41
+40
+45
+46
+41
+47
+47
+40
+47
+47
+40
+47
+47
+40
+47
+47
+41
+45
+47
+41
+45
+46
+42
+43
+46
+42
+43
+47
+43
+42
+47
+43
+42
+46
+45
+41
+46
+45
+41
+46
+47
+42
+46
+47
+42
+46
+47
+41
+46
+47
+42
+46
+46
+46
+46
+46
+48
+46
+46
+46
+46
+46
+46
+47
+46
+44
+47
+46
+44
+49
+45
+42
+51
+46
+43
+53
+45
+42
+53
+46
+40
+55
+46
+41
+56
+47
+40
+58
+47
+41
+59
+48
+42
+60
+50
+41
+61
+51
+42
+62
+53
+44
+62
+53
+44
+62
+53
+46
+62
+53
+46
+62
+53
+46
+61
+52
+45
+60
+51
+46
+60
+51
+46
+61
+50
+46
+60
+49
+45
+59
+48
+46
+59
+48
+46
+61
+47
+46
+61
+47
+46
+62
+48
+47
+64
+49
+46
+68
+47
+42
+70
+47
+41
+67
+50
+43
+64
+51
+43
+61
+52
+45
+60
+51
+44
+59
+50
+45
+62
+48
+45
+65
+44
+43
+70
+42
+41
+75
+41
+40
+80
+42
+39
+86
+45
+41
+92
+51
+45
+97
+57
+49
+103
+61
+47
+112
+65
+47
+120
+65
+45
+128
+65
+48
+136
+64
+50
+143
+63
+52
+145
+61
+51
+147
+58
+50
+147
+59
+49
+141
+57
+46
+139
+60
+47
+139
+62
+46
+140
+64
+48
+141
+65
+49
+141
+65
+49
+142
+65
+47
+145
+63
+49
+149
+59
+50
+149
+59
+50
+144
+60
+50
+139
+61
+48
+134
+62
+48
+131
+64
+47
+129
+63
+47
+129
+64
+46
+133
+64
+49
+134
+62
+47
+135
+61
+48
+136
+60
+46
+133
+59
+46
+132
+59
+44
+130
+58
+44
+127
+60
+44
+119
+57
+44
+119
+61
+49
+112
+59
+45
+109
+57
+43
+114
+63
+46
+114
+63
+46
+113
+57
+42
+117
+58
+44
+127
+61
+49
+132
+64
+53
+138
+68
+58
+140
+72
+61
+138
+74
+64
+135
+77
+65
+133
+79
+67
+136
+77
+69
+144
+74
+72
+149
+84
+82
+145
+102
+93
+138
+119
+102
+131
+135
+112
+127
+147
+119
+128
+159
+127
+131
+166
+134
+134
+167
+136
+139
+168
+138
+143
+167
+141
+143
+167
+141
+136
+165
+137
+127
+160
+131
+117
+156
+125
+109
+153
+118
+100
+147
+105
+94
+139
+96
+89
+130
+90
+89
+123
+88
+90
+119
+88
+88
+111
+83
+82
+97
+74
+77
+86
+67
+69
+73
+59
+65
+65
+55
+59
+56
+51
+53
+48
+45
+51
+42
+43
+50
+41
+42
+49
+40
+43
+46
+40
+42
+49
+40
+43
+48
+39
+44
+48
+39
+44
+48
+39
+44
+49
+38
+44
+51
+38
+45
+52
+39
+48
+52
+39
+48
+52
+39
+48
+51
+40
+48
+50
+40
+49
+48
+41
+49
+47
+42
+49
+45
+42
+51
+44
+43
+51
+44
+43
+49
+50
+45
+49
+50
+46
+45
+48
+44
+41
+45
+45
+37
+56
+58
+44
+83
+88
+66
+111
+120
+93
+128
+139
+105
+135
+150
+111
+134
+153
+108
+134
+158
+110
+136
+163
+112
+134
+164
+112
+132
+165
+112
+138
+173
+119
+147
+182
+128
+153
+185
+135
+150
+182
+132
+147
+179
+129
+140
+174
+123
+134
+171
+120
+130
+168
+119
+130
+168
+121
+131
+168
+124
+131
+166
+124
+130
+164
+127
+127
+157
+123
+120
+146
+117
+113
+136
+110
+104
+123
+101
+89
+106
+87
+77
+90
+72
+70
+77
+59
+64
+68
+51
+59
+62
+45
+49
+50
+44
+49
+50
+44
+49
+50
+44
+49
+50
+44
+50
+51
+45
+50
+51
+45
+52
+51
+46
+52
+51
+46
+53
+52
+47
+53
+52
+47
+56
+53
+48
+56
+53
+48
+56
+53
+48
+55
+52
+47
+55
+50
+46
+54
+49
+45
+56
+48
+45
+56
+48
+45
+55
+47
+44
+54
+46
+43
+52
+47
+44
+51
+46
+43
+50
+44
+44
+49
+45
+44
+49
+45
+46
+47
+45
+46
+48
+46
+49
+47
+45
+48
+45
+45
+47
+44
+44
+46
+43
+42
+47
+43
+41
+46
+47
+40
+47
+49
+39
+47
+47
+41
+45
+47
+41
+45
+47
+41
+45
+47
+41
+45
+46
+42
+43
+46
+42
+43
+48
+44
+43
+48
+44
+43
+47
+46
+42
+47
+46
+42
+47
+46
+41
+48
+47
+42
+48
+47
+42
+48
+47
+43
+47
+47
+45
+47
+47
+47
+48
+46
+47
+48
+46
+47
+48
+47
+45
+47
+46
+44
+49
+45
+42
+50
+45
+42
+54
+46
+43
+55
+48
+42
+57
+48
+43
+58
+49
+42
+60
+49
+43
+61
+51
+42
+62
+52
+43
+63
+53
+44
+63
+54
+45
+63
+54
+45
+64
+55
+46
+64
+55
+46
+63
+54
+47
+62
+53
+46
+61
+52
+45
+61
+52
+45
+61
+50
+46
+60
+49
+45
+59
+48
+46
+59
+48
+46
+59
+48
+46
+59
+48
+46
+60
+49
+47
+63
+49
+46
+68
+49
+43
+71
+47
+43
+74
+46
+43
+76
+44
+45
+79
+43
+47
+78
+42
+46
+74
+42
+47
+71
+42
+46
+68
+44
+44
+65
+46
+42
+66
+45
+40
+70
+45
+40
+79
+46
+41
+89
+48
+42
+99
+50
+45
+105
+52
+44
+107
+58
+44
+111
+59
+45
+119
+59
+48
+129
+61
+52
+135
+60
+54
+140
+60
+53
+141
+58
+52
+141
+58
+52
+138
+60
+50
+135
+61
+50
+134
+62
+50
+133
+63
+51
+134
+65
+50
+137
+65
+51
+140
+66
+53
+143
+67
+53
+142
+63
+50
+143
+61
+47
+140
+62
+49
+138
+62
+46
+135
+62
+47
+133
+62
+44
+134
+61
+46
+134
+61
+44
+137
+59
+46
+137
+60
+44
+136
+58
+45
+134
+58
+42
+132
+59
+44
+128
+60
+41
+126
+61
+43
+122
+61
+43
+124
+62
+49
+120
+60
+49
+117
+59
+47
+116
+60
+47
+118
+65
+49
+118
+65
+49
+117
+61
+46
+118
+59
+45
+127
+63
+53
+132
+65
+56
+138
+70
+61
+140
+72
+63
+138
+74
+65
+137
+74
+65
+136
+78
+67
+140
+77
+70
+147
+73
+72
+153
+83
+81
+151
+101
+92
+146
+117
+101
+138
+132
+110
+131
+144
+116
+129
+156
+123
+130
+164
+131
+134
+168
+135
+138
+169
+137
+143
+169
+140
+145
+168
+140
+144
+164
+137
+138
+158
+131
+130
+153
+125
+122
+151
+120
+107
+149
+109
+97
+146
+101
+92
+139
+97
+92
+134
+96
+93
+130
+96
+91
+124
+93
+85
+114
+86
+80
+104
+80
+70
+89
+69
+66
+80
+63
+58
+68
+57
+51
+58
+50
+46
+51
+44
+42
+47
+41
+40
+45
+41
+43
+42
+40
+50
+38
+40
+53
+36
+42
+53
+36
+42
+53
+36
+42
+52
+37
+42
+53
+38
+43
+51
+40
+46
+51
+42
+47
+48
+42
+46
+47
+42
+46
+44
+43
+48
+43
+44
+48
+41
+45
+48
+40
+45
+49
+38
+46
+49
+40
+45
+48
+49
+47
+50
+51
+47
+46
+46
+42
+39
+42
+42
+34
+53
+55
+42
+80
+85
+65
+109
+118
+91
+124
+138
+105
+128
+144
+107
+126
+147
+106
+127
+153
+106
+131
+159
+110
+128
+160
+110
+126
+160
+109
+128
+165
+113
+135
+172
+120
+141
+175
+124
+139
+173
+122
+136
+170
+120
+132
+169
+118
+129
+167
+118
+127
+167
+117
+127
+166
+119
+127
+166
+121
+127
+164
+121
+128
+162
+125
+125
+155
+121
+119
+145
+116
+112
+135
+109
+104
+124
+99
+89
+107
+85
+77
+90
+70
+69
+73
+58
+62
+64
+50
+57
+58
+44
+50
+51
+45
+50
+51
+45
+51
+52
+46
+51
+52
+46
+51
+52
+46
+52
+53
+47
+53
+52
+47
+53
+52
+47
+54
+53
+48
+55
+54
+49
+57
+54
+49
+58
+55
+50
+58
+55
+50
+57
+54
+49
+57
+52
+48
+57
+52
+48
+58
+50
+47
+57
+49
+46
+57
+49
+46
+56
+48
+45
+53
+48
+45
+52
+47
+44
+52
+46
+46
+52
+46
+46
+51
+47
+48
+51
+47
+48
+49
+47
+48
+49
+47
+50
+48
+46
+49
+46
+46
+48
+45
+45
+47
+45
+43
+46
+48
+41
+48
+50
+41
+46
+48
+42
+46
+48
+42
+46
+48
+42
+46
+48
+42
+44
+47
+43
+44
+47
+43
+42
+49
+45
+44
+49
+45
+44
+48
+47
+43
+48
+47
+43
+49
+48
+43
+49
+48
+43
+49
+48
+43
+49
+48
+44
+49
+49
+47
+49
+49
+49
+49
+47
+48
+49
+48
+46
+49
+48
+46
+50
+46
+43
+51
+46
+43
+51
+46
+42
+57
+50
+44
+57
+50
+44
+59
+50
+43
+60
+51
+44
+62
+52
+43
+64
+54
+45
+64
+54
+45
+65
+55
+46
+66
+56
+47
+65
+56
+47
+66
+57
+48
+65
+56
+47
+65
+56
+49
+64
+55
+48
+62
+53
+46
+62
+53
+46
+61
+50
+46
+61
+50
+46
+60
+49
+47
+59
+48
+46
+59
+48
+46
+60
+49
+47
+61
+50
+48
+63
+49
+46
+66
+51
+46
+70
+49
+46
+77
+45
+46
+84
+41
+48
+88
+38
+47
+87
+37
+46
+81
+38
+47
+75
+40
+46
+68
+47
+46
+62
+49
+43
+60
+50
+41
+64
+50
+41
+72
+47
+40
+84
+47
+41
+96
+45
+42
+101
+46
+41
+105
+57
+47
+107
+59
+47
+117
+60
+51
+125
+60
+54
+133
+59
+56
+137
+59
+57
+138
+59
+55
+136
+58
+54
+137
+62
+56
+134
+64
+56
+134
+66
+57
+133
+66
+57
+133
+67
+55
+134
+66
+55
+135
+65
+55
+137
+65
+53
+137
+64
+49
+137
+64
+47
+136
+63
+46
+136
+63
+46
+135
+62
+45
+136
+60
+44
+136
+59
+43
+137
+58
+43
+138
+56
+42
+138
+56
+42
+136
+57
+42
+133
+57
+41
+130
+59
+41
+125
+60
+40
+122
+61
+40
+120
+62
+42
+127
+64
+49
+122
+55
+46
+120
+56
+46
+120
+60
+49
+117
+59
+45
+118
+62
+47
+123
+65
+51
+123
+64
+50
+128
+66
+55
+132
+68
+58
+135
+71
+61
+137
+73
+63
+136
+73
+64
+138
+75
+66
+138
+78
+68
+140
+80
+72
+144
+81
+74
+147
+90
+81
+148
+101
+91
+143
+114
+98
+137
+125
+103
+132
+136
+109
+131
+147
+118
+131
+156
+124
+135
+165
+131
+136
+167
+135
+139
+168
+137
+143
+168
+138
+143
+163
+135
+139
+158
+130
+136
+152
+126
+127
+150
+121
+114
+148
+111
+108
+146
+105
+104
+142
+103
+102
+140
+101
+103
+139
+103
+100
+134
+101
+96
+125
+95
+92
+118
+91
+81
+103
+80
+76
+93
+74
+66
+80
+63
+57
+68
+54
+50
+58
+47
+46
+52
+42
+44
+47
+40
+45
+42
+37
+53
+37
+38
+56
+35
+40
+56
+35
+40
+55
+36
+40
+52
+37
+40
+51
+39
+43
+50
+41
+44
+48
+44
+45
+44
+42
+43
+43
+43
+45
+42
+43
+45
+40
+44
+45
+39
+44
+47
+39
+44
+47
+37
+45
+47
+40
+44
+45
+46
+42
+43
+49
+43
+43
+48
+43
+39
+46
+43
+34
+56
+56
+44
+80
+85
+65
+105
+113
+89
+118
+132
+99
+123
+140
+104
+121
+143
+104
+124
+150
+105
+127
+156
+108
+125
+159
+109
+121
+158
+107
+122
+160
+109
+127
+165
+114
+130
+167
+116
+128
+165
+113
+125
+163
+112
+125
+163
+112
+125
+165
+115
+126
+165
+118
+126
+165
+120
+125
+164
+120
+124
+161
+120
+125
+159
+122
+122
+153
+119
+117
+144
+113
+110
+135
+106
+101
+124
+98
+87
+107
+82
+78
+91
+71
+69
+71
+57
+63
+61
+48
+57
+55
+42
+52
+53
+47
+52
+53
+47
+52
+53
+47
+53
+54
+48
+53
+54
+48
+53
+54
+48
+55
+54
+49
+55
+54
+49
+56
+55
+50
+56
+55
+50
+59
+56
+51
+60
+57
+52
+60
+57
+52
+60
+57
+52
+60
+55
+51
+60
+55
+51
+60
+52
+49
+60
+52
+49
+59
+51
+48
+59
+51
+48
+56
+51
+48
+55
+50
+47
+54
+49
+46
+54
+49
+46
+53
+49
+48
+54
+50
+49
+54
+50
+49
+51
+49
+50
+50
+48
+49
+49
+47
+48
+48
+46
+47
+49
+45
+46
+50
+44
+48
+52
+43
+46
+52
+43
+46
+52
+43
+46
+50
+44
+46
+50
+44
+44
+50
+44
+44
+50
+44
+44
+51
+47
+46
+51
+47
+44
+51
+47
+44
+51
+47
+44
+50
+49
+44
+50
+49
+44
+51
+50
+45
+51
+50
+46
+51
+50
+48
+51
+50
+48
+51
+50
+48
+51
+50
+48
+53
+49
+48
+53
+49
+46
+54
+49
+46
+54
+49
+45
+59
+52
+46
+60
+53
+47
+61
+52
+45
+63
+54
+45
+65
+55
+46
+66
+56
+47
+69
+56
+47
+67
+57
+47
+68
+58
+49
+68
+58
+49
+69
+59
+50
+68
+58
+49
+67
+57
+48
+66
+56
+47
+64
+53
+47
+64
+53
+47
+62
+51
+47
+62
+51
+47
+61
+50
+46
+61
+50
+46
+61
+50
+48
+61
+50
+48
+62
+51
+49
+62
+51
+49
+66
+52
+49
+70
+50
+49
+78
+48
+50
+85
+44
+52
+90
+40
+51
+89
+39
+50
+83
+40
+49
+76
+44
+49
+68
+50
+48
+60
+53
+45
+57
+55
+43
+60
+54
+42
+68
+51
+41
+78
+49
+41
+90
+47
+41
+94
+47
+41
+102
+58
+49
+106
+59
+51
+115
+60
+55
+122
+61
+58
+130
+60
+58
+134
+60
+59
+135
+59
+59
+134
+58
+58
+130
+59
+55
+129
+62
+56
+129
+65
+56
+129
+66
+57
+131
+67
+58
+131
+67
+58
+133
+64
+57
+132
+64
+55
+132
+66
+50
+132
+67
+49
+133
+64
+48
+134
+62
+47
+136
+60
+46
+137
+59
+46
+139
+57
+45
+140
+56
+45
+138
+54
+43
+137
+55
+43
+135
+56
+43
+131
+58
+43
+127
+60
+43
+122
+61
+42
+119
+62
+42
+120
+62
+42
+127
+57
+45
+122
+48
+39
+129
+56
+47
+131
+63
+52
+117
+53
+43
+113
+53
+42
+124
+66
+54
+125
+67
+55
+127
+69
+58
+129
+71
+60
+131
+73
+62
+132
+74
+63
+133
+74
+66
+135
+76
+68
+138
+79
+71
+137
+85
+74
+130
+94
+78
+129
+102
+81
+134
+109
+89
+135
+114
+93
+136
+121
+98
+137
+131
+105
+141
+144
+117
+141
+154
+124
+138
+159
+126
+136
+163
+130
+136
+167
+133
+137
+168
+134
+135
+166
+132
+132
+162
+128
+129
+156
+125
+127
+151
+119
+125
+144
+112
+125
+142
+108
+123
+140
+108
+120
+139
+107
+120
+139
+109
+117
+136
+108
+112
+131
+103
+108
+126
+100
+99
+113
+88
+92
+104
+82
+83
+90
+72
+73
+75
+61
+66
+64
+52
+61
+54
+44
+57
+47
+38
+55
+42
+36
+57
+39
+39
+57
+37
+39
+54
+38
+39
+52
+38
+38
+49
+39
+38
+46
+40
+40
+44
+43
+41
+44
+44
+42
+41
+43
+40
+41
+43
+42
+41
+43
+42
+41
+43
+42
+42
+42
+44
+42
+42
+44
+43
+41
+44
+45
+41
+42
+44
+35
+36
+50
+42
+39
+53
+48
+42
+56
+54
+42
+66
+67
+53
+85
+90
+70
+102
+112
+87
+110
+125
+94
+116
+136
+101
+113
+138
+98
+117
+144
+101
+120
+152
+105
+119
+155
+107
+115
+153
+104
+116
+154
+105
+119
+159
+107
+122
+162
+110
+120
+160
+108
+119
+159
+109
+120
+160
+110
+121
+163
+115
+123
+165
+117
+123
+165
+119
+124
+163
+119
+121
+158
+117
+122
+156
+119
+119
+150
+116
+115
+142
+111
+109
+134
+104
+100
+123
+95
+87
+107
+80
+78
+92
+69
+68
+69
+55
+62
+58
+47
+56
+52
+41
+53
+54
+48
+53
+54
+48
+54
+55
+49
+54
+55
+49
+55
+56
+50
+55
+56
+50
+56
+55
+50
+56
+55
+50
+57
+56
+51
+58
+57
+52
+61
+58
+53
+62
+59
+54
+62
+59
+54
+62
+59
+54
+62
+57
+53
+62
+57
+53
+63
+55
+52
+63
+55
+52
+62
+54
+51
+61
+53
+50
+59
+54
+51
+58
+53
+50
+57
+52
+49
+57
+52
+49
+56
+52
+49
+56
+52
+51
+57
+53
+52
+56
+52
+51
+55
+51
+50
+52
+51
+49
+53
+49
+50
+52
+48
+47
+54
+45
+48
+54
+45
+46
+54
+45
+48
+54
+45
+46
+52
+46
+46
+52
+46
+46
+52
+46
+46
+52
+47
+44
+52
+48
+45
+52
+48
+45
+52
+48
+45
+53
+49
+46
+51
+50
+45
+51
+50
+45
+52
+51
+46
+52
+51
+46
+52
+51
+47
+52
+51
+49
+53
+52
+50
+53
+52
+48
+56
+52
+49
+56
+53
+48
+57
+52
+48
+58
+53
+47
+61
+54
+48
+62
+55
+47
+64
+55
+46
+65
+56
+47
+67
+57
+48
+68
+58
+48
+71
+58
+49
+72
+59
+50
+70
+60
+51
+70
+60
+51
+70
+60
+51
+70
+60
+51
+69
+59
+50
+67
+57
+48
+66
+55
+49
+65
+54
+48
+64
+53
+49
+64
+53
+49
+63
+52
+48
+62
+51
+47
+62
+51
+49
+63
+52
+50
+64
+53
+51
+64
+53
+51
+65
+54
+50
+68
+53
+50
+75
+50
+53
+81
+49
+54
+86
+46
+54
+85
+45
+53
+82
+47
+53
+75
+49
+50
+68
+53
+50
+63
+56
+48
+61
+57
+45
+63
+57
+43
+67
+55
+41
+73
+54
+40
+83
+50
+41
+88
+50
+41
+93
+50
+43
+100
+51
+44
+108
+53
+48
+118
+54
+52
+125
+55
+55
+130
+56
+55
+131
+55
+55
+130
+54
+54
+126
+55
+53
+125
+58
+52
+125
+60
+54
+125
+62
+53
+128
+63
+57
+131
+64
+56
+134
+63
+57
+133
+65
+56
+131
+65
+51
+131
+65
+49
+132
+65
+49
+132
+63
+48
+136
+60
+47
+136
+58
+46
+137
+57
+46
+138
+56
+45
+135
+55
+44
+134
+56
+44
+131
+57
+44
+128
+59
+44
+126
+60
+44
+124
+61
+44
+121
+62
+44
+126
+60
+44
+133
+53
+42
+138
+51
+44
+160
+77
+69
+166
+89
+81
+138
+65
+56
+124
+57
+48
+130
+70
+59
+128
+75
+61
+123
+71
+58
+122
+74
+60
+124
+76
+62
+125
+77
+63
+127
+77
+66
+130
+80
+69
+137
+85
+74
+134
+92
+76
+119
+105
+79
+117
+112
+82
+130
+114
+88
+141
+117
+93
+150
+117
+98
+159
+124
+105
+166
+135
+115
+167
+145
+122
+157
+147
+122
+150
+153
+124
+146
+160
+127
+143
+165
+129
+139
+165
+130
+134
+161
+126
+130
+156
+121
+131
+150
+118
+134
+143
+112
+136
+141
+111
+134
+140
+112
+131
+142
+112
+129
+142
+112
+126
+141
+112
+122
+138
+109
+118
+134
+107
+109
+125
+98
+104
+116
+92
+96
+104
+83
+87
+90
+71
+80
+77
+62
+72
+64
+51
+66
+54
+42
+64
+47
+39
+61
+43
+39
+60
+42
+40
+56
+42
+39
+53
+42
+40
+50
+42
+39
+47
+44
+39
+44
+45
+39
+43
+45
+40
+43
+45
+40
+44
+45
+40
+45
+44
+42
+47
+43
+42
+51
+41
+42
+52
+40
+42
+54
+39
+42
+54
+40
+40
+51
+40
+36
+60
+51
+44
+69
+62
+52
+73
+71
+56
+81
+82
+64
+93
+98
+75
+103
+113
+86
+106
+121
+90
+110
+130
+93
+107
+132
+92
+108
+137
+93
+112
+145
+98
+113
+149
+101
+111
+149
+100
+111
+151
+101
+114
+154
+102
+117
+159
+109
+114
+156
+106
+113
+155
+105
+116
+158
+110
+120
+162
+114
+122
+164
+118
+121
+162
+118
+121
+159
+118
+118
+154
+116
+119
+153
+118
+117
+148
+114
+111
+141
+107
+106
+133
+102
+99
+124
+94
+85
+108
+79
+78
+92
+69
+67
+68
+54
+64
+57
+47
+58
+51
+41
+54
+55
+49
+55
+56
+50
+55
+56
+50
+55
+56
+50
+56
+57
+51
+56
+57
+51
+57
+56
+51
+58
+57
+52
+58
+57
+52
+59
+58
+53
+62
+59
+54
+63
+60
+55
+63
+60
+55
+63
+60
+55
+64
+59
+55
+64
+59
+55
+66
+58
+55
+66
+58
+55
+65
+57
+54
+64
+56
+53
+61
+56
+52
+61
+56
+52
+60
+55
+51
+60
+55
+51
+60
+55
+51
+60
+55
+52
+60
+55
+52
+60
+55
+52
+59
+54
+51
+57
+53
+50
+57
+51
+51
+56
+51
+48
+56
+47
+48
+57
+47
+46
+56
+47
+48
+56
+48
+46
+56
+48
+46
+56
+48
+46
+54
+49
+46
+54
+49
+45
+54
+49
+45
+54
+49
+45
+53
+50
+45
+53
+50
+45
+54
+51
+46
+54
+51
+46
+55
+52
+47
+55
+52
+47
+53
+52
+48
+53
+52
+48
+56
+52
+49
+57
+53
+50
+58
+54
+51
+60
+57
+52
+61
+56
+52
+64
+57
+51
+64
+55
+48
+65
+56
+47
+67
+57
+48
+68
+58
+48
+71
+58
+49
+72
+60
+48
+73
+61
+49
+73
+61
+49
+74
+61
+52
+74
+61
+52
+74
+61
+52
+73
+60
+51
+70
+60
+51
+68
+58
+49
+66
+56
+47
+65
+55
+46
+65
+56
+49
+64
+55
+48
+64
+55
+50
+63
+54
+49
+63
+54
+49
+64
+55
+50
+64
+55
+50
+65
+56
+51
+64
+54
+52
+65
+55
+53
+67
+56
+54
+70
+56
+55
+72
+57
+54
+74
+56
+54
+74
+56
+54
+72
+57
+52
+69
+56
+48
+69
+56
+47
+69
+57
+45
+70
+56
+43
+73
+57
+44
+73
+57
+42
+76
+57
+43
+82
+54
+42
+90
+47
+38
+100
+47
+39
+110
+51
+45
+122
+54
+51
+131
+57
+56
+137
+59
+57
+139
+59
+58
+139
+61
+59
+139
+65
+62
+135
+64
+58
+130
+61
+54
+127
+60
+51
+127
+58
+51
+130
+60
+52
+136
+61
+55
+138
+64
+55
+133
+63
+53
+132
+64
+51
+132
+62
+50
+134
+62
+50
+134
+60
+49
+133
+59
+48
+132
+58
+47
+131
+59
+47
+128
+58
+46
+127
+59
+46
+126
+60
+46
+127
+61
+47
+127
+61
+47
+128
+60
+47
+129
+59
+47
+135
+57
+47
+144
+49
+43
+160
+61
+56
+203
+108
+102
+216
+127
+121
+171
+91
+84
+138
+68
+60
+136
+76
+65
+127
+78
+64
+117
+73
+60
+114
+77
+61
+113
+80
+63
+114
+81
+64
+118
+83
+64
+124
+85
+68
+132
+90
+74
+128
+100
+79
+113
+113
+79
+116
+120
+85
+138
+118
+91
+156
+115
+95
+173
+109
+99
+186
+107
+102
+194
+111
+107
+195
+116
+111
+191
+128
+119
+183
+137
+122
+173
+148
+126
+163
+156
+128
+154
+159
+129
+145
+159
+126
+139
+154
+121
+137
+151
+118
+140
+143
+114
+142
+142
+114
+139
+144
+114
+135
+146
+114
+132
+147
+114
+128
+147
+115
+122
+146
+112
+119
+144
+112
+112
+137
+105
+107
+130
+101
+103
+119
+92
+94
+107
+81
+88
+93
+71
+80
+79
+59
+72
+67
+48
+67
+58
+43
+65
+50
+43
+64
+49
+44
+59
+48
+42
+56
+47
+42
+52
+47
+41
+50
+47
+40
+46
+47
+39
+46
+47
+41
+48
+47
+42
+51
+46
+42
+54
+44
+43
+58
+42
+43
+62
+40
+43
+65
+38
+43
+69
+36
+43
+67
+38
+40
+70
+53
+45
+76
+67
+52
+86
+81
+62
+91
+89
+68
+96
+98
+74
+103
+109
+81
+105
+119
+86
+106
+123
+87
+108
+130
+91
+103
+130
+87
+102
+134
+87
+108
+142
+92
+111
+148
+97
+110
+148
+97
+110
+150
+98
+114
+154
+102
+115
+157
+107
+111
+155
+106
+111
+153
+105
+114
+156
+110
+119
+160
+116
+121
+162
+120
+120
+158
+119
+117
+155
+118
+115
+151
+115
+117
+151
+118
+115
+146
+114
+110
+139
+108
+105
+132
+99
+98
+123
+91
+84
+109
+77
+77
+93
+67
+72
+73
+59
+69
+60
+51
+63
+54
+45
+55
+56
+50
+55
+56
+50
+56
+57
+51
+56
+57
+51
+56
+57
+51
+57
+58
+52
+58
+57
+52
+58
+57
+52
+59
+58
+53
+60
+59
+54
+63
+60
+55
+64
+61
+56
+64
+61
+56
+64
+61
+56
+65
+60
+56
+65
+60
+56
+67
+59
+56
+67
+59
+56
+67
+59
+56
+66
+58
+55
+63
+58
+54
+62
+57
+53
+62
+57
+53
+61
+56
+52
+62
+57
+53
+62
+57
+53
+62
+57
+53
+62
+57
+53
+61
+56
+53
+60
+55
+51
+58
+53
+49
+59
+51
+48
+58
+48
+46
+58
+48
+46
+57
+49
+46
+57
+49
+46
+57
+49
+47
+57
+49
+46
+57
+49
+46
+55
+50
+46
+54
+49
+45
+54
+49
+45
+54
+51
+46
+54
+51
+46
+54
+51
+46
+55
+52
+47
+55
+52
+47
+55
+52
+47
+53
+52
+48
+54
+53
+49
+57
+53
+50
+59
+56
+51
+60
+57
+52
+63
+58
+52
+66
+59
+53
+66
+59
+51
+65
+56
+47
+66
+58
+47
+67
+57
+47
+69
+59
+47
+72
+60
+48
+73
+61
+49
+74
+62
+50
+74
+62
+50
+75
+62
+53
+75
+62
+53
+74
+61
+52
+74
+61
+52
+70
+60
+51
+69
+59
+50
+67
+57
+48
+66
+56
+47
+66
+57
+50
+66
+57
+50
+65
+56
+51
+64
+55
+50
+64
+55
+50
+65
+56
+51
+66
+57
+52
+66
+57
+52
+63
+56
+50
+64
+57
+51
+66
+59
+53
+69
+60
+55
+71
+60
+54
+73
+60
+54
+77
+60
+53
+78
+59
+52
+77
+54
+46
+78
+54
+44
+81
+54
+43
+81
+54
+43
+81
+55
+42
+82
+56
+43
+80
+57
+41
+86
+54
+39
+103
+53
+42
+114
+54
+44
+126
+59
+51
+137
+64
+57
+149
+68
+64
+155
+72
+68
+159
+74
+71
+159
+76
+70
+160
+81
+74
+153
+76
+68
+142
+68
+59
+133
+59
+48
+132
+55
+45
+133
+55
+45
+140
+57
+49
+143
+60
+52
+139
+60
+53
+138
+61
+55
+137
+60
+54
+136
+59
+53
+136
+59
+53
+132
+59
+52
+128
+60
+51
+125
+61
+51
+122
+62
+51
+122
+62
+51
+122
+62
+51
+125
+61
+51
+129
+59
+51
+134
+57
+51
+139
+54
+51
+146
+51
+49
+150
+41
+38
+176
+63
+59
+234
+125
+122
+252
+150
+146
+195
+104
+99
+149
+72
+64
+137
+75
+64
+120
+72
+58
+112
+76
+60
+106
+81
+61
+104
+83
+62
+106
+86
+62
+111
+86
+64
+118
+90
+69
+128
+95
+76
+130
+102
+80
+124
+113
+81
+134
+118
+85
+160
+115
+92
+183
+107
+94
+203
+95
+95
+214
+84
+92
+218
+81
+91
+218
+82
+92
+230
+111
+117
+219
+121
+120
+207
+133
+124
+195
+142
+126
+184
+147
+128
+174
+148
+125
+165
+145
+120
+162
+142
+118
+159
+137
+114
+159
+137
+116
+156
+140
+117
+152
+142
+117
+148
+144
+117
+141
+144
+115
+137
+143
+115
+133
+144
+114
+127
+137
+110
+124
+133
+106
+119
+121
+97
+112
+110
+87
+105
+97
+78
+98
+82
+66
+87
+68
+53
+83
+59
+47
+79
+52
+45
+77
+49
+45
+73
+48
+44
+68
+47
+42
+64
+47
+40
+59
+46
+38
+55
+46
+39
+54
+47
+39
+57
+48
+41
+58
+47
+41
+61
+46
+43
+65
+44
+43
+70
+41
+43
+72
+40
+43
+75
+39
+43
+72
+41
+39
+84
+66
+52
+89
+81
+60
+100
+94
+70
+103
+101
+76
+105
+108
+79
+110
+117
+86
+109
+123
+88
+108
+126
+88
+107
+132
+90
+103
+132
+86
+103
+135
+86
+109
+143
+93
+112
+149
+98
+113
+150
+98
+114
+153
+100
+117
+157
+105
+116
+155
+108
+111
+153
+107
+111
+150
+106
+114
+153
+109
+119
+157
+118
+121
+159
+120
+119
+154
+121
+116
+150
+117
+115
+148
+117
+117
+148
+117
+115
+144
+113
+111
+138
+107
+105
+132
+101
+97
+124
+91
+84
+109
+77
+77
+93
+66
+78
+79
+63
+76
+67
+58
+69
+60
+51
+57
+58
+52
+57
+58
+52
+57
+58
+52
+57
+58
+52
+57
+58
+52
+58
+59
+53
+61
+60
+55
+61
+60
+55
+61
+60
+55
+61
+60
+55
+64
+61
+56
+64
+61
+56
+65
+62
+57
+66
+63
+58
+68
+63
+59
+68
+63
+59
+69
+64
+60
+69
+64
+60
+69
+64
+58
+68
+63
+57
+68
+63
+57
+67
+62
+56
+69
+62
+56
+68
+61
+55
+66
+59
+53
+66
+59
+53
+66
+59
+53
+66
+59
+53
+66
+58
+55
+66
+59
+53
+65
+58
+52
+65
+58
+52
+65
+56
+51
+65
+56
+51
+65
+56
+51
+64
+55
+50
+64
+54
+52
+62
+55
+49
+62
+55
+49
+62
+55
+49
+60
+55
+49
+60
+55
+49
+59
+54
+48
+58
+53
+47
+56
+53
+46
+56
+53
+46
+55
+52
+47
+55
+52
+47
+57
+54
+49
+57
+54
+49
+57
+54
+49
+58
+55
+48
+60
+55
+49
+61
+56
+50
+65
+58
+50
+66
+59
+49
+67
+58
+49
+68
+60
+49
+70
+60
+50
+74
+62
+50
+75
+63
+51
+76
+64
+50
+78
+64
+51
+78
+64
+53
+78
+64
+55
+78
+64
+55
+76
+63
+54
+75
+62
+53
+73
+60
+51
+72
+59
+50
+69
+59
+50
+69
+59
+50
+66
+57
+48
+65
+56
+47
+64
+57
+49
+63
+56
+48
+63
+56
+48
+63
+56
+48
+64
+57
+51
+64
+57
+51
+60
+53
+47
+77
+68
+61
+77
+64
+58
+75
+58
+51
+84
+64
+57
+82
+54
+50
+81
+48
+43
+95
+60
+54
+91
+52
+45
+94
+54
+46
+95
+52
+43
+92
+48
+39
+94
+47
+37
+101
+54
+44
+109
+61
+49
+114
+60
+48
+137
+73
+61
+143
+71
+59
+151
+73
+63
+159
+75
+65
+159
+70
+62
+155
+62
+55
+154
+61
+54
+158
+68
+59
+166
+78
+68
+164
+80
+69
+168
+86
+74
+171
+89
+75
+165
+79
+66
+153
+65
+53
+151
+59
+48
+156
+62
+54
+148
+57
+56
+146
+56
+56
+143
+53
+53
+137
+51
+50
+136
+55
+52
+135
+62
+56
+127
+63
+54
+117
+60
+49
+117
+65
+52
+115
+63
+50
+116
+59
+48
+121
+57
+48
+133
+54
+50
+142
+50
+51
+149
+44
+49
+155
+38
+44
+198
+72
+73
+229
+99
+97
+194
+70
+68
+202
+89
+85
+224
+122
+118
+171
+86
+79
+134
+70
+60
+132
+86
+70
+109
+82
+61
+105
+91
+65
+105
+98
+70
+107
+100
+72
+107
+95
+69
+111
+94
+68
+125
+99
+76
+141
+106
+84
+145
+99
+76
+177
+110
+93
+208
+111
+104
+218
+89
+93
+222
+59
+76
+229
+45
+69
+241
+44
+72
+243
+49
+76
+243
+65
+89
+233
+74
+92
+227
+91
+101
+226
+111
+114
+224
+124
+124
+218
+129
+125
+216
+133
+127
+215
+138
+130
+196
+126
+118
+192
+128
+119
+189
+131
+120
+185
+133
+120
+181
+135
+120
+175
+136
+119
+171
+138
+121
+167
+138
+120
+157
+128
+112
+157
+125
+110
+154
+121
+106
+150
+110
+98
+145
+98
+90
+135
+85
+78
+127
+72
+67
+123
+65
+63
+117
+58
+60
+103
+47
+50
+100
+48
+50
+97
+49
+49
+79
+39
+39
+71
+37
+35
+76
+48
+45
+77
+53
+49
+72
+51
+46
+69
+50
+44
+68
+49
+45
+70
+49
+46
+70
+46
+44
+71
+43
+42
+75
+45
+45
+81
+54
+47
+89
+72
+52
+96
+87
+58
+102
+95
+66
+103
+100
+69
+107
+111
+78
+117
+124
+90
+117
+132
+93
+111
+129
+89
+108
+131
+87
+108
+135
+90
+112
+141
+93
+114
+146
+97
+115
+149
+98
+117
+151
+100
+119
+153
+102
+118
+155
+104
+114
+150
+106
+115
+152
+111
+115
+151
+113
+113
+149
+111
+115
+149
+116
+119
+153
+120
+122
+152
+124
+121
+150
+122
+120
+149
+121
+115
+141
+114
+109
+135
+106
+107
+132
+102
+105
+130
+100
+97
+122
+90
+84
+109
+77
+79
+95
+68
+79
+80
+64
+84
+75
+66
+82
+73
+64
+57
+58
+52
+57
+58
+52
+57
+58
+52
+57
+58
+52
+58
+59
+53
+59
+60
+54
+62
+61
+56
+63
+62
+57
+62
+61
+56
+62
+61
+56
+65
+62
+57
+65
+62
+57
+66
+63
+58
+67
+64
+59
+68
+63
+59
+68
+63
+59
+70
+65
+61
+69
+64
+60
+69
+64
+58
+69
+64
+58
+68
+63
+57
+68
+63
+57
+69
+62
+56
+69
+62
+56
+69
+62
+56
+69
+62
+56
+69
+62
+56
+68
+61
+53
+67
+60
+54
+67
+60
+52
+68
+59
+52
+67
+58
+49
+66
+57
+50
+66
+57
+50
+66
+57
+50
+66
+57
+50
+65
+56
+51
+65
+56
+51
+64
+57
+51
+64
+57
+51
+62
+55
+49
+60
+55
+49
+59
+54
+48
+59
+54
+48
+57
+54
+47
+56
+53
+46
+55
+52
+47
+55
+52
+47
+57
+54
+49
+57
+54
+47
+57
+54
+47
+58
+55
+48
+60
+55
+49
+62
+58
+49
+65
+58
+48
+66
+60
+48
+67
+59
+48
+69
+59
+47
+73
+61
+49
+74
+62
+48
+76
+64
+50
+76
+64
+50
+78
+64
+51
+78
+64
+51
+78
+64
+53
+78
+64
+55
+77
+63
+54
+74
+61
+52
+73
+60
+51
+72
+59
+50
+69
+59
+50
+69
+59
+50
+67
+58
+49
+66
+57
+48
+64
+57
+49
+64
+57
+49
+64
+57
+49
+64
+57
+49
+65
+58
+52
+65
+58
+50
+67
+58
+51
+73
+56
+49
+75
+47
+43
+86
+46
+44
+106
+55
+54
+116
+58
+57
+123
+59
+59
+133
+69
+67
+129
+68
+63
+131
+72
+64
+132
+73
+65
+132
+72
+62
+141
+74
+66
+152
+79
+72
+161
+80
+76
+162
+79
+71
+147
+68
+55
+148
+66
+52
+154
+66
+54
+159
+67
+56
+160
+62
+51
+156
+55
+45
+156
+55
+45
+159
+61
+48
+163
+67
+53
+155
+63
+48
+153
+64
+48
+160
+69
+51
+164
+71
+54
+167
+70
+54
+174
+72
+58
+182
+78
+69
+181
+75
+77
+176
+71
+76
+167
+64
+68
+155
+56
+59
+147
+55
+56
+142
+61
+58
+133
+62
+56
+121
+61
+51
+114
+60
+48
+124
+72
+59
+135
+75
+65
+133
+62
+56
+133
+43
+43
+149
+40
+46
+181
+57
+68
+211
+75
+87
+219
+76
+78
+221
+79
+77
+199
+64
+61
+190
+65
+63
+208
+96
+92
+179
+89
+81
+132
+64
+53
+130
+84
+68
+121
+97
+73
+101
+91
+64
+96
+92
+63
+107
+104
+73
+117
+108
+79
+119
+102
+74
+127
+99
+75
+150
+99
+78
+185
+102
+88
+210
+97
+91
+224
+88
+90
+231
+67
+78
+238
+46
+69
+249
+39
+68
+255
+40
+72
+255
+42
+73
+255
+48
+78
+243
+53
+78
+236
+63
+82
+234
+76
+90
+230
+82
+94
+224
+84
+93
+222
+85
+93
+221
+90
+98
+219
+98
+105
+216
+101
+108
+214
+105
+110
+213
+108
+113
+208
+112
+114
+206
+116
+116
+204
+118
+119
+201
+120
+119
+204
+124
+125
+203
+121
+123
+203
+118
+121
+202
+113
+117
+202
+107
+115
+201
+101
+111
+199
+97
+108
+197
+95
+108
+195
+97
+110
+177
+84
+95
+163
+76
+85
+153
+72
+81
+141
+68
+75
+132
+70
+73
+107
+55
+57
+72
+28
+27
+84
+49
+45
+77
+48
+42
+72
+49
+43
+74
+54
+47
+75
+56
+49
+75
+58
+50
+79
+62
+54
+85
+69
+56
+91
+79
+53
+99
+90
+57
+103
+97
+65
+105
+102
+69
+110
+114
+79
+122
+130
+93
+122
+137
+98
+116
+134
+94
+114
+137
+95
+112
+137
+95
+112
+139
+96
+113
+142
+96
+117
+146
+100
+119
+148
+100
+119
+148
+100
+119
+148
+102
+115
+146
+105
+120
+150
+114
+122
+151
+120
+121
+150
+120
+126
+152
+125
+131
+157
+132
+133
+157
+135
+131
+155
+133
+129
+153
+131
+122
+146
+122
+114
+137
+111
+109
+132
+104
+104
+129
+100
+96
+121
+91
+84
+109
+77
+78
+97
+69
+82
+83
+67
+86
+80
+68
+86
+79
+69
+56
+57
+51
+56
+57
+51
+56
+57
+51
+57
+58
+52
+59
+60
+54
+60
+61
+55
+63
+62
+57
+64
+63
+58
+64
+63
+58
+64
+63
+58
+67
+64
+59
+67
+64
+59
+67
+64
+59
+67
+64
+59
+68
+63
+59
+68
+63
+59
+70
+65
+59
+70
+65
+59
+70
+65
+59
+69
+64
+58
+69
+64
+58
+69
+64
+58
+71
+64
+56
+70
+63
+55
+74
+65
+58
+73
+64
+57
+72
+63
+56
+71
+62
+53
+70
+61
+54
+69
+60
+51
+70
+60
+51
+69
+59
+49
+68
+58
+49
+68
+58
+49
+68
+58
+49
+68
+58
+49
+68
+59
+52
+68
+59
+52
+68
+59
+52
+67
+60
+52
+63
+56
+48
+63
+56
+48
+60
+55
+49
+59
+54
+48
+58
+53
+47
+58
+53
+47
+57
+52
+46
+57
+52
+46
+57
+54
+47
+57
+54
+47
+58
+53
+47
+59
+55
+46
+62
+55
+47
+64
+57
+47
+66
+57
+48
+67
+59
+48
+69
+59
+49
+70
+60
+48
+73
+61
+49
+75
+63
+49
+77
+63
+50
+77
+64
+48
+78
+65
+49
+77
+64
+48
+80
+63
+53
+77
+63
+52
+76
+62
+51
+75
+61
+50
+73
+60
+51
+72
+59
+50
+69
+59
+49
+68
+58
+48
+67
+58
+49
+67
+58
+49
+65
+58
+48
+65
+58
+48
+63
+59
+50
+64
+60
+51
+64
+60
+51
+68
+59
+52
+83
+69
+60
+82
+51
+46
+105
+51
+51
+142
+65
+71
+173
+76
+87
+193
+86
+96
+203
+93
+102
+196
+96
+98
+154
+66
+62
+150
+73
+63
+149
+77
+65
+155
+79
+66
+171
+82
+74
+190
+85
+82
+203
+80
+83
+196
+76
+75
+163
+65
+52
+157
+66
+48
+160
+64
+48
+165
+63
+49
+165
+59
+46
+163
+55
+43
+164
+56
+43
+167
+61
+47
+171
+69
+54
+161
+62
+43
+152
+55
+36
+157
+58
+39
+165
+62
+45
+172
+65
+47
+178
+67
+50
+184
+67
+58
+167
+48
+50
+177
+57
+66
+185
+68
+76
+190
+75
+82
+186
+77
+82
+173
+75
+76
+150
+65
+62
+130
+55
+49
+123
+56
+47
+118
+54
+44
+122
+49
+42
+133
+48
+45
+156
+51
+55
+186
+60
+71
+215
+70
+87
+232
+77
+91
+225
+71
+73
+206
+54
+51
+205
+60
+57
+187
+52
+49
+198
+79
+75
+198
+99
+93
+148
+74
+63
+140
+91
+74
+125
+99
+76
+106
+95
+67
+104
+99
+69
+117
+111
+79
+128
+111
+81
+130
+103
+74
+143
+103
+78
+177
+104
+89
+224
+100
+98
+239
+84
+90
+238
+71
+81
+239
+58
+73
+248
+52
+74
+255
+52
+78
+255
+50
+77
+254
+46
+72
+255
+53
+79
+245
+51
+75
+240
+53
+74
+239
+56
+76
+237
+55
+77
+233
+54
+75
+236
+54
+76
+239
+57
+80
+241
+65
+88
+239
+67
+91
+239
+70
+93
+237
+73
+97
+236
+77
+99
+234
+81
+101
+233
+84
+104
+232
+86
+107
+228
+84
+107
+229
+83
+106
+228
+80
+106
+228
+78
+105
+233
+78
+109
+238
+81
+112
+242
+83
+115
+244
+87
+118
+252
+105
+133
+237
+99
+124
+225
+93
+116
+210
+87
+108
+203
+90
+108
+199
+101
+114
+166
+83
+93
+114
+45
+50
+93
+39
+39
+88
+49
+44
+87
+58
+52
+81
+63
+53
+66
+58
+45
+58
+56
+41
+63
+66
+49
+76
+78
+57
+86
+79
+51
+97
+86
+54
+101
+95
+63
+104
+101
+68
+113
+117
+84
+127
+134
+101
+126
+140
+105
+119
+136
+100
+120
+140
+105
+117
+139
+101
+114
+139
+100
+114
+139
+99
+118
+140
+101
+121
+143
+104
+122
+144
+105
+122
+144
+106
+128
+149
+118
+132
+155
+126
+138
+158
+133
+141
+160
+138
+146
+163
+144
+151
+168
+150
+152
+169
+153
+150
+166
+153
+145
+162
+146
+135
+152
+134
+122
+141
+121
+112
+131
+109
+103
+126
+98
+94
+119
+89
+84
+109
+77
+80
+99
+71
+82
+87
+67
+88
+85
+70
+89
+85
+73
+55
+56
+50
+55
+56
+50
+56
+57
+51
+57
+58
+52
+59
+60
+54
+61
+62
+56
+64
+63
+58
+65
+64
+59
+66
+65
+60
+66
+65
+60
+68
+65
+60
+68
+65
+60
+68
+65
+60
+68
+65
+60
+69
+64
+60
+69
+64
+60
+71
+66
+60
+71
+66
+60
+71
+66
+60
+70
+65
+59
+70
+65
+59
+70
+66
+57
+72
+65
+57
+72
+65
+57
+76
+67
+60
+75
+66
+57
+74
+65
+56
+73
+64
+55
+72
+62
+53
+71
+61
+51
+70
+60
+50
+69
+59
+49
+68
+58
+48
+68
+58
+48
+69
+59
+49
+69
+59
+50
+68
+59
+50
+69
+60
+51
+69
+60
+53
+69
+60
+53
+64
+57
+49
+63
+56
+48
+61
+56
+50
+60
+55
+49
+59
+54
+48
+58
+53
+47
+58
+53
+47
+58
+53
+47
+57
+54
+47
+57
+54
+45
+59
+55
+46
+59
+55
+44
+63
+56
+46
+64
+58
+46
+67
+59
+48
+68
+60
+47
+70
+60
+48
+70
+61
+46
+74
+62
+48
+75
+63
+47
+77
+64
+48
+77
+64
+48
+77
+64
+47
+77
+64
+48
+79
+63
+50
+79
+62
+52
+76
+62
+51
+75
+61
+50
+74
+60
+51
+71
+58
+49
+69
+59
+49
+68
+58
+48
+68
+59
+50
+68
+59
+50
+66
+59
+49
+64
+60
+49
+64
+60
+51
+65
+61
+52
+66
+62
+53
+70
+60
+51
+81
+56
+49
+88
+43
+38
+135
+59
+63
+189
+85
+96
+216
+85
+101
+228
+86
+102
+226
+86
+99
+201
+75
+79
+157
+52
+48
+148
+58
+47
+144
+62
+48
+152
+66
+51
+173
+70
+61
+196
+74
+71
+212
+67
+72
+203
+63
+64
+177
+66
+55
+167
+70
+53
+169
+66
+51
+172
+64
+51
+175
+63
+51
+176
+62
+51
+179
+66
+52
+180
+68
+54
+178
+71
+53
+169
+66
+47
+163
+60
+41
+164
+59
+40
+169
+60
+40
+171
+58
+40
+174
+54
+38
+173
+51
+40
+182
+57
+55
+186
+57
+61
+187
+56
+62
+186
+55
+60
+190
+61
+66
+197
+74
+76
+196
+84
+83
+190
+88
+83
+153
+63
+55
+139
+52
+42
+135
+45
+37
+157
+54
+49
+195
+72
+75
+219
+80
+87
+224
+66
+81
+218
+52
+64
+221
+59
+57
+204
+47
+42
+209
+57
+52
+198
+56
+52
+197
+70
+64
+200
+93
+85
+167
+88
+75
+144
+87
+70
+119
+87
+64
+120
+100
+73
+126
+112
+83
+130
+111
+81
+133
+102
+74
+145
+99
+75
+172
+109
+91
+213
+117
+105
+234
+85
+87
+246
+70
+80
+242
+62
+74
+242
+60
+73
+249
+64
+78
+253
+67
+81
+249
+61
+76
+243
+55
+72
+253
+66
+83
+248
+60
+77
+244
+55
+75
+246
+54
+75
+248
+52
+74
+249
+50
+73
+255
+51
+78
+255
+56
+83
+255
+51
+84
+252
+53
+86
+252
+54
+87
+249
+56
+87
+247
+58
+90
+248
+61
+92
+246
+63
+94
+245
+64
+97
+247
+67
+102
+245
+67
+103
+244
+64
+101
+245
+63
+103
+247
+65
+105
+252
+67
+109
+255
+71
+115
+255
+74
+115
+255
+81
+117
+253
+84
+117
+250
+87
+118
+239
+85
+113
+228
+86
+110
+226
+99
+120
+213
+102
+118
+180
+89
+98
+124
+49
+53
+104
+48
+47
+88
+49
+42
+80
+56
+44
+71
+62
+47
+63
+64
+46
+59
+68
+47
+65
+70
+47
+81
+74
+46
+95
+84
+56
+103
+96
+67
+111
+107
+78
+124
+124
+96
+136
+142
+114
+135
+145
+118
+125
+139
+113
+122
+141
+113
+124
+143
+115
+124
+143
+115
+122
+141
+111
+122
+138
+109
+125
+140
+111
+131
+146
+117
+136
+151
+122
+149
+163
+138
+156
+169
+149
+163
+174
+157
+166
+177
+161
+172
+180
+167
+177
+185
+174
+176
+183
+176
+171
+181
+173
+161
+171
+162
+148
+160
+148
+131
+145
+130
+115
+132
+113
+104
+124
+99
+93
+116
+88
+83
+108
+78
+80
+100
+72
+80
+88
+67
+86
+87
+69
+87
+88
+72
+54
+55
+49
+54
+55
+49
+55
+56
+50
+56
+57
+51
+58
+59
+53
+60
+61
+55
+63
+62
+57
+64
+63
+58
+66
+65
+60
+66
+65
+60
+68
+65
+60
+68
+65
+60
+68
+65
+60
+69
+66
+61
+70
+65
+61
+70
+65
+61
+70
+67
+60
+70
+67
+60
+71
+66
+60
+72
+67
+61
+72
+68
+59
+72
+68
+59
+74
+67
+59
+74
+67
+57
+76
+67
+58
+75
+66
+57
+75
+65
+56
+74
+64
+54
+74
+61
+52
+73
+61
+49
+72
+60
+48
+71
+59
+47
+69
+59
+47
+69
+59
+47
+69
+59
+47
+69
+59
+49
+69
+59
+49
+69
+59
+49
+68
+59
+50
+68
+59
+50
+64
+57
+47
+64
+57
+47
+64
+57
+49
+63
+56
+48
+60
+55
+49
+59
+54
+48
+59
+54
+48
+58
+53
+47
+59
+55
+46
+59
+55
+46
+59
+55
+46
+60
+56
+45
+63
+56
+46
+65
+59
+47
+67
+59
+48
+68
+60
+47
+71
+61
+49
+71
+62
+47
+75
+63
+49
+77
+64
+48
+77
+64
+48
+78
+65
+48
+79
+63
+47
+79
+63
+48
+79
+63
+50
+78
+61
+51
+78
+61
+51
+74
+60
+49
+73
+59
+48
+71
+59
+47
+68
+58
+48
+68
+58
+48
+68
+60
+49
+68
+60
+49
+66
+59
+49
+64
+60
+49
+65
+61
+50
+65
+63
+51
+66
+63
+54
+75
+61
+52
+91
+54
+46
+116
+52
+50
+172
+77
+83
+218
+94
+105
+229
+78
+95
+226
+65
+81
+213
+55
+69
+182
+39
+43
+167
+50
+41
+156
+56
+40
+145
+58
+38
+149
+61
+41
+171
+65
+51
+193
+69
+61
+211
+63
+63
+204
+60
+59
+177
+63
+53
+168
+66
+52
+170
+64
+50
+173
+63
+50
+178
+64
+53
+184
+67
+57
+188
+72
+59
+187
+74
+60
+172
+62
+47
+170
+63
+47
+168
+61
+43
+166
+59
+41
+170
+57
+41
+176
+58
+44
+183
+59
+47
+187
+61
+49
+200
+71
+65
+204
+69
+65
+206
+64
+63
+205
+57
+57
+211
+56
+60
+220
+67
+69
+223
+77
+78
+218
+83
+79
+193
+68
+62
+195
+77
+67
+203
+84
+76
+209
+85
+77
+215
+75
+74
+218
+64
+66
+223
+53
+62
+224
+51
+55
+217
+52
+46
+215
+57
+46
+205
+51
+43
+206
+59
+52
+190
+57
+52
+178
+65
+57
+181
+91
+80
+150
+85
+67
+123
+78
+57
+130
+98
+73
+136
+106
+80
+133
+96
+70
+147
+90
+70
+176
+100
+84
+206
+112
+100
+232
+109
+104
+231
+70
+75
+237
+60
+68
+230
+59
+67
+227
+62
+68
+227
+68
+72
+227
+73
+75
+228
+74
+76
+229
+73
+77
+240
+76
+83
+239
+68
+77
+239
+58
+73
+242
+55
+72
+245
+52
+71
+248
+49
+70
+254
+52
+76
+255
+58
+82
+255
+57
+86
+253
+58
+88
+252
+59
+88
+250
+59
+90
+251
+60
+93
+252
+63
+95
+253
+65
+98
+252
+67
+101
+253
+69
+105
+251
+69
+107
+250
+68
+108
+250
+68
+109
+250
+67
+111
+249
+68
+111
+249
+68
+113
+250
+67
+111
+255
+72
+112
+255
+66
+104
+255
+74
+109
+253
+79
+112
+238
+75
+104
+230
+80
+107
+226
+93
+114
+216
+99
+115
+186
+91
+99
+140
+64
+68
+96
+38
+36
+81
+43
+34
+86
+64
+51
+86
+79
+61
+74
+76
+55
+65
+67
+45
+82
+74
+51
+101
+89
+67
+117
+106
+86
+128
+123
+103
+142
+141
+121
+153
+156
+139
+149
+156
+140
+136
+147
+131
+130
+142
+128
+137
+151
+136
+143
+155
+141
+140
+153
+136
+135
+146
+130
+138
+147
+130
+151
+158
+142
+164
+168
+153
+178
+182
+167
+184
+188
+174
+191
+193
+182
+192
+193
+185
+194
+195
+189
+197
+198
+193
+195
+195
+195
+190
+190
+190
+176
+181
+177
+162
+169
+162
+141
+151
+140
+121
+135
+118
+105
+123
+101
+92
+115
+89
+84
+109
+79
+82
+102
+74
+80
+90
+66
+84
+89
+67
+86
+91
+71
+53
+54
+48
+53
+54
+48
+54
+55
+49
+55
+56
+50
+56
+57
+51
+58
+59
+53
+61
+60
+55
+62
+61
+56
+64
+63
+58
+64
+63
+58
+67
+64
+59
+68
+65
+60
+69
+66
+61
+69
+66
+61
+71
+66
+62
+71
+66
+62
+71
+68
+61
+71
+68
+61
+72
+67
+61
+73
+68
+62
+73
+69
+60
+73
+69
+60
+75
+68
+58
+76
+69
+59
+76
+67
+58
+75
+67
+56
+76
+66
+56
+75
+65
+53
+76
+64
+52
+75
+63
+51
+74
+62
+50
+73
+61
+49
+71
+61
+49
+71
+61
+49
+70
+60
+48
+70
+60
+48
+69
+59
+49
+69
+59
+49
+68
+59
+50
+67
+58
+49
+65
+58
+48
+65
+58
+48
+64
+57
+49
+64
+57
+49
+61
+56
+50
+60
+55
+49
+59
+54
+48
+59
+54
+48
+59
+55
+46
+59
+55
+46
+59
+55
+44
+60
+56
+45
+63
+57
+45
+65
+59
+47
+68
+60
+47
+69
+61
+48
+72
+63
+48
+74
+62
+48
+76
+63
+47
+77
+64
+48
+78
+65
+48
+78
+65
+48
+79
+63
+47
+79
+63
+47
+79
+63
+50
+78
+61
+51
+77
+60
+50
+76
+59
+49
+73
+59
+48
+71
+59
+47
+70
+57
+48
+67
+57
+47
+67
+59
+48
+66
+60
+48
+66
+59
+49
+64
+60
+49
+64
+62
+50
+65
+63
+51
+66
+63
+54
+78
+59
+52
+106
+57
+52
+149
+71
+69
+195
+90
+95
+218
+88
+98
+220
+68
+81
+219
+57
+70
+209
+52
+59
+188
+44
+43
+172
+50
+39
+159
+56
+37
+150
+58
+33
+148
+58
+32
+161
+61
+38
+179
+64
+46
+193
+59
+50
+189
+56
+49
+167
+55
+44
+162
+58
+45
+165
+57
+45
+167
+55
+44
+175
+58
+49
+184
+66
+56
+186
+69
+59
+183
+69
+58
+174
+62
+50
+173
+63
+48
+167
+60
+44
+164
+54
+39
+170
+54
+41
+182
+62
+48
+195
+68
+59
+202
+71
+61
+188
+58
+45
+203
+65
+54
+221
+70
+63
+232
+68
+66
+239
+63
+65
+239
+59
+62
+231
+52
+55
+218
+48
+48
+216
+57
+53
+222
+73
+66
+229
+85
+76
+224
+80
+71
+216
+63
+57
+214
+50
+48
+224
+48
+50
+231
+55
+55
+216
+49
+40
+221
+61
+47
+202
+46
+34
+205
+56
+49
+189
+52
+44
+174
+55
+47
+200
+104
+92
+184
+108
+92
+142
+87
+67
+135
+90
+67
+132
+86
+63
+139
+81
+61
+170
+91
+76
+209
+106
+97
+226
+103
+98
+229
+83
+84
+240
+69
+75
+239
+62
+70
+226
+60
+64
+216
+62
+62
+209
+66
+62
+209
+72
+66
+219
+80
+77
+233
+87
+87
+235
+79
+82
+238
+68
+77
+239
+59
+71
+245
+54
+70
+246
+50
+70
+246
+47
+68
+249
+50
+71
+253
+55
+78
+251
+57
+83
+248
+58
+84
+248
+58
+86
+249
+59
+87
+254
+61
+92
+255
+63
+97
+255
+67
+101
+255
+68
+107
+251
+60
+101
+251
+62
+104
+250
+63
+106
+247
+64
+108
+247
+64
+110
+244
+62
+110
+241
+61
+108
+241
+60
+105
+255
+74
+114
+251
+61
+97
+251
+66
+100
+255
+78
+110
+251
+77
+110
+243
+80
+109
+236
+86
+111
+224
+91
+110
+231
+114
+130
+194
+97
+106
+150
+74
+76
+116
+58
+56
+93
+53
+45
+82
+56
+43
+82
+66
+50
+87
+76
+58
+94
+81
+65
+114
+101
+85
+136
+124
+110
+149
+141
+130
+159
+157
+145
+166
+167
+159
+161
+166
+159
+150
+156
+152
+149
+158
+155
+158
+167
+164
+166
+175
+172
+166
+172
+168
+162
+167
+163
+166
+168
+163
+181
+180
+176
+194
+193
+188
+204
+201
+192
+209
+206
+197
+213
+208
+204
+213
+208
+205
+212
+206
+206
+213
+207
+209
+209
+203
+207
+203
+198
+202
+191
+189
+192
+176
+178
+175
+152
+159
+152
+128
+140
+126
+109
+126
+107
+96
+116
+91
+87
+110
+82
+86
+106
+78
+83
+95
+71
+86
+96
+72
+87
+95
+72
+53
+54
+48
+53
+54
+48
+53
+54
+48
+53
+54
+48
+54
+55
+49
+56
+57
+51
+58
+57
+52
+59
+58
+53
+61
+60
+55
+62
+61
+56
+65
+62
+57
+67
+64
+59
+68
+65
+60
+70
+67
+62
+72
+67
+63
+72
+67
+63
+71
+68
+61
+72
+69
+62
+73
+68
+62
+73
+68
+62
+74
+70
+61
+74
+70
+61
+77
+70
+60
+77
+70
+60
+77
+69
+58
+76
+68
+57
+77
+67
+57
+77
+67
+55
+78
+66
+54
+77
+65
+51
+78
+64
+51
+77
+65
+51
+74
+65
+50
+74
+65
+50
+73
+64
+49
+72
+63
+48
+71
+61
+49
+70
+60
+48
+68
+60
+49
+68
+60
+49
+67
+58
+49
+67
+58
+49
+65
+58
+50
+64
+57
+49
+63
+56
+50
+63
+56
+50
+60
+55
+49
+60
+55
+49
+60
+56
+47
+60
+56
+45
+60
+56
+45
+60
+56
+45
+64
+58
+46
+65
+59
+47
+68
+60
+47
+69
+61
+48
+72
+63
+48
+75
+63
+49
+77
+64
+48
+78
+65
+48
+80
+64
+48
+80
+64
+48
+79
+64
+45
+79
+63
+47
+79
+61
+49
+79
+61
+49
+77
+61
+48
+76
+60
+47
+73
+59
+48
+70
+58
+46
+69
+56
+47
+67
+57
+47
+66
+58
+47
+65
+59
+47
+65
+58
+48
+63
+59
+48
+63
+61
+49
+64
+62
+50
+64
+64
+52
+78
+58
+49
+111
+50
+47
+165
+75
+75
+190
+84
+86
+186
+63
+68
+188
+49
+54
+193
+48
+51
+191
+49
+47
+183
+50
+41
+167
+50
+33
+162
+57
+35
+155
+61
+33
+150
+61
+31
+152
+61
+32
+158
+63
+35
+164
+59
+37
+162
+55
+37
+158
+54
+41
+160
+56
+45
+162
+54
+44
+165
+52
+44
+173
+56
+49
+183
+64
+58
+184
+67
+60
+178
+64
+54
+177
+66
+55
+173
+65
+52
+168
+60
+47
+166
+56
+43
+175
+58
+48
+188
+67
+56
+195
+68
+61
+196
+65
+55
+193
+64
+45
+203
+64
+45
+213
+55
+43
+221
+44
+38
+232
+36
+37
+245
+39
+43
+253
+44
+49
+252
+49
+52
+233
+44
+42
+227
+48
+43
+220
+53
+44
+217
+55
+44
+220
+53
+44
+223
+52
+44
+229
+50
+45
+228
+51
+43
+215
+52
+37
+212
+55
+38
+207
+51
+38
+206
+55
+44
+196
+55
+46
+187
+63
+55
+199
+97
+85
+210
+127
+113
+166
+101
+83
+143
+86
+66
+139
+76
+58
+164
+86
+73
+203
+100
+91
+224
+99
+95
+232
+82
+84
+233
+66
+73
+246
+69
+77
+238
+63
+68
+225
+62
+63
+213
+64
+60
+202
+63
+56
+200
+63
+55
+211
+69
+65
+229
+77
+76
+240
+74
+78
+245
+63
+75
+251
+56
+72
+255
+54
+72
+254
+53
+72
+249
+50
+69
+249
+54
+71
+250
+59
+77
+247
+58
+80
+246
+58
+82
+246
+56
+82
+249
+56
+85
+251
+56
+88
+254
+59
+93
+255
+61
+97
+255
+63
+103
+255
+64
+106
+255
+64
+108
+255
+65
+112
+255
+67
+115
+251
+68
+116
+249
+67
+116
+247
+67
+115
+244
+67
+111
+251
+73
+109
+245
+68
+97
+249
+72
+101
+252
+77
+106
+250
+77
+107
+255
+88
+116
+255
+97
+122
+242
+94
+116
+240
+107
+126
+229
+113
+126
+211
+111
+119
+175
+93
+97
+132
+67
+65
+104
+54
+47
+105
+65
+55
+115
+85
+74
+121
+101
+92
+140
+125
+118
+163
+150
+144
+173
+163
+161
+178
+174
+171
+182
+182
+182
+178
+182
+185
+170
+175
+179
+176
+183
+189
+182
+189
+197
+189
+193
+202
+192
+195
+202
+195
+194
+202
+201
+198
+205
+213
+206
+214
+221
+215
+219
+226
+218
+216
+231
+221
+219
+233
+221
+221
+230
+218
+220
+229
+216
+223
+228
+215
+224
+224
+212
+222
+217
+207
+216
+202
+197
+203
+186
+186
+186
+162
+167
+163
+136
+146
+135
+116
+130
+113
+101
+120
+98
+92
+115
+87
+91
+111
+83
+92
+106
+80
+92
+105
+79
+94
+104
+79
+53
+54
+49
+53
+54
+49
+53
+54
+49
+53
+54
+48
+53
+54
+49
+54
+55
+49
+56
+55
+50
+57
+56
+51
+60
+59
+54
+61
+60
+55
+64
+61
+56
+66
+63
+58
+68
+65
+60
+70
+67
+60
+71
+68
+61
+72
+69
+62
+72
+69
+62
+72
+69
+62
+72
+69
+60
+74
+70
+61
+74
+70
+59
+75
+71
+59
+75
+71
+59
+78
+72
+58
+77
+71
+59
+77
+71
+59
+77
+69
+58
+77
+68
+59
+77
+68
+59
+77
+68
+61
+78
+67
+63
+78
+67
+61
+77
+67
+55
+77
+68
+53
+75
+66
+51
+74
+65
+50
+72
+62
+50
+71
+61
+49
+69
+61
+50
+68
+59
+50
+67
+58
+49
+67
+58
+51
+65
+58
+50
+65
+58
+52
+64
+57
+51
+63
+55
+52
+60
+55
+51
+60
+55
+49
+62
+55
+47
+62
+55
+47
+60
+56
+47
+61
+57
+48
+62
+58
+49
+65
+58
+50
+67
+60
+50
+68
+61
+51
+72
+64
+53
+73
+63
+51
+76
+64
+50
+77
+65
+49
+78
+65
+48
+80
+64
+48
+79
+64
+45
+79
+63
+47
+76
+62
+49
+76
+62
+51
+75
+61
+50
+76
+59
+51
+74
+57
+49
+73
+56
+49
+70
+55
+48
+67
+56
+50
+65
+56
+47
+62
+58
+47
+61
+59
+47
+60
+61
+47
+63
+61
+48
+64
+62
+47
+66
+63
+48
+83
+57
+44
+134
+61
+55
+193
+93
+91
+200
+90
+89
+174
+56
+54
+170
+47
+42
+177
+50
+43
+171
+47
+37
+171
+51
+35
+170
+58
+38
+171
+67
+42
+169
+71
+44
+163
+70
+39
+160
+66
+38
+161
+66
+38
+161
+61
+35
+158
+58
+35
+160
+57
+42
+163
+59
+48
+166
+58
+48
+166
+55
+46
+173
+60
+52
+182
+67
+60
+183
+69
+59
+176
+64
+53
+171
+61
+48
+168
+60
+47
+169
+59
+46
+172
+60
+48
+187
+69
+57
+198
+76
+65
+197
+69
+60
+188
+56
+44
+188
+55
+36
+201
+60
+40
+218
+61
+46
+227
+53
+44
+238
+44
+42
+246
+42
+43
+249
+40
+43
+247
+39
+39
+246
+44
+42
+241
+48
+43
+236
+52
+44
+232
+54
+44
+227
+53
+42
+226
+52
+41
+225
+51
+40
+222
+52
+37
+222
+59
+42
+207
+50
+31
+219
+63
+48
+205
+55
+41
+199
+57
+45
+194
+63
+53
+179
+65
+54
+209
+108
+96
+191
+103
+89
+165
+82
+66
+170
+78
+65
+205
+98
+90
+232
+103
+98
+231
+81
+82
+235
+64
+70
+246
+65
+74
+237
+60
+68
+227
+58
+61
+215
+59
+60
+207
+62
+57
+195
+61
+52
+185
+54
+44
+187
+52
+46
+199
+56
+52
+229
+71
+72
+234
+63
+69
+242
+58
+68
+249
+57
+72
+252
+57
+73
+250
+55
+71
+250
+58
+73
+251
+63
+78
+252
+67
+85
+251
+65
+86
+250
+63
+84
+249
+59
+84
+251
+58
+85
+253
+58
+90
+255
+59
+94
+255
+60
+99
+255
+64
+104
+255
+63
+107
+255
+63
+110
+251
+63
+111
+247
+64
+112
+245
+65
+113
+245
+64
+115
+243
+66
+112
+244
+68
+106
+252
+79
+109
+255
+86
+115
+243
+76
+104
+231
+66
+96
+249
+86
+115
+255
+105
+133
+255
+102
+130
+246
+94
+119
+238
+96
+120
+231
+104
+123
+220
+112
+125
+199
+112
+120
+170
+102
+103
+143
+92
+88
+126
+89
+81
+153
+126
+119
+171
+152
+146
+190
+176
+173
+197
+187
+186
+198
+194
+195
+200
+199
+204
+199
+199
+207
+195
+195
+207
+203
+202
+216
+204
+202
+216
+209
+202
+218
+215
+206
+223
+221
+213
+228
+230
+219
+233
+232
+224
+235
+237
+227
+235
+239
+229
+230
+242
+232
+230
+244
+232
+232
+240
+228
+230
+238
+225
+232
+237
+224
+233
+234
+221
+231
+228
+216
+226
+209
+202
+209
+193
+191
+194
+171
+171
+169
+145
+150
+143
+122
+134
+120
+108
+123
+104
+98
+117
+95
+96
+114
+90
+100
+114
+89
+100
+112
+88
+100
+110
+86
+50
+49
+47
+51
+50
+48
+52
+51
+49
+54
+53
+49
+56
+55
+53
+57
+56
+52
+57
+56
+52
+57
+56
+52
+59
+58
+53
+60
+59
+54
+61
+61
+53
+63
+63
+55
+65
+65
+57
+67
+67
+57
+69
+69
+59
+69
+69
+59
+72
+72
+64
+72
+72
+62
+72
+72
+60
+74
+72
+59
+75
+74
+56
+76
+75
+55
+77
+76
+56
+78
+75
+56
+77
+74
+57
+74
+70
+58
+71
+68
+59
+74
+70
+67
+78
+73
+77
+78
+73
+80
+71
+68
+79
+68
+63
+69
+78
+69
+62
+76
+67
+52
+74
+64
+52
+75
+65
+53
+77
+67
+57
+76
+66
+56
+70
+61
+52
+66
+57
+48
+69
+60
+53
+67
+58
+53
+64
+57
+51
+63
+55
+52
+64
+56
+53
+63
+55
+53
+60
+55
+52
+60
+52
+50
+67
+58
+53
+66
+57
+52
+65
+57
+54
+62
+57
+53
+63
+58
+55
+62
+58
+55
+63
+59
+56
+64
+60
+57
+66
+63
+58
+68
+64
+55
+71
+64
+54
+74
+64
+52
+76
+64
+48
+79
+64
+45
+79
+64
+43
+76
+63
+44
+70
+64
+50
+69
+62
+52
+72
+59
+51
+74
+56
+52
+75
+54
+53
+77
+52
+55
+75
+55
+57
+72
+58
+58
+67
+62
+58
+55
+56
+48
+55
+59
+45
+62
+66
+49
+62
+64
+43
+58
+56
+35
+67
+59
+36
+101
+66
+46
+189
+106
+92
+183
+75
+65
+166
+55
+44
+164
+54
+41
+167
+55
+43
+164
+54
+39
+163
+56
+38
+168
+61
+43
+162
+57
+36
+165
+60
+38
+169
+64
+42
+171
+65
+41
+172
+61
+41
+172
+57
+38
+174
+54
+37
+170
+55
+37
+164
+54
+39
+161
+55
+41
+162
+56
+42
+166
+60
+46
+170
+64
+50
+172
+66
+52
+172
+66
+50
+172
+65
+49
+169
+62
+44
+171
+61
+44
+173
+60
+44
+179
+61
+47
+189
+67
+52
+196
+70
+56
+192
+62
+49
+184
+50
+38
+199
+57
+43
+203
+57
+42
+207
+57
+43
+213
+57
+45
+219
+55
+45
+225
+54
+46
+231
+52
+47
+237
+50
+45
+240
+46
+44
+242
+47
+45
+242
+49
+44
+239
+50
+44
+234
+53
+42
+227
+55
+41
+221
+58
+41
+218
+59
+40
+219
+58
+38
+212
+51
+31
+207
+52
+32
+206
+56
+39
+197
+56
+39
+190
+54
+40
+194
+66
+53
+207
+83
+73
+200
+78
+67
+207
+83
+75
+225
+92
+87
+238
+93
+90
+240
+80
+82
+237
+62
+67
+243
+56
+63
+248
+63
+71
+235
+64
+70
+225
+67
+68
+214
+64
+65
+201
+62
+57
+187
+60
+51
+179
+58
+47
+177
+59
+47
+180
+59
+48
+202
+76
+64
+212
+75
+67
+222
+70
+67
+226
+62
+63
+235
+60
+65
+248
+63
+71
+254
+62
+73
+249
+59
+71
+253
+69
+81
+250
+68
+81
+253
+68
+82
+255
+68
+85
+253
+64
+86
+250
+60
+85
+254
+61
+90
+255
+66
+100
+255
+70
+107
+255
+65
+106
+249
+59
+103
+245
+58
+103
+244
+61
+109
+248
+68
+115
+253
+73
+121
+255
+75
+122
+255
+78
+121
+255
+78
+117
+249
+81
+116
+239
+82
+113
+229
+79
+106
+229
+79
+106
+247
+90
+119
+255
+103
+135
+255
+93
+128
+240
+69
+105
+245
+86
+118
+232
+94
+120
+198
+91
+109
+194
+117
+125
+140
+92
+92
+145
+114
+109
+171
+143
+132
+189
+167
+156
+212
+195
+187
+222
+213
+208
+221
+220
+218
+220
+219
+224
+222
+220
+231
+226
+219
+235
+231
+216
+237
+235
+216
+238
+241
+217
+241
+244
+220
+242
+245
+227
+243
+245
+231
+244
+243
+236
+244
+244
+239
+243
+248
+243
+240
+248
+243
+239
+248
+240
+238
+245
+236
+237
+242
+231
+235
+237
+226
+232
+232
+221
+227
+229
+220
+225
+214
+208
+212
+205
+201
+202
+187
+186
+184
+163
+165
+160
+139
+144
+137
+121
+131
+120
+114
+125
+111
+112
+123
+107
+123
+132
+115
+119
+128
+109
+118
+125
+107
+48
+46
+47
+49
+47
+48
+51
+50
+48
+53
+52
+50
+54
+53
+51
+55
+54
+50
+56
+55
+51
+56
+55
+50
+58
+57
+52
+59
+58
+53
+61
+61
+53
+63
+63
+55
+65
+65
+55
+67
+67
+57
+68
+68
+56
+69
+69
+59
+72
+72
+62
+72
+72
+62
+72
+72
+60
+74
+72
+57
+75
+74
+54
+76
+75
+54
+77
+77
+53
+78
+77
+56
+75
+74
+56
+75
+73
+61
+75
+74
+69
+80
+80
+82
+87
+85
+96
+89
+88
+106
+86
+84
+106
+82
+79
+96
+79
+73
+75
+77
+68
+63
+72
+63
+58
+70
+61
+56
+71
+62
+57
+72
+63
+58
+70
+61
+56
+66
+59
+53
+68
+58
+56
+65
+57
+54
+63
+55
+52
+63
+55
+52
+64
+56
+53
+64
+56
+53
+61
+56
+53
+59
+54
+50
+61
+52
+47
+61
+52
+47
+61
+53
+50
+60
+55
+52
+61
+57
+54
+62
+58
+57
+61
+60
+58
+62
+61
+57
+66
+63
+58
+68
+63
+57
+71
+64
+54
+74
+64
+52
+77
+64
+48
+79
+64
+45
+80
+63
+43
+76
+63
+44
+65
+64
+46
+63
+64
+50
+69
+60
+53
+72
+57
+54
+74
+54
+55
+74
+52
+55
+70
+51
+55
+67
+52
+55
+65
+60
+57
+60
+59
+54
+61
+61
+49
+69
+63
+49
+74
+58
+42
+80
+54
+37
+100
+65
+46
+133
+74
+58
+176
+80
+66
+171
+59
+45
+160
+50
+35
+161
+54
+38
+163
+58
+39
+158
+55
+36
+158
+57
+37
+163
+62
+42
+161
+59
+37
+167
+60
+40
+174
+63
+43
+179
+64
+45
+182
+61
+44
+183
+57
+42
+184
+54
+40
+181
+55
+41
+170
+57
+41
+165
+58
+42
+164
+57
+41
+165
+59
+43
+168
+62
+46
+171
+65
+49
+171
+66
+47
+171
+64
+46
+174
+63
+44
+171
+58
+40
+177
+60
+43
+191
+69
+54
+198
+72
+57
+193
+63
+49
+188
+56
+43
+192
+54
+41
+203
+55
+43
+207
+55
+44
+208
+57
+46
+209
+59
+45
+212
+60
+47
+216
+58
+46
+224
+56
+47
+231
+52
+45
+238
+49
+45
+244
+46
+43
+244
+46
+43
+241
+48
+43
+234
+52
+41
+225
+55
+40
+215
+58
+39
+213
+58
+36
+222
+60
+39
+217
+54
+35
+213
+56
+37
+212
+61
+42
+204
+59
+42
+193
+53
+38
+196
+58
+47
+207
+70
+60
+209
+70
+63
+218
+73
+68
+233
+79
+77
+243
+80
+81
+244
+71
+73
+240
+59
+64
+245
+58
+65
+248
+67
+72
+229
+66
+69
+218
+68
+67
+210
+66
+65
+197
+62
+56
+183
+59
+49
+174
+58
+45
+170
+60
+45
+171
+61
+46
+182
+69
+53
+198
+76
+63
+212
+78
+69
+220
+71
+67
+227
+63
+62
+239
+63
+66
+250
+63
+70
+254
+64
+74
+248
+67
+74
+247
+67
+76
+250
+68
+80
+255
+70
+84
+253
+66
+83
+249
+62
+83
+252
+62
+88
+255
+66
+97
+255
+70
+104
+255
+67
+105
+252
+63
+105
+249
+64
+106
+249
+66
+112
+252
+70
+118
+254
+74
+122
+255
+75
+123
+255
+72
+120
+255
+71
+115
+244
+74
+111
+242
+82
+116
+243
+93
+122
+246
+96
+123
+247
+88
+118
+247
+79
+112
+250
+70
+107
+248
+68
+107
+238
+68
+104
+220
+73
+102
+203
+92
+111
+182
+106
+116
+115
+71
+72
+150
+121
+115
+180
+148
+137
+206
+176
+165
+229
+209
+200
+239
+226
+220
+235
+231
+230
+233
+232
+237
+236
+230
+242
+237
+226
+243
+246
+227
+249
+251
+225
+250
+255
+227
+253
+255
+230
+253
+255
+236
+254
+255
+242
+253
+254
+247
+254
+252
+250
+251
+253
+249
+246
+252
+249
+244
+251
+246
+243
+249
+244
+241
+247
+238
+239
+243
+234
+237
+240
+231
+236
+238
+229
+234
+230
+221
+224
+220
+214
+216
+202
+198
+197
+179
+178
+174
+158
+161
+154
+142
+147
+140
+137
+143
+133
+136
+144
+131
+142
+148
+134
+137
+144
+128
+134
+140
+126
+47
+46
+44
+48
+47
+45
+49
+48
+46
+50
+49
+47
+52
+51
+47
+53
+52
+48
+55
+54
+50
+55
+54
+49
+58
+57
+52
+58
+58
+50
+60
+60
+52
+62
+62
+54
+64
+64
+54
+66
+66
+56
+67
+67
+57
+68
+68
+58
+73
+70
+61
+73
+71
+59
+74
+72
+59
+76
+73
+56
+77
+74
+55
+78
+76
+55
+78
+76
+55
+79
+76
+57
+75
+73
+58
+78
+75
+66
+84
+82
+83
+95
+94
+102
+105
+104
+120
+109
+109
+133
+108
+107
+138
+107
+104
+131
+96
+89
+105
+89
+81
+92
+79
+71
+82
+72
+64
+75
+72
+62
+71
+71
+61
+69
+69
+60
+65
+64
+58
+60
+67
+58
+59
+63
+58
+55
+60
+55
+52
+60
+55
+51
+61
+56
+50
+62
+57
+51
+62
+58
+49
+61
+57
+48
+56
+51
+45
+57
+52
+46
+59
+54
+48
+60
+57
+50
+61
+58
+51
+62
+59
+52
+63
+60
+53
+64
+60
+51
+69
+62
+52
+71
+63
+52
+73
+63
+51
+76
+64
+48
+79
+63
+48
+80
+63
+47
+80
+63
+45
+76
+63
+44
+60
+59
+39
+58
+61
+42
+62
+60
+47
+65
+58
+48
+66
+55
+51
+67
+53
+52
+63
+52
+50
+60
+50
+49
+63
+55
+52
+68
+57
+53
+75
+56
+50
+82
+49
+44
+92
+43
+39
+111
+46
+44
+139
+58
+57
+164
+69
+67
+165
+58
+48
+162
+50
+36
+159
+49
+32
+164
+57
+39
+165
+60
+41
+158
+55
+36
+158
+56
+34
+162
+60
+38
+164
+59
+38
+170
+61
+41
+177
+65
+45
+182
+65
+47
+185
+62
+46
+187
+60
+45
+190
+58
+45
+190
+60
+47
+178
+60
+46
+172
+60
+46
+169
+57
+43
+169
+57
+43
+171
+60
+43
+173
+62
+45
+173
+62
+45
+173
+60
+44
+178
+63
+45
+176
+56
+40
+185
+62
+46
+203
+76
+61
+203
+71
+58
+188
+54
+42
+186
+50
+38
+201
+57
+46
+208
+54
+44
+212
+54
+43
+212
+56
+44
+214
+58
+46
+216
+58
+47
+220
+56
+46
+227
+54
+47
+232
+51
+44
+240
+48
+45
+244
+46
+43
+244
+46
+43
+240
+49
+41
+231
+50
+39
+221
+54
+38
+212
+56
+34
+210
+55
+33
+221
+56
+36
+220
+53
+35
+218
+57
+39
+218
+62
+47
+211
+61
+46
+200
+54
+41
+197
+57
+44
+203
+65
+55
+201
+60
+53
+205
+62
+56
+217
+69
+65
+229
+75
+73
+234
+74
+74
+233
+67
+67
+236
+63
+65
+235
+67
+67
+222
+67
+65
+213
+68
+63
+205
+66
+61
+194
+61
+52
+182
+58
+46
+174
+56
+42
+171
+58
+42
+172
+59
+43
+172
+56
+41
+192
+68
+56
+212
+78
+69
+221
+73
+69
+224
+64
+64
+232
+62
+65
+247
+66
+73
+255
+72
+80
+244
+65
+71
+244
+64
+73
+249
+67
+79
+253
+71
+84
+254
+69
+85
+250
+64
+85
+251
+63
+88
+254
+65
+95
+255
+68
+102
+255
+67
+105
+255
+67
+107
+255
+70
+112
+255
+73
+119
+255
+75
+123
+255
+76
+124
+255
+74
+122
+255
+66
+116
+255
+68
+116
+254
+72
+113
+250
+78
+116
+252
+91
+124
+255
+98
+128
+250
+87
+118
+236
+69
+99
+248
+77
+109
+254
+86
+119
+218
+64
+92
+203
+71
+94
+218
+121
+132
+187
+121
+123
+103
+64
+59
+151
+123
+112
+178
+140
+129
+215
+177
+166
+245
+216
+208
+253
+234
+228
+250
+240
+239
+250
+245
+249
+249
+243
+253
+244
+236
+251
+251
+233
+255
+255
+233
+255
+255
+234
+255
+255
+237
+255
+255
+242
+255
+255
+246
+255
+255
+251
+255
+255
+254
+252
+255
+253
+250
+255
+252
+248
+255
+249
+247
+255
+247
+245
+254
+244
+245
+252
+242
+243
+250
+239
+243
+248
+239
+242
+240
+231
+234
+229
+223
+225
+211
+207
+206
+190
+189
+185
+173
+174
+168
+162
+165
+158
+157
+163
+153
+157
+163
+151
+163
+171
+158
+157
+165
+150
+153
+161
+148
+47
+46
+44
+47
+46
+44
+48
+47
+45
+49
+48
+44
+50
+49
+45
+51
+50
+46
+53
+52
+47
+54
+53
+48
+56
+56
+48
+57
+57
+49
+59
+59
+51
+61
+61
+53
+63
+63
+53
+65
+65
+55
+66
+66
+56
+67
+67
+57
+72
+69
+60
+74
+70
+59
+75
+72
+57
+77
+74
+57
+80
+75
+56
+79
+77
+56
+81
+76
+56
+79
+76
+59
+76
+74
+62
+81
+80
+76
+94
+93
+98
+109
+108
+122
+122
+122
+146
+129
+130
+161
+128
+130
+168
+128
+128
+166
+123
+117
+151
+114
+107
+138
+101
+95
+123
+89
+83
+109
+84
+76
+100
+77
+69
+90
+71
+64
+80
+66
+60
+72
+68
+63
+70
+64
+59
+63
+60
+56
+55
+59
+54
+51
+59
+54
+48
+60
+56
+47
+61
+57
+46
+59
+56
+47
+58
+55
+48
+57
+57
+49
+59
+59
+51
+62
+59
+50
+63
+61
+49
+64
+60
+49
+63
+59
+47
+65
+59
+45
+70
+63
+47
+72
+63
+46
+75
+63
+47
+77
+64
+47
+79
+63
+48
+79
+63
+47
+80
+62
+48
+76
+63
+47
+66
+61
+42
+63
+62
+44
+64
+61
+46
+65
+58
+48
+65
+58
+50
+64
+57
+51
+62
+57
+53
+60
+57
+52
+61
+56
+52
+70
+56
+53
+80
+52
+49
+88
+44
+43
+107
+41
+43
+135
+48
+54
+161
+55
+65
+174
+61
+65
+167
+54
+46
+165
+55
+40
+165
+58
+40
+170
+63
+45
+168
+63
+44
+160
+57
+38
+161
+56
+35
+164
+59
+38
+165
+58
+38
+171
+60
+41
+179
+62
+44
+185
+64
+47
+189
+62
+47
+193
+61
+48
+197
+61
+49
+196
+62
+50
+189
+63
+51
+182
+61
+50
+178
+57
+46
+174
+56
+42
+175
+57
+43
+176
+58
+44
+178
+58
+44
+179
+57
+42
+182
+59
+44
+185
+59
+45
+196
+66
+52
+203
+69
+57
+200
+62
+51
+190
+49
+39
+192
+50
+40
+205
+57
+47
+214
+53
+43
+216
+52
+42
+218
+54
+45
+219
+55
+45
+222
+55
+46
+225
+54
+44
+230
+51
+44
+236
+49
+42
+243
+48
+44
+244
+46
+43
+244
+47
+41
+239
+48
+40
+228
+50
+38
+219
+52
+36
+210
+54
+32
+208
+53
+31
+215
+50
+30
+218
+48
+31
+218
+52
+36
+220
+60
+46
+214
+61
+47
+208
+57
+46
+205
+61
+50
+210
+68
+58
+196
+53
+45
+197
+54
+48
+202
+59
+53
+216
+68
+64
+226
+77
+73
+229
+75
+73
+222
+67
+63
+214
+61
+56
+211
+64
+57
+206
+65
+56
+199
+62
+52
+190
+60
+47
+181
+58
+43
+176
+56
+42
+175
+57
+43
+177
+59
+45
+172
+52
+38
+189
+63
+51
+209
+72
+64
+217
+72
+67
+221
+66
+64
+229
+64
+68
+243
+70
+76
+253
+78
+85
+240
+63
+69
+240
+63
+69
+246
+66
+77
+254
+72
+85
+254
+72
+87
+252
+66
+87
+250
+64
+88
+252
+65
+94
+255
+65
+99
+255
+67
+102
+255
+70
+109
+255
+73
+114
+255
+77
+121
+255
+79
+124
+255
+76
+123
+255
+72
+121
+255
+63
+113
+255
+74
+122
+255
+79
+122
+252
+73
+112
+246
+77
+110
+252
+87
+117
+252
+87
+117
+243
+79
+106
+239
+75
+102
+236
+78
+103
+206
+62
+85
+220
+98
+113
+251
+156
+164
+211
+141
+141
+104
+57
+51
+113
+75
+64
+166
+119
+109
+210
+163
+155
+247
+210
+202
+255
+231
+226
+255
+242
+241
+255
+251
+254
+255
+250
+255
+249
+241
+254
+250
+237
+255
+252
+237
+255
+255
+237
+255
+255
+240
+255
+255
+242
+253
+255
+246
+254
+254
+250
+251
+255
+251
+250
+255
+252
+249
+255
+251
+247
+255
+249
+247
+255
+248
+246
+255
+245
+246
+254
+244
+245
+254
+243
+247
+253
+242
+246
+246
+235
+239
+236
+227
+228
+218
+213
+210
+201
+198
+193
+186
+185
+180
+179
+180
+172
+177
+180
+169
+176
+182
+170
+183
+191
+180
+175
+183
+172
+169
+177
+166
+49
+48
+44
+49
+48
+44
+48
+47
+43
+48
+47
+43
+49
+48
+44
+50
+49
+44
+52
+51
+46
+53
+52
+47
+55
+55
+47
+56
+56
+48
+57
+57
+49
+59
+59
+51
+61
+61
+51
+63
+63
+53
+65
+65
+55
+68
+65
+56
+73
+69
+58
+76
+70
+58
+78
+72
+58
+80
+74
+58
+82
+75
+57
+82
+77
+58
+83
+76
+58
+81
+75
+61
+79
+74
+68
+86
+84
+85
+102
+100
+113
+119
+120
+141
+134
+134
+168
+141
+144
+185
+143
+147
+195
+143
+144
+198
+142
+139
+192
+135
+131
+182
+123
+119
+169
+112
+109
+154
+105
+100
+141
+95
+91
+126
+85
+80
+110
+78
+74
+97
+75
+71
+88
+69
+66
+77
+63
+61
+66
+59
+55
+56
+57
+53
+50
+57
+54
+47
+56
+53
+44
+56
+53
+44
+54
+55
+49
+55
+56
+51
+56
+57
+49
+59
+59
+49
+62
+60
+47
+63
+60
+43
+66
+61
+42
+67
+60
+41
+71
+63
+44
+74
+63
+43
+75
+64
+44
+76
+65
+47
+77
+64
+48
+77
+63
+50
+76
+64
+52
+76
+62
+51
+77
+63
+52
+76
+62
+53
+73
+58
+51
+67
+56
+50
+63
+56
+50
+60
+57
+52
+56
+59
+52
+55
+60
+53
+57
+60
+51
+64
+57
+49
+72
+51
+46
+90
+49
+47
+119
+55
+56
+149
+62
+68
+167
+61
+71
+169
+56
+60
+170
+59
+48
+170
+60
+43
+171
+64
+46
+172
+65
+47
+169
+64
+45
+165
+60
+41
+166
+59
+39
+171
+62
+42
+167
+56
+36
+173
+58
+39
+181
+60
+43
+188
+61
+46
+193
+60
+45
+197
+59
+46
+202
+60
+48
+202
+61
+51
+197
+63
+54
+190
+62
+51
+186
+58
+47
+183
+55
+44
+183
+55
+44
+184
+56
+43
+186
+56
+43
+186
+56
+43
+187
+55
+43
+199
+65
+53
+205
+67
+56
+197
+56
+46
+193
+49
+38
+198
+51
+41
+203
+55
+45
+207
+53
+43
+219
+52
+43
+223
+51
+41
+225
+52
+45
+226
+54
+44
+227
+53
+44
+231
+53
+43
+236
+49
+42
+240
+47
+42
+245
+47
+44
+246
+47
+42
+242
+47
+41
+236
+48
+39
+226
+50
+35
+217
+52
+33
+208
+53
+31
+207
+52
+30
+214
+49
+30
+217
+47
+30
+216
+50
+34
+216
+54
+41
+215
+57
+45
+212
+58
+48
+214
+63
+54
+216
+69
+61
+214
+70
+62
+205
+64
+55
+201
+60
+53
+203
+64
+57
+214
+75
+68
+217
+78
+71
+210
+69
+62
+197
+59
+49
+197
+61
+49
+194
+60
+48
+192
+60
+47
+186
+59
+44
+183
+57
+42
+180
+58
+43
+182
+60
+45
+185
+63
+48
+181
+57
+45
+191
+60
+50
+201
+64
+58
+210
+67
+63
+219
+67
+66
+227
+68
+72
+237
+74
+79
+246
+79
+86
+236
+63
+69
+237
+62
+67
+242
+66
+76
+251
+73
+85
+255
+74
+89
+253
+70
+88
+250
+67
+89
+251
+67
+93
+251
+64
+95
+251
+66
+100
+255
+69
+108
+255
+74
+115
+255
+78
+122
+255
+79
+124
+255
+76
+121
+255
+72
+118
+255
+68
+114
+255
+78
+124
+255
+80
+122
+251
+72
+111
+245
+74
+108
+253
+86
+116
+254
+87
+115
+243
+81
+105
+231
+71
+95
+224
+72
+93
+226
+88
+104
+255
+147
+158
+255
+178
+184
+239
+155
+155
+140
+72
+69
+108
+47
+42
+166
+106
+98
+206
+149
+142
+243
+198
+192
+255
+225
+220
+255
+240
+239
+255
+251
+253
+255
+253
+255
+251
+246
+253
+252
+246
+255
+253
+245
+255
+255
+245
+255
+255
+246
+255
+255
+248
+255
+255
+250
+254
+255
+252
+251
+255
+252
+249
+255
+251
+247
+255
+250
+247
+255
+248
+247
+255
+247
+246
+255
+245
+247
+255
+244
+246
+255
+243
+247
+255
+243
+247
+253
+241
+243
+243
+233
+234
+228
+220
+218
+214
+209
+205
+205
+202
+195
+201
+201
+191
+202
+202
+192
+202
+205
+194
+201
+208
+200
+190
+200
+191
+182
+192
+183
+54
+53
+49
+52
+51
+46
+51
+50
+46
+49
+48
+43
+49
+48
+43
+50
+49
+44
+51
+50
+45
+52
+51
+46
+54
+54
+46
+55
+55
+47
+56
+56
+48
+58
+58
+50
+60
+60
+50
+62
+62
+52
+64
+64
+54
+66
+64
+52
+74
+68
+56
+77
+69
+56
+79
+72
+56
+82
+75
+59
+84
+75
+58
+84
+77
+59
+83
+76
+60
+82
+75
+65
+81
+76
+73
+90
+87
+94
+108
+105
+124
+127
+126
+157
+140
+143
+184
+150
+153
+204
+153
+158
+216
+154
+158
+222
+153
+152
+218
+148
+145
+212
+140
+138
+201
+134
+133
+191
+129
+126
+181
+120
+118
+167
+110
+107
+150
+102
+101
+135
+93
+90
+119
+86
+84
+105
+77
+75
+89
+68
+65
+74
+62
+60
+63
+59
+58
+56
+59
+55
+52
+55
+54
+50
+53
+53
+53
+52
+53
+55
+54
+54
+52
+56
+55
+50
+60
+58
+46
+63
+60
+43
+67
+62
+42
+70
+64
+42
+71
+63
+42
+72
+64
+43
+73
+65
+44
+73
+66
+48
+73
+65
+52
+72
+66
+54
+72
+65
+57
+72
+63
+58
+76
+61
+58
+76
+58
+58
+71
+55
+55
+64
+54
+53
+58
+54
+53
+53
+55
+52
+49
+56
+49
+47
+57
+48
+55
+60
+53
+55
+52
+43
+67
+48
+41
+93
+56
+50
+126
+66
+65
+149
+71
+71
+157
+63
+64
+158
+52
+52
+167
+59
+47
+170
+60
+43
+170
+63
+45
+170
+63
+45
+169
+62
+44
+169
+62
+42
+172
+63
+43
+176
+63
+45
+171
+56
+37
+178
+57
+40
+185
+58
+43
+191
+57
+45
+195
+57
+44
+200
+58
+46
+205
+58
+48
+207
+60
+52
+203
+62
+53
+198
+59
+52
+194
+57
+49
+193
+56
+46
+193
+56
+46
+194
+57
+47
+194
+56
+46
+195
+54
+44
+197
+55
+45
+209
+67
+57
+208
+64
+55
+195
+48
+38
+195
+44
+35
+208
+55
+47
+214
+60
+52
+211
+50
+42
+224
+51
+44
+228
+50
+40
+231
+50
+43
+232
+51
+42
+234
+51
+43
+237
+50
+43
+240
+47
+42
+243
+45
+42
+246
+47
+42
+245
+46
+41
+241
+48
+41
+236
+49
+40
+225
+52
+36
+218
+53
+34
+209
+54
+32
+208
+53
+31
+216
+55
+35
+217
+51
+35
+214
+51
+36
+213
+51
+38
+213
+53
+41
+212
+56
+44
+212
+60
+49
+214
+63
+54
+236
+89
+81
+225
+82
+74
+211
+72
+65
+204
+67
+59
+202
+69
+60
+204
+73
+63
+200
+69
+59
+192
+62
+49
+188
+58
+42
+188
+59
+40
+188
+58
+42
+185
+58
+41
+183
+58
+40
+184
+58
+43
+188
+62
+48
+191
+65
+51
+193
+65
+54
+193
+60
+51
+197
+60
+54
+207
+65
+61
+215
+69
+69
+221
+71
+72
+228
+73
+77
+235
+76
+80
+232
+66
+70
+234
+64
+67
+240
+67
+73
+249
+75
+84
+254
+78
+89
+252
+74
+90
+252
+70
+92
+252
+70
+95
+248
+65
+95
+249
+66
+97
+253
+69
+105
+255
+74
+112
+255
+78
+119
+255
+79
+122
+255
+78
+120
+255
+76
+118
+254
+77
+119
+255
+79
+118
+252
+77
+116
+250
+79
+115
+255
+87
+121
+255
+95
+123
+252
+85
+111
+233
+71
+94
+243
+86
+107
+231
+83
+99
+240
+100
+113
+255
+144
+154
+254
+137
+145
+236
+130
+134
+194
+95
+98
+165
+77
+76
+179
+104
+101
+206
+141
+137
+240
+187
+183
+255
+219
+215
+255
+238
+237
+255
+247
+247
+255
+250
+253
+251
+249
+254
+253
+250
+255
+252
+251
+255
+253
+250
+255
+255
+250
+255
+255
+250
+254
+255
+251
+252
+253
+252
+250
+255
+251
+248
+255
+251
+247
+255
+251
+248
+255
+250
+249
+255
+250
+249
+255
+247
+249
+255
+245
+247
+254
+242
+246
+252
+240
+242
+249
+237
+239
+242
+230
+230
+231
+221
+219
+223
+216
+210
+219
+215
+206
+221
+219
+207
+224
+222
+210
+223
+225
+214
+221
+228
+220
+207
+216
+211
+197
+206
+201
+60
+57
+52
+59
+56
+49
+56
+53
+48
+53
+50
+43
+52
+49
+42
+52
+49
+42
+53
+50
+43
+54
+51
+44
+55
+52
+45
+56
+53
+46
+57
+54
+47
+59
+56
+49
+61
+58
+49
+63
+60
+51
+65
+62
+53
+67
+63
+52
+74
+66
+55
+77
+67
+55
+80
+71
+56
+83
+74
+59
+87
+75
+59
+85
+76
+61
+85
+75
+63
+83
+74
+67
+83
+74
+75
+93
+87
+99
+110
+108
+130
+130
+130
+166
+145
+149
+197
+154
+160
+218
+159
+166
+234
+162
+169
+241
+161
+165
+239
+158
+160
+235
+153
+155
+229
+149
+152
+221
+148
+149
+214
+144
+145
+202
+137
+137
+189
+130
+131
+177
+122
+121
+161
+114
+113
+145
+102
+99
+126
+88
+86
+107
+80
+78
+92
+73
+71
+82
+70
+67
+76
+67
+66
+74
+63
+63
+75
+61
+61
+71
+59
+58
+64
+59
+57
+58
+60
+57
+52
+63
+59
+47
+67
+61
+45
+69
+64
+44
+70
+64
+42
+70
+65
+43
+69
+66
+47
+69
+67
+52
+67
+67
+55
+66
+67
+59
+65
+67
+62
+65
+65
+65
+69
+59
+67
+71
+61
+70
+71
+64
+72
+71
+68
+75
+70
+71
+76
+67
+72
+75
+63
+72
+71
+62
+71
+66
+67
+72
+65
+65
+61
+52
+75
+58
+48
+102
+70
+59
+128
+80
+70
+138
+74
+64
+140
+63
+53
+146
+56
+45
+164
+62
+47
+169
+62
+44
+171
+62
+42
+172
+63
+43
+173
+64
+44
+175
+64
+45
+176
+63
+45
+177
+60
+42
+177
+56
+39
+182
+56
+41
+189
+57
+42
+195
+57
+44
+200
+56
+45
+204
+56
+46
+210
+57
+49
+212
+59
+53
+207
+58
+52
+205
+58
+51
+203
+56
+49
+203
+56
+49
+204
+57
+50
+205
+58
+50
+204
+55
+48
+203
+54
+47
+211
+60
+53
+213
+62
+53
+210
+57
+49
+204
+50
+40
+206
+52
+42
+216
+59
+50
+218
+60
+51
+215
+51
+42
+228
+49
+42
+233
+49
+39
+236
+49
+42
+238
+50
+41
+240
+49
+41
+242
+47
+41
+244
+45
+40
+246
+44
+40
+247
+45
+41
+244
+47
+41
+240
+49
+41
+233
+51
+40
+226
+53
+39
+217
+54
+37
+210
+55
+33
+207
+55
+32
+212
+57
+37
+213
+56
+37
+211
+54
+37
+209
+52
+37
+210
+52
+40
+211
+55
+43
+210
+56
+46
+208
+55
+47
+227
+78
+71
+232
+88
+80
+231
+90
+83
+218
+81
+73
+204
+71
+62
+196
+68
+57
+191
+64
+55
+185
+62
+47
+185
+60
+42
+185
+60
+38
+185
+60
+40
+185
+58
+39
+184
+57
+40
+186
+59
+42
+192
+62
+48
+195
+65
+52
+201
+68
+59
+198
+64
+55
+201
+64
+58
+209
+70
+67
+213
+73
+72
+214
+72
+71
+216
+71
+74
+223
+73
+75
+230
+70
+72
+232
+66
+68
+237
+68
+73
+245
+76
+83
+252
+81
+90
+251
+79
+93
+251
+76
+93
+251
+75
+96
+246
+68
+94
+247
+68
+97
+249
+70
+102
+253
+73
+108
+255
+78
+117
+255
+79
+120
+255
+79
+120
+255
+80
+119
+246
+85
+119
+242
+84
+117
+244
+84
+118
+250
+89
+120
+255
+93
+123
+255
+92
+119
+247
+83
+107
+236
+74
+95
+246
+89
+106
+239
+87
+102
+227
+79
+93
+239
+94
+107
+218
+78
+89
+223
+86
+96
+222
+86
+96
+210
+89
+96
+191
+99
+100
+199
+128
+124
+230
+169
+166
+255
+208
+207
+255
+233
+231
+255
+241
+240
+255
+246
+247
+254
+252
+253
+251
+252
+255
+249
+253
+255
+248
+252
+255
+250
+251
+253
+250
+250
+252
+249
+249
+249
+250
+249
+247
+252
+248
+245
+255
+250
+246
+255
+250
+247
+255
+251
+250
+255
+250
+249
+255
+247
+247
+254
+242
+242
+252
+237
+240
+249
+234
+237
+240
+225
+228
+233
+221
+221
+228
+217
+213
+226
+217
+210
+230
+223
+213
+235
+231
+219
+241
+237
+225
+241
+241
+229
+236
+243
+236
+220
+231
+227
+208
+219
+215
+64
+61
+54
+61
+58
+51
+58
+55
+48
+55
+52
+45
+53
+50
+43
+53
+50
+43
+53
+50
+43
+54
+51
+44
+55
+52
+45
+55
+52
+45
+57
+54
+47
+59
+56
+49
+61
+58
+49
+63
+60
+51
+64
+61
+52
+66
+62
+51
+74
+66
+55
+77
+67
+55
+82
+70
+56
+86
+74
+58
+87
+75
+59
+88
+76
+60
+87
+75
+63
+84
+73
+67
+83
+74
+77
+94
+88
+102
+112
+109
+136
+130
+132
+171
+145
+151
+203
+156
+164
+227
+163
+173
+245
+167
+176
+253
+170
+177
+255
+166
+172
+250
+161
+167
+243
+160
+164
+238
+159
+163
+234
+157
+161
+225
+153
+155
+214
+149
+150
+204
+146
+146
+196
+137
+136
+180
+121
+121
+159
+106
+105
+139
+96
+93
+124
+88
+85
+112
+82
+80
+104
+79
+77
+101
+78
+74
+99
+75
+71
+94
+70
+66
+83
+64
+61
+72
+63
+58
+62
+63
+58
+54
+64
+60
+49
+65
+62
+47
+67
+64
+47
+67
+66
+48
+66
+67
+51
+66
+68
+55
+63
+68
+61
+62
+68
+64
+60
+69
+68
+59
+66
+72
+65
+67
+82
+71
+72
+92
+80
+81
+99
+89
+91
+106
+95
+97
+110
+99
+99
+109
+99
+98
+104
+101
+95
+97
+102
+88
+87
+95
+74
+69
+106
+72
+63
+130
+83
+73
+146
+88
+76
+143
+76
+60
+142
+65
+49
+150
+63
+46
+167
+66
+48
+174
+64
+47
+174
+65
+45
+175
+64
+45
+176
+65
+46
+180
+65
+47
+178
+61
+43
+176
+55
+38
+181
+55
+40
+188
+56
+43
+194
+56
+43
+200
+56
+45
+205
+54
+45
+209
+55
+47
+213
+56
+49
+216
+59
+52
+210
+55
+50
+208
+55
+50
+208
+55
+50
+209
+56
+50
+212
+57
+52
+212
+57
+52
+211
+56
+51
+211
+54
+47
+222
+65
+58
+213
+56
+47
+209
+51
+42
+214
+56
+47
+222
+61
+53
+222
+61
+53
+218
+57
+49
+220
+53
+44
+231
+50
+41
+235
+48
+39
+239
+48
+40
+241
+48
+41
+244
+47
+41
+247
+45
+41
+247
+44
+40
+247
+44
+40
+247
+45
+41
+244
+47
+41
+238
+50
+41
+233
+52
+41
+225
+53
+39
+218
+55
+38
+212
+55
+36
+207
+56
+35
+206
+55
+34
+207
+56
+37
+206
+55
+36
+207
+54
+38
+208
+55
+41
+210
+57
+43
+209
+55
+43
+206
+52
+42
+203
+52
+43
+227
+78
+71
+243
+100
+92
+235
+96
+89
+213
+79
+70
+196
+65
+55
+186
+59
+50
+181
+57
+45
+184
+62
+41
+184
+62
+39
+185
+60
+38
+185
+59
+37
+186
+57
+38
+189
+57
+42
+192
+60
+47
+196
+62
+50
+202
+68
+57
+202
+65
+57
+206
+69
+63
+213
+75
+72
+211
+76
+73
+206
+71
+68
+205
+69
+69
+214
+72
+71
+227
+73
+73
+230
+67
+68
+232
+69
+72
+242
+77
+83
+248
+83
+90
+249
+82
+92
+247
+79
+94
+250
+79
+97
+244
+72
+94
+245
+71
+96
+248
+71
+100
+251
+73
+105
+255
+78
+114
+255
+81
+120
+255
+82
+121
+255
+84
+122
+239
+84
+116
+239
+90
+119
+249
+96
+126
+253
+96
+125
+249
+86
+113
+242
+78
+103
+245
+81
+105
+253
+90
+109
+251
+93
+108
+255
+102
+116
+235
+80
+94
+243
+88
+102
+238
+83
+97
+246
+90
+104
+237
+79
+94
+223
+83
+94
+190
+92
+93
+188
+114
+111
+216
+152
+150
+249
+198
+195
+255
+226
+225
+255
+235
+233
+254
+242
+242
+255
+255
+253
+252
+255
+255
+251
+255
+255
+248
+255
+255
+249
+255
+253
+249
+253
+252
+250
+252
+249
+252
+251
+247
+253
+249
+246
+253
+248
+244
+255
+248
+245
+255
+249
+248
+255
+249
+248
+255
+245
+245
+251
+239
+239
+247
+232
+235
+243
+229
+229
+235
+221
+221
+232
+218
+217
+228
+217
+211
+232
+222
+213
+240
+232
+221
+249
+243
+229
+255
+250
+236
+254
+254
+242
+244
+250
+246
+227
+237
+236
+214
+224
+223
+66
+62
+53
+65
+61
+52
+64
+60
+51
+62
+58
+49
+60
+56
+47
+58
+54
+45
+56
+52
+43
+55
+51
+42
+54
+50
+41
+54
+50
+41
+55
+51
+42
+56
+52
+43
+59
+54
+48
+62
+57
+51
+65
+60
+54
+69
+62
+54
+73
+64
+55
+77
+67
+55
+82
+70
+56
+85
+73
+57
+87
+74
+58
+88
+75
+59
+90
+76
+65
+91
+78
+72
+84
+73
+77
+88
+82
+96
+103
+100
+129
+124
+126
+167
+141
+146
+202
+151
+160
+227
+158
+170
+246
+165
+176
+255
+170
+179
+255
+171
+178
+255
+172
+180
+255
+172
+178
+252
+170
+177
+249
+170
+175
+243
+168
+172
+236
+169
+171
+232
+159
+161
+218
+153
+154
+210
+141
+141
+193
+129
+127
+177
+116
+114
+161
+104
+101
+146
+93
+90
+135
+88
+82
+126
+88
+81
+122
+89
+81
+118
+86
+79
+110
+77
+72
+95
+67
+63
+77
+63
+58
+64
+63
+59
+58
+66
+63
+56
+62
+62
+52
+64
+66
+53
+66
+69
+58
+63
+68
+61
+60
+66
+62
+58
+67
+66
+62
+70
+72
+65
+75
+84
+70
+85
+106
+85
+101
+126
+101
+113
+137
+108
+114
+136
+119
+117
+139
+131
+119
+139
+132
+111
+126
+128
+95
+106
+137
+91
+101
+144
+88
+91
+157
+87
+87
+164
+87
+81
+162
+78
+68
+154
+65
+51
+151
+58
+40
+158
+59
+40
+167
+60
+42
+172
+61
+42
+174
+63
+44
+177
+64
+46
+179
+64
+45
+180
+63
+45
+182
+61
+44
+185
+59
+44
+186
+54
+39
+190
+54
+40
+196
+54
+42
+203
+55
+45
+209
+55
+45
+214
+56
+47
+218
+57
+49
+218
+56
+51
+215
+56
+52
+216
+57
+53
+217
+58
+54
+216
+57
+51
+216
+54
+49
+216
+54
+49
+218
+56
+51
+221
+58
+51
+230
+67
+60
+224
+61
+54
+218
+55
+48
+227
+64
+55
+254
+91
+82
+255
+108
+99
+255
+93
+84
+231
+63
+54
+229
+51
+41
+237
+50
+41
+241
+50
+42
+244
+47
+41
+244
+42
+38
+245
+40
+37
+248
+40
+38
+248
+43
+40
+247
+45
+43
+243
+48
+44
+237
+50
+43
+227
+49
+39
+218
+48
+35
+212
+49
+34
+212
+52
+36
+211
+58
+40
+204
+59
+38
+202
+60
+40
+205
+60
+41
+207
+60
+42
+210
+58
+44
+210
+57
+43
+210
+56
+44
+209
+55
+45
+218
+64
+56
+207
+56
+49
+220
+71
+65
+244
+99
+94
+229
+88
+81
+203
+66
+60
+197
+64
+59
+183
+52
+42
+183
+58
+38
+182
+60
+36
+185
+60
+38
+186
+60
+38
+189
+58
+40
+191
+58
+43
+196
+60
+48
+198
+62
+50
+199
+62
+52
+204
+67
+59
+217
+80
+74
+223
+88
+82
+212
+79
+74
+195
+63
+58
+192
+63
+58
+207
+72
+68
+222
+72
+71
+226
+71
+69
+230
+74
+75
+239
+80
+84
+241
+82
+87
+239
+78
+86
+237
+75
+88
+241
+76
+92
+249
+82
+102
+248
+79
+102
+247
+75
+101
+247
+74
+102
+252
+77
+108
+255
+81
+115
+255
+82
+118
+253
+82
+118
+245
+88
+119
+239
+89
+118
+243
+89
+117
+251
+92
+120
+255
+93
+120
+255
+91
+115
+254
+88
+110
+252
+86
+106
+255
+101
+117
+247
+89
+103
+253
+95
+109
+252
+94
+108
+234
+73
+88
+235
+73
+88
+251
+84
+101
+233
+88
+101
+198
+102
+103
+173
+103
+101
+203
+142
+139
+232
+181
+178
+249
+209
+207
+255
+234
+231
+254
+238
+238
+252
+248
+247
+246
+250
+249
+247
+255
+253
+247
+255
+254
+246
+255
+252
+248
+254
+252
+253
+255
+252
+253
+252
+248
+251
+247
+244
+255
+250
+246
+255
+250
+246
+255
+247
+244
+253
+243
+241
+255
+244
+244
+255
+243
+243
+246
+232
+232
+231
+217
+217
+228
+214
+213
+223
+209
+206
+225
+214
+208
+241
+231
+222
+252
+244
+231
+253
+247
+231
+255
+251
+232
+255
+255
+243
+249
+254
+248
+231
+240
+239
+218
+227
+226
+67
+63
+54
+66
+62
+51
+65
+61
+52
+63
+59
+50
+61
+57
+48
+59
+55
+46
+58
+54
+45
+57
+53
+44
+55
+51
+42
+55
+51
+42
+55
+51
+42
+56
+52
+43
+58
+53
+47
+61
+56
+50
+64
+59
+53
+68
+61
+53
+72
+63
+54
+76
+66
+54
+81
+69
+55
+84
+72
+56
+86
+73
+56
+87
+74
+57
+89
+75
+62
+90
+77
+69
+85
+74
+78
+87
+81
+95
+101
+98
+127
+121
+123
+164
+138
+143
+201
+148
+157
+226
+155
+166
+245
+163
+174
+254
+171
+180
+255
+172
+181
+255
+174
+182
+255
+175
+183
+255
+176
+183
+255
+175
+182
+252
+175
+180
+248
+175
+178
+245
+169
+170
+235
+162
+163
+227
+152
+152
+216
+140
+138
+201
+128
+127
+187
+117
+113
+174
+105
+101
+160
+99
+94
+152
+96
+87
+142
+96
+86
+136
+93
+84
+127
+86
+80
+116
+77
+73
+98
+70
+67
+84
+66
+65
+73
+65
+65
+67
+60
+60
+58
+65
+66
+61
+70
+69
+65
+67
+68
+63
+65
+63
+64
+68
+66
+69
+79
+77
+82
+88
+86
+99
+102
+103
+131
+116
+116
+150
+130
+125
+157
+138
+125
+155
+149
+124
+154
+160
+124
+150
+165
+113
+136
+164
+96
+117
+172
+89
+107
+180
+87
+98
+185
+81
+88
+181
+73
+71
+173
+64
+57
+168
+60
+47
+168
+61
+41
+169
+63
+41
+167
+56
+37
+168
+55
+37
+171
+56
+38
+174
+57
+40
+176
+56
+39
+178
+57
+40
+181
+55
+40
+184
+54
+40
+187
+51
+37
+194
+52
+40
+202
+55
+45
+211
+58
+50
+217
+60
+51
+222
+61
+53
+223
+60
+53
+223
+60
+53
+225
+62
+57
+223
+60
+55
+223
+60
+55
+225
+62
+57
+229
+66
+61
+232
+67
+61
+231
+66
+60
+230
+65
+59
+229
+64
+58
+230
+66
+57
+228
+64
+55
+220
+56
+47
+213
+49
+40
+216
+54
+43
+235
+73
+62
+255
+91
+79
+241
+64
+54
+238
+54
+44
+234
+43
+35
+238
+41
+35
+248
+45
+41
+255
+47
+45
+254
+44
+43
+246
+40
+40
+250
+48
+46
+245
+52
+47
+239
+54
+49
+231
+54
+46
+222
+51
+41
+214
+50
+38
+212
+50
+37
+207
+54
+38
+203
+58
+39
+200
+59
+39
+202
+60
+40
+205
+58
+40
+207
+57
+42
+208
+55
+41
+209
+53
+41
+208
+52
+40
+211
+57
+47
+207
+53
+45
+212
+61
+54
+229
+80
+74
+229
+84
+81
+219
+76
+72
+205
+66
+63
+183
+49
+40
+188
+59
+40
+187
+61
+38
+189
+60
+39
+190
+59
+39
+190
+57
+40
+192
+56
+40
+194
+58
+44
+196
+58
+47
+200
+62
+52
+203
+66
+56
+213
+79
+70
+220
+87
+80
+210
+82
+73
+195
+68
+61
+191
+67
+59
+204
+72
+67
+219
+76
+72
+223
+74
+70
+229
+77
+76
+235
+83
+82
+237
+84
+87
+235
+80
+86
+233
+78
+86
+236
+79
+90
+247
+86
+102
+248
+85
+104
+249
+83
+105
+250
+82
+107
+252
+82
+109
+255
+83
+113
+255
+83
+116
+254
+83
+117
+241
+76
+108
+245
+84
+115
+255
+92
+121
+255
+96
+123
+255
+91
+117
+253
+85
+110
+250
+82
+105
+249
+84
+101
+249
+87
+102
+242
+84
+98
+249
+93
+104
+249
+93
+104
+236
+82
+94
+241
+87
+99
+247
+93
+105
+217
+86
+94
+182
+96
+95
+153
+92
+87
+185
+127
+125
+218
+169
+165
+239
+199
+197
+254
+224
+222
+251
+233
+233
+253
+248
+245
+248
+250
+247
+247
+255
+253
+247
+255
+254
+245
+255
+252
+248
+254
+252
+253
+255
+252
+254
+253
+251
+252
+248
+245
+253
+250
+245
+254
+249
+245
+252
+247
+243
+252
+244
+241
+255
+245
+244
+255
+244
+244
+245
+233
+233
+234
+220
+219
+229
+215
+212
+222
+209
+203
+223
+213
+204
+239
+229
+219
+252
+245
+229
+255
+249
+231
+255
+252
+232
+255
+255
+239
+248
+253
+246
+232
+241
+238
+221
+227
+225
+69
+65
+54
+69
+65
+53
+67
+63
+52
+65
+61
+50
+63
+59
+48
+61
+57
+46
+60
+56
+45
+59
+55
+44
+56
+52
+43
+56
+52
+43
+55
+51
+42
+56
+52
+43
+58
+53
+47
+61
+56
+50
+63
+58
+52
+67
+60
+52
+71
+62
+53
+74
+66
+55
+78
+68
+56
+82
+70
+54
+84
+71
+54
+87
+71
+55
+89
+73
+60
+89
+74
+67
+87
+75
+75
+88
+80
+93
+98
+94
+121
+115
+117
+156
+133
+138
+194
+144
+153
+220
+152
+164
+240
+160
+171
+250
+170
+179
+254
+173
+181
+254
+175
+183
+255
+177
+185
+255
+179
+186
+255
+180
+187
+255
+181
+185
+255
+181
+185
+255
+175
+178
+249
+172
+172
+244
+163
+163
+235
+153
+151
+224
+142
+141
+211
+131
+128
+199
+120
+117
+188
+115
+109
+179
+107
+96
+162
+105
+93
+155
+99
+90
+145
+93
+87
+133
+86
+82
+119
+78
+75
+104
+69
+68
+86
+64
+64
+76
+56
+53
+60
+65
+60
+64
+75
+65
+66
+76
+64
+66
+81
+62
+66
+90
+69
+74
+112
+87
+93
+130
+99
+115
+152
+115
+149
+165
+122
+165
+175
+127
+167
+178
+123
+162
+184
+118
+154
+192
+112
+147
+194
+99
+131
+192
+84
+110
+193
+71
+94
+207
+76
+92
+207
+73
+82
+195
+61
+62
+183
+54
+48
+180
+58
+43
+178
+61
+41
+173
+61
+39
+175
+60
+41
+176
+59
+41
+178
+58
+41
+180
+59
+42
+183
+60
+44
+187
+60
+45
+192
+60
+45
+196
+60
+46
+196
+54
+42
+203
+56
+46
+211
+60
+49
+217
+63
+53
+223
+65
+56
+225
+62
+55
+224
+60
+51
+223
+58
+52
+220
+55
+49
+217
+52
+46
+216
+51
+45
+222
+57
+51
+230
+65
+59
+236
+69
+63
+233
+66
+60
+228
+61
+53
+227
+60
+52
+219
+52
+44
+216
+52
+43
+219
+55
+45
+212
+50
+39
+204
+44
+32
+214
+54
+42
+233
+71
+58
+245
+75
+62
+242
+64
+54
+239
+52
+45
+240
+45
+41
+246
+44
+42
+250
+44
+44
+252
+44
+44
+248
+42
+44
+240
+42
+41
+236
+47
+43
+232
+50
+46
+227
+53
+46
+220
+52
+43
+216
+49
+40
+213
+49
+39
+209
+51
+39
+205
+55
+40
+203
+58
+41
+205
+58
+40
+208
+58
+41
+210
+59
+42
+211
+58
+42
+212
+56
+43
+212
+56
+44
+209
+52
+43
+214
+60
+52
+213
+58
+53
+213
+60
+55
+229
+79
+78
+237
+89
+87
+217
+69
+69
+194
+51
+47
+192
+59
+44
+191
+60
+40
+192
+59
+42
+191
+58
+41
+193
+57
+41
+192
+56
+40
+192
+56
+42
+192
+56
+44
+198
+61
+51
+199
+65
+54
+207
+74
+65
+216
+85
+75
+210
+82
+71
+198
+71
+62
+192
+68
+58
+199
+71
+62
+214
+75
+68
+216
+73
+67
+221
+76
+73
+228
+83
+80
+229
+83
+84
+226
+80
+83
+226
+77
+83
+229
+78
+87
+242
+88
+100
+246
+90
+104
+253
+91
+112
+254
+90
+114
+252
+86
+110
+250
+82
+108
+251
+81
+108
+255
+81
+112
+248
+70
+106
+255
+79
+116
+255
+89
+123
+255
+90
+121
+255
+86
+113
+252
+84
+107
+254
+87
+107
+255
+92
+109
+250
+89
+104
+247
+91
+104
+248
+98
+109
+242
+98
+107
+231
+96
+103
+234
+105
+110
+229
+106
+109
+197
+94
+95
+160
+93
+87
+126
+77
+70
+155
+108
+102
+195
+151
+148
+223
+185
+182
+241
+211
+209
+244
+224
+223
+255
+245
+244
+249
+249
+247
+249
+255
+253
+247
+255
+255
+245
+255
+252
+248
+254
+252
+253
+255
+254
+255
+252
+253
+252
+248
+247
+252
+249
+244
+252
+249
+242
+250
+247
+242
+251
+246
+242
+255
+247
+244
+255
+246
+244
+249
+238
+236
+239
+228
+226
+230
+219
+215
+220
+209
+203
+221
+211
+201
+238
+228
+216
+253
+246
+228
+255
+251
+232
+255
+253
+231
+255
+255
+236
+248
+251
+242
+233
+239
+235
+224
+229
+225
+73
+69
+57
+72
+68
+56
+70
+66
+54
+68
+64
+52
+66
+62
+51
+64
+60
+49
+63
+59
+48
+62
+58
+47
+58
+54
+45
+57
+53
+44
+57
+53
+44
+57
+53
+44
+58
+53
+47
+60
+55
+49
+62
+57
+51
+64
+59
+53
+69
+62
+54
+73
+64
+55
+76
+68
+55
+79
+70
+53
+82
+69
+52
+85
+69
+53
+87
+71
+56
+87
+73
+62
+88
+77
+75
+88
+78
+87
+94
+90
+113
+112
+112
+150
+128
+134
+186
+140
+150
+212
+149
+161
+233
+157
+169
+245
+168
+176
+249
+169
+177
+249
+173
+179
+253
+176
+183
+255
+177
+183
+255
+178
+185
+255
+180
+184
+255
+180
+184
+255
+175
+177
+252
+171
+173
+248
+165
+167
+242
+159
+158
+234
+151
+150
+226
+140
+139
+215
+130
+129
+205
+125
+121
+197
+117
+109
+182
+112
+103
+170
+102
+96
+158
+95
+90
+144
+89
+88
+132
+81
+81
+117
+71
+71
+99
+65
+62
+81
+61
+53
+68
+72
+56
+66
+84
+61
+67
+96
+64
+69
+110
+67
+74
+128
+79
+85
+150
+93
+100
+170
+103
+120
+189
+108
+141
+201
+110
+153
+203
+111
+152
+201
+105
+143
+198
+97
+131
+199
+88
+120
+198
+73
+103
+196
+59
+85
+197
+51
+72
+216
+65
+80
+223
+69
+79
+208
+60
+60
+195
+56
+49
+194
+64
+50
+186
+65
+44
+175
+59
+36
+173
+54
+34
+173
+53
+36
+174
+53
+36
+179
+53
+38
+182
+55
+40
+188
+56
+43
+195
+59
+45
+200
+60
+47
+211
+64
+54
+215
+64
+55
+218
+64
+54
+220
+63
+54
+222
+61
+53
+222
+57
+51
+221
+54
+46
+219
+52
+44
+211
+46
+40
+210
+45
+39
+211
+46
+40
+216
+51
+45
+225
+58
+52
+227
+60
+52
+225
+56
+49
+220
+53
+45
+220
+53
+45
+208
+44
+34
+205
+41
+31
+217
+55
+44
+226
+66
+54
+220
+63
+48
+208
+52
+37
+203
+46
+31
+233
+70
+55
+243
+73
+60
+253
+72
+63
+252
+60
+55
+244
+45
+42
+241
+35
+37
+245
+39
+41
+251
+47
+50
+241
+45
+46
+235
+47
+46
+228
+50
+46
+222
+51
+44
+218
+49
+42
+215
+48
+42
+214
+47
+41
+211
+48
+39
+211
+55
+42
+210
+57
+43
+214
+58
+43
+216
+60
+45
+218
+62
+47
+219
+63
+48
+220
+64
+51
+220
+64
+51
+210
+54
+42
+230
+76
+66
+229
+74
+69
+206
+53
+48
+223
+71
+70
+243
+90
+92
+223
+73
+75
+213
+65
+63
+200
+60
+47
+196
+59
+43
+195
+58
+42
+195
+58
+42
+194
+58
+42
+194
+58
+42
+193
+57
+43
+190
+57
+42
+194
+60
+48
+194
+62
+50
+200
+70
+57
+207
+79
+66
+206
+80
+68
+198
+72
+60
+191
+67
+55
+193
+67
+55
+206
+72
+63
+209
+70
+63
+213
+74
+69
+219
+80
+75
+221
+82
+79
+217
+77
+76
+218
+75
+77
+220
+75
+80
+235
+88
+96
+243
+91
+103
+252
+97
+113
+255
+97
+117
+250
+88
+109
+245
+79
+103
+245
+77
+103
+253
+78
+107
+255
+76
+112
+255
+79
+116
+255
+83
+115
+255
+82
+110
+250
+84
+108
+252
+90
+111
+255
+99
+117
+255
+105
+120
+255
+102
+117
+250
+98
+111
+244
+98
+109
+236
+101
+108
+224
+103
+108
+212
+106
+106
+200
+106
+104
+177
+104
+97
+141
+94
+84
+104
+70
+60
+130
+93
+85
+172
+135
+129
+206
+171
+169
+229
+199
+197
+239
+218
+217
+255
+243
+243
+251
+247
+246
+249
+253
+252
+248
+255
+255
+245
+255
+254
+248
+254
+254
+255
+255
+255
+255
+251
+255
+254
+248
+248
+251
+250
+245
+250
+250
+242
+249
+248
+243
+253
+250
+245
+255
+251
+247
+255
+250
+247
+253
+243
+241
+247
+236
+232
+235
+224
+218
+223
+213
+204
+222
+212
+202
+237
+230
+214
+254
+247
+228
+255
+254
+232
+255
+254
+229
+255
+254
+233
+247
+249
+238
+234
+239
+232
+228
+231
+224
+78
+72
+58
+77
+71
+57
+76
+70
+56
+74
+68
+54
+72
+66
+54
+70
+64
+52
+68
+61
+51
+67
+60
+50
+63
+56
+48
+62
+55
+47
+61
+54
+46
+61
+54
+46
+61
+54
+48
+62
+55
+49
+64
+57
+51
+63
+58
+52
+67
+62
+56
+69
+65
+56
+75
+67
+56
+78
+69
+54
+81
+68
+51
+82
+69
+50
+86
+70
+54
+86
+72
+59
+90
+77
+71
+86
+77
+82
+91
+87
+104
+108
+107
+139
+126
+130
+177
+138
+147
+206
+146
+159
+227
+154
+166
+238
+166
+174
+247
+169
+175
+249
+173
+176
+253
+175
+179
+253
+176
+179
+255
+176
+180
+254
+176
+179
+255
+175
+179
+253
+171
+174
+251
+168
+171
+248
+164
+167
+244
+160
+162
+239
+154
+156
+233
+147
+149
+226
+138
+140
+217
+134
+133
+209
+131
+127
+201
+123
+117
+187
+109
+107
+172
+100
+101
+158
+95
+97
+146
+89
+91
+132
+82
+81
+115
+78
+72
+98
+87
+70
+89
+95
+67
+81
+109
+66
+76
+129
+69
+77
+152
+77
+84
+172
+85
+93
+188
+91
+98
+202
+90
+104
+214
+84
+112
+223
+83
+118
+222
+84
+117
+215
+80
+110
+208
+74
+99
+203
+67
+89
+198
+57
+74
+194
+47
+63
+211
+57
+69
+225
+68
+77
+228
+72
+75
+215
+63
+60
+205
+62
+54
+203
+71
+58
+194
+73
+52
+182
+63
+41
+183
+62
+43
+184
+61
+45
+186
+60
+45
+189
+62
+47
+195
+63
+48
+202
+66
+52
+208
+68
+55
+213
+69
+58
+217
+69
+57
+218
+66
+55
+219
+62
+53
+217
+59
+50
+217
+54
+45
+217
+53
+44
+218
+51
+43
+215
+51
+42
+212
+49
+42
+215
+52
+45
+218
+55
+46
+221
+57
+48
+223
+56
+48
+222
+55
+47
+221
+54
+46
+220
+53
+44
+214
+47
+38
+217
+53
+43
+215
+55
+43
+207
+50
+35
+205
+49
+34
+210
+57
+41
+213
+62
+45
+212
+59
+41
+216
+60
+45
+230
+68
+55
+248
+74
+65
+253
+68
+63
+249
+54
+52
+245
+42
+45
+246
+42
+45
+247
+47
+50
+247
+54
+55
+237
+53
+53
+226
+51
+48
+218
+49
+44
+215
+48
+42
+215
+47
+44
+217
+48
+45
+217
+48
+43
+227
+56
+49
+228
+57
+49
+226
+58
+49
+226
+59
+50
+224
+60
+48
+223
+61
+48
+220
+63
+48
+218
+62
+49
+209
+55
+43
+239
+87
+76
+248
+97
+90
+211
+59
+54
+209
+59
+58
+230
+80
+81
+220
+70
+72
+230
+80
+81
+207
+60
+52
+202
+58
+47
+198
+56
+44
+197
+57
+44
+196
+58
+45
+196
+60
+46
+195
+59
+45
+192
+59
+44
+190
+58
+45
+190
+60
+46
+195
+65
+51
+199
+72
+57
+199
+73
+59
+194
+68
+54
+190
+64
+50
+188
+62
+48
+201
+70
+60
+202
+69
+60
+206
+73
+66
+213
+80
+73
+215
+82
+77
+213
+78
+75
+211
+75
+75
+215
+76
+79
+233
+90
+96
+240
+94
+104
+252
+102
+114
+255
+104
+120
+252
+93
+113
+242
+80
+101
+243
+77
+101
+252
+79
+107
+255
+83
+117
+255
+82
+116
+254
+81
+111
+244
+82
+106
+243
+92
+111
+250
+103
+119
+253
+105
+119
+249
+101
+115
+253
+101
+116
+245
+94
+109
+239
+94
+107
+236
+106
+114
+221
+115
+117
+192
+107
+102
+168
+101
+92
+156
+110
+97
+127
+101
+86
+89
+71
+57
+110
+86
+74
+150
+123
+114
+190
+159
+156
+223
+193
+193
+238
+214
+214
+254
+238
+239
+254
+245
+246
+252
+252
+252
+249
+255
+255
+246
+255
+254
+249
+253
+254
+255
+255
+255
+255
+251
+255
+254
+248
+250
+253
+254
+248
+250
+253
+244
+250
+251
+245
+254
+253
+248
+255
+255
+250
+255
+253
+249
+255
+250
+244
+255
+246
+241
+242
+233
+226
+229
+221
+210
+225
+217
+204
+240
+233
+215
+255
+250
+228
+255
+255
+230
+255
+254
+229
+255
+254
+233
+246
+248
+234
+237
+240
+231
+232
+233
+225
+81
+75
+61
+80
+74
+60
+79
+73
+59
+77
+71
+57
+75
+69
+57
+73
+67
+55
+71
+64
+54
+71
+64
+54
+66
+59
+51
+65
+58
+50
+64
+57
+49
+63
+56
+48
+63
+56
+50
+63
+56
+50
+65
+58
+52
+64
+59
+53
+66
+63
+56
+69
+66
+57
+75
+69
+57
+77
+70
+54
+80
+69
+51
+82
+69
+50
+85
+70
+51
+85
+72
+55
+89
+76
+67
+85
+75
+76
+90
+83
+99
+105
+105
+133
+124
+129
+171
+137
+147
+200
+147
+158
+222
+154
+164
+235
+166
+172
+248
+169
+172
+251
+172
+173
+253
+173
+176
+255
+174
+177
+255
+174
+177
+254
+173
+176
+253
+173
+176
+253
+169
+172
+249
+167
+170
+247
+164
+168
+242
+162
+166
+240
+159
+163
+237
+154
+158
+232
+149
+153
+227
+146
+148
+222
+146
+146
+218
+137
+138
+205
+124
+128
+192
+115
+120
+178
+111
+117
+169
+109
+112
+157
+105
+103
+142
+106
+95
+125
+121
+95
+120
+130
+87
+106
+142
+80
+95
+163
+79
+92
+187
+83
+92
+205
+84
+93
+214
+80
+87
+218
+72
+83
+224
+65
+83
+228
+65
+84
+224
+69
+85
+217
+69
+81
+210
+69
+77
+204
+65
+70
+199
+59
+60
+198
+54
+54
+227
+74
+76
+229
+73
+74
+224
+66
+65
+211
+56
+52
+206
+57
+50
+206
+65
+55
+200
+68
+53
+190
+63
+46
+195
+69
+54
+195
+69
+54
+197
+70
+55
+201
+69
+56
+206
+70
+56
+209
+71
+58
+215
+71
+60
+218
+71
+61
+214
+62
+51
+213
+59
+49
+214
+56
+47
+213
+52
+44
+214
+51
+42
+216
+52
+43
+219
+52
+44
+218
+54
+45
+219
+56
+49
+221
+60
+52
+224
+61
+52
+223
+60
+51
+221
+57
+48
+220
+53
+45
+220
+53
+44
+219
+55
+45
+210
+46
+36
+221
+59
+48
+218
+61
+46
+205
+49
+34
+198
+45
+29
+206
+55
+38
+210
+61
+41
+205
+58
+38
+204
+57
+39
+212
+56
+41
+226
+58
+47
+243
+61
+57
+255
+64
+64
+255
+60
+62
+254
+51
+55
+243
+44
+47
+234
+44
+46
+225
+43
+42
+216
+42
+41
+212
+43
+40
+215
+47
+44
+222
+52
+52
+228
+56
+56
+233
+57
+57
+239
+55
+53
+240
+55
+52
+238
+55
+51
+232
+55
+49
+227
+55
+45
+220
+54
+42
+215
+53
+40
+209
+53
+38
+205
+53
+40
+231
+80
+69
+255
+109
+99
+219
+72
+65
+200
+52
+50
+215
+67
+67
+211
+62
+66
+234
+86
+86
+217
+65
+60
+210
+62
+52
+203
+56
+46
+198
+54
+43
+198
+58
+45
+198
+60
+47
+195
+62
+47
+193
+61
+46
+187
+57
+43
+187
+60
+45
+190
+63
+48
+192
+65
+50
+191
+65
+50
+189
+64
+46
+188
+61
+46
+187
+60
+45
+195
+67
+54
+196
+68
+57
+200
+72
+63
+208
+80
+71
+211
+82
+76
+208
+79
+73
+210
+78
+76
+213
+79
+78
+233
+94
+99
+238
+97
+103
+251
+105
+116
+255
+110
+122
+255
+100
+117
+245
+86
+106
+245
+81
+105
+254
+86
+111
+255
+86
+115
+255
+86
+113
+245
+87
+110
+238
+93
+110
+241
+109
+120
+247
+117
+127
+240
+106
+115
+227
+87
+98
+243
+95
+109
+245
+94
+109
+241
+96
+111
+241
+114
+125
+238
+135
+138
+206
+128
+124
+169
+117
+104
+151
+122
+106
+117
+106
+88
+82
+77
+58
+97
+85
+71
+132
+112
+103
+177
+149
+146
+221
+191
+191
+239
+213
+216
+253
+233
+235
+254
+244
+245
+252
+250
+251
+250
+254
+255
+248
+254
+254
+252
+253
+255
+255
+254
+255
+255
+250
+255
+255
+249
+253
+255
+255
+251
+248
+254
+244
+250
+253
+246
+255
+255
+250
+255
+255
+250
+255
+255
+248
+255
+252
+246
+255
+253
+245
+250
+241
+232
+238
+230
+219
+234
+226
+213
+245
+240
+221
+255
+251
+229
+255
+254
+229
+255
+254
+226
+255
+255
+231
+249
+250
+234
+242
+244
+231
+238
+240
+229
+83
+77
+61
+82
+76
+60
+81
+75
+61
+79
+73
+59
+77
+71
+57
+75
+69
+55
+74
+68
+56
+73
+67
+55
+69
+62
+52
+68
+61
+51
+66
+59
+51
+65
+58
+50
+64
+57
+51
+65
+58
+52
+65
+57
+54
+64
+59
+55
+65
+64
+59
+67
+67
+59
+73
+69
+57
+77
+71
+55
+79
+71
+50
+82
+70
+48
+85
+70
+49
+85
+72
+53
+87
+75
+63
+82
+72
+70
+88
+82
+94
+106
+103
+130
+125
+129
+167
+137
+147
+196
+146
+158
+218
+152
+162
+231
+164
+167
+246
+166
+167
+250
+171
+169
+252
+171
+172
+254
+172
+173
+255
+173
+174
+254
+172
+174
+251
+172
+174
+251
+168
+172
+246
+166
+170
+244
+164
+168
+241
+163
+167
+240
+161
+168
+238
+160
+167
+237
+157
+164
+232
+155
+162
+230
+153
+158
+226
+146
+154
+219
+139
+147
+210
+134
+143
+202
+131
+141
+194
+132
+136
+183
+131
+129
+168
+136
+121
+154
+143
+109
+136
+154
+99
+122
+169
+88
+105
+187
+81
+95
+207
+77
+89
+224
+73
+82
+232
+65
+73
+232
+62
+65
+228
+62
+62
+222
+65
+60
+216
+69
+61
+210
+74
+60
+202
+75
+60
+194
+71
+53
+191
+68
+50
+195
+65
+49
+226
+86
+73
+223
+72
+63
+217
+60
+55
+216
+54
+51
+218
+56
+53
+216
+59
+54
+210
+57
+52
+200
+56
+48
+192
+58
+46
+190
+60
+46
+191
+59
+46
+192
+58
+46
+194
+56
+43
+195
+55
+42
+198
+52
+39
+198
+50
+38
+206
+52
+42
+208
+51
+42
+209
+51
+40
+212
+51
+41
+214
+51
+42
+217
+53
+44
+221
+54
+46
+220
+56
+47
+222
+61
+51
+219
+61
+50
+220
+59
+49
+219
+56
+47
+219
+55
+45
+218
+54
+44
+216
+52
+42
+215
+51
+41
+213
+51
+38
+211
+51
+37
+208
+52
+37
+207
+54
+38
+210
+61
+41
+209
+62
+42
+202
+57
+36
+192
+50
+28
+200
+58
+38
+202
+52
+37
+213
+49
+39
+231
+53
+49
+250
+60
+60
+255
+61
+64
+255
+55
+61
+247
+51
+55
+234
+45
+49
+225
+45
+46
+217
+45
+45
+215
+47
+46
+220
+52
+51
+227
+57
+58
+233
+59
+61
+240
+57
+61
+246
+50
+54
+248
+48
+51
+244
+48
+49
+237
+49
+47
+228
+49
+42
+222
+50
+40
+213
+49
+37
+207
+51
+36
+201
+49
+36
+209
+61
+49
+250
+106
+95
+228
+84
+76
+200
+57
+53
+208
+64
+63
+203
+58
+61
+228
+82
+83
+228
+74
+72
+220
+67
+61
+209
+58
+51
+201
+54
+46
+198
+56
+46
+197
+59
+48
+194
+60
+48
+191
+61
+47
+186
+59
+42
+188
+63
+45
+189
+64
+46
+188
+63
+45
+186
+59
+42
+186
+59
+40
+189
+59
+43
+190
+60
+44
+188
+62
+48
+188
+62
+50
+192
+68
+56
+200
+76
+66
+204
+80
+72
+202
+78
+70
+204
+76
+73
+208
+78
+76
+232
+97
+101
+236
+97
+102
+248
+104
+114
+255
+111
+123
+255
+104
+120
+247
+90
+107
+247
+85
+106
+253
+91
+114
+249
+91
+114
+244
+95
+115
+233
+98
+113
+227
+107
+116
+234
+125
+128
+242
+133
+136
+234
+118
+121
+222
+92
+100
+246
+101
+116
+255
+107
+124
+247
+98
+117
+238
+106
+119
+249
+144
+149
+239
+161
+159
+196
+148
+138
+163
+140
+124
+106
+105
+85
+73
+81
+60
+88
+85
+70
+117
+103
+92
+165
+140
+136
+220
+190
+190
+242
+213
+217
+249
+227
+230
+255
+242
+245
+255
+249
+251
+252
+253
+255
+249
+253
+255
+252
+253
+255
+255
+253
+255
+255
+251
+255
+255
+248
+253
+254
+255
+251
+247
+253
+243
+247
+253
+243
+253
+255
+247
+255
+255
+248
+255
+253
+246
+255
+251
+245
+255
+255
+246
+255
+250
+240
+246
+240
+226
+242
+236
+220
+251
+246
+226
+255
+252
+230
+254
+252
+227
+254
+253
+225
+255
+255
+230
+253
+254
+236
+248
+249
+235
+246
+246
+234
+86
+79
+63
+84
+78
+62
+83
+75
+62
+80
+74
+60
+79
+71
+58
+76
+70
+56
+76
+68
+55
+74
+68
+56
+72
+64
+53
+70
+64
+52
+69
+60
+51
+66
+59
+49
+66
+57
+50
+65
+58
+50
+67
+58
+51
+65
+60
+54
+67
+64
+57
+68
+68
+58
+74
+70
+58
+77
+71
+55
+79
+71
+50
+81
+70
+48
+84
+72
+50
+85
+72
+53
+85
+73
+61
+81
+71
+69
+87
+81
+93
+106
+104
+128
+126
+130
+168
+140
+148
+197
+147
+157
+216
+153
+162
+231
+159
+160
+242
+164
+160
+247
+166
+163
+250
+169
+166
+253
+169
+169
+255
+169
+171
+254
+169
+172
+253
+169
+172
+251
+165
+171
+245
+163
+170
+242
+163
+167
+238
+162
+167
+235
+164
+169
+237
+165
+170
+238
+165
+168
+237
+163
+167
+238
+152
+161
+230
+150
+161
+227
+148
+159
+221
+148
+159
+213
+149
+155
+203
+152
+150
+190
+158
+141
+175
+168
+132
+160
+164
+102
+127
+178
+93
+114
+193
+82
+99
+206
+74
+88
+218
+66
+78
+228
+62
+72
+235
+60
+67
+235
+61
+62
+231
+64
+58
+223
+67
+55
+216
+70
+55
+209
+74
+55
+199
+74
+52
+191
+71
+47
+189
+67
+44
+193
+64
+45
+225
+83
+69
+221
+68
+60
+221
+57
+55
+230
+62
+61
+236
+68
+67
+230
+64
+64
+219
+56
+57
+207
+53
+51
+205
+67
+57
+200
+68
+56
+201
+67
+56
+199
+65
+53
+198
+62
+50
+195
+57
+44
+194
+54
+41
+194
+50
+39
+198
+50
+40
+203
+51
+40
+206
+52
+42
+211
+53
+44
+216
+53
+46
+217
+52
+46
+219
+52
+46
+219
+52
+44
+228
+66
+55
+222
+60
+49
+218
+54
+44
+218
+54
+44
+223
+57
+45
+223
+57
+45
+219
+53
+41
+213
+49
+37
+216
+56
+40
+206
+49
+32
+202
+49
+33
+208
+57
+40
+206
+56
+39
+199
+52
+34
+202
+55
+37
+212
+67
+48
+200
+55
+38
+206
+56
+42
+215
+54
+44
+222
+53
+46
+230
+51
+47
+238
+53
+51
+246
+58
+57
+251
+63
+62
+255
+76
+75
+250
+72
+70
+242
+66
+66
+236
+62
+61
+234
+60
+61
+231
+55
+58
+229
+50
+54
+230
+44
+49
+244
+43
+49
+248
+41
+47
+244
+44
+46
+239
+47
+46
+232
+49
+43
+224
+52
+42
+217
+53
+41
+211
+55
+40
+198
+48
+33
+192
+46
+31
+244
+100
+89
+235
+93
+83
+207
+64
+58
+212
+68
+67
+203
+59
+59
+223
+77
+77
+234
+82
+81
+224
+72
+69
+211
+59
+54
+201
+54
+47
+198
+56
+46
+198
+57
+47
+195
+59
+45
+190
+58
+43
+190
+60
+44
+193
+64
+45
+192
+65
+46
+187
+60
+41
+183
+56
+37
+184
+57
+38
+189
+60
+41
+190
+63
+46
+181
+55
+41
+179
+55
+43
+184
+62
+49
+193
+71
+58
+197
+75
+64
+197
+73
+65
+200
+73
+66
+203
+74
+69
+229
+97
+95
+230
+94
+96
+241
+100
+106
+254
+110
+119
+254
+107
+117
+243
+93
+105
+240
+88
+101
+246
+94
+109
+248
+97
+116
+241
+100
+116
+229
+104
+112
+223
+110
+114
+233
+127
+127
+249
+141
+139
+247
+131
+132
+239
+110
+115
+253
+112
+121
+255
+120
+134
+245
+97
+113
+223
+88
+102
+246
+136
+145
+255
+180
+180
+211
+173
+162
+164
+153
+135
+96
+104
+80
+69
+81
+57
+82
+84
+63
+107
+97
+85
+156
+136
+129
+220
+192
+191
+244
+215
+217
+246
+224
+227
+255
+241
+244
+255
+248
+251
+253
+253
+255
+251
+252
+255
+252
+253
+255
+255
+253
+255
+255
+252
+255
+254
+249
+253
+250
+255
+249
+242
+254
+240
+242
+252
+241
+249
+255
+244
+253
+255
+247
+250
+252
+241
+254
+251
+242
+255
+255
+244
+255
+255
+243
+252
+246
+232
+248
+242
+226
+254
+249
+229
+255
+253
+231
+253
+251
+226
+253
+252
+224
+255
+255
+233
+255
+255
+241
+252
+252
+240
+251
+251
+239
+88
+79
+64
+87
+80
+64
+87
+78
+63
+85
+78
+62
+84
+75
+60
+82
+75
+59
+82
+73
+58
+80
+72
+59
+77
+67
+55
+75
+67
+54
+75
+65
+53
+72
+64
+51
+72
+62
+50
+71
+63
+50
+72
+62
+50
+70
+64
+52
+71
+67
+58
+71
+69
+57
+74
+71
+56
+78
+73
+54
+82
+74
+53
+85
+74
+52
+85
+74
+52
+86
+75
+57
+88
+78
+68
+85
+76
+77
+90
+84
+98
+107
+104
+131
+123
+126
+167
+137
+143
+195
+145
+153
+215
+152
+159
+231
+166
+162
+246
+167
+161
+249
+165
+160
+252
+164
+161
+252
+162
+163
+255
+163
+167
+255
+164
+170
+255
+164
+173
+252
+161
+170
+245
+161
+169
+241
+161
+168
+236
+164
+169
+237
+167
+170
+239
+172
+170
+243
+174
+170
+246
+171
+170
+246
+161
+168
+246
+156
+166
+238
+149
+160
+222
+152
+159
+211
+166
+164
+203
+180
+160
+188
+180
+135
+155
+179
+105
+120
+186
+78
+93
+205
+70
+84
+219
+65
+77
+227
+61
+73
+228
+61
+71
+227
+62
+69
+223
+64
+69
+223
+64
+68
+226
+61
+65
+221
+61
+61
+219
+70
+66
+200
+59
+52
+202
+68
+59
+202
+69
+60
+186
+49
+41
+219
+74
+69
+230
+75
+73
+233
+67
+69
+235
+62
+66
+232
+59
+63
+230
+60
+63
+225
+61
+62
+219
+59
+59
+212
+60
+57
+207
+66
+59
+200
+63
+55
+202
+68
+59
+209
+77
+65
+205
+75
+62
+191
+61
+48
+184
+54
+41
+189
+57
+44
+191
+55
+43
+195
+54
+44
+200
+53
+45
+203
+50
+42
+209
+47
+42
+212
+47
+43
+219
+50
+47
+224
+53
+46
+231
+65
+53
+224
+56
+43
+219
+49
+36
+222
+50
+38
+230
+57
+43
+231
+59
+45
+225
+55
+38
+215
+50
+31
+209
+50
+31
+206
+51
+31
+203
+52
+33
+201
+51
+34
+201
+51
+34
+203
+51
+37
+206
+53
+39
+207
+53
+41
+202
+48
+38
+207
+50
+41
+209
+53
+41
+210
+54
+42
+210
+52
+40
+213
+51
+38
+215
+51
+39
+220
+52
+41
+224
+50
+41
+230
+51
+46
+235
+53
+50
+235
+51
+51
+233
+47
+50
+231
+45
+50
+232
+45
+52
+237
+46
+53
+246
+45
+51
+246
+43
+47
+239
+43
+44
+236
+47
+45
+234
+53
+46
+227
+57
+44
+217
+55
+40
+208
+52
+37
+195
+45
+28
+196
+51
+34
+231
+88
+72
+233
+89
+78
+203
+59
+51
+223
+78
+73
+197
+52
+49
+218
+72
+72
+225
+79
+80
+220
+74
+74
+212
+67
+64
+204
+59
+54
+200
+56
+48
+198
+56
+44
+199
+57
+43
+200
+60
+43
+197
+60
+42
+194
+59
+40
+190
+57
+38
+188
+59
+40
+187
+60
+41
+186
+61
+41
+186
+61
+43
+183
+60
+44
+180
+56
+44
+181
+59
+48
+185
+61
+49
+187
+63
+51
+187
+63
+51
+190
+64
+52
+192
+64
+53
+196
+65
+55
+239
+106
+97
+245
+112
+105
+234
+99
+95
+244
+109
+106
+251
+113
+113
+236
+97
+100
+244
+103
+109
+255
+112
+121
+255
+107
+122
+251
+104
+120
+234
+103
+111
+226
+101
+105
+229
+103
+106
+237
+109
+110
+243
+110
+111
+245
+109
+111
+255
+119
+123
+255
+126
+133
+241
+95
+108
+241
+105
+119
+214
+103
+112
+248
+174
+175
+189
+167
+154
+133
+141
+117
+97
+112
+81
+74
+89
+58
+77
+81
+56
+115
+110
+90
+165
+149
+136
+205
+182
+176
+237
+213
+211
+255
+238
+240
+255
+244
+245
+255
+245
+249
+252
+247
+251
+251
+251
+253
+253
+254
+255
+254
+255
+255
+255
+254
+255
+251
+255
+254
+239
+255
+243
+229
+252
+232
+231
+249
+233
+240
+254
+237
+248
+255
+245
+252
+255
+244
+253
+255
+242
+255
+253
+240
+255
+253
+241
+255
+251
+238
+255
+250
+234
+255
+250
+230
+254
+249
+227
+252
+250
+225
+252
+250
+225
+251
+250
+229
+253
+253
+241
+255
+255
+250
+255
+255
+250
+89
+80
+65
+88
+79
+64
+88
+79
+64
+86
+77
+62
+85
+76
+61
+84
+75
+60
+83
+74
+59
+82
+73
+58
+78
+69
+54
+77
+68
+53
+76
+67
+52
+75
+66
+51
+74
+65
+50
+74
+65
+50
+74
+65
+50
+73
+65
+52
+71
+67
+56
+72
+68
+57
+76
+70
+56
+79
+72
+54
+82
+74
+53
+83
+75
+52
+86
+75
+55
+84
+75
+58
+88
+78
+69
+85
+76
+77
+89
+85
+99
+107
+104
+131
+123
+125
+166
+134
+140
+192
+141
+149
+211
+150
+154
+225
+161
+156
+236
+163
+155
+241
+161
+157
+244
+161
+158
+249
+160
+161
+253
+160
+165
+255
+162
+170
+255
+161
+172
+251
+160
+172
+244
+160
+171
+237
+158
+167
+232
+161
+166
+232
+164
+164
+234
+166
+164
+237
+166
+162
+238
+163
+160
+237
+163
+166
+243
+160
+164
+235
+160
+160
+220
+165
+155
+205
+177
+153
+189
+188
+143
+166
+189
+115
+130
+191
+87
+98
+204
+70
+77
+220
+63
+70
+230
+59
+67
+233
+58
+65
+230
+59
+67
+225
+62
+67
+219
+64
+68
+218
+65
+70
+224
+60
+67
+218
+57
+63
+218
+65
+68
+203
+59
+59
+204
+66
+63
+202
+64
+61
+193
+51
+49
+229
+79
+80
+230
+67
+70
+232
+63
+68
+234
+59
+66
+231
+56
+63
+226
+56
+59
+219
+56
+57
+213
+58
+56
+207
+59
+55
+212
+69
+63
+198
+61
+53
+197
+60
+52
+204
+71
+62
+204
+76
+65
+193
+67
+53
+184
+58
+44
+183
+57
+43
+185
+55
+42
+191
+55
+43
+198
+54
+45
+203
+52
+45
+209
+50
+46
+216
+51
+47
+225
+53
+51
+228
+56
+52
+229
+61
+50
+226
+58
+45
+225
+53
+41
+225
+52
+38
+228
+52
+39
+226
+53
+39
+221
+51
+34
+213
+50
+31
+211
+56
+36
+205
+56
+34
+201
+56
+37
+200
+58
+38
+204
+58
+43
+206
+58
+44
+207
+55
+44
+208
+51
+42
+213
+51
+46
+214
+53
+45
+211
+55
+43
+207
+55
+41
+201
+54
+38
+199
+52
+34
+203
+52
+33
+207
+52
+34
+216
+50
+36
+222
+50
+38
+227
+48
+43
+230
+46
+44
+230
+44
+45
+230
+44
+47
+230
+45
+50
+232
+46
+51
+236
+43
+46
+237
+44
+45
+236
+48
+46
+232
+50
+46
+224
+52
+42
+219
+53
+39
+213
+56
+39
+210
+57
+39
+213
+63
+46
+187
+42
+25
+214
+68
+53
+208
+62
+49
+217
+70
+62
+235
+86
+80
+218
+66
+63
+216
+66
+65
+231
+85
+86
+226
+82
+82
+220
+75
+72
+212
+67
+62
+205
+61
+53
+201
+57
+46
+200
+57
+43
+199
+56
+40
+200
+59
+42
+196
+59
+40
+191
+58
+39
+189
+60
+41
+189
+62
+43
+186
+63
+45
+185
+64
+47
+182
+62
+46
+178
+58
+44
+180
+59
+48
+183
+61
+48
+184
+62
+49
+186
+63
+48
+189
+63
+49
+193
+66
+51
+197
+67
+53
+235
+105
+92
+242
+109
+100
+231
+98
+91
+240
+107
+102
+245
+111
+108
+232
+98
+97
+241
+107
+108
+254
+115
+120
+255
+111
+126
+255
+110
+124
+242
+107
+114
+228
+97
+102
+228
+92
+96
+239
+99
+102
+253
+110
+112
+255
+119
+120
+253
+117
+119
+255
+121
+126
+235
+89
+100
+237
+99
+112
+215
+99
+110
+242
+168
+169
+178
+162
+147
+118
+134
+107
+94
+114
+79
+78
+95
+59
+83
+90
+59
+117
+115
+92
+169
+157
+141
+214
+196
+184
+246
+225
+220
+255
+245
+241
+255
+248
+248
+255
+248
+249
+253
+249
+250
+251
+251
+251
+250
+254
+253
+251
+255
+254
+250
+254
+255
+246
+255
+250
+237
+255
+242
+227
+255
+232
+227
+251
+229
+235
+254
+234
+244
+255
+240
+249
+255
+241
+252
+255
+241
+255
+255
+240
+255
+253
+239
+255
+253
+237
+255
+251
+233
+254
+247
+229
+249
+244
+224
+248
+243
+221
+250
+245
+223
+250
+247
+228
+249
+249
+239
+251
+252
+246
+254
+253
+249
+92
+80
+66
+91
+79
+65
+91
+79
+65
+89
+77
+63
+88
+76
+62
+87
+75
+61
+86
+74
+60
+86
+74
+60
+83
+71
+57
+82
+70
+56
+81
+69
+55
+79
+67
+53
+79
+67
+53
+79
+67
+53
+79
+67
+53
+77
+67
+55
+74
+67
+57
+74
+70
+59
+77
+71
+57
+80
+73
+55
+83
+75
+54
+86
+75
+53
+86
+75
+55
+84
+75
+58
+87
+77
+67
+86
+77
+78
+90
+87
+98
+107
+105
+129
+121
+123
+161
+133
+137
+185
+139
+145
+203
+146
+150
+214
+153
+152
+222
+155
+151
+227
+155
+152
+233
+155
+156
+238
+157
+159
+244
+158
+163
+247
+160
+167
+248
+160
+169
+244
+160
+170
+239
+157
+168
+232
+155
+165
+227
+156
+162
+224
+156
+160
+224
+157
+158
+225
+156
+154
+227
+155
+153
+226
+153
+154
+221
+158
+152
+214
+168
+147
+204
+178
+140
+189
+191
+131
+169
+198
+115
+145
+197
+91
+111
+194
+70
+81
+209
+68
+76
+218
+65
+68
+223
+63
+65
+225
+62
+63
+225
+62
+65
+225
+62
+67
+223
+62
+68
+223
+62
+70
+224
+60
+67
+215
+56
+61
+213
+63
+65
+207
+65
+64
+202
+67
+63
+195
+60
+56
+196
+57
+54
+233
+87
+87
+224
+66
+67
+228
+62
+66
+232
+59
+63
+227
+57
+60
+220
+54
+56
+214
+54
+54
+209
+57
+54
+204
+59
+54
+213
+72
+65
+196
+59
+49
+190
+53
+43
+197
+65
+53
+205
+75
+62
+198
+72
+58
+187
+61
+47
+183
+56
+41
+186
+54
+41
+191
+55
+41
+199
+55
+44
+207
+54
+46
+215
+53
+48
+222
+55
+49
+230
+57
+53
+233
+61
+57
+217
+50
+42
+218
+51
+42
+221
+53
+42
+223
+52
+42
+223
+52
+42
+222
+54
+41
+220
+57
+42
+217
+62
+44
+198
+51
+33
+192
+51
+31
+187
+52
+33
+186
+53
+34
+191
+55
+41
+191
+55
+41
+191
+50
+40
+193
+44
+37
+227
+64
+59
+229
+62
+56
+222
+61
+51
+213
+60
+46
+204
+57
+41
+200
+55
+36
+200
+55
+34
+204
+55
+35
+210
+55
+37
+213
+51
+36
+215
+47
+38
+217
+46
+39
+219
+46
+42
+220
+46
+45
+219
+47
+47
+220
+46
+47
+219
+44
+41
+223
+48
+43
+224
+53
+45
+220
+53
+44
+213
+51
+38
+208
+52
+37
+208
+57
+38
+209
+62
+42
+212
+65
+47
+194
+49
+32
+231
+83
+69
+210
+59
+48
+218
+65
+59
+222
+67
+63
+232
+74
+73
+240
+84
+85
+237
+85
+84
+231
+83
+81
+227
+79
+77
+221
+74
+67
+214
+67
+59
+207
+60
+50
+202
+56
+43
+197
+54
+38
+196
+55
+38
+192
+55
+37
+188
+55
+38
+185
+58
+39
+185
+60
+42
+183
+62
+45
+181
+61
+44
+178
+61
+44
+176
+58
+44
+177
+59
+47
+180
+60
+46
+181
+61
+47
+183
+61
+46
+185
+63
+48
+190
+67
+52
+195
+69
+55
+220
+92
+81
+234
+103
+93
+228
+97
+89
+240
+108
+103
+246
+112
+109
+231
+97
+96
+236
+102
+103
+245
+106
+113
+228
+80
+94
+240
+94
+107
+240
+106
+113
+235
+104
+109
+235
+99
+103
+242
+102
+105
+254
+111
+113
+255
+117
+119
+253
+114
+117
+252
+111
+117
+231
+81
+93
+232
+90
+104
+217
+97
+109
+237
+158
+161
+170
+152
+138
+108
+122
+96
+89
+109
+72
+79
+100
+61
+87
+96
+65
+119
+119
+93
+173
+165
+146
+225
+209
+194
+255
+238
+230
+255
+248
+241
+255
+251
+247
+255
+252
+248
+252
+253
+248
+250
+255
+251
+251
+255
+253
+251
+255
+253
+249
+255
+251
+244
+255
+246
+233
+255
+237
+222
+252
+226
+220
+246
+221
+225
+247
+224
+233
+251
+229
+239
+251
+231
+245
+252
+234
+252
+255
+236
+253
+250
+233
+255
+250
+234
+255
+248
+230
+249
+242
+224
+241
+234
+216
+239
+232
+213
+243
+236
+217
+247
+242
+223
+251
+248
+239
+252
+252
+244
+255
+254
+249
+92
+80
+66
+92
+80
+66
+91
+79
+65
+90
+78
+64
+89
+77
+63
+89
+77
+63
+88
+76
+62
+88
+76
+62
+85
+73
+59
+84
+72
+58
+83
+71
+57
+82
+70
+56
+82
+70
+56
+82
+70
+56
+82
+70
+56
+80
+70
+58
+76
+69
+59
+75
+71
+60
+79
+73
+59
+82
+75
+57
+84
+76
+55
+87
+76
+54
+87
+76
+56
+87
+75
+59
+86
+76
+66
+85
+77
+75
+92
+86
+96
+106
+104
+126
+121
+121
+155
+130
+133
+178
+138
+141
+194
+143
+148
+206
+148
+148
+210
+149
+148
+214
+149
+149
+219
+150
+152
+227
+152
+155
+232
+152
+158
+236
+155
+161
+237
+155
+163
+235
+156
+165
+232
+152
+162
+223
+150
+159
+218
+149
+155
+213
+147
+153
+213
+147
+151
+214
+146
+147
+214
+145
+144
+210
+136
+131
+189
+148
+130
+182
+168
+124
+175
+184
+115
+162
+199
+102
+143
+207
+88
+120
+210
+72
+97
+208
+62
+75
+217
+68
+74
+218
+68
+67
+218
+69
+65
+220
+68
+65
+222
+66
+67
+225
+64
+69
+229
+62
+70
+229
+62
+70
+227
+63
+70
+214
+58
+62
+209
+63
+64
+209
+69
+68
+198
+65
+60
+186
+54
+49
+197
+62
+58
+234
+90
+89
+221
+65
+66
+227
+64
+67
+230
+61
+64
+227
+58
+61
+219
+56
+57
+211
+57
+55
+208
+60
+56
+206
+65
+56
+207
+69
+59
+194
+58
+46
+187
+50
+40
+192
+60
+47
+199
+69
+55
+196
+69
+54
+189
+62
+47
+184
+57
+40
+189
+56
+41
+194
+57
+41
+203
+56
+46
+210
+58
+47
+217
+56
+48
+224
+57
+49
+232
+59
+55
+235
+62
+56
+217
+48
+43
+218
+49
+42
+222
+51
+44
+224
+51
+44
+225
+52
+45
+225
+54
+46
+220
+56
+46
+217
+59
+47
+202
+54
+40
+199
+58
+41
+195
+59
+43
+192
+59
+44
+192
+58
+46
+195
+58
+48
+198
+59
+54
+208
+56
+53
+236
+67
+64
+237
+64
+60
+228
+64
+55
+217
+61
+49
+207
+57
+42
+199
+57
+37
+200
+58
+38
+201
+59
+37
+207
+60
+40
+208
+55
+39
+207
+49
+37
+209
+49
+37
+212
+49
+40
+214
+51
+44
+212
+49
+44
+209
+47
+42
+211
+50
+42
+211
+53
+44
+211
+55
+43
+208
+55
+41
+205
+53
+39
+202
+55
+37
+204
+59
+40
+204
+62
+42
+204
+59
+40
+207
+60
+44
+244
+94
+80
+224
+70
+60
+210
+51
+47
+210
+46
+44
+230
+64
+64
+251
+87
+88
+255
+117
+115
+255
+114
+111
+255
+106
+103
+246
+94
+89
+231
+80
+71
+213
+65
+55
+199
+53
+40
+189
+46
+32
+196
+56
+39
+192
+56
+40
+187
+56
+38
+184
+59
+41
+183
+60
+44
+181
+61
+45
+178
+61
+44
+176
+60
+45
+175
+59
+46
+173
+60
+46
+176
+60
+47
+176
+60
+45
+177
+59
+45
+182
+62
+46
+188
+66
+51
+192
+70
+55
+203
+77
+65
+223
+96
+87
+226
+97
+91
+244
+112
+108
+248
+116
+114
+230
+96
+97
+228
+93
+97
+232
+93
+100
+218
+70
+84
+234
+88
+101
+239
+105
+114
+236
+107
+111
+240
+104
+108
+249
+109
+112
+255
+113
+118
+255
+115
+118
+254
+111
+115
+248
+103
+110
+229
+74
+88
+229
+82
+98
+218
+93
+107
+230
+148
+150
+168
+145
+131
+106
+116
+89
+85
+106
+67
+83
+104
+63
+92
+103
+69
+121
+124
+95
+176
+170
+148
+231
+220
+202
+255
+245
+232
+255
+249
+240
+255
+249
+239
+252
+252
+242
+251
+254
+245
+250
+255
+249
+249
+255
+250
+246
+255
+248
+242
+252
+243
+234
+251
+235
+219
+247
+222
+208
+241
+210
+205
+234
+204
+209
+235
+206
+217
+237
+210
+223
+239
+213
+233
+243
+219
+242
+247
+225
+244
+246
+225
+249
+246
+227
+251
+246
+227
+244
+237
+219
+234
+227
+209
+231
+222
+205
+235
+226
+209
+240
+233
+217
+251
+244
+234
+251
+246
+240
+254
+249
+243
+92
+80
+66
+92
+80
+66
+91
+79
+65
+91
+79
+65
+90
+78
+64
+89
+77
+63
+89
+77
+63
+89
+77
+63
+87
+75
+61
+86
+74
+60
+85
+73
+59
+85
+73
+59
+84
+72
+58
+85
+73
+59
+85
+73
+59
+83
+73
+61
+79
+71
+60
+79
+73
+61
+81
+73
+60
+83
+76
+58
+85
+77
+56
+88
+77
+55
+89
+76
+57
+88
+76
+60
+85
+75
+65
+85
+75
+73
+92
+85
+93
+104
+101
+120
+117
+116
+147
+124
+126
+165
+133
+135
+183
+140
+143
+194
+141
+144
+195
+142
+145
+200
+142
+146
+207
+144
+148
+212
+146
+149
+220
+147
+151
+224
+148
+152
+223
+147
+154
+222
+149
+157
+220
+146
+155
+214
+142
+148
+206
+137
+144
+199
+133
+139
+197
+129
+135
+195
+126
+130
+193
+129
+125
+184
+128
+115
+159
+145
+110
+150
+170
+102
+143
+193
+92
+134
+214
+78
+118
+225
+65
+101
+229
+59
+85
+230
+59
+75
+226
+67
+71
+220
+71
+67
+216
+73
+65
+216
+73
+65
+220
+71
+67
+227
+66
+71
+236
+62
+72
+237
+61
+72
+230
+66
+73
+215
+62
+64
+208
+64
+63
+208
+73
+69
+191
+62
+56
+179
+50
+44
+200
+67
+60
+224
+85
+80
+220
+68
+67
+225
+65
+67
+227
+63
+64
+225
+62
+63
+218
+63
+61
+212
+64
+60
+209
+68
+59
+207
+70
+60
+199
+61
+50
+192
+56
+42
+189
+53
+41
+189
+57
+42
+191
+61
+45
+191
+61
+45
+189
+59
+43
+189
+60
+41
+194
+58
+42
+199
+59
+42
+207
+59
+47
+213
+59
+47
+219
+56
+47
+224
+56
+47
+231
+56
+51
+235
+57
+53
+231
+56
+53
+230
+52
+50
+229
+49
+48
+232
+50
+49
+233
+51
+50
+231
+52
+48
+222
+49
+43
+214
+47
+39
+205
+48
+39
+205
+54
+45
+201
+57
+48
+197
+54
+46
+194
+51
+45
+196
+51
+48
+206
+57
+59
+222
+62
+64
+235
+56
+59
+237
+55
+54
+228
+55
+49
+216
+53
+44
+204
+52
+38
+198
+53
+34
+196
+55
+35
+197
+58
+37
+203
+61
+41
+203
+56
+38
+204
+52
+38
+206
+53
+39
+212
+56
+44
+212
+58
+48
+211
+57
+47
+208
+56
+45
+208
+62
+49
+202
+59
+45
+197
+56
+39
+196
+55
+37
+198
+57
+39
+199
+60
+41
+199
+60
+41
+199
+58
+40
+205
+62
+45
+205
+58
+42
+216
+62
+50
+225
+67
+58
+212
+47
+45
+228
+58
+58
+224
+50
+52
+223
+53
+54
+215
+53
+51
+214
+59
+54
+222
+67
+62
+229
+75
+67
+234
+81
+73
+234
+83
+72
+232
+84
+72
+228
+85
+71
+203
+63
+48
+196
+63
+46
+190
+60
+44
+184
+61
+45
+183
+62
+45
+180
+63
+46
+176
+63
+47
+174
+62
+48
+172
+60
+46
+172
+60
+46
+172
+60
+46
+172
+61
+44
+173
+60
+44
+177
+61
+46
+183
+65
+51
+186
+68
+54
+198
+76
+65
+222
+98
+88
+226
+99
+93
+240
+110
+108
+244
+114
+114
+229
+96
+99
+229
+96
+101
+232
+95
+103
+251
+105
+118
+254
+109
+122
+241
+110
+118
+229
+100
+104
+234
+98
+102
+252
+109
+113
+255
+117
+123
+255
+118
+124
+254
+107
+115
+245
+95
+106
+232
+71
+87
+228
+75
+93
+221
+90
+104
+226
+137
+141
+172
+142
+131
+115
+121
+93
+93
+114
+73
+94
+117
+73
+104
+119
+80
+129
+136
+102
+179
+178
+150
+232
+226
+204
+255
+250
+233
+255
+253
+237
+254
+252
+237
+251
+255
+240
+249
+255
+242
+247
+255
+243
+244
+255
+241
+237
+251
+234
+227
+241
+224
+218
+237
+215
+201
+232
+200
+191
+227
+189
+187
+221
+186
+192
+222
+188
+200
+224
+192
+207
+226
+196
+217
+230
+204
+227
+235
+211
+235
+239
+216
+243
+242
+222
+247
+242
+223
+242
+235
+217
+234
+225
+210
+231
+219
+205
+233
+221
+207
+238
+226
+214
+241
+231
+222
+240
+231
+224
+242
+233
+226
+91
+79
+65
+91
+79
+65
+91
+79
+65
+90
+78
+64
+90
+78
+64
+89
+77
+63
+89
+77
+63
+89
+77
+63
+88
+76
+62
+88
+76
+62
+87
+75
+61
+86
+74
+60
+86
+74
+60
+87
+75
+61
+87
+75
+61
+88
+76
+62
+81
+73
+62
+81
+73
+62
+83
+75
+62
+85
+76
+59
+88
+77
+57
+88
+77
+55
+89
+76
+57
+88
+77
+59
+87
+75
+63
+85
+76
+71
+89
+83
+87
+101
+94
+110
+110
+106
+131
+117
+116
+150
+126
+125
+165
+131
+134
+177
+133
+138
+180
+132
+139
+185
+135
+141
+193
+137
+142
+200
+139
+143
+207
+140
+143
+212
+141
+144
+213
+141
+144
+211
+144
+148
+211
+139
+144
+202
+131
+136
+192
+126
+129
+184
+120
+123
+178
+114
+116
+173
+108
+110
+171
+111
+104
+156
+131
+105
+140
+148
+98
+123
+175
+88
+120
+203
+79
+113
+227
+65
+102
+239
+56
+87
+243
+53
+78
+244
+58
+72
+235
+66
+69
+225
+72
+66
+217
+76
+66
+215
+77
+66
+222
+73
+69
+229
+69
+71
+240
+63
+73
+240
+62
+74
+228
+67
+72
+215
+67
+67
+204
+65
+62
+206
+73
+68
+186
+59
+52
+176
+52
+44
+201
+73
+64
+213
+76
+70
+216
+66
+65
+218
+63
+61
+219
+59
+59
+218
+60
+59
+216
+64
+61
+212
+69
+63
+205
+71
+60
+203
+71
+58
+192
+56
+42
+193
+56
+40
+192
+56
+42
+190
+57
+40
+188
+57
+39
+187
+56
+38
+189
+58
+40
+192
+59
+40
+196
+59
+41
+202
+61
+44
+210
+60
+46
+215
+59
+46
+220
+56
+46
+225
+54
+46
+228
+54
+47
+232
+53
+48
+234
+50
+50
+234
+46
+47
+234
+43
+48
+240
+47
+50
+246
+51
+55
+247
+54
+55
+240
+52
+53
+230
+50
+49
+219
+46
+42
+216
+51
+47
+215
+53
+50
+210
+50
+50
+209
+46
+49
+211
+46
+52
+220
+53
+61
+235
+58
+68
+237
+48
+54
+238
+48
+50
+230
+51
+47
+220
+51
+44
+209
+53
+41
+202
+55
+39
+200
+57
+40
+201
+60
+40
+198
+56
+36
+201
+54
+36
+206
+54
+40
+211
+58
+44
+218
+62
+50
+221
+65
+53
+221
+65
+53
+216
+65
+54
+211
+71
+56
+201
+65
+49
+194
+59
+40
+192
+57
+38
+195
+60
+41
+198
+61
+42
+197
+60
+42
+197
+56
+38
+204
+58
+43
+205
+55
+41
+205
+48
+39
+230
+67
+60
+219
+50
+47
+239
+63
+65
+227
+47
+50
+218
+42
+44
+213
+49
+47
+210
+53
+46
+213
+56
+49
+214
+57
+48
+210
+56
+46
+204
+53
+42
+198
+50
+38
+192
+49
+35
+206
+69
+53
+198
+65
+50
+188
+61
+46
+181
+58
+42
+177
+57
+41
+175
+57
+43
+171
+58
+44
+170
+58
+44
+171
+59
+47
+171
+61
+48
+172
+62
+47
+172
+60
+46
+171
+60
+43
+173
+60
+44
+178
+62
+47
+181
+65
+50
+201
+83
+71
+224
+103
+94
+224
+99
+95
+234
+106
+105
+238
+110
+111
+230
+99
+104
+240
+106
+113
+246
+110
+120
+255
+110
+123
+255
+114
+126
+241
+112
+117
+231
+102
+107
+240
+103
+110
+255
+116
+122
+255
+117
+126
+255
+110
+117
+253
+103
+112
+244
+90
+102
+237
+72
+89
+229
+72
+91
+222
+87
+102
+220
+128
+131
+180
+146
+134
+133
+136
+107
+113
+134
+93
+111
+137
+90
+121
+138
+96
+141
+151
+114
+182
+183
+152
+223
+222
+194
+249
+244
+222
+252
+250
+229
+255
+255
+239
+250
+255
+238
+244
+255
+238
+238
+255
+234
+230
+249
+227
+220
+239
+217
+208
+227
+205
+197
+222
+193
+178
+213
+173
+172
+211
+167
+172
+209
+168
+178
+210
+171
+185
+213
+175
+190
+214
+178
+201
+218
+186
+210
+223
+193
+224
+230
+204
+232
+234
+212
+240
+237
+218
+241
+234
+216
+236
+227
+212
+233
+221
+209
+232
+218
+207
+234
+220
+211
+232
+219
+211
+230
+217
+211
+229
+216
+210
+91
+78
+62
+91
+78
+62
+91
+78
+62
+91
+78
+62
+90
+77
+61
+90
+77
+61
+90
+77
+61
+90
+77
+61
+89
+76
+60
+89
+76
+60
+88
+75
+59
+88
+75
+59
+88
+75
+59
+89
+76
+60
+89
+76
+60
+89
+77
+63
+83
+73
+63
+84
+74
+62
+85
+76
+61
+88
+76
+60
+89
+78
+58
+90
+77
+58
+90
+77
+58
+89
+78
+60
+89
+77
+63
+85
+76
+69
+88
+79
+82
+95
+87
+98
+100
+95
+115
+106
+102
+129
+115
+111
+144
+121
+121
+157
+122
+128
+164
+122
+130
+169
+127
+131
+178
+130
+133
+188
+133
+134
+198
+135
+136
+203
+136
+137
+204
+136
+137
+202
+136
+136
+200
+131
+131
+191
+125
+124
+181
+121
+118
+173
+115
+112
+167
+110
+107
+164
+105
+101
+160
+111
+95
+142
+132
+94
+117
+151
+85
+97
+179
+78
+96
+210
+74
+98
+236
+64
+90
+246
+54
+79
+251
+52
+71
+252
+58
+69
+240
+64
+64
+231
+70
+62
+222
+74
+64
+219
+75
+66
+224
+72
+69
+231
+68
+71
+240
+63
+73
+239
+63
+74
+221
+65
+68
+212
+70
+68
+200
+65
+61
+201
+72
+66
+180
+58
+47
+177
+55
+44
+206
+79
+70
+201
+66
+60
+206
+61
+56
+208
+54
+52
+207
+49
+48
+208
+53
+49
+211
+62
+56
+207
+69
+59
+200
+70
+57
+195
+68
+53
+190
+57
+40
+195
+58
+40
+194
+58
+42
+191
+58
+39
+189
+56
+37
+190
+57
+38
+191
+58
+39
+193
+58
+38
+196
+57
+38
+203
+58
+41
+211
+58
+44
+217
+57
+43
+221
+55
+43
+225
+53
+43
+228
+51
+43
+234
+51
+45
+235
+42
+43
+241
+42
+45
+248
+45
+51
+253
+46
+52
+255
+49
+55
+255
+50
+55
+255
+51
+56
+253
+53
+56
+250
+55
+59
+246
+55
+60
+243
+57
+62
+243
+56
+65
+246
+56
+68
+247
+55
+70
+252
+53
+72
+254
+53
+69
+246
+42
+53
+244
+45
+50
+237
+49
+50
+227
+52
+47
+217
+54
+45
+208
+56
+42
+206
+59
+43
+206
+61
+44
+203
+53
+38
+209
+56
+42
+217
+59
+47
+223
+61
+50
+226
+62
+52
+228
+61
+52
+229
+62
+53
+223
+65
+54
+217
+74
+60
+207
+71
+55
+201
+65
+49
+196
+60
+44
+194
+57
+41
+194
+57
+39
+198
+56
+42
+200
+57
+41
+201
+50
+39
+211
+57
+47
+225
+64
+56
+235
+68
+62
+222
+48
+47
+224
+46
+46
+235
+52
+54
+232
+54
+54
+216
+51
+45
+213
+55
+46
+215
+57
+48
+215
+58
+49
+213
+59
+49
+210
+59
+48
+205
+58
+48
+201
+59
+47
+214
+76
+63
+204
+70
+58
+191
+64
+49
+180
+57
+42
+176
+54
+41
+172
+54
+40
+171
+55
+42
+169
+56
+42
+172
+59
+45
+173
+61
+47
+174
+62
+48
+173
+61
+47
+171
+60
+43
+171
+60
+43
+173
+60
+46
+177
+61
+48
+192
+75
+65
+218
+100
+90
+222
+99
+94
+232
+107
+105
+240
+111
+115
+234
+105
+110
+245
+114
+122
+253
+117
+127
+241
+101
+112
+248
+111
+121
+245
+116
+121
+237
+111
+115
+248
+111
+118
+255
+120
+127
+255
+116
+125
+255
+101
+111
+252
+98
+110
+242
+84
+98
+241
+72
+91
+231
+68
+89
+222
+81
+97
+217
+118
+123
+189
+149
+137
+152
+153
+122
+129
+150
+107
+123
+151
+102
+130
+149
+104
+145
+157
+117
+172
+178
+142
+203
+204
+173
+224
+224
+196
+233
+236
+209
+236
+244
+220
+227
+241
+215
+215
+235
+207
+205
+228
+199
+196
+221
+191
+187
+212
+182
+180
+203
+174
+172
+199
+164
+156
+193
+149
+152
+194
+144
+156
+195
+148
+163
+201
+154
+170
+203
+158
+175
+203
+162
+184
+206
+168
+194
+211
+177
+206
+217
+187
+216
+222
+196
+228
+227
+206
+235
+229
+213
+236
+226
+214
+233
+219
+210
+229
+212
+205
+226
+209
+202
+223
+205
+201
+218
+203
+198
+213
+198
+193
+91
+78
+62
+90
+77
+61
+90
+77
+61
+90
+77
+61
+90
+77
+61
+90
+77
+61
+89
+76
+60
+89
+76
+60
+90
+77
+61
+89
+76
+60
+89
+76
+60
+88
+75
+59
+88
+75
+59
+89
+76
+60
+90
+77
+61
+90
+76
+63
+86
+74
+62
+86
+74
+62
+88
+76
+62
+89
+78
+60
+90
+77
+60
+90
+77
+58
+90
+77
+58
+90
+77
+60
+91
+79
+65
+87
+77
+68
+87
+77
+76
+92
+82
+90
+94
+88
+102
+98
+93
+113
+106
+102
+127
+113
+113
+141
+116
+119
+150
+116
+122
+156
+120
+125
+167
+125
+128
+181
+129
+129
+191
+132
+131
+197
+133
+132
+200
+135
+132
+199
+130
+125
+191
+127
+121
+183
+125
+116
+173
+122
+111
+167
+122
+109
+165
+120
+105
+162
+116
+101
+160
+124
+95
+141
+133
+79
+93
+152
+72
+75
+178
+69
+75
+211
+71
+82
+237
+66
+82
+246
+58
+73
+252
+54
+67
+253
+58
+64
+244
+62
+61
+235
+66
+59
+228
+69
+63
+225
+70
+65
+227
+69
+66
+230
+67
+70
+237
+63
+72
+234
+64
+73
+214
+64
+65
+209
+71
+68
+197
+65
+60
+195
+71
+63
+178
+57
+46
+179
+58
+47
+209
+85
+75
+195
+62
+53
+201
+56
+51
+199
+47
+44
+197
+42
+38
+200
+47
+42
+205
+58
+51
+204
+67
+57
+195
+67
+54
+188
+62
+47
+192
+59
+42
+196
+59
+41
+195
+60
+41
+193
+58
+39
+194
+59
+40
+195
+60
+41
+194
+59
+39
+195
+56
+37
+196
+53
+36
+202
+55
+37
+212
+56
+41
+217
+55
+42
+221
+53
+42
+225
+51
+42
+229
+51
+41
+234
+50
+42
+245
+51
+51
+254
+54
+56
+255
+56
+60
+255
+52
+58
+255
+45
+50
+255
+40
+45
+255
+40
+45
+254
+43
+49
+254
+45
+51
+246
+41
+48
+242
+38
+49
+247
+41
+54
+255
+44
+63
+255
+42
+65
+252
+32
+57
+244
+25
+47
+246
+34
+48
+243
+40
+46
+237
+44
+49
+230
+48
+47
+218
+49
+44
+212
+51
+43
+209
+53
+41
+208
+54
+42
+212
+54
+43
+221
+57
+48
+230
+61
+54
+235
+62
+55
+235
+58
+52
+232
+55
+49
+232
+53
+48
+226
+57
+50
+223
+72
+61
+215
+75
+60
+211
+69
+55
+203
+61
+47
+196
+54
+40
+194
+51
+37
+200
+54
+41
+207
+56
+45
+206
+52
+42
+212
+54
+45
+230
+67
+60
+223
+56
+50
+224
+50
+49
+210
+32
+32
+236
+56
+57
+229
+54
+51
+213
+49
+40
+210
+52
+41
+210
+52
+41
+207
+53
+41
+206
+54
+43
+202
+54
+42
+200
+53
+43
+197
+55
+43
+227
+89
+78
+216
+82
+70
+202
+72
+59
+190
+64
+50
+183
+59
+47
+181
+59
+46
+181
+60
+49
+181
+60
+49
+175
+57
+45
+177
+59
+47
+177
+61
+48
+177
+61
+46
+175
+59
+44
+173
+57
+42
+173
+57
+44
+174
+58
+45
+177
+60
+50
+208
+89
+81
+220
+98
+93
+236
+112
+112
+244
+118
+121
+238
+109
+114
+245
+113
+124
+248
+114
+125
+255
+121
+131
+255
+127
+137
+250
+124
+128
+235
+109
+113
+241
+104
+112
+255
+114
+124
+255
+115
+127
+255
+105
+116
+250
+92
+106
+243
+80
+97
+245
+71
+94
+232
+64
+87
+220
+78
+94
+215
+112
+116
+196
+152
+139
+164
+163
+132
+134
+156
+110
+126
+154
+103
+129
+151
+104
+141
+156
+113
+161
+169
+130
+180
+186
+150
+200
+205
+173
+213
+220
+189
+202
+215
+185
+191
+210
+178
+176
+202
+167
+166
+193
+158
+157
+187
+151
+154
+182
+144
+150
+178
+140
+145
+176
+134
+140
+180
+130
+138
+181
+127
+143
+186
+133
+152
+192
+140
+158
+195
+144
+162
+196
+146
+170
+197
+154
+179
+201
+162
+190
+206
+170
+201
+210
+181
+216
+218
+196
+227
+224
+205
+232
+222
+210
+230
+216
+207
+223
+205
+201
+218
+199
+195
+211
+193
+189
+206
+188
+184
+200
+182
+180
+90
+77
+61
+90
+77
+61
+90
+77
+61
+90
+77
+61
+90
+77
+61
+90
+77
+61
+90
+77
+61
+90
+77
+61
+88
+75
+59
+88
+75
+59
+88
+75
+59
+89
+76
+60
+89
+76
+60
+90
+77
+61
+90
+77
+61
+90
+77
+61
+90
+76
+63
+90
+76
+63
+90
+77
+61
+91
+78
+61
+93
+77
+61
+94
+79
+60
+92
+79
+60
+92
+79
+62
+89
+77
+61
+87
+77
+67
+87
+76
+72
+88
+78
+79
+90
+80
+88
+93
+85
+98
+96
+89
+105
+96
+93
+114
+103
+103
+129
+106
+109
+142
+112
+114
+155
+114
+116
+167
+120
+119
+179
+129
+126
+193
+137
+131
+201
+138
+131
+199
+137
+126
+192
+140
+126
+188
+138
+120
+178
+135
+112
+168
+139
+112
+167
+145
+114
+171
+139
+106
+163
+137
+90
+132
+143
+71
+82
+161
+66
+60
+179
+65
+64
+202
+68
+67
+220
+64
+67
+231
+58
+62
+243
+60
+62
+254
+68
+69
+246
+62
+60
+241
+62
+58
+236
+62
+61
+233
+65
+64
+233
+67
+67
+233
+68
+72
+233
+66
+73
+226
+67
+72
+207
+63
+62
+197
+64
+57
+190
+63
+54
+183
+62
+51
+176
+60
+47
+178
+60
+48
+192
+68
+56
+210
+77
+68
+199
+54
+49
+212
+59
+54
+205
+50
+46
+204
+51
+46
+214
+67
+59
+199
+63
+51
+181
+54
+39
+187
+62
+44
+186
+55
+37
+193
+58
+39
+195
+60
+41
+194
+59
+40
+192
+57
+37
+194
+57
+38
+197
+58
+39
+199
+58
+40
+203
+58
+39
+208
+57
+40
+214
+54
+40
+216
+50
+36
+218
+46
+34
+224
+47
+37
+236
+55
+46
+245
+61
+53
+246
+57
+51
+247
+54
+49
+248
+49
+46
+249
+43
+43
+250
+40
+41
+252
+38
+40
+252
+38
+40
+252
+38
+40
+251
+38
+42
+247
+33
+41
+248
+34
+46
+255
+39
+55
+255
+41
+62
+255
+33
+59
+255
+24
+54
+255
+23
+49
+254
+37
+54
+238
+34
+43
+229
+34
+42
+227
+43
+45
+221
+45
+45
+211
+42
+39
+209
+44
+40
+218
+50
+47
+226
+54
+50
+232
+54
+52
+238
+54
+54
+242
+54
+53
+242
+49
+50
+239
+46
+47
+238
+44
+44
+229
+47
+44
+220
+57
+50
+209
+58
+49
+210
+57
+49
+236
+83
+75
+187
+34
+26
+196
+43
+35
+223
+70
+62
+200
+46
+38
+205
+46
+40
+222
+60
+55
+232
+69
+64
+226
+58
+55
+216
+47
+42
+218
+46
+42
+226
+53
+49
+229
+60
+55
+223
+62
+52
+213
+60
+46
+207
+53
+41
+203
+51
+38
+204
+53
+42
+205
+59
+46
+203
+59
+48
+197
+56
+46
+236
+98
+88
+224
+90
+79
+200
+67
+58
+185
+54
+44
+186
+58
+47
+184
+56
+45
+177
+51
+39
+180
+54
+42
+176
+48
+37
+176
+50
+38
+174
+50
+38
+175
+52
+37
+176
+54
+39
+178
+58
+42
+180
+60
+46
+179
+61
+49
+176
+58
+48
+186
+67
+59
+214
+92
+87
+236
+112
+112
+241
+115
+118
+246
+120
+124
+251
+121
+131
+245
+113
+124
+255
+122
+132
+253
+119
+128
+242
+117
+123
+244
+118
+122
+253
+116
+124
+255
+114
+124
+255
+107
+120
+255
+100
+115
+255
+94
+110
+241
+74
+92
+245
+69
+92
+239
+70
+91
+217
+70
+86
+208
+103
+107
+190
+144
+128
+158
+155
+122
+134
+156
+109
+125
+153
+102
+126
+148
+99
+135
+151
+106
+148
+159
+119
+158
+166
+129
+160
+168
+131
+156
+168
+132
+146
+163
+127
+138
+163
+124
+128
+159
+118
+122
+154
+113
+121
+154
+111
+124
+157
+114
+129
+160
+118
+131
+164
+117
+132
+172
+119
+134
+177
+121
+140
+183
+127
+147
+188
+132
+149
+190
+134
+152
+189
+135
+157
+189
+140
+162
+189
+144
+167
+188
+147
+175
+189
+154
+189
+195
+167
+206
+205
+185
+220
+212
+199
+224
+211
+202
+218
+200
+196
+211
+192
+188
+203
+185
+183
+192
+177
+174
+184
+168
+168
+90
+77
+61
+90
+77
+61
+90
+77
+61
+90
+77
+61
+90
+77
+61
+90
+77
+61
+90
+77
+61
+90
+77
+61
+88
+75
+59
+88
+75
+59
+88
+75
+59
+89
+76
+60
+89
+76
+60
+90
+77
+61
+90
+77
+61
+90
+77
+61
+90
+76
+63
+90
+77
+61
+92
+76
+61
+93
+77
+61
+93
+78
+59
+94
+79
+60
+92
+79
+60
+92
+79
+62
+93
+80
+64
+91
+79
+67
+91
+78
+70
+89
+78
+74
+90
+80
+81
+92
+83
+88
+95
+85
+94
+94
+88
+102
+97
+93
+116
+101
+100
+131
+107
+105
+145
+110
+108
+157
+117
+113
+172
+127
+122
+188
+135
+128
+196
+139
+128
+196
+143
+128
+193
+145
+125
+186
+143
+116
+171
+143
+108
+162
+154
+111
+164
+165
+115
+168
+158
+103
+158
+154
+86
+125
+156
+61
+69
+166
+55
+46
+175
+54
+46
+192
+61
+53
+208
+65
+59
+218
+63
+58
+231
+64
+58
+243
+65
+61
+245
+61
+61
+245
+59
+60
+244
+60
+62
+241
+62
+65
+236
+66
+69
+231
+66
+70
+225
+66
+70
+216
+66
+67
+199
+60
+55
+189
+61
+52
+182
+60
+49
+177
+59
+47
+171
+58
+44
+174
+58
+43
+189
+65
+53
+208
+74
+65
+218
+71
+64
+220
+65
+61
+212
+54
+51
+208
+53
+49
+213
+64
+57
+205
+67
+56
+187
+57
+43
+178
+53
+35
+189
+56
+39
+194
+59
+40
+196
+61
+42
+196
+61
+42
+196
+59
+40
+198
+59
+40
+199
+58
+40
+202
+57
+40
+207
+57
+40
+207
+54
+38
+212
+50
+37
+218
+50
+37
+227
+53
+42
+234
+56
+46
+239
+56
+48
+240
+57
+49
+231
+50
+39
+231
+49
+38
+235
+47
+38
+240
+45
+39
+246
+44
+40
+250
+45
+42
+254
+46
+44
+255
+46
+47
+251
+42
+45
+248
+37
+43
+250
+36
+46
+255
+39
+55
+255
+37
+59
+255
+29
+55
+255
+20
+51
+252
+19
+48
+244
+29
+47
+245
+45
+56
+244
+50
+59
+228
+41
+48
+218
+39
+43
+219
+45
+47
+221
+47
+49
+218
+42
+45
+241
+58
+62
+244
+55
+61
+247
+52
+58
+246
+50
+54
+246
+47
+52
+248
+48
+51
+249
+50
+53
+244
+56
+55
+219
+50
+45
+218
+59
+53
+215
+56
+50
+228
+69
+63
+228
+69
+63
+206
+47
+43
+209
+50
+46
+193
+34
+30
+212
+53
+49
+225
+63
+58
+232
+69
+64
+224
+61
+56
+216
+51
+45
+217
+50
+44
+221
+54
+48
+221
+58
+49
+212
+58
+46
+207
+57
+42
+201
+53
+39
+199
+53
+40
+200
+57
+43
+202
+60
+48
+202
+60
+50
+198
+57
+47
+237
+99
+89
+225
+88
+78
+201
+64
+56
+186
+52
+43
+194
+57
+49
+195
+58
+48
+191
+54
+44
+194
+57
+47
+191
+53
+43
+190
+52
+42
+189
+52
+42
+187
+53
+41
+184
+54
+41
+181
+53
+40
+180
+54
+40
+176
+54
+41
+180
+59
+48
+187
+66
+57
+211
+89
+84
+232
+108
+106
+239
+113
+116
+246
+120
+124
+254
+124
+132
+249
+117
+128
+255
+122
+132
+253
+119
+128
+244
+119
+125
+245
+118
+125
+254
+117
+125
+255
+111
+123
+255
+104
+118
+255
+97
+113
+255
+93
+110
+242
+75
+93
+246
+68
+92
+242
+70
+92
+221
+73
+89
+208
+102
+104
+183
+138
+119
+149
+146
+111
+127
+147
+98
+117
+146
+92
+120
+142
+93
+127
+144
+99
+138
+149
+107
+141
+152
+112
+139
+149
+112
+133
+148
+109
+112
+135
+93
+108
+137
+93
+104
+137
+92
+103
+141
+94
+107
+143
+95
+113
+149
+101
+121
+155
+105
+124
+158
+107
+132
+171
+116
+133
+177
+118
+139
+183
+124
+142
+186
+125
+146
+187
+127
+148
+187
+130
+151
+188
+134
+155
+187
+137
+155
+181
+134
+161
+179
+139
+172
+183
+151
+188
+190
+168
+205
+199
+183
+213
+200
+191
+212
+195
+188
+206
+188
+186
+197
+181
+181
+186
+172
+172
+177
+163
+163
+92
+76
+60
+92
+76
+60
+92
+76
+60
+92
+76
+60
+92
+76
+60
+92
+76
+60
+92
+76
+60
+92
+76
+60
+90
+74
+58
+90
+74
+58
+90
+74
+58
+91
+75
+59
+91
+75
+59
+92
+76
+60
+92
+76
+60
+92
+76
+60
+92
+76
+61
+92
+76
+61
+93
+75
+61
+93
+77
+61
+93
+78
+59
+94
+79
+60
+94
+79
+60
+92
+79
+60
+95
+82
+65
+93
+81
+65
+92
+80
+68
+91
+78
+70
+90
+79
+75
+91
+80
+78
+93
+81
+83
+92
+82
+90
+93
+84
+103
+98
+89
+118
+101
+95
+133
+105
+99
+145
+113
+108
+164
+125
+119
+181
+132
+126
+190
+137
+125
+189
+152
+132
+193
+155
+128
+183
+156
+118
+169
+160
+111
+158
+177
+115
+162
+189
+117
+165
+183
+104
+152
+177
+81
+118
+181
+61
+70
+186
+54
+49
+182
+54
+45
+189
+61
+50
+200
+68
+56
+210
+69
+59
+219
+66
+58
+228
+63
+57
+241
+61
+62
+247
+58
+62
+249
+58
+63
+247
+61
+66
+239
+64
+69
+229
+66
+69
+215
+65
+66
+205
+66
+63
+192
+59
+52
+184
+57
+48
+177
+57
+43
+173
+57
+42
+169
+56
+40
+173
+57
+42
+187
+63
+51
+207
+70
+60
+217
+68
+62
+215
+57
+54
+217
+55
+52
+218
+59
+55
+220
+67
+61
+221
+79
+69
+206
+72
+60
+181
+51
+35
+190
+57
+40
+193
+58
+39
+196
+59
+41
+198
+61
+43
+201
+61
+44
+200
+60
+43
+201
+58
+41
+204
+57
+41
+207
+55
+41
+207
+50
+35
+211
+47
+35
+223
+52
+42
+238
+61
+51
+244
+63
+54
+241
+57
+49
+233
+52
+43
+224
+54
+39
+221
+54
+38
+226
+50
+37
+230
+48
+37
+234
+46
+37
+238
+45
+38
+239
+44
+40
+242
+44
+41
+242
+44
+45
+239
+40
+43
+240
+39
+47
+247
+41
+54
+253
+37
+58
+252
+30
+55
+251
+22
+51
+248
+24
+51
+244
+37
+55
+241
+47
+58
+242
+52
+64
+239
+53
+64
+238
+57
+66
+238
+58
+67
+233
+53
+62
+229
+45
+55
+240
+50
+60
+243
+47
+59
+246
+46
+57
+246
+45
+55
+245
+46
+51
+245
+46
+49
+243
+47
+49
+237
+52
+50
+220
+48
+44
+226
+61
+57
+218
+54
+52
+223
+59
+57
+255
+109
+106
+229
+67
+65
+209
+47
+45
+206
+47
+44
+217
+58
+55
+223
+64
+60
+224
+65
+59
+219
+60
+54
+213
+55
+46
+214
+53
+45
+214
+53
+43
+210
+54
+42
+200
+54
+39
+195
+54
+37
+194
+54
+39
+196
+56
+41
+197
+59
+46
+198
+60
+49
+198
+60
+49
+197
+59
+49
+235
+96
+89
+225
+84
+77
+201
+60
+51
+191
+48
+40
+203
+59
+51
+209
+62
+54
+206
+59
+51
+210
+61
+54
+216
+61
+56
+215
+60
+55
+212
+61
+54
+207
+60
+50
+201
+59
+49
+195
+57
+46
+188
+54
+42
+182
+54
+41
+185
+59
+47
+188
+64
+54
+207
+84
+77
+227
+103
+101
+237
+111
+114
+248
+122
+126
+255
+129
+136
+253
+123
+131
+255
+122
+131
+252
+121
+129
+245
+122
+127
+246
+121
+127
+254
+117
+127
+255
+110
+124
+255
+99
+117
+255
+92
+111
+255
+89
+109
+242
+73
+94
+245
+65
+90
+242
+70
+92
+224
+76
+90
+203
+97
+97
+167
+122
+101
+130
+128
+90
+110
+130
+81
+104
+133
+79
+109
+131
+82
+116
+133
+88
+123
+136
+93
+125
+136
+94
+120
+132
+92
+113
+130
+88
+96
+122
+77
+95
+127
+80
+97
+133
+85
+101
+141
+89
+110
+149
+96
+117
+156
+103
+125
+160
+106
+128
+163
+109
+132
+171
+114
+135
+176
+116
+139
+180
+120
+142
+184
+121
+140
+184
+121
+143
+185
+122
+146
+186
+126
+148
+186
+129
+147
+177
+127
+149
+172
+128
+154
+170
+134
+168
+174
+146
+184
+181
+162
+196
+186
+174
+200
+185
+178
+198
+183
+180
+183
+171
+173
+169
+160
+165
+159
+150
+155
+91
+75
+59
+91
+75
+59
+91
+75
+59
+91
+75
+59
+91
+75
+59
+91
+75
+59
+91
+75
+59
+91
+75
+59
+90
+74
+58
+90
+74
+58
+90
+74
+58
+91
+75
+59
+91
+75
+59
+92
+76
+60
+92
+76
+60
+92
+76
+60
+93
+75
+61
+93
+75
+61
+93
+76
+60
+94
+77
+61
+94
+77
+59
+94
+79
+60
+94
+79
+60
+94
+79
+60
+94
+81
+64
+94
+81
+64
+93
+79
+66
+91
+79
+67
+92
+78
+69
+91
+78
+70
+92
+79
+73
+91
+79
+79
+94
+80
+95
+98
+84
+109
+100
+89
+123
+103
+94
+137
+111
+104
+156
+122
+117
+173
+132
+124
+183
+136
+123
+179
+155
+132
+186
+166
+133
+180
+175
+128
+170
+184
+122
+161
+200
+120
+159
+211
+116
+156
+204
+99
+140
+198
+77
+108
+216
+72
+82
+217
+67
+66
+209
+67
+63
+203
+70
+61
+201
+73
+60
+204
+72
+59
+211
+69
+59
+222
+65
+60
+238
+64
+65
+245
+60
+65
+251
+60
+68
+249
+62
+69
+240
+65
+72
+226
+66
+68
+209
+65
+64
+197
+64
+59
+191
+63
+54
+182
+60
+49
+175
+57
+43
+171
+58
+42
+170
+57
+41
+174
+56
+42
+188
+62
+48
+206
+68
+58
+213
+60
+55
+213
+51
+49
+224
+59
+57
+229
+65
+63
+225
+68
+63
+232
+83
+76
+223
+85
+74
+191
+58
+43
+193
+57
+41
+190
+55
+36
+192
+55
+37
+196
+59
+41
+201
+61
+44
+202
+61
+44
+203
+57
+42
+206
+56
+41
+205
+52
+38
+210
+50
+38
+217
+50
+41
+229
+57
+47
+241
+62
+55
+245
+62
+54
+240
+53
+46
+228
+47
+38
+222
+54
+41
+221
+55
+41
+224
+52
+42
+228
+50
+40
+231
+46
+41
+233
+46
+41
+236
+44
+41
+236
+44
+43
+232
+42
+44
+230
+39
+44
+234
+40
+49
+240
+42
+57
+245
+39
+60
+246
+34
+59
+250
+31
+61
+251
+37
+65
+253
+56
+74
+228
+40
+54
+229
+44
+58
+255
+77
+89
+255
+93
+105
+255
+78
+90
+242
+60
+73
+244
+58
+72
+232
+41
+56
+237
+42
+56
+241
+45
+57
+244
+48
+58
+241
+50
+55
+234
+48
+49
+225
+43
+42
+215
+40
+37
+216
+48
+45
+218
+55
+50
+212
+50
+47
+229
+67
+64
+255
+115
+112
+245
+86
+83
+221
+62
+59
+229
+71
+68
+219
+61
+58
+218
+60
+57
+213
+58
+53
+210
+56
+48
+209
+55
+45
+208
+54
+42
+205
+52
+38
+198
+51
+35
+190
+53
+35
+185
+54
+36
+187
+56
+38
+191
+59
+44
+192
+60
+47
+191
+57
+45
+192
+58
+47
+197
+60
+50
+229
+88
+81
+220
+77
+71
+202
+55
+48
+199
+48
+41
+215
+60
+55
+222
+65
+58
+218
+59
+53
+223
+60
+53
+231
+62
+57
+233
+61
+57
+230
+63
+57
+225
+64
+56
+217
+63
+53
+208
+60
+50
+200
+58
+46
+193
+57
+45
+187
+57
+44
+187
+61
+49
+203
+78
+72
+224
+99
+95
+236
+110
+111
+250
+124
+127
+255
+132
+136
+255
+125
+133
+252
+118
+127
+250
+119
+127
+245
+122
+127
+247
+122
+128
+255
+118
+128
+255
+109
+123
+255
+98
+116
+254
+91
+110
+250
+84
+104
+240
+71
+92
+241
+61
+86
+240
+68
+90
+225
+79
+92
+195
+91
+90
+146
+104
+82
+111
+109
+71
+95
+115
+66
+92
+121
+67
+100
+122
+73
+108
+125
+80
+116
+129
+86
+118
+131
+88
+114
+129
+88
+111
+129
+87
+109
+135
+90
+108
+142
+92
+111
+149
+98
+117
+157
+104
+123
+164
+108
+129
+168
+111
+132
+170
+113
+135
+170
+112
+134
+172
+113
+136
+176
+116
+139
+179
+117
+140
+182
+118
+138
+183
+118
+138
+183
+118
+139
+184
+119
+144
+184
+122
+145
+180
+124
+143
+171
+123
+144
+165
+124
+154
+165
+133
+170
+172
+150
+187
+180
+164
+197
+184
+175
+198
+184
+181
+177
+171
+175
+161
+158
+165
+151
+146
+153
+91
+75
+59
+91
+75
+59
+91
+75
+59
+91
+75
+59
+91
+75
+59
+91
+75
+59
+91
+75
+59
+91
+75
+59
+90
+74
+58
+90
+74
+58
+90
+74
+58
+91
+75
+59
+91
+75
+59
+92
+76
+60
+92
+76
+60
+92
+76
+60
+93
+76
+60
+94
+75
+60
+94
+75
+60
+94
+77
+61
+94
+77
+59
+95
+78
+60
+94
+79
+60
+94
+79
+60
+94
+79
+60
+94
+78
+62
+94
+78
+62
+92
+79
+63
+94
+78
+65
+93
+79
+66
+94
+80
+69
+94
+79
+74
+98
+78
+89
+99
+80
+100
+99
+84
+113
+101
+89
+125
+108
+101
+145
+120
+114
+162
+127
+119
+168
+131
+118
+164
+148
+125
+167
+172
+134
+171
+194
+137
+169
+206
+130
+158
+218
+119
+148
+223
+108
+137
+218
+89
+119
+216
+69
+95
+236
+70
+84
+242
+73
+78
+233
+77
+78
+219
+76
+72
+205
+71
+62
+202
+69
+60
+210
+69
+62
+219
+67
+62
+234
+66
+66
+242
+63
+67
+248
+63
+71
+246
+65
+74
+237
+68
+73
+222
+68
+70
+205
+66
+63
+192
+63
+57
+189
+65
+55
+181
+61
+47
+174
+58
+43
+171
+58
+42
+170
+57
+41
+174
+56
+42
+187
+59
+46
+204
+63
+54
+225
+70
+65
+226
+61
+59
+238
+66
+66
+235
+65
+65
+222
+59
+54
+227
+74
+66
+230
+88
+76
+213
+75
+62
+200
+64
+50
+192
+56
+40
+188
+51
+35
+193
+56
+40
+200
+60
+45
+201
+58
+42
+203
+55
+41
+208
+56
+43
+206
+48
+37
+215
+51
+41
+224
+56
+47
+233
+59
+52
+237
+58
+53
+237
+54
+48
+235
+48
+43
+229
+44
+39
+223
+48
+43
+223
+50
+44
+229
+49
+48
+235
+50
+48
+241
+51
+53
+244
+51
+54
+246
+53
+56
+244
+53
+58
+235
+46
+53
+232
+45
+54
+235
+47
+61
+240
+49
+67
+242
+46
+70
+245
+42
+71
+252
+44
+78
+255
+52
+82
+245
+58
+77
+229
+51
+63
+238
+62
+75
+255
+92
+105
+255
+104
+118
+255
+85
+100
+245
+67
+83
+247
+64
+82
+238
+51
+68
+237
+51
+65
+237
+51
+62
+233
+54
+60
+227
+57
+57
+219
+56
+51
+206
+52
+42
+199
+47
+36
+203
+50
+42
+199
+46
+40
+208
+55
+50
+242
+89
+84
+246
+92
+90
+242
+88
+86
+219
+65
+63
+226
+72
+70
+220
+66
+64
+212
+60
+55
+206
+55
+48
+205
+54
+45
+207
+56
+45
+207
+57
+43
+202
+55
+39
+194
+53
+35
+185
+56
+35
+179
+57
+36
+181
+58
+40
+184
+61
+45
+185
+59
+44
+182
+54
+41
+188
+55
+46
+198
+61
+53
+219
+78
+71
+217
+69
+65
+206
+53
+48
+208
+49
+45
+225
+62
+57
+231
+64
+58
+227
+56
+49
+231
+53
+49
+235
+50
+48
+238
+50
+49
+235
+53
+50
+231
+56
+51
+225
+58
+50
+216
+58
+47
+208
+57
+46
+200
+58
+46
+190
+54
+42
+186
+56
+43
+200
+73
+66
+220
+95
+89
+235
+110
+108
+251
+125
+128
+255
+133
+137
+255
+126
+131
+247
+116
+124
+248
+118
+126
+245
+122
+127
+248
+123
+129
+254
+116
+129
+255
+108
+124
+255
+97
+117
+255
+90
+112
+247
+81
+101
+241
+72
+93
+240
+62
+86
+238
+69
+90
+227
+83
+93
+188
+86
+82
+131
+91
+66
+98
+98
+60
+92
+112
+63
+91
+118
+67
+102
+121
+75
+110
+126
+81
+116
+129
+86
+120
+133
+90
+121
+136
+95
+119
+140
+97
+121
+149
+101
+120
+154
+104
+122
+160
+109
+124
+167
+113
+129
+170
+114
+132
+171
+114
+133
+171
+112
+134
+169
+111
+137
+172
+114
+139
+174
+116
+138
+178
+116
+138
+180
+116
+136
+181
+116
+135
+182
+114
+137
+184
+116
+139
+184
+119
+143
+183
+123
+140
+173
+120
+141
+164
+120
+151
+165
+130
+170
+174
+149
+191
+186
+167
+203
+193
+181
+207
+198
+193
+188
+186
+191
+168
+170
+182
+156
+156
+168
+90
+74
+58
+90
+74
+58
+90
+74
+58
+90
+74
+58
+90
+74
+58
+90
+74
+58
+90
+74
+58
+90
+74
+58
+90
+74
+58
+90
+74
+58
+90
+74
+58
+91
+75
+59
+91
+75
+59
+92
+76
+60
+92
+76
+60
+93
+76
+60
+94
+75
+60
+94
+75
+60
+94
+75
+60
+95
+76
+61
+94
+77
+59
+95
+78
+60
+94
+79
+60
+94
+79
+60
+93
+78
+59
+93
+78
+59
+94
+79
+60
+95
+79
+63
+95
+79
+63
+96
+80
+64
+97
+81
+65
+98
+80
+70
+101
+76
+80
+101
+77
+93
+97
+79
+101
+98
+85
+115
+104
+96
+133
+116
+111
+151
+123
+116
+157
+125
+113
+151
+143
+118
+150
+174
+131
+159
+203
+140
+161
+218
+131
+150
+227
+116
+133
+232
+101
+117
+230
+81
+100
+228
+63
+80
+242
+55
+72
+252
+64
+78
+244
+73
+81
+227
+71
+74
+209
+65
+64
+203
+66
+60
+209
+67
+63
+217
+67
+66
+230
+67
+70
+235
+64
+70
+239
+64
+71
+239
+66
+72
+231
+68
+73
+218
+68
+69
+201
+66
+62
+190
+63
+54
+186
+64
+53
+177
+59
+45
+169
+56
+40
+168
+57
+40
+170
+57
+41
+176
+56
+42
+188
+58
+45
+202
+59
+51
+232
+73
+69
+233
+63
+63
+235
+61
+62
+229
+55
+56
+218
+50
+47
+222
+65
+58
+238
+90
+80
+244
+104
+91
+218
+80
+67
+201
+65
+51
+190
+53
+37
+194
+54
+39
+199
+57
+43
+200
+57
+43
+203
+55
+43
+210
+56
+44
+209
+48
+38
+218
+54
+45
+230
+59
+52
+233
+59
+52
+234
+52
+48
+232
+47
+44
+234
+45
+43
+235
+45
+45
+241
+52
+56
+243
+52
+59
+247
+51
+61
+250
+50
+60
+251
+49
+61
+253
+49
+61
+250
+48
+60
+247
+49
+62
+244
+49
+65
+241
+50
+66
+242
+53
+75
+243
+53
+78
+242
+49
+78
+244
+46
+79
+254
+49
+88
+255
+62
+95
+230
+51
+72
+248
+78
+91
+255
+95
+108
+255
+92
+107
+252
+84
+99
+250
+79
+95
+244
+68
+88
+233
+56
+74
+243
+65
+81
+234
+58
+71
+221
+50
+58
+210
+47
+50
+202
+50
+45
+194
+56
+45
+189
+59
+43
+188
+58
+42
+196
+58
+47
+192
+50
+40
+217
+74
+66
+250
+107
+99
+221
+76
+71
+225
+80
+75
+207
+59
+57
+207
+59
+57
+224
+76
+74
+212
+64
+60
+202
+55
+48
+202
+55
+45
+206
+60
+47
+205
+60
+43
+203
+58
+41
+196
+59
+40
+180
+59
+38
+173
+58
+37
+175
+60
+41
+179
+62
+45
+177
+57
+41
+175
+51
+39
+186
+58
+47
+202
+68
+59
+214
+71
+65
+216
+67
+61
+212
+55
+50
+215
+50
+46
+231
+59
+55
+236
+58
+54
+232
+50
+46
+237
+50
+45
+242
+44
+45
+244
+44
+44
+242
+46
+47
+239
+51
+49
+232
+55
+49
+226
+58
+49
+218
+60
+49
+210
+62
+50
+194
+54
+41
+186
+52
+41
+197
+66
+58
+215
+88
+82
+231
+106
+104
+250
+124
+125
+255
+134
+137
+255
+127
+132
+248
+117
+125
+249
+119
+127
+246
+123
+128
+247
+122
+128
+252
+114
+127
+253
+105
+121
+255
+94
+115
+255
+89
+111
+245
+79
+99
+244
+75
+96
+242
+64
+88
+239
+70
+91
+229
+85
+95
+182
+83
+78
+121
+84
+58
+94
+96
+56
+96
+115
+69
+97
+124
+73
+110
+129
+83
+118
+134
+89
+123
+136
+93
+126
+139
+96
+129
+144
+103
+130
+151
+108
+128
+156
+108
+125
+159
+109
+124
+164
+111
+125
+168
+112
+128
+169
+111
+130
+170
+110
+131
+169
+108
+133
+169
+108
+137
+170
+113
+139
+173
+113
+137
+175
+114
+136
+178
+114
+133
+178
+111
+133
+180
+112
+135
+182
+114
+137
+184
+116
+139
+181
+118
+135
+173
+116
+140
+166
+119
+153
+169
+132
+175
+181
+153
+198
+196
+175
+213
+206
+190
+217
+210
+204
+194
+194
+202
+172
+178
+192
+155
+161
+175
+90
+75
+56
+90
+75
+56
+90
+75
+56
+90
+75
+56
+90
+75
+56
+90
+75
+56
+90
+75
+56
+90
+75
+56
+90
+75
+56
+90
+75
+56
+90
+75
+56
+91
+76
+57
+91
+76
+57
+92
+77
+58
+92
+77
+58
+93
+76
+58
+94
+75
+60
+96
+74
+60
+94
+75
+60
+95
+76
+61
+94
+77
+59
+95
+78
+60
+94
+79
+60
+94
+79
+60
+94
+79
+58
+95
+80
+59
+96
+79
+59
+97
+80
+62
+97
+80
+62
+97
+80
+62
+97
+80
+60
+100
+78
+65
+104
+75
+77
+103
+75
+87
+99
+78
+95
+98
+84
+109
+106
+97
+128
+118
+112
+146
+124
+118
+152
+128
+115
+145
+143
+117
+142
+173
+128
+148
+205
+134
+148
+222
+127
+135
+237
+113
+121
+246
+101
+108
+246
+82
+91
+244
+62
+75
+248
+47
+66
+255
+55
+75
+251
+65
+79
+235
+64
+73
+219
+63
+67
+214
+66
+66
+213
+67
+67
+215
+65
+66
+224
+65
+69
+227
+64
+69
+230
+63
+70
+228
+65
+70
+223
+67
+70
+212
+66
+66
+199
+64
+60
+189
+62
+53
+184
+62
+51
+175
+57
+43
+168
+55
+39
+169
+58
+41
+173
+60
+42
+180
+60
+44
+193
+61
+49
+207
+63
+55
+223
+61
+58
+229
+57
+57
+227
+48
+51
+226
+47
+50
+224
+52
+50
+219
+57
+52
+230
+77
+69
+252
+108
+97
+242
+104
+91
+217
+81
+67
+198
+60
+47
+198
+58
+45
+200
+58
+46
+201
+55
+42
+205
+54
+43
+213
+56
+47
+213
+52
+44
+222
+55
+47
+230
+57
+51
+232
+54
+50
+233
+49
+47
+232
+47
+44
+238
+49
+47
+245
+49
+53
+255
+50
+66
+255
+48
+68
+255
+45
+69
+255
+43
+65
+255
+38
+63
+255
+35
+60
+250
+32
+56
+244
+32
+55
+246
+39
+65
+243
+43
+69
+242
+47
+77
+242
+49
+80
+240
+44
+80
+243
+42
+84
+254
+51
+96
+255
+66
+104
+240
+67
+87
+255
+95
+108
+255
+103
+116
+247
+85
+100
+236
+74
+89
+239
+74
+90
+234
+65
+84
+217
+49
+66
+235
+64
+82
+221
+55
+67
+201
+45
+49
+186
+40
+40
+177
+46
+36
+171
+56
+38
+165
+63
+38
+168
+64
+39
+184
+63
+46
+188
+58
+44
+221
+89
+77
+225
+93
+81
+205
+71
+62
+205
+68
+62
+193
+54
+51
+201
+59
+55
+228
+85
+81
+213
+70
+64
+201
+57
+49
+200
+56
+45
+201
+58
+44
+200
+57
+40
+200
+57
+40
+196
+61
+41
+177
+63
+39
+166
+60
+38
+168
+59
+38
+172
+61
+42
+171
+55
+40
+172
+51
+40
+188
+61
+52
+211
+76
+70
+214
+71
+65
+221
+69
+64
+219
+57
+54
+220
+51
+48
+233
+55
+51
+236
+53
+49
+235
+48
+43
+244
+49
+45
+253
+44
+47
+255
+43
+45
+250
+46
+47
+244
+49
+47
+237
+52
+47
+230
+56
+49
+223
+59
+49
+216
+62
+50
+201
+57
+46
+189
+51
+40
+192
+59
+50
+207
+78
+72
+225
+97
+94
+247
+121
+122
+255
+136
+138
+255
+131
+135
+252
+121
+129
+252
+122
+130
+248
+124
+132
+247
+122
+130
+249
+111
+124
+249
+101
+117
+252
+90
+111
+252
+86
+108
+238
+75
+96
+242
+74
+97
+240
+64
+87
+236
+69
+89
+225
+84
+93
+174
+77
+71
+112
+77
+49
+92
+94
+54
+95
+114
+68
+102
+126
+78
+117
+136
+91
+127
+142
+99
+132
+144
+104
+134
+146
+106
+136
+151
+110
+137
+158
+115
+136
+164
+116
+132
+166
+116
+127
+167
+114
+125
+168
+112
+127
+168
+110
+129
+169
+109
+131
+169
+108
+134
+168
+108
+136
+167
+110
+138
+169
+110
+136
+172
+111
+134
+174
+111
+130
+175
+108
+130
+177
+107
+131
+181
+110
+133
+183
+114
+135
+179
+116
+134
+173
+116
+140
+168
+119
+155
+173
+133
+176
+185
+154
+199
+199
+175
+214
+207
+189
+215
+210
+204
+188
+192
+201
+165
+174
+189
+147
+156
+171
+91
+74
+56
+90
+75
+56
+91
+74
+56
+90
+75
+56
+91
+74
+56
+90
+75
+56
+91
+74
+56
+90
+75
+56
+91
+74
+56
+90
+75
+56
+91
+74
+56
+91
+76
+57
+92
+75
+57
+92
+77
+58
+93
+76
+58
+93
+76
+58
+94
+75
+60
+94
+75
+60
+94
+75
+60
+94
+77
+61
+94
+77
+61
+94
+79
+60
+94
+79
+60
+92
+79
+60
+96
+81
+62
+97
+82
+61
+97
+82
+63
+98
+81
+63
+98
+81
+63
+97
+80
+62
+97
+79
+59
+98
+76
+63
+107
+77
+75
+106
+76
+84
+101
+79
+92
+100
+87
+107
+107
+101
+127
+120
+117
+148
+125
+124
+156
+127
+120
+151
+145
+122
+148
+171
+129
+149
+198
+132
+144
+217
+126
+133
+238
+117
+122
+252
+109
+111
+253
+90
+91
+249
+70
+76
+247
+52
+69
+255
+58
+78
+251
+64
+81
+238
+63
+76
+229
+65
+74
+225
+69
+73
+221
+66
+70
+215
+60
+64
+222
+63
+68
+223
+62
+67
+225
+62
+67
+222
+64
+65
+218
+66
+65
+208
+65
+61
+197
+62
+56
+188
+61
+52
+181
+63
+49
+172
+59
+43
+169
+56
+40
+173
+60
+44
+180
+63
+46
+187
+64
+49
+202
+65
+55
+216
+67
+61
+217
+55
+52
+225
+56
+53
+222
+46
+46
+226
+51
+48
+230
+58
+54
+211
+48
+39
+207
+53
+41
+235
+85
+71
+255
+119
+106
+235
+91
+80
+209
+67
+55
+202
+60
+48
+203
+59
+48
+201
+55
+42
+205
+54
+43
+212
+58
+48
+218
+55
+48
+223
+56
+50
+229
+54
+51
+231
+51
+50
+234
+48
+49
+237
+49
+50
+244
+51
+54
+252
+53
+60
+252
+37
+53
+255
+35
+56
+255
+34
+56
+255
+33
+56
+255
+32
+55
+255
+31
+53
+251
+29
+52
+246
+30
+53
+237
+28
+50
+236
+32
+57
+237
+39
+66
+238
+41
+71
+237
+39
+74
+239
+41
+77
+253
+53
+92
+255
+70
+104
+255
+96
+115
+254
+94
+106
+247
+85
+98
+242
+80
+93
+242
+80
+93
+240
+75
+89
+227
+62
+76
+210
+48
+59
+218
+61
+70
+205
+54
+59
+187
+47
+46
+175
+46
+40
+168
+52
+39
+162
+59
+40
+155
+63
+38
+157
+61
+37
+170
+57
+39
+178
+56
+43
+210
+86
+74
+187
+59
+50
+196
+63
+56
+190
+52
+49
+189
+50
+47
+206
+67
+64
+229
+87
+83
+213
+72
+65
+200
+57
+49
+196
+54
+42
+197
+54
+40
+196
+53
+37
+198
+53
+36
+195
+58
+40
+177
+60
+40
+167
+58
+38
+168
+55
+37
+173
+57
+42
+172
+52
+38
+175
+49
+37
+194
+63
+53
+219
+82
+74
+217
+73
+65
+225
+72
+66
+222
+59
+54
+222
+50
+46
+234
+52
+49
+237
+49
+47
+239
+45
+43
+252
+50
+50
+254
+44
+47
+253
+43
+46
+249
+43
+45
+243
+43
+43
+237
+45
+42
+230
+49
+42
+223
+52
+44
+214
+56
+44
+209
+61
+49
+191
+50
+40
+188
+55
+46
+200
+73
+66
+217
+92
+88
+243
+119
+119
+255
+137
+139
+255
+134
+138
+253
+126
+133
+255
+125
+133
+252
+125
+134
+253
+119
+130
+252
+107
+122
+249
+96
+114
+249
+87
+108
+249
+83
+105
+234
+68
+92
+240
+71
+94
+236
+59
+85
+228
+65
+86
+215
+81
+90
+162
+73
+67
+102
+70
+45
+88
+93
+53
+90
+109
+63
+98
+125
+74
+116
+140
+92
+128
+150
+103
+135
+152
+108
+136
+155
+110
+138
+160
+114
+139
+165
+118
+140
+172
+122
+134
+171
+119
+129
+170
+114
+126
+167
+109
+124
+165
+105
+125
+165
+103
+129
+165
+103
+131
+165
+105
+131
+164
+107
+133
+166
+109
+132
+170
+109
+130
+172
+108
+128
+173
+104
+128
+175
+105
+129
+179
+106
+132
+182
+111
+137
+182
+115
+136
+176
+114
+140
+173
+120
+153
+176
+132
+172
+188
+152
+189
+198
+169
+201
+203
+181
+203
+205
+194
+182
+191
+196
+159
+171
+183
+140
+152
+164
+93
+75
+55
+92
+75
+55
+93
+75
+55
+92
+75
+55
+93
+75
+55
+92
+75
+55
+93
+75
+55
+92
+75
+55
+94
+76
+56
+93
+76
+56
+94
+76
+56
+93
+76
+56
+94
+76
+56
+93
+76
+56
+94
+76
+56
+93
+76
+58
+93
+74
+60
+93
+75
+61
+94
+76
+62
+92
+76
+60
+92
+76
+60
+91
+78
+61
+93
+80
+63
+94
+83
+65
+96
+83
+66
+95
+82
+63
+96
+80
+64
+98
+81
+65
+99
+82
+66
+100
+81
+66
+100
+78
+65
+100
+76
+66
+107
+75
+76
+104
+75
+80
+101
+79
+91
+102
+91
+108
+110
+107
+134
+120
+123
+156
+129
+133
+170
+137
+137
+173
+143
+132
+166
+165
+136
+166
+190
+136
+159
+208
+130
+144
+225
+121
+128
+240
+114
+115
+249
+106
+102
+255
+97
+96
+244
+77
+87
+237
+65
+79
+231
+61
+74
+233
+66
+76
+235
+69
+79
+231
+65
+75
+228
+61
+69
+229
+62
+70
+226
+59
+66
+224
+59
+63
+221
+58
+61
+217
+59
+58
+212
+60
+57
+204
+59
+54
+196
+58
+48
+185
+57
+44
+167
+54
+38
+175
+65
+48
+173
+60
+44
+172
+54
+40
+191
+65
+53
+204
+70
+61
+204
+61
+53
+208
+55
+50
+218
+56
+53
+220
+55
+49
+222
+53
+46
+222
+54
+45
+222
+56
+42
+221
+60
+42
+215
+58
+39
+211
+54
+37
+217
+59
+48
+240
+83
+76
+242
+90
+79
+217
+69
+57
+199
+56
+42
+205
+62
+46
+212
+66
+51
+210
+58
+45
+211
+50
+42
+240
+71
+66
+225
+47
+47
+239
+54
+59
+244
+55
+62
+239
+45
+56
+255
+66
+77
+240
+40
+51
+250
+38
+50
+255
+41
+50
+255
+41
+50
+249
+29
+39
+253
+34
+42
+255
+39
+47
+254
+39
+47
+240
+29
+38
+238
+31
+41
+248
+44
+55
+233
+33
+46
+235
+38
+55
+240
+44
+64
+227
+33
+57
+255
+86
+112
+229
+43
+66
+255
+92
+108
+255
+94
+105
+255
+89
+99
+251
+84
+92
+246
+79
+87
+236
+71
+77
+222
+62
+64
+208
+54
+52
+204
+61
+55
+197
+64
+55
+184
+62
+49
+167
+54
+38
+156
+49
+33
+154
+53
+35
+157
+58
+39
+160
+59
+41
+167
+56
+45
+174
+55
+47
+194
+69
+63
+191
+59
+55
+189
+51
+49
+196
+54
+52
+197
+53
+52
+212
+68
+67
+219
+76
+72
+218
+75
+69
+209
+68
+59
+200
+58
+48
+196
+52
+41
+199
+53
+40
+203
+52
+41
+197
+53
+42
+188
+60
+47
+179
+57
+44
+173
+47
+35
+171
+40
+30
+179
+45
+36
+195
+57
+47
+210
+67
+59
+216
+72
+63
+228
+80
+70
+223
+69
+61
+218
+55
+48
+221
+48
+42
+231
+48
+44
+242
+50
+49
+249
+49
+51
+253
+49
+52
+247
+47
+49
+246
+48
+49
+246
+48
+49
+243
+48
+46
+242
+48
+46
+237
+50
+45
+230
+53
+45
+221
+57
+47
+213
+61
+48
+190
+50
+37
+192
+62
+49
+185
+61
+51
+214
+95
+89
+233
+115
+113
+255
+143
+143
+251
+132
+134
+255
+135
+140
+255
+132
+141
+255
+120
+135
+253
+104
+123
+252
+95
+116
+254
+92
+115
+250
+86
+110
+243
+77
+101
+242
+72
+99
+235
+60
+89
+237
+62
+91
+224
+66
+89
+216
+94
+105
+141
+63
+59
+92
+67
+45
+83
+91
+54
+92
+116
+66
+103
+134
+77
+119
+150
+93
+125
+156
+99
+127
+157
+103
+128
+161
+106
+131
+166
+110
+130
+168
+111
+128
+167
+110
+127
+166
+109
+126
+165
+108
+125
+165
+105
+124
+164
+104
+125
+163
+102
+127
+163
+101
+127
+163
+102
+127
+165
+108
+127
+166
+109
+129
+171
+108
+127
+172
+107
+126
+173
+103
+127
+174
+102
+129
+177
+103
+131
+179
+105
+135
+181
+109
+139
+180
+114
+139
+177
+118
+142
+174
+124
+153
+180
+137
+167
+189
+153
+175
+194
+164
+178
+193
+174
+163
+175
+173
+141
+152
+158
+124
+135
+141
+93
+75
+55
+93
+75
+55
+93
+75
+55
+93
+75
+55
+93
+75
+55
+93
+75
+55
+93
+75
+55
+93
+75
+55
+94
+76
+56
+94
+76
+56
+94
+76
+56
+94
+76
+56
+94
+76
+56
+94
+76
+56
+94
+76
+56
+94
+75
+58
+92
+75
+59
+94
+76
+62
+95
+77
+63
+94
+78
+62
+91
+78
+61
+91
+78
+61
+92
+81
+63
+94
+82
+66
+95
+83
+67
+93
+81
+65
+93
+79
+66
+95
+79
+66
+96
+78
+68
+98
+80
+70
+99
+79
+72
+101
+77
+73
+105
+76
+78
+103
+78
+84
+101
+83
+97
+103
+95
+116
+110
+111
+142
+121
+126
+166
+128
+136
+183
+135
+139
+187
+158
+150
+199
+163
+140
+182
+171
+127
+160
+185
+120
+142
+211
+121
+133
+234
+124
+125
+244
+117
+111
+244
+105
+100
+245
+94
+99
+238
+81
+90
+233
+71
+82
+238
+74
+83
+243
+76
+86
+242
+71
+80
+238
+64
+74
+234
+60
+69
+228
+57
+63
+224
+58
+60
+220
+57
+58
+215
+60
+56
+210
+61
+55
+203
+60
+52
+196
+58
+47
+186
+59
+44
+171
+60
+43
+170
+63
+45
+169
+56
+40
+178
+58
+44
+193
+65
+54
+197
+60
+52
+199
+54
+49
+212
+60
+55
+210
+53
+48
+214
+53
+45
+215
+53
+42
+216
+52
+40
+217
+56
+38
+219
+58
+38
+219
+59
+37
+218
+57
+39
+221
+54
+46
+230
+65
+59
+235
+77
+68
+225
+73
+60
+208
+62
+47
+199
+56
+40
+202
+56
+41
+211
+59
+46
+221
+58
+51
+245
+73
+69
+228
+48
+49
+241
+55
+60
+246
+54
+65
+241
+46
+60
+255
+63
+77
+237
+37
+50
+243
+36
+44
+247
+37
+40
+251
+41
+44
+253
+43
+44
+252
+42
+43
+248
+40
+40
+246
+40
+40
+247
+43
+44
+239
+36
+39
+237
+37
+40
+234
+37
+44
+253
+59
+68
+216
+26
+38
+238
+50
+65
+250
+63
+80
+213
+35
+51
+255
+104
+117
+255
+97
+106
+255
+90
+97
+253
+86
+93
+247
+78
+83
+231
+65
+67
+218
+59
+56
+210
+61
+54
+193
+55
+44
+194
+66
+53
+188
+71
+54
+172
+61
+44
+154
+47
+31
+147
+39
+26
+146
+38
+25
+147
+39
+27
+158
+45
+37
+176
+58
+54
+209
+84
+80
+206
+72
+71
+195
+53
+52
+198
+52
+53
+209
+61
+61
+235
+87
+85
+216
+71
+66
+214
+71
+63
+208
+65
+57
+199
+57
+47
+198
+51
+41
+202
+54
+44
+208
+55
+47
+206
+55
+48
+199
+61
+51
+194
+57
+49
+194
+53
+46
+195
+50
+45
+201
+52
+46
+209
+56
+51
+216
+63
+57
+222
+69
+61
+228
+74
+64
+222
+65
+56
+218
+54
+45
+221
+48
+42
+231
+48
+44
+242
+50
+49
+251
+48
+51
+251
+48
+51
+244
+48
+50
+243
+49
+50
+244
+48
+49
+243
+47
+48
+243
+48
+46
+238
+49
+45
+231
+52
+45
+223
+57
+45
+215
+61
+49
+191
+51
+36
+190
+60
+47
+183
+61
+50
+211
+94
+87
+233
+118
+115
+255
+144
+144
+249
+133
+136
+253
+134
+140
+255
+128
+138
+255
+115
+132
+255
+100
+121
+255
+92
+116
+255
+89
+114
+252
+84
+110
+246
+76
+103
+243
+68
+97
+236
+61
+90
+236
+66
+95
+223
+74
+96
+194
+83
+92
+128
+61
+55
+88
+67
+46
+82
+92
+57
+91
+118
+67
+101
+135
+75
+115
+149
+89
+120
+156
+95
+119
+157
+98
+123
+161
+102
+125
+165
+105
+125
+166
+106
+124
+165
+105
+124
+165
+105
+124
+164
+104
+123
+163
+101
+123
+161
+100
+123
+161
+100
+125
+161
+99
+126
+162
+101
+124
+163
+106
+125
+166
+108
+125
+169
+108
+125
+170
+105
+124
+171
+101
+125
+173
+99
+127
+175
+99
+130
+177
+99
+133
+176
+104
+135
+178
+107
+136
+175
+112
+136
+171
+115
+139
+171
+124
+144
+172
+132
+144
+170
+135
+140
+162
+139
+118
+133
+126
+99
+111
+111
+83
+95
+95
+93
+76
+56
+93
+76
+56
+93
+76
+56
+93
+76
+56
+93
+76
+56
+93
+76
+56
+93
+76
+56
+93
+76
+56
+93
+76
+56
+93
+76
+56
+93
+76
+56
+93
+76
+56
+93
+76
+56
+93
+76
+56
+93
+76
+56
+93
+76
+56
+94
+75
+58
+95
+78
+62
+97
+80
+64
+96
+80
+64
+93
+80
+63
+92
+79
+62
+91
+79
+63
+91
+82
+67
+91
+81
+69
+91
+81
+71
+92
+79
+71
+92
+79
+73
+95
+80
+77
+99
+81
+79
+102
+84
+84
+103
+84
+86
+103
+84
+88
+103
+86
+96
+104
+92
+112
+108
+105
+134
+115
+118
+161
+124
+131
+185
+130
+138
+201
+138
+142
+206
+152
+146
+210
+160
+139
+196
+170
+131
+178
+185
+125
+159
+207
+128
+147
+228
+131
+138
+238
+126
+122
+242
+115
+109
+248
+102
+105
+242
+85
+92
+234
+73
+81
+237
+72
+79
+243
+73
+82
+245
+71
+81
+242
+65
+75
+238
+61
+69
+228
+55
+61
+224
+55
+58
+219
+56
+57
+213
+60
+55
+207
+63
+55
+201
+63
+52
+193
+61
+48
+184
+61
+45
+174
+61
+45
+170
+60
+43
+171
+58
+44
+184
+66
+54
+199
+72
+63
+192
+59
+50
+187
+48
+41
+202
+58
+50
+205
+54
+47
+208
+54
+46
+213
+55
+44
+216
+56
+44
+217
+55
+40
+217
+56
+38
+220
+57
+38
+224
+58
+42
+221
+52
+45
+219
+52
+46
+226
+65
+57
+233
+79
+67
+222
+72
+58
+200
+53
+37
+200
+50
+35
+217
+64
+50
+226
+62
+53
+245
+72
+68
+231
+48
+50
+242
+53
+59
+248
+54
+63
+245
+49
+61
+255
+66
+80
+244
+46
+59
+240
+41
+48
+235
+35
+38
+236
+36
+39
+249
+49
+51
+245
+45
+47
+239
+39
+39
+236
+38
+37
+245
+49
+50
+234
+40
+41
+245
+55
+57
+231
+42
+48
+225
+40
+48
+234
+50
+60
+255
+81
+93
+237
+59
+73
+255
+89
+101
+255
+94
+102
+242
+85
+92
+239
+78
+84
+241
+76
+82
+235
+69
+73
+222
+58
+59
+214
+55
+52
+214
+62
+57
+194
+53
+44
+194
+62
+50
+189
+65
+53
+181
+60
+49
+173
+55
+45
+168
+49
+41
+162
+43
+35
+157
+38
+32
+155
+36
+30
+169
+47
+42
+199
+69
+67
+194
+58
+58
+188
+44
+44
+200
+51
+53
+215
+65
+66
+244
+94
+93
+208
+63
+58
+210
+67
+59
+208
+65
+57
+203
+61
+51
+204
+57
+47
+212
+61
+52
+218
+64
+56
+219
+64
+59
+219
+64
+60
+216
+61
+59
+221
+62
+59
+227
+65
+63
+228
+62
+62
+224
+58
+58
+227
+63
+61
+235
+73
+68
+224
+66
+57
+221
+60
+52
+217
+53
+44
+221
+50
+43
+231
+49
+45
+240
+51
+49
+245
+49
+50
+248
+48
+50
+244
+48
+50
+244
+48
+50
+244
+48
+49
+243
+47
+48
+243
+48
+46
+238
+49
+45
+231
+52
+45
+223
+57
+45
+216
+62
+50
+192
+52
+37
+186
+56
+43
+181
+59
+48
+208
+91
+84
+237
+122
+119
+255
+147
+146
+251
+135
+138
+253
+129
+137
+255
+124
+137
+255
+113
+129
+253
+100
+120
+254
+90
+114
+255
+85
+111
+252
+79
+107
+250
+73
+102
+244
+65
+95
+238
+63
+92
+234
+71
+98
+223
+84
+103
+165
+64
+72
+117
+56
+51
+88
+70
+50
+85
+95
+60
+95
+119
+69
+102
+135
+78
+114
+147
+90
+117
+152
+94
+116
+154
+95
+120
+158
+99
+123
+163
+103
+123
+163
+103
+121
+162
+102
+121
+162
+102
+121
+161
+99
+120
+160
+98
+121
+159
+98
+121
+160
+97
+124
+160
+98
+122
+160
+99
+122
+162
+102
+123
+164
+104
+123
+167
+104
+123
+168
+101
+123
+169
+97
+123
+169
+96
+125
+171
+96
+127
+174
+96
+135
+178
+106
+138
+181
+110
+139
+178
+115
+137
+172
+116
+134
+166
+119
+130
+158
+117
+121
+147
+110
+111
+134
+108
+81
+99
+87
+64
+79
+76
+50
+65
+62
+94
+77
+57
+94
+77
+57
+94
+77
+57
+94
+77
+57
+94
+77
+57
+94
+77
+57
+94
+77
+57
+94
+77
+57
+94
+77
+57
+94
+77
+57
+94
+77
+57
+94
+77
+57
+94
+77
+57
+94
+77
+57
+94
+77
+57
+94
+77
+57
+94
+76
+56
+96
+78
+58
+97
+80
+60
+96
+81
+62
+93
+80
+63
+90
+78
+62
+89
+79
+67
+88
+80
+69
+88
+79
+72
+91
+81
+79
+95
+85
+84
+98
+88
+89
+101
+88
+95
+105
+89
+99
+108
+92
+102
+107
+94
+104
+108
+96
+108
+108
+99
+116
+111
+107
+134
+114
+116
+155
+121
+126
+181
+127
+135
+200
+133
+141
+214
+140
+143
+220
+142
+135
+212
+159
+139
+208
+173
+138
+194
+179
+129
+167
+189
+121
+144
+204
+123
+130
+222
+129
+124
+241
+130
+123
+254
+116
+116
+253
+100
+103
+244
+88
+92
+242
+79
+84
+242
+73
+80
+242
+68
+77
+240
+63
+71
+239
+60
+66
+229
+54
+59
+225
+55
+56
+219
+57
+55
+213
+60
+55
+206
+64
+54
+198
+64
+52
+191
+64
+49
+184
+63
+46
+173
+57
+42
+173
+62
+45
+177
+61
+48
+188
+70
+58
+204
+82
+71
+199
+72
+63
+186
+53
+46
+186
+49
+41
+200
+57
+49
+205
+56
+49
+211
+59
+48
+217
+61
+49
+219
+59
+45
+217
+54
+39
+220
+54
+38
+224
+56
+43
+224
+53
+45
+219
+50
+43
+224
+61
+52
+236
+78
+66
+227
+75
+61
+210
+58
+44
+209
+56
+42
+224
+66
+54
+222
+54
+45
+240
+62
+58
+233
+47
+48
+239
+48
+53
+245
+50
+58
+248
+52
+62
+255
+74
+86
+255
+70
+79
+253
+62
+69
+242
+51
+56
+226
+36
+38
+237
+47
+49
+234
+44
+44
+240
+50
+50
+232
+42
+42
+235
+47
+46
+241
+57
+57
+209
+26
+28
+229
+50
+54
+220
+43
+49
+231
+56
+63
+239
+68
+76
+255
+87
+98
+241
+75
+85
+217
+60
+67
+219
+64
+68
+225
+66
+70
+225
+62
+65
+222
+57
+61
+220
+56
+57
+218
+55
+56
+212
+57
+55
+201
+56
+51
+195
+56
+49
+190
+57
+50
+193
+64
+58
+206
+77
+72
+215
+85
+83
+210
+77
+78
+196
+66
+64
+178
+55
+50
+182
+57
+53
+207
+75
+73
+217
+77
+76
+227
+81
+82
+239
+89
+90
+234
+82
+81
+241
+89
+86
+201
+53
+49
+206
+62
+54
+210
+66
+57
+208
+64
+55
+211
+63
+53
+217
+66
+57
+224
+67
+60
+226
+64
+59
+233
+63
+64
+231
+56
+61
+236
+57
+61
+242
+63
+67
+239
+58
+63
+232
+53
+56
+236
+62
+61
+246
+77
+74
+222
+57
+51
+219
+54
+48
+218
+51
+43
+222
+51
+44
+229
+52
+46
+236
+51
+48
+242
+50
+49
+244
+48
+49
+244
+48
+50
+246
+47
+50
+246
+48
+49
+245
+47
+48
+245
+47
+46
+240
+48
+45
+233
+52
+45
+224
+56
+45
+217
+63
+51
+194
+54
+39
+183
+53
+40
+179
+57
+46
+203
+86
+79
+239
+124
+121
+255
+147
+146
+254
+135
+139
+255
+128
+137
+255
+121
+135
+252
+110
+126
+250
+99
+118
+250
+88
+111
+252
+80
+106
+251
+72
+102
+250
+67
+98
+242
+61
+92
+239
+66
+94
+229
+77
+100
+215
+90
+104
+136
+50
+53
+107
+57
+48
+92
+77
+56
+91
+101
+67
+99
+123
+75
+106
+137
+80
+115
+146
+89
+116
+149
+92
+117
+152
+94
+119
+157
+98
+121
+161
+101
+122
+162
+102
+119
+160
+100
+118
+160
+97
+119
+159
+97
+118
+158
+96
+120
+159
+96
+120
+159
+96
+123
+159
+97
+122
+160
+99
+122
+162
+102
+122
+163
+103
+122
+167
+102
+122
+167
+98
+122
+168
+96
+122
+168
+93
+124
+171
+93
+126
+173
+95
+134
+178
+103
+139
+180
+110
+140
+179
+116
+138
+173
+115
+134
+166
+117
+128
+157
+113
+116
+142
+105
+105
+128
+100
+80
+98
+84
+67
+82
+75
+56
+71
+64
+94
+77
+59
+94
+77
+59
+94
+77
+59
+94
+77
+59
+94
+77
+59
+94
+77
+59
+94
+77
+59
+94
+77
+59
+94
+77
+59
+94
+77
+59
+94
+77
+59
+94
+77
+59
+94
+77
+59
+94
+77
+59
+94
+77
+59
+94
+77
+57
+93
+75
+53
+95
+77
+53
+96
+80
+57
+95
+80
+59
+92
+79
+62
+90
+78
+64
+88
+79
+70
+88
+81
+75
+89
+80
+81
+96
+87
+92
+103
+96
+104
+110
+102
+115
+115
+104
+121
+115
+103
+123
+115
+103
+125
+113
+103
+127
+111
+108
+129
+112
+112
+138
+114
+118
+153
+118
+124
+172
+122
+130
+193
+127
+135
+208
+132
+139
+220
+138
+140
+225
+147
+142
+224
+157
+141
+214
+160
+132
+190
+158
+117
+159
+160
+108
+130
+172
+110
+115
+188
+117
+111
+210
+118
+107
+240
+115
+109
+253
+109
+108
+254
+104
+105
+251
+95
+96
+249
+83
+87
+244
+71
+77
+237
+60
+66
+234
+55
+61
+232
+53
+59
+227
+54
+56
+221
+57
+56
+215
+60
+55
+208
+64
+55
+199
+65
+53
+192
+65
+48
+185
+64
+47
+173
+55
+41
+180
+64
+51
+175
+58
+48
+176
+59
+49
+200
+82
+72
+213
+92
+81
+201
+77
+67
+187
+59
+48
+190
+57
+48
+193
+55
+45
+204
+57
+47
+214
+62
+51
+219
+61
+49
+218
+54
+42
+220
+52
+39
+226
+54
+42
+224
+51
+44
+226
+55
+48
+228
+61
+53
+229
+69
+57
+226
+70
+57
+222
+66
+51
+222
+65
+50
+226
+62
+50
+219
+48
+38
+234
+55
+50
+236
+48
+47
+238
+45
+48
+239
+44
+50
+246
+51
+59
+255
+76
+84
+255
+87
+94
+255
+90
+95
+255
+79
+83
+225
+46
+49
+227
+48
+51
+224
+44
+45
+247
+69
+69
+232
+54
+54
+220
+44
+44
+218
+44
+45
+234
+61
+63
+219
+49
+52
+216
+50
+54
+255
+98
+104
+224
+61
+66
+202
+41
+49
+202
+45
+52
+193
+38
+42
+213
+59
+61
+224
+65
+69
+218
+55
+58
+217
+51
+55
+223
+57
+61
+220
+55
+59
+205
+47
+48
+204
+52
+51
+205
+59
+59
+211
+71
+70
+221
+83
+83
+235
+96
+99
+245
+105
+108
+244
+101
+107
+234
+94
+97
+196
+64
+62
+198
+69
+64
+229
+94
+91
+248
+104
+103
+255
+111
+112
+255
+106
+106
+229
+75
+75
+215
+61
+59
+201
+52
+48
+209
+62
+55
+215
+68
+60
+214
+67
+59
+213
+62
+53
+213
+60
+52
+216
+58
+49
+220
+52
+49
+238
+53
+59
+241
+45
+55
+240
+44
+54
+242
+46
+56
+239
+44
+52
+235
+44
+51
+243
+57
+60
+254
+74
+75
+223
+51
+47
+220
+51
+46
+218
+51
+43
+220
+51
+44
+227
+53
+46
+234
+52
+48
+239
+52
+47
+242
+50
+49
+244
+48
+50
+246
+47
+50
+247
+47
+49
+246
+46
+48
+245
+47
+46
+240
+48
+45
+234
+51
+45
+226
+55
+45
+217
+63
+51
+198
+56
+42
+180
+50
+37
+178
+56
+45
+195
+78
+71
+239
+124
+121
+255
+146
+145
+255
+135
+140
+255
+126
+137
+255
+117
+132
+249
+108
+124
+246
+97
+116
+245
+85
+109
+247
+74
+102
+249
+64
+96
+249
+59
+93
+243
+58
+92
+237
+68
+97
+219
+80
+101
+193
+87
+97
+114
+46
+43
+98
+62
+48
+96
+84
+62
+99
+106
+73
+102
+124
+77
+107
+137
+83
+116
+146
+92
+117
+150
+95
+118
+153
+95
+120
+158
+99
+121
+161
+99
+120
+160
+98
+117
+159
+96
+117
+159
+96
+117
+157
+95
+118
+158
+95
+119
+158
+95
+120
+159
+96
+123
+159
+97
+122
+161
+98
+122
+162
+100
+123
+165
+101
+124
+166
+100
+124
+167
+96
+121
+167
+94
+121
+168
+90
+123
+170
+92
+125
+172
+94
+128
+172
+97
+133
+175
+103
+135
+174
+109
+135
+170
+112
+133
+165
+115
+131
+160
+114
+123
+149
+110
+114
+138
+106
+100
+119
+100
+91
+107
+94
+81
+97
+84
+95
+78
+60
+95
+78
+60
+95
+78
+60
+95
+78
+60
+95
+78
+60
+95
+78
+60
+95
+78
+60
+95
+78
+60
+95
+78
+60
+95
+78
+60
+95
+78
+60
+95
+78
+60
+95
+78
+60
+95
+78
+60
+95
+78
+60
+95
+78
+58
+94
+76
+52
+95
+78
+52
+96
+78
+56
+94
+79
+58
+91
+78
+62
+89
+79
+69
+90
+83
+77
+90
+84
+84
+95
+90
+97
+104
+98
+112
+114
+109
+129
+122
+117
+140
+123
+117
+145
+123
+113
+147
+122
+112
+147
+118
+112
+148
+113
+116
+149
+114
+119
+157
+116
+124
+170
+119
+128
+183
+122
+131
+196
+126
+134
+207
+132
+138
+216
+139
+141
+218
+150
+144
+218
+153
+139
+201
+155
+133
+180
+162
+131
+162
+170
+132
+145
+171
+126
+123
+159
+107
+93
+153
+82
+64
+186
+78
+66
+210
+82
+73
+225
+88
+82
+233
+88
+85
+239
+84
+82
+241
+75
+77
+236
+63
+67
+229
+52
+58
+235
+56
+60
+231
+57
+59
+226
+58
+57
+218
+61
+56
+211
+64
+56
+203
+65
+54
+195
+63
+48
+188
+62
+47
+179
+57
+44
+186
+65
+54
+171
+53
+43
+163
+46
+36
+190
+73
+63
+217
+103
+92
+217
+100
+90
+203
+85
+73
+184
+60
+50
+184
+54
+41
+192
+51
+41
+206
+58
+48
+217
+59
+48
+218
+54
+44
+222
+51
+41
+228
+54
+45
+223
+49
+42
+228
+55
+49
+227
+59
+50
+221
+57
+47
+222
+62
+48
+227
+70
+53
+228
+66
+51
+223
+57
+43
+222
+48
+39
+233
+52
+45
+240
+51
+49
+239
+45
+46
+236
+41
+45
+242
+47
+53
+255
+66
+71
+255
+82
+87
+255
+93
+98
+255
+92
+97
+226
+57
+60
+227
+57
+60
+213
+43
+44
+244
+74
+75
+226
+56
+57
+215
+47
+47
+217
+51
+53
+203
+39
+40
+202
+37
+41
+247
+87
+89
+220
+61
+65
+213
+57
+61
+209
+54
+58
+186
+31
+35
+196
+40
+43
+219
+61
+62
+229
+66
+69
+219
+53
+57
+215
+44
+50
+220
+49
+55
+217
+48
+53
+204
+41
+46
+208
+52
+55
+226
+76
+78
+244
+98
+101
+250
+105
+110
+247
+100
+108
+246
+96
+105
+248
+96
+108
+248
+98
+107
+214
+76
+76
+213
+78
+74
+234
+92
+90
+234
+86
+84
+231
+77
+77
+227
+72
+70
+207
+52
+50
+206
+51
+47
+217
+65
+60
+224
+75
+68
+228
+79
+72
+223
+74
+67
+217
+64
+56
+215
+58
+51
+215
+54
+46
+220
+46
+45
+245
+50
+58
+251
+45
+58
+248
+42
+55
+245
+39
+52
+245
+41
+52
+248
+48
+58
+255
+62
+67
+255
+74
+74
+224
+49
+46
+222
+51
+44
+220
+51
+44
+221
+53
+44
+225
+52
+45
+231
+52
+47
+237
+52
+47
+240
+51
+47
+244
+48
+50
+247
+47
+50
+249
+46
+49
+248
+45
+48
+246
+46
+46
+241
+47
+45
+235
+50
+45
+226
+55
+45
+217
+61
+49
+201
+59
+45
+179
+49
+36
+177
+55
+44
+186
+67
+61
+236
+121
+118
+255
+141
+141
+255
+136
+141
+255
+123
+135
+255
+113
+129
+246
+104
+120
+243
+96
+114
+243
+83
+107
+244
+69
+98
+249
+58
+92
+249
+55
+90
+243
+58
+92
+235
+72
+99
+205
+80
+96
+160
+74
+77
+102
+52
+43
+89
+66
+48
+95
+87
+64
+99
+106
+73
+102
+124
+78
+107
+136
+82
+116
+145
+91
+119
+149
+95
+120
+153
+96
+123
+158
+100
+122
+160
+99
+118
+158
+96
+115
+155
+93
+114
+156
+92
+115
+155
+92
+116
+156
+93
+118
+157
+94
+119
+158
+95
+123
+159
+97
+122
+161
+98
+121
+161
+98
+122
+164
+98
+124
+167
+98
+123
+166
+95
+120
+166
+91
+120
+167
+89
+122
+169
+89
+123
+170
+90
+126
+170
+95
+131
+173
+101
+133
+172
+107
+135
+169
+109
+137
+167
+115
+137
+165
+117
+132
+157
+115
+124
+148
+114
+117
+137
+112
+111
+128
+109
+103
+120
+102
+95
+80
+61
+95
+80
+61
+95
+80
+61
+95
+80
+61
+95
+80
+61
+95
+80
+61
+95
+80
+61
+95
+80
+61
+94
+79
+60
+94
+79
+60
+94
+79
+60
+94
+79
+60
+94
+79
+60
+94
+79
+60
+94
+79
+60
+95
+78
+58
+97
+80
+54
+97
+80
+54
+97
+79
+57
+94
+79
+60
+91
+79
+65
+91
+82
+75
+92
+86
+86
+95
+90
+97
+107
+103
+118
+115
+111
+134
+125
+122
+151
+130
+126
+161
+129
+124
+165
+125
+119
+163
+123
+117
+165
+120
+118
+167
+115
+121
+171
+115
+125
+178
+120
+129
+184
+123
+132
+191
+126
+134
+196
+132
+138
+200
+141
+142
+206
+148
+147
+205
+154
+147
+198
+160
+150
+187
+171
+156
+179
+188
+167
+176
+201
+173
+169
+197
+166
+148
+170
+136
+109
+154
+103
+76
+155
+70
+50
+173
+65
+52
+181
+65
+52
+194
+66
+57
+214
+72
+68
+232
+78
+78
+238
+74
+75
+236
+63
+67
+235
+61
+63
+233
+59
+61
+229
+59
+59
+224
+60
+58
+217
+64
+56
+210
+63
+53
+202
+62
+49
+194
+60
+48
+189
+58
+48
+190
+63
+54
+175
+52
+44
+167
+49
+39
+187
+73
+63
+209
+99
+86
+214
+104
+91
+213
+101
+87
+195
+79
+66
+186
+62
+50
+186
+52
+41
+199
+55
+44
+214
+57
+48
+217
+53
+44
+223
+50
+43
+231
+54
+48
+226
+48
+44
+227
+52
+47
+226
+55
+47
+222
+55
+46
+224
+62
+49
+229
+67
+52
+228
+62
+48
+222
+52
+37
+229
+51
+41
+232
+47
+42
+240
+51
+47
+240
+46
+46
+239
+45
+46
+241
+48
+51
+242
+54
+55
+244
+64
+67
+246
+77
+82
+252
+89
+94
+233
+70
+75
+246
+81
+87
+216
+51
+55
+235
+70
+74
+221
+56
+60
+230
+65
+69
+216
+53
+56
+204
+44
+46
+207
+46
+51
+226
+70
+73
+210
+55
+59
+208
+55
+58
+185
+35
+37
+213
+59
+61
+217
+57
+59
+226
+60
+62
+232
+62
+65
+230
+55
+60
+223
+46
+54
+219
+42
+50
+224
+50
+59
+228
+61
+68
+238
+77
+83
+250
+95
+101
+255
+109
+115
+255
+106
+115
+248
+97
+106
+245
+91
+103
+246
+90
+104
+246
+92
+102
+244
+100
+100
+232
+90
+86
+232
+87
+84
+216
+64
+61
+207
+49
+48
+212
+52
+52
+211
+51
+51
+225
+67
+64
+227
+74
+69
+233
+82
+75
+234
+83
+76
+225
+74
+65
+217
+63
+55
+216
+57
+51
+219
+56
+49
+227
+51
+51
+243
+46
+55
+255
+48
+62
+255
+48
+61
+250
+42
+55
+252
+46
+58
+255
+59
+69
+255
+67
+72
+251
+65
+66
+227
+49
+47
+223
+52
+45
+221
+52
+45
+221
+53
+44
+226
+52
+45
+230
+51
+44
+237
+52
+47
+241
+52
+48
+244
+48
+50
+247
+47
+50
+249
+46
+49
+248
+45
+48
+246
+46
+46
+241
+47
+45
+235
+50
+45
+227
+55
+45
+216
+58
+47
+205
+62
+48
+181
+49
+37
+177
+55
+44
+178
+59
+53
+233
+115
+113
+255
+138
+138
+255
+135
+141
+255
+116
+132
+253
+104
+124
+243
+97
+116
+241
+92
+112
+244
+82
+106
+245
+68
+97
+251
+55
+93
+252
+56
+94
+245
+61
+95
+232
+78
+102
+188
+81
+91
+125
+57
+54
+94
+60
+48
+81
+68
+49
+91
+86
+64
+93
+100
+69
+101
+119
+77
+106
+133
+82
+114
+142
+91
+118
+148
+94
+121
+154
+97
+123
+158
+100
+120
+158
+97
+115
+155
+93
+112
+152
+89
+112
+153
+87
+113
+154
+88
+113
+154
+88
+116
+155
+92
+117
+156
+93
+121
+157
+95
+120
+159
+96
+120
+161
+95
+121
+162
+94
+122
+165
+94
+121
+164
+92
+120
+164
+89
+120
+164
+87
+121
+165
+86
+123
+167
+88
+127
+169
+95
+130
+172
+100
+132
+171
+104
+134
+168
+108
+135
+165
+111
+134
+162
+113
+128
+154
+109
+120
+145
+106
+112
+132
+104
+108
+128
+101
+101
+121
+96
+95
+80
+61
+95
+80
+61
+95
+80
+61
+95
+80
+61
+95
+80
+61
+95
+80
+61
+95
+80
+61
+95
+80
+61
+94
+79
+60
+94
+79
+60
+94
+79
+60
+94
+79
+60
+94
+79
+60
+94
+79
+60
+94
+79
+60
+95
+78
+58
+99
+81
+57
+99
+81
+57
+97
+80
+60
+93
+80
+64
+90
+80
+71
+92
+84
+82
+95
+90
+97
+97
+95
+109
+116
+114
+138
+121
+120
+152
+129
+128
+168
+131
+129
+176
+126
+126
+176
+121
+121
+175
+121
+117
+176
+119
+119
+181
+119
+124
+190
+120
+127
+195
+125
+133
+196
+130
+136
+196
+133
+138
+193
+141
+143
+191
+151
+150
+190
+160
+157
+188
+172
+167
+187
+182
+172
+180
+190
+179
+175
+200
+184
+169
+208
+190
+166
+214
+193
+162
+209
+187
+150
+208
+172
+136
+175
+111
+84
+174
+92
+71
+164
+71
+53
+168
+62
+48
+194
+71
+63
+224
+87
+81
+239
+87
+86
+241
+78
+79
+233
+64
+67
+234
+61
+63
+230
+60
+61
+226
+61
+59
+223
+61
+58
+215
+61
+53
+207
+59
+49
+201
+57
+48
+193
+56
+48
+193
+60
+53
+185
+58
+51
+184
+61
+53
+193
+79
+69
+199
+88
+77
+199
+93
+79
+209
+101
+88
+211
+99
+85
+194
+76
+62
+188
+58
+45
+197
+56
+46
+210
+57
+49
+215
+52
+45
+223
+50
+44
+231
+54
+48
+230
+52
+48
+225
+50
+45
+224
+53
+46
+227
+60
+51
+231
+67
+55
+230
+67
+52
+226
+58
+45
+223
+51
+37
+233
+52
+43
+229
+45
+37
+240
+48
+45
+240
+48
+45
+241
+52
+50
+242
+54
+53
+232
+46
+47
+226
+50
+52
+231
+66
+70
+247
+88
+93
+246
+87
+92
+255
+111
+117
+229
+68
+74
+235
+72
+77
+224
+60
+67
+254
+91
+96
+255
+109
+115
+220
+59
+64
+255
+123
+128
+255
+108
+112
+234
+81
+84
+211
+61
+63
+198
+48
+50
+215
+59
+62
+241
+72
+75
+235
+59
+62
+237
+56
+63
+246
+62
+70
+240
+56
+66
+230
+46
+56
+241
+64
+74
+255
+95
+103
+255
+110
+119
+255
+107
+114
+254
+100
+110
+245
+94
+103
+247
+95
+107
+253
+99
+111
+253
+95
+110
+246
+90
+101
+241
+93
+93
+227
+80
+73
+226
+74
+71
+213
+55
+52
+210
+47
+48
+217
+53
+52
+210
+48
+46
+216
+57
+53
+223
+68
+63
+227
+74
+68
+226
+73
+65
+217
+64
+56
+211
+54
+47
+214
+52
+47
+220
+55
+49
+232
+54
+54
+234
+39
+47
+252
+48
+60
+254
+50
+61
+247
+43
+54
+249
+48
+58
+255
+62
+69
+253
+63
+65
+236
+52
+52
+226
+51
+46
+224
+53
+46
+222
+54
+45
+223
+52
+44
+225
+51
+42
+232
+51
+44
+239
+52
+47
+244
+52
+49
+246
+48
+49
+247
+47
+50
+249
+46
+49
+248
+45
+48
+248
+46
+46
+242
+47
+45
+235
+50
+45
+227
+55
+45
+215
+57
+46
+209
+63
+50
+182
+48
+37
+178
+54
+44
+176
+54
+49
+232
+112
+111
+255
+135
+136
+255
+134
+142
+255
+110
+128
+252
+99
+120
+241
+94
+113
+242
+90
+111
+245
+81
+106
+246
+67
+97
+253
+57
+95
+253
+59
+96
+242
+67
+98
+225
+84
+103
+174
+82
+87
+98
+48
+39
+89
+68
+51
+74
+69
+47
+85
+83
+60
+88
+93
+63
+99
+115
+76
+105
+129
+81
+113
+139
+91
+118
+146
+95
+122
+152
+98
+124
+157
+100
+120
+156
+95
+114
+153
+90
+110
+151
+85
+110
+151
+85
+110
+151
+85
+111
+152
+86
+114
+153
+90
+116
+155
+92
+119
+155
+93
+119
+158
+93
+119
+158
+91
+120
+161
+91
+121
+163
+91
+119
+163
+88
+118
+162
+87
+118
+162
+85
+119
+163
+84
+121
+165
+88
+122
+164
+90
+126
+166
+95
+129
+166
+99
+127
+161
+100
+126
+156
+102
+123
+151
+102
+114
+140
+93
+105
+130
+88
+95
+117
+81
+92
+113
+82
+86
+107
+76
+92
+76
+60
+94
+78
+62
+96
+80
+64
+96
+80
+64
+95
+79
+63
+95
+79
+63
+95
+79
+63
+97
+81
+65
+98
+82
+66
+95
+79
+63
+93
+77
+61
+93
+77
+61
+97
+81
+65
+99
+83
+67
+98
+82
+66
+96
+81
+62
+100
+83
+63
+97
+80
+62
+93
+80
+64
+94
+81
+73
+91
+81
+80
+90
+83
+90
+101
+97
+112
+115
+113
+137
+121
+120
+154
+122
+124
+165
+126
+128
+177
+128
+129
+185
+125
+127
+186
+120
+122
+183
+114
+115
+180
+108
+111
+182
+116
+119
+198
+118
+124
+202
+128
+131
+202
+139
+141
+198
+150
+151
+195
+164
+164
+190
+178
+176
+187
+188
+185
+180
+203
+197
+181
+211
+204
+176
+217
+207
+172
+219
+207
+165
+220
+207
+163
+221
+209
+161
+217
+203
+156
+217
+194
+152
+209
+168
+136
+184
+128
+103
+161
+93
+70
+203
+122
+103
+216
+116
+101
+189
+72
+63
+216
+81
+78
+247
+99
+99
+233
+75
+76
+229
+63
+65
+225
+57
+57
+227
+59
+58
+226
+58
+57
+219
+55
+53
+216
+54
+49
+214
+59
+54
+203
+56
+49
+192
+53
+46
+199
+66
+59
+187
+60
+51
+191
+73
+63
+198
+88
+75
+185
+79
+65
+206
+100
+86
+209
+99
+84
+204
+88
+73
+197
+71
+57
+196
+58
+47
+205
+54
+45
+216
+55
+47
+225
+54
+47
+227
+52
+47
+223
+48
+45
+223
+50
+44
+224
+55
+48
+228
+61
+52
+224
+60
+48
+221
+55
+41
+223
+53
+40
+229
+55
+44
+228
+47
+36
+234
+47
+38
+236
+47
+41
+238
+49
+45
+238
+50
+48
+235
+52
+48
+232
+53
+49
+226
+54
+52
+215
+55
+57
+230
+74
+78
+245
+89
+93
+237
+78
+83
+215
+56
+61
+215
+54
+60
+249
+88
+96
+255
+126
+132
+255
+120
+128
+255
+107
+113
+255
+99
+107
+255
+102
+109
+255
+101
+107
+245
+92
+97
+242
+89
+92
+252
+91
+96
+255
+87
+90
+255
+70
+75
+249
+58
+66
+248
+57
+65
+243
+51
+62
+235
+45
+57
+234
+50
+62
+238
+62
+72
+252
+85
+95
+255
+97
+105
+255
+104
+114
+254
+103
+112
+251
+100
+109
+254
+100
+110
+255
+97
+111
+251
+94
+103
+237
+83
+83
+223
+70
+64
+214
+56
+53
+214
+52
+49
+215
+49
+49
+215
+47
+46
+216
+51
+49
+219
+57
+52
+225
+68
+61
+220
+66
+58
+217
+63
+55
+214
+60
+52
+215
+57
+48
+219
+56
+49
+224
+57
+51
+230
+54
+54
+240
+55
+60
+243
+52
+59
+243
+52
+59
+246
+52
+60
+245
+54
+59
+242
+53
+57
+235
+51
+51
+227
+49
+47
+222
+51
+44
+222
+53
+46
+223
+55
+46
+224
+53
+43
+228
+51
+43
+233
+50
+44
+239
+50
+44
+245
+50
+48
+247
+49
+50
+248
+48
+51
+250
+47
+50
+249
+46
+49
+249
+47
+47
+243
+48
+46
+236
+51
+46
+229
+55
+46
+224
+63
+53
+204
+56
+44
+191
+54
+44
+175
+47
+38
+184
+59
+55
+210
+88
+87
+255
+152
+154
+254
+123
+131
+255
+109
+128
+255
+102
+124
+246
+93
+114
+239
+81
+104
+241
+72
+101
+249
+68
+101
+253
+61
+100
+245
+59
+96
+242
+79
+108
+209
+84
+100
+137
+61
+63
+80
+44
+32
+69
+58
+38
+68
+70
+46
+77
+77
+53
+90
+94
+67
+91
+105
+69
+99
+120
+77
+113
+136
+90
+120
+146
+98
+120
+150
+96
+116
+149
+92
+114
+150
+89
+113
+152
+89
+108
+149
+83
+109
+150
+82
+110
+151
+83
+111
+152
+84
+114
+153
+88
+116
+155
+90
+117
+156
+93
+117
+156
+91
+116
+155
+88
+116
+157
+87
+118
+160
+88
+119
+161
+87
+118
+162
+87
+118
+162
+85
+117
+161
+84
+116
+160
+83
+123
+165
+91
+123
+163
+93
+122
+158
+94
+117
+151
+91
+109
+139
+85
+98
+126
+77
+88
+114
+67
+83
+106
+62
+63
+85
+46
+63
+85
+47
+62
+84
+46
+91
+75
+59
+94
+78
+62
+96
+80
+64
+96
+80
+64
+96
+80
+64
+95
+79
+63
+96
+80
+64
+97
+81
+65
+98
+82
+66
+96
+80
+64
+95
+79
+63
+96
+80
+64
+98
+82
+66
+99
+83
+67
+98
+82
+66
+96
+80
+64
+102
+86
+71
+95
+81
+70
+92
+79
+71
+94
+84
+83
+97
+90
+97
+100
+96
+111
+109
+107
+131
+118
+119
+150
+119
+121
+162
+123
+125
+174
+125
+127
+184
+120
+124
+185
+113
+117
+181
+107
+112
+180
+108
+111
+182
+110
+113
+190
+117
+119
+206
+124
+126
+211
+137
+137
+209
+152
+152
+206
+168
+167
+199
+184
+182
+193
+201
+197
+186
+211
+206
+177
+219
+214
+172
+226
+219
+167
+231
+222
+167
+230
+221
+164
+228
+219
+164
+226
+216
+163
+219
+209
+158
+212
+199
+154
+212
+188
+154
+189
+155
+128
+170
+124
+100
+199
+138
+119
+202
+125
+109
+182
+86
+74
+211
+96
+91
+246
+114
+112
+236
+90
+91
+231
+75
+76
+226
+63
+64
+228
+62
+62
+233
+63
+64
+229
+59
+59
+224
+54
+54
+219
+54
+52
+214
+61
+56
+201
+56
+51
+202
+63
+56
+185
+54
+46
+184
+62
+51
+189
+75
+64
+182
+72
+59
+200
+93
+77
+221
+111
+96
+212
+96
+81
+198
+72
+58
+189
+53
+41
+196
+48
+38
+212
+54
+45
+220
+53
+45
+219
+48
+41
+226
+53
+49
+229
+57
+53
+228
+61
+55
+224
+60
+51
+220
+56
+46
+219
+53
+41
+223
+52
+42
+227
+53
+42
+236
+55
+46
+237
+53
+43
+237
+50
+43
+235
+48
+43
+231
+48
+44
+227
+50
+44
+225
+52
+46
+221
+53
+50
+214
+56
+55
+216
+62
+64
+228
+74
+76
+243
+87
+91
+250
+94
+98
+252
+92
+100
+254
+93
+101
+255
+97
+105
+240
+79
+87
+235
+74
+82
+238
+78
+86
+252
+92
+100
+255
+104
+111
+255
+101
+107
+244
+89
+95
+242
+79
+84
+236
+53
+58
+239
+45
+53
+241
+44
+54
+244
+47
+57
+238
+40
+53
+228
+34
+45
+227
+41
+54
+234
+57
+67
+251
+81
+90
+253
+92
+100
+255
+100
+108
+255
+101
+109
+255
+102
+110
+255
+101
+109
+252
+92
+104
+242
+82
+90
+229
+69
+69
+222
+60
+55
+219
+54
+52
+222
+54
+51
+223
+53
+53
+220
+51
+48
+218
+50
+47
+219
+54
+50
+224
+62
+57
+219
+62
+55
+216
+59
+52
+215
+58
+51
+219
+56
+49
+223
+56
+50
+229
+57
+53
+231
+58
+54
+233
+57
+59
+234
+55
+58
+235
+55
+58
+238
+55
+57
+238
+55
+57
+236
+54
+53
+229
+51
+49
+223
+50
+44
+220
+51
+44
+221
+54
+45
+223
+55
+44
+226
+54
+44
+229
+50
+43
+234
+49
+44
+242
+49
+44
+245
+50
+48
+247
+49
+50
+247
+48
+51
+250
+47
+50
+249
+46
+49
+247
+47
+47
+243
+48
+46
+236
+51
+46
+229
+55
+46
+223
+60
+51
+212
+61
+50
+194
+56
+46
+182
+49
+42
+183
+55
+52
+216
+90
+91
+255
+144
+147
+251
+115
+125
+254
+103
+122
+254
+94
+118
+247
+87
+111
+244
+80
+105
+246
+71
+102
+246
+65
+98
+250
+61
+99
+241
+66
+99
+227
+81
+104
+183
+76
+86
+119
+60
+56
+76
+50
+35
+62
+57
+35
+61
+65
+40
+71
+71
+47
+80
+83
+56
+88
+99
+65
+96
+114
+74
+110
+131
+88
+117
+143
+95
+118
+147
+93
+116
+147
+88
+113
+147
+86
+112
+148
+84
+107
+146
+79
+107
+148
+80
+108
+149
+81
+109
+150
+82
+112
+151
+86
+114
+153
+88
+115
+154
+91
+115
+154
+89
+116
+155
+88
+117
+157
+87
+117
+159
+87
+117
+159
+87
+116
+158
+84
+114
+158
+81
+113
+157
+82
+112
+156
+81
+110
+152
+80
+108
+148
+78
+104
+140
+76
+98
+129
+70
+88
+117
+63
+78
+105
+54
+70
+93
+47
+64
+87
+43
+64
+87
+45
+64
+87
+45
+64
+87
+45
+89
+76
+60
+91
+78
+62
+94
+81
+65
+94
+81
+65
+94
+81
+65
+94
+81
+65
+95
+82
+66
+96
+83
+67
+97
+84
+68
+96
+83
+67
+95
+82
+66
+96
+83
+67
+97
+84
+68
+97
+84
+68
+96
+83
+67
+94
+80
+67
+98
+85
+77
+92
+81
+77
+91
+81
+82
+99
+89
+98
+107
+100
+116
+113
+109
+132
+118
+117
+149
+121
+123
+164
+121
+123
+172
+121
+126
+182
+120
+124
+187
+110
+115
+181
+101
+105
+176
+96
+103
+175
+106
+110
+184
+114
+117
+196
+125
+125
+213
+135
+133
+217
+151
+148
+217
+169
+167
+216
+187
+185
+209
+203
+201
+202
+220
+215
+193
+229
+224
+184
+233
+228
+173
+237
+231
+169
+240
+232
+167
+237
+229
+166
+231
+225
+167
+226
+219
+165
+215
+207
+160
+203
+196
+154
+185
+174
+144
+170
+154
+129
+156
+130
+107
+171
+130
+112
+168
+110
+96
+158
+81
+71
+187
+93
+85
+222
+109
+105
+247
+117
+117
+238
+96
+95
+227
+74
+76
+226
+66
+68
+234
+65
+68
+235
+62
+64
+231
+57
+58
+224
+54
+54
+223
+61
+58
+212
+59
+54
+212
+65
+58
+194
+55
+48
+183
+55
+44
+183
+62
+51
+174
+61
+47
+182
+70
+56
+219
+106
+92
+223
+105
+91
+217
+91
+77
+202
+66
+54
+197
+50
+40
+209
+52
+43
+217
+54
+45
+217
+50
+44
+222
+53
+50
+233
+65
+62
+236
+71
+67
+224
+61
+54
+213
+50
+41
+213
+49
+39
+218
+50
+39
+222
+48
+37
+230
+52
+42
+232
+49
+41
+231
+46
+41
+230
+47
+41
+227
+50
+44
+226
+55
+47
+225
+61
+52
+224
+66
+57
+198
+45
+40
+202
+52
+51
+220
+68
+67
+240
+86
+88
+250
+94
+98
+247
+90
+97
+243
+83
+91
+241
+81
+91
+231
+69
+80
+232
+70
+81
+237
+77
+87
+251
+91
+101
+255
+107
+116
+255
+109
+115
+242
+87
+93
+225
+60
+66
+232
+47
+53
+242
+45
+52
+250
+50
+60
+251
+51
+62
+244
+44
+57
+236
+40
+52
+243
+55
+69
+255
+76
+87
+245
+74
+83
+244
+80
+87
+247
+87
+95
+252
+95
+102
+255
+100
+107
+255
+97
+105
+246
+82
+89
+232
+67
+73
+222
+57
+55
+222
+55
+49
+227
+55
+53
+233
+60
+56
+235
+59
+59
+230
+57
+53
+225
+53
+49
+221
+54
+48
+221
+58
+51
+217
+59
+50
+215
+57
+48
+215
+57
+48
+220
+55
+49
+225
+56
+51
+231
+58
+54
+233
+60
+56
+227
+57
+57
+227
+57
+57
+229
+57
+55
+231
+57
+56
+232
+56
+56
+230
+55
+52
+225
+52
+48
+219
+50
+43
+218
+54
+45
+219
+55
+45
+222
+56
+44
+226
+54
+44
+231
+50
+41
+235
+48
+41
+243
+48
+44
+247
+49
+48
+245
+49
+50
+245
+49
+51
+248
+48
+50
+247
+47
+49
+247
+47
+47
+242
+48
+46
+238
+51
+46
+231
+54
+46
+221
+57
+48
+220
+68
+57
+199
+56
+48
+187
+52
+46
+181
+47
+46
+228
+95
+98
+255
+131
+136
+248
+108
+119
+252
+99
+120
+251
+88
+115
+248
+81
+109
+251
+78
+108
+250
+69
+102
+243
+59
+93
+239
+61
+95
+233
+74
+102
+210
+85
+103
+155
+68
+74
+107
+60
+52
+79
+62
+44
+62
+60
+39
+59
+63
+40
+70
+68
+47
+72
+72
+48
+81
+92
+60
+89
+107
+69
+103
+124
+81
+114
+137
+91
+116
+143
+90
+113
+144
+85
+109
+143
+82
+107
+143
+79
+105
+144
+77
+105
+145
+75
+105
+146
+76
+107
+148
+80
+109
+150
+84
+110
+151
+85
+112
+151
+88
+113
+152
+87
+117
+156
+89
+117
+157
+87
+116
+156
+85
+114
+156
+84
+112
+154
+82
+109
+151
+77
+107
+149
+77
+106
+148
+76
+101
+141
+71
+97
+136
+69
+91
+127
+65
+85
+116
+59
+76
+105
+51
+69
+96
+45
+65
+88
+42
+62
+85
+39
+67
+93
+48
+68
+94
+49
+69
+95
+50
+87
+74
+58
+90
+77
+61
+92
+79
+63
+94
+81
+65
+93
+80
+64
+94
+81
+65
+95
+82
+66
+97
+84
+68
+96
+83
+67
+96
+83
+67
+96
+83
+67
+97
+84
+68
+97
+84
+68
+96
+83
+67
+95
+82
+66
+92
+80
+68
+90
+79
+77
+90
+81
+86
+98
+88
+99
+106
+99
+115
+113
+109
+134
+118
+117
+149
+120
+122
+163
+122
+124
+173
+119
+124
+180
+115
+121
+183
+109
+114
+180
+98
+105
+175
+93
+100
+172
+97
+103
+177
+108
+114
+190
+120
+123
+202
+137
+138
+221
+149
+146
+225
+164
+162
+225
+182
+181
+225
+199
+196
+217
+213
+209
+208
+225
+220
+198
+231
+227
+189
+235
+229
+179
+238
+233
+175
+238
+232
+174
+233
+226
+171
+227
+219
+170
+218
+211
+167
+203
+195
+158
+188
+182
+150
+166
+164
+139
+157
+152
+132
+150
+134
+118
+155
+127
+113
+155
+113
+99
+156
+98
+87
+181
+104
+96
+208
+113
+109
+251
+139
+137
+243
+118
+116
+232
+92
+93
+229
+76
+78
+229
+69
+71
+234
+65
+68
+234
+61
+63
+232
+60
+60
+223
+58
+56
+219
+60
+56
+222
+69
+63
+211
+67
+59
+195
+58
+48
+186
+58
+47
+176
+54
+41
+167
+49
+35
+191
+73
+59
+219
+97
+82
+234
+107
+92
+219
+83
+69
+201
+58
+44
+204
+52
+39
+212
+54
+43
+215
+52
+45
+217
+52
+50
+241
+77
+75
+254
+90
+88
+237
+75
+70
+217
+56
+48
+214
+51
+42
+219
+52
+43
+222
+50
+40
+223
+46
+38
+225
+44
+37
+225
+44
+37
+222
+45
+37
+220
+49
+41
+218
+54
+44
+217
+59
+48
+215
+63
+52
+194
+47
+39
+196
+52
+44
+206
+58
+54
+217
+67
+66
+223
+70
+72
+224
+69
+73
+228
+71
+78
+234
+77
+86
+241
+81
+93
+246
+86
+98
+247
+87
+97
+248
+91
+100
+255
+102
+111
+255
+107
+115
+241
+86
+94
+219
+56
+61
+233
+50
+55
+240
+47
+52
+241
+46
+54
+240
+43
+52
+235
+37
+50
+235
+41
+52
+249
+62
+73
+255
+83
+95
+237
+63
+73
+232
+65
+73
+234
+71
+76
+242
+81
+86
+255
+90
+96
+255
+88
+93
+244
+71
+77
+227
+54
+56
+225
+53
+51
+228
+55
+51
+234
+59
+56
+242
+64
+62
+244
+64
+63
+239
+61
+59
+230
+57
+53
+224
+55
+50
+221
+56
+50
+218
+57
+49
+217
+56
+48
+217
+56
+48
+220
+55
+49
+227
+55
+51
+232
+57
+54
+233
+58
+55
+226
+58
+55
+224
+59
+57
+227
+58
+55
+230
+58
+56
+231
+58
+54
+229
+56
+52
+224
+53
+46
+218
+51
+43
+218
+54
+44
+219
+55
+45
+222
+56
+44
+226
+54
+44
+231
+50
+41
+235
+48
+41
+242
+47
+43
+246
+48
+47
+244
+50
+50
+244
+50
+51
+247
+49
+50
+246
+48
+49
+246
+48
+47
+242
+48
+46
+238
+51
+46
+231
+54
+46
+220
+56
+47
+224
+70
+60
+201
+57
+49
+190
+51
+46
+182
+44
+44
+238
+102
+106
+255
+121
+128
+248
+103
+116
+253
+100
+121
+250
+86
+113
+251
+76
+107
+255
+72
+106
+252
+64
+99
+239
+55
+89
+232
+63
+94
+224
+82
+104
+195
+89
+101
+135
+67
+66
+101
+67
+55
+90
+79
+59
+72
+70
+49
+65
+67
+45
+76
+71
+51
+70
+68
+45
+76
+85
+54
+83
+99
+62
+98
+116
+76
+108
+131
+85
+112
+139
+88
+110
+141
+82
+107
+141
+80
+105
+142
+75
+103
+143
+73
+104
+144
+74
+104
+145
+75
+106
+147
+77
+107
+148
+80
+109
+150
+84
+111
+150
+87
+112
+151
+86
+116
+155
+88
+115
+155
+85
+113
+153
+83
+111
+151
+80
+106
+147
+77
+103
+144
+74
+101
+142
+72
+100
+141
+71
+96
+135
+68
+93
+129
+65
+87
+121
+61
+82
+113
+56
+77
+105
+54
+76
+102
+54
+78
+101
+55
+79
+102
+56
+77
+103
+56
+78
+104
+56
+79
+105
+58
+85
+72
+56
+87
+74
+58
+91
+78
+62
+92
+79
+63
+93
+80
+64
+93
+80
+64
+95
+82
+66
+97
+84
+68
+95
+82
+66
+96
+83
+67
+97
+84
+68
+97
+84
+68
+96
+83
+67
+95
+82
+66
+95
+82
+66
+94
+81
+73
+86
+77
+82
+95
+88
+104
+110
+102
+123
+116
+112
+137
+120
+116
+151
+120
+119
+161
+120
+122
+171
+121
+123
+180
+115
+121
+183
+106
+114
+179
+96
+103
+173
+91
+99
+171
+95
+103
+176
+106
+114
+187
+118
+124
+198
+128
+132
+206
+147
+149
+223
+158
+159
+224
+173
+174
+228
+187
+189
+228
+203
+201
+225
+212
+211
+217
+221
+218
+209
+225
+223
+202
+229
+224
+194
+230
+226
+191
+228
+222
+188
+224
+215
+182
+218
+208
+181
+206
+198
+175
+190
+182
+163
+174
+167
+151
+155
+153
+140
+143
+141
+128
+140
+132
+121
+141
+123
+113
+147
+117
+107
+157
+114
+105
+169
+109
+101
+188
+111
+105
+230
+137
+132
+237
+129
+126
+240
+116
+114
+240
+102
+100
+238
+88
+89
+237
+79
+78
+235
+69
+69
+233
+65
+64
+227
+58
+55
+224
+59
+55
+228
+66
+61
+222
+69
+63
+204
+60
+51
+198
+61
+51
+196
+66
+53
+175
+49
+35
+174
+48
+34
+199
+73
+59
+220
+88
+75
+214
+78
+64
+204
+61
+47
+206
+56
+42
+208
+54
+42
+209
+51
+42
+214
+52
+50
+245
+85
+85
+255
+107
+104
+250
+93
+88
+227
+68
+62
+220
+59
+51
+223
+59
+50
+227
+56
+48
+226
+52
+45
+227
+50
+44
+226
+49
+43
+221
+48
+41
+212
+48
+39
+205
+47
+36
+198
+47
+36
+194
+48
+35
+197
+57
+44
+192
+52
+39
+193
+51
+41
+203
+58
+53
+215
+67
+65
+219
+69
+71
+219
+66
+71
+218
+64
+72
+225
+69
+80
+236
+80
+91
+242
+86
+97
+242
+86
+97
+249
+93
+104
+255
+101
+109
+241
+87
+95
+222
+63
+68
+233
+59
+60
+237
+53
+55
+237
+51
+56
+239
+50
+56
+242
+50
+61
+247
+57
+67
+255
+72
+83
+255
+86
+95
+229
+53
+63
+222
+51
+59
+223
+54
+59
+234
+65
+68
+249
+74
+79
+253
+72
+77
+244
+59
+65
+233
+49
+51
+232
+53
+49
+235
+57
+53
+239
+60
+56
+242
+60
+57
+243
+59
+57
+240
+58
+55
+233
+55
+51
+226
+55
+48
+223
+59
+50
+220
+59
+49
+219
+58
+48
+220
+57
+48
+223
+56
+50
+228
+55
+51
+232
+54
+52
+233
+55
+53
+230
+58
+56
+228
+59
+56
+230
+58
+56
+232
+58
+57
+232
+59
+55
+230
+57
+53
+225
+54
+47
+220
+51
+44
+219
+55
+45
+220
+56
+46
+223
+57
+45
+225
+55
+42
+229
+51
+41
+233
+49
+41
+241
+48
+41
+244
+49
+45
+243
+51
+50
+241
+51
+51
+244
+50
+50
+244
+48
+49
+244
+49
+47
+242
+48
+46
+238
+51
+46
+231
+54
+46
+222
+55
+47
+224
+67
+58
+202
+55
+48
+192
+49
+45
+192
+49
+51
+247
+106
+112
+255
+113
+122
+249
+103
+116
+248
+95
+116
+246
+82
+109
+252
+68
+102
+255
+63
+100
+255
+59
+99
+242
+58
+94
+228
+71
+100
+216
+91
+109
+171
+86
+91
+119
+69
+62
+100
+74
+61
+97
+89
+70
+84
+79
+59
+75
+73
+52
+80
+73
+54
+71
+69
+46
+71
+80
+51
+76
+92
+56
+90
+108
+70
+102
+124
+78
+109
+133
+83
+109
+138
+82
+108
+140
+77
+104
+141
+74
+102
+142
+72
+103
+143
+72
+103
+145
+73
+105
+146
+76
+106
+147
+79
+108
+149
+83
+110
+149
+86
+111
+150
+85
+116
+153
+86
+115
+152
+85
+110
+149
+82
+106
+146
+76
+102
+143
+75
+99
+140
+72
+97
+138
+70
+95
+136
+70
+90
+129
+66
+88
+124
+63
+83
+116
+59
+80
+110
+56
+79
+107
+58
+82
+108
+61
+87
+110
+64
+90
+113
+67
+85
+111
+63
+85
+112
+61
+85
+111
+63
+82
+69
+53
+85
+72
+56
+88
+75
+59
+90
+77
+61
+91
+78
+62
+92
+79
+63
+94
+81
+65
+96
+83
+67
+96
+83
+67
+97
+84
+68
+97
+84
+68
+97
+84
+68
+96
+83
+67
+96
+83
+67
+98
+85
+69
+97
+86
+80
+94
+86
+99
+106
+101
+124
+121
+117
+144
+125
+121
+154
+122
+121
+161
+120
+121
+169
+118
+121
+176
+115
+119
+180
+106
+114
+179
+99
+106
+176
+91
+99
+171
+93
+101
+174
+104
+112
+185
+118
+126
+199
+129
+135
+209
+136
+141
+209
+153
+157
+220
+163
+166
+221
+175
+179
+226
+187
+191
+228
+198
+199
+227
+207
+206
+224
+212
+211
+219
+215
+213
+214
+217
+214
+209
+217
+213
+204
+215
+208
+198
+210
+201
+192
+204
+195
+190
+197
+186
+184
+180
+168
+168
+163
+155
+153
+141
+137
+134
+124
+121
+116
+124
+116
+113
+120
+107
+101
+130
+107
+101
+143
+110
+103
+144
+97
+91
+157
+96
+91
+192
+115
+109
+215
+122
+117
+237
+128
+123
+249
+126
+121
+253
+115
+112
+250
+100
+99
+243
+85
+84
+237
+73
+71
+237
+68
+63
+234
+62
+58
+225
+60
+54
+224
+65
+59
+209
+58
+49
+211
+67
+58
+221
+84
+74
+194
+62
+50
+184
+54
+41
+189
+57
+44
+194
+61
+46
+200
+63
+47
+207
+66
+49
+215
+67
+53
+214
+64
+49
+209
+55
+45
+208
+50
+47
+234
+76
+77
+250
+95
+93
+242
+87
+83
+223
+68
+63
+217
+58
+52
+219
+56
+49
+224
+55
+48
+230
+57
+51
+231
+57
+50
+231
+57
+50
+226
+58
+49
+218
+57
+47
+209
+57
+44
+202
+56
+43
+196
+56
+41
+176
+40
+24
+184
+51
+34
+200
+64
+50
+211
+73
+62
+210
+68
+64
+203
+59
+58
+204
+55
+59
+207
+58
+64
+211
+57
+67
+227
+73
+83
+237
+86
+95
+240
+89
+98
+244
+93
+102
+246
+95
+104
+232
+83
+89
+218
+63
+67
+229
+64
+62
+236
+63
+59
+243
+64
+67
+253
+70
+74
+255
+76
+84
+255
+81
+89
+255
+84
+93
+255
+85
+94
+226
+51
+58
+221
+46
+53
+221
+46
+51
+231
+55
+58
+245
+60
+65
+249
+58
+63
+248
+52
+56
+244
+48
+50
+237
+52
+50
+239
+57
+53
+240
+56
+54
+237
+52
+50
+235
+50
+48
+234
+50
+48
+231
+52
+48
+225
+52
+46
+227
+60
+52
+224
+61
+52
+223
+60
+51
+222
+59
+50
+225
+56
+51
+228
+55
+51
+232
+52
+51
+232
+52
+51
+232
+56
+56
+231
+57
+56
+232
+56
+56
+235
+57
+57
+235
+57
+55
+233
+55
+53
+226
+53
+47
+222
+51
+44
+219
+55
+45
+220
+56
+44
+221
+58
+43
+223
+55
+42
+227
+50
+40
+231
+48
+40
+239
+48
+40
+242
+49
+44
+241
+52
+50
+240
+52
+51
+243
+51
+50
+243
+49
+49
+243
+49
+47
+241
+49
+46
+236
+51
+46
+231
+54
+46
+224
+57
+49
+217
+60
+51
+204
+55
+49
+193
+48
+45
+209
+64
+67
+255
+110
+117
+253
+107
+117
+247
+99
+113
+237
+84
+105
+241
+74
+102
+250
+62
+97
+255
+55
+94
+255
+55
+98
+248
+64
+100
+227
+79
+105
+200
+92
+105
+139
+71
+70
+106
+70
+58
+93
+76
+60
+93
+86
+67
+88
+81
+62
+81
+74
+55
+79
+71
+52
+73
+68
+46
+68
+74
+46
+71
+85
+50
+83
+99
+62
+94
+115
+72
+103
+127
+77
+106
+135
+79
+106
+138
+75
+103
+140
+71
+103
+140
+70
+102
+142
+71
+102
+144
+72
+103
+144
+74
+105
+146
+78
+107
+148
+82
+109
+148
+85
+109
+148
+85
+113
+149
+85
+111
+148
+81
+106
+145
+78
+103
+142
+75
+99
+140
+72
+96
+137
+69
+95
+136
+70
+94
+134
+71
+92
+130
+69
+91
+126
+68
+87
+120
+65
+86
+114
+63
+85
+111
+64
+89
+112
+66
+93
+114
+71
+94
+117
+71
+90
+114
+66
+88
+115
+64
+88
+115
+64
+78
+66
+50
+81
+69
+53
+85
+73
+57
+87
+75
+59
+88
+76
+60
+90
+78
+62
+92
+80
+64
+94
+82
+66
+97
+85
+69
+98
+86
+70
+98
+86
+70
+97
+85
+69
+95
+83
+67
+97
+85
+69
+102
+90
+74
+104
+93
+89
+110
+103
+119
+117
+112
+142
+124
+120
+153
+123
+121
+160
+119
+120
+166
+118
+119
+173
+112
+117
+175
+106
+111
+175
+97
+104
+172
+94
+102
+174
+95
+103
+176
+101
+109
+182
+112
+120
+192
+125
+133
+205
+137
+144
+216
+143
+151
+214
+153
+161
+210
+161
+168
+210
+170
+178
+217
+180
+186
+222
+186
+191
+223
+192
+193
+224
+195
+195
+223
+199
+197
+221
+198
+194
+217
+197
+192
+212
+193
+186
+204
+188
+179
+196
+187
+176
+193
+181
+168
+186
+166
+153
+170
+150
+139
+153
+139
+132
+139
+117
+111
+113
+119
+110
+111
+115
+101
+101
+122
+102
+101
+137
+109
+106
+133
+94
+89
+150
+99
+95
+155
+90
+84
+183
+103
+96
+214
+117
+110
+237
+124
+118
+252
+125
+119
+255
+120
+115
+254
+106
+102
+249
+92
+87
+252
+83
+78
+245
+72
+66
+230
+61
+54
+231
+68
+61
+216
+59
+52
+219
+71
+61
+234
+92
+82
+197
+59
+48
+196
+60
+48
+189
+55
+43
+190
+54
+40
+199
+62
+46
+209
+68
+51
+212
+66
+51
+212
+65
+49
+215
+65
+51
+210
+56
+54
+216
+62
+62
+221
+67
+67
+220
+66
+64
+214
+61
+55
+213
+56
+49
+216
+55
+47
+222
+55
+47
+229
+58
+51
+230
+57
+51
+229
+58
+51
+226
+59
+51
+219
+62
+53
+213
+65
+53
+209
+69
+56
+204
+71
+54
+174
+45
+24
+188
+59
+37
+205
+74
+56
+209
+76
+61
+198
+61
+53
+187
+48
+43
+192
+48
+48
+202
+57
+62
+215
+65
+74
+226
+76
+85
+236
+86
+97
+240
+90
+101
+239
+92
+100
+236
+89
+97
+223
+76
+82
+212
+62
+64
+209
+52
+47
+218
+53
+47
+227
+57
+57
+237
+63
+64
+245
+66
+72
+247
+68
+74
+244
+64
+73
+239
+62
+70
+228
+51
+59
+225
+48
+54
+230
+49
+54
+240
+55
+60
+247
+54
+57
+249
+49
+52
+254
+45
+50
+253
+49
+52
+239
+50
+48
+240
+57
+53
+240
+55
+52
+236
+48
+46
+232
+44
+42
+231
+48
+44
+230
+51
+46
+224
+51
+44
+228
+61
+53
+224
+61
+52
+224
+61
+52
+224
+60
+51
+227
+58
+53
+230
+57
+53
+234
+54
+53
+236
+54
+53
+236
+53
+55
+236
+53
+55
+237
+53
+55
+238
+54
+56
+238
+54
+54
+235
+53
+52
+228
+50
+46
+222
+49
+43
+222
+55
+46
+221
+57
+45
+221
+58
+43
+223
+55
+42
+225
+52
+38
+230
+49
+38
+237
+49
+40
+241
+49
+44
+240
+52
+50
+238
+53
+51
+241
+52
+50
+242
+50
+49
+243
+49
+47
+241
+49
+46
+236
+51
+46
+231
+54
+46
+226
+59
+51
+210
+52
+43
+210
+58
+53
+198
+50
+48
+231
+85
+88
+255
+112
+120
+249
+99
+110
+241
+90
+105
+227
+75
+96
+239
+72
+102
+253
+58
+98
+255
+49
+93
+255
+54
+98
+253
+67
+104
+219
+77
+101
+177
+80
+89
+106
+53
+47
+94
+71
+55
+88
+75
+58
+85
+78
+59
+89
+81
+62
+85
+74
+56
+76
+64
+48
+73
+68
+48
+64
+70
+44
+65
+79
+46
+75
+91
+54
+88
+106
+64
+98
+120
+71
+102
+129
+74
+104
+136
+73
+102
+139
+70
+101
+138
+68
+99
+139
+66
+99
+141
+69
+101
+142
+72
+103
+144
+76
+104
+145
+79
+105
+145
+82
+107
+146
+83
+110
+146
+82
+108
+144
+80
+104
+143
+78
+100
+139
+74
+97
+138
+72
+95
+136
+70
+95
+135
+72
+95
+135
+72
+95
+133
+72
+95
+130
+72
+93
+126
+71
+93
+121
+70
+93
+119
+72
+96
+119
+75
+99
+120
+79
+99
+122
+78
+92
+116
+66
+90
+117
+64
+90
+117
+64
+74
+67
+51
+77
+70
+54
+81
+72
+57
+84
+75
+60
+87
+75
+61
+89
+77
+63
+92
+79
+63
+94
+81
+65
+100
+87
+70
+101
+88
+71
+100
+88
+72
+98
+86
+70
+95
+85
+73
+97
+87
+77
+103
+94
+85
+108
+99
+102
+119
+114
+137
+121
+117
+154
+120
+118
+158
+116
+115
+159
+114
+114
+164
+116
+117
+173
+108
+112
+175
+98
+103
+169
+90
+97
+169
+95
+101
+175
+102
+108
+184
+109
+115
+191
+118
+124
+200
+129
+135
+211
+143
+147
+221
+151
+156
+222
+155
+161
+211
+160
+167
+209
+169
+174
+216
+174
+179
+221
+177
+180
+223
+178
+179
+223
+180
+179
+223
+182
+179
+222
+181
+176
+217
+179
+172
+213
+174
+166
+203
+171
+161
+196
+170
+159
+193
+164
+153
+185
+153
+140
+170
+136
+126
+150
+126
+120
+132
+102
+97
+103
+108
+99
+102
+100
+88
+90
+108
+90
+88
+124
+99
+95
+123
+86
+80
+147
+98
+93
+140
+77
+70
+162
+85
+77
+187
+97
+88
+212
+108
+99
+238
+121
+114
+255
+129
+122
+255
+124
+119
+255
+112
+106
+254
+97
+92
+247
+84
+79
+233
+71
+66
+238
+79
+73
+221
+66
+61
+222
+71
+64
+234
+87
+79
+186
+44
+34
+190
+49
+39
+190
+52
+39
+199
+62
+46
+209
+69
+54
+203
+62
+45
+193
+50
+34
+202
+55
+39
+219
+69
+55
+222
+69
+63
+211
+57
+55
+204
+51
+46
+205
+53
+48
+212
+59
+53
+215
+61
+53
+221
+60
+52
+225
+61
+52
+228
+59
+52
+228
+57
+50
+222
+53
+46
+215
+52
+43
+207
+53
+41
+202
+56
+43
+197
+60
+44
+194
+63
+45
+212
+83
+62
+200
+71
+50
+189
+60
+41
+190
+58
+45
+195
+61
+50
+196
+59
+53
+194
+55
+52
+194
+52
+51
+220
+75
+78
+221
+76
+81
+225
+80
+85
+229
+84
+89
+232
+89
+93
+229
+86
+88
+220
+77
+79
+212
+67
+64
+203
+52
+43
+212
+54
+43
+218
+53
+47
+224
+52
+50
+228
+49
+52
+232
+49
+54
+233
+48
+56
+231
+46
+54
+238
+51
+62
+237
+50
+59
+244
+52
+63
+253
+56
+66
+255
+51
+62
+253
+41
+53
+255
+40
+51
+255
+46
+57
+248
+45
+51
+249
+53
+55
+249
+53
+57
+240
+46
+47
+235
+42
+43
+233
+48
+46
+232
+53
+49
+226
+53
+47
+227
+60
+52
+224
+61
+52
+224
+61
+52
+225
+61
+52
+228
+59
+54
+231
+58
+54
+235
+55
+54
+238
+54
+54
+236
+52
+54
+235
+51
+53
+236
+50
+53
+237
+51
+52
+237
+53
+53
+234
+52
+49
+227
+49
+45
+219
+48
+40
+222
+56
+44
+221
+58
+43
+221
+58
+43
+222
+56
+40
+224
+52
+38
+227
+51
+36
+233
+51
+38
+236
+52
+42
+238
+53
+48
+238
+53
+50
+240
+52
+50
+240
+51
+47
+242
+50
+47
+239
+50
+44
+235
+52
+44
+231
+54
+46
+228
+61
+52
+205
+47
+38
+215
+62
+57
+202
+52
+53
+249
+98
+103
+255
+112
+121
+246
+91
+105
+237
+80
+99
+228
+70
+93
+243
+72
+104
+255
+61
+101
+255
+50
+93
+255
+55
+97
+245
+71
+104
+201
+74
+93
+148
+66
+70
+83
+43
+35
+88
+72
+56
+84
+75
+58
+79
+72
+54
+89
+80
+63
+83
+74
+57
+69
+64
+45
+71
+70
+49
+61
+67
+39
+64
+74
+40
+73
+85
+49
+83
+100
+58
+95
+114
+69
+101
+125
+73
+103
+132
+74
+101
+136
+72
+99
+136
+67
+97
+137
+66
+98
+138
+67
+99
+141
+69
+101
+142
+72
+102
+143
+77
+104
+143
+80
+105
+144
+81
+108
+144
+80
+107
+144
+77
+102
+141
+74
+99
+138
+73
+97
+136
+71
+96
+135
+70
+96
+135
+72
+96
+134
+73
+94
+129
+71
+94
+127
+70
+95
+125
+71
+96
+124
+73
+97
+123
+75
+100
+123
+77
+102
+124
+78
+102
+126
+78
+93
+120
+67
+92
+121
+63
+93
+122
+66
+68
+66
+54
+70
+68
+56
+74
+70
+59
+80
+71
+62
+82
+72
+62
+87
+73
+62
+93
+77
+62
+95
+79
+63
+96
+81
+62
+97
+82
+63
+96
+83
+66
+95
+86
+71
+98
+89
+82
+103
+98
+95
+111
+106
+110
+115
+111
+126
+119
+113
+147
+122
+116
+160
+124
+121
+168
+121
+119
+169
+112
+112
+166
+103
+103
+163
+96
+97
+162
+92
+95
+164
+96
+98
+173
+102
+104
+181
+111
+112
+192
+121
+122
+204
+132
+130
+214
+141
+139
+223
+150
+146
+231
+156
+153
+232
+160
+158
+223
+161
+160
+218
+163
+162
+219
+164
+163
+220
+166
+163
+220
+165
+162
+219
+165
+160
+216
+164
+159
+213
+165
+158
+210
+163
+156
+207
+162
+154
+201
+162
+153
+198
+159
+150
+193
+153
+142
+184
+142
+131
+171
+131
+124
+155
+113
+111
+124
+104
+103
+108
+99
+95
+96
+102
+90
+90
+108
+89
+85
+115
+86
+80
+128
+85
+78
+143
+86
+79
+150
+82
+73
+169
+89
+80
+181
+88
+80
+192
+91
+83
+216
+107
+100
+235
+122
+114
+246
+131
+124
+255
+139
+134
+249
+117
+113
+255
+117
+115
+237
+95
+93
+223
+80
+76
+217
+69
+65
+239
+90
+84
+204
+55
+49
+197
+50
+42
+196
+54
+42
+195
+55
+40
+192
+55
+39
+195
+55
+38
+198
+57
+40
+202
+59
+43
+208
+60
+46
+213
+63
+49
+210
+56
+46
+214
+60
+50
+215
+63
+52
+211
+59
+48
+205
+53
+40
+205
+51
+39
+216
+58
+47
+226
+64
+53
+224
+57
+48
+225
+57
+48
+222
+55
+46
+215
+55
+43
+207
+55
+41
+201
+58
+42
+198
+63
+44
+196
+65
+47
+194
+61
+46
+198
+64
+52
+203
+69
+58
+205
+71
+60
+204
+67
+59
+197
+60
+52
+187
+50
+44
+182
+43
+38
+199
+60
+55
+208
+69
+66
+217
+79
+76
+224
+86
+83
+227
+89
+86
+225
+88
+82
+216
+79
+73
+208
+67
+58
+205
+58
+42
+213
+58
+40
+220
+56
+44
+227
+53
+46
+232
+46
+47
+237
+42
+50
+240
+40
+51
+244
+39
+54
+251
+44
+62
+250
+43
+63
+251
+42
+63
+253
+41
+63
+255
+39
+63
+255
+38
+63
+255
+36
+60
+255
+35
+60
+255
+35
+55
+255
+38
+56
+255
+42
+59
+254
+44
+57
+244
+44
+54
+237
+46
+53
+233
+53
+54
+232
+60
+58
+221
+56
+52
+221
+58
+51
+222
+59
+52
+224
+59
+53
+227
+58
+53
+230
+57
+53
+233
+55
+51
+235
+53
+52
+235
+51
+53
+236
+52
+54
+235
+53
+52
+233
+53
+52
+231
+53
+51
+226
+53
+47
+221
+53
+44
+219
+53
+41
+220
+56
+44
+219
+57
+42
+220
+57
+40
+222
+57
+38
+223
+56
+38
+226
+55
+37
+227
+54
+37
+230
+52
+38
+236
+53
+45
+237
+52
+47
+240
+53
+48
+241
+52
+46
+241
+53
+44
+237
+53
+43
+232
+54
+42
+228
+56
+44
+222
+58
+48
+212
+55
+46
+211
+58
+53
+215
+62
+64
+255
+109
+117
+255
+98
+113
+248
+85
+106
+241
+75
+99
+247
+79
+105
+236
+58
+90
+249
+57
+94
+255
+63
+103
+245
+64
+99
+230
+80
+107
+178
+73
+87
+97
+36
+35
+71
+43
+32
+65
+56
+39
+75
+68
+52
+82
+76
+60
+79
+73
+57
+66
+67
+49
+59
+68
+47
+60
+73
+47
+65
+72
+38
+69
+75
+37
+75
+83
+46
+83
+93
+56
+91
+107
+68
+97
+118
+75
+100
+126
+78
+100
+131
+74
+98
+134
+70
+96
+136
+66
+97
+137
+64
+99
+139
+66
+101
+141
+70
+104
+144
+74
+108
+144
+80
+109
+145
+81
+108
+145
+76
+105
+142
+72
+103
+140
+71
+102
+139
+72
+102
+138
+74
+101
+137
+73
+99
+133
+72
+97
+131
+71
+100
+131
+74
+100
+129
+73
+98
+127
+71
+99
+126
+71
+100
+127
+74
+100
+127
+72
+101
+126
+71
+97
+125
+67
+91
+123
+60
+92
+127
+61
+95
+130
+66
+61
+63
+52
+63
+65
+54
+70
+67
+60
+74
+69
+63
+80
+69
+63
+84
+71
+62
+91
+75
+62
+93
+77
+61
+96
+79
+59
+96
+81
+60
+94
+83
+65
+94
+86
+73
+99
+91
+88
+104
+99
+105
+110
+108
+121
+115
+111
+134
+116
+112
+149
+118
+112
+158
+116
+112
+162
+112
+109
+162
+103
+102
+159
+97
+97
+159
+93
+94
+161
+92
+92
+164
+101
+100
+176
+107
+106
+186
+116
+114
+197
+125
+123
+207
+134
+130
+217
+141
+137
+224
+148
+142
+230
+152
+147
+229
+155
+149
+221
+156
+151
+217
+157
+152
+218
+158
+153
+219
+158
+151
+218
+157
+150
+217
+156
+150
+214
+155
+149
+211
+158
+150
+210
+156
+148
+205
+156
+147
+200
+155
+147
+198
+154
+145
+192
+147
+138
+183
+136
+127
+170
+128
+121
+154
+115
+109
+123
+107
+101
+105
+100
+94
+94
+101
+91
+89
+107
+90
+83
+113
+86
+77
+124
+84
+74
+141
+84
+75
+157
+84
+75
+178
+91
+82
+187
+88
+82
+195
+88
+82
+211
+102
+97
+221
+114
+106
+224
+120
+111
+235
+126
+119
+251
+136
+133
+255
+135
+133
+247
+117
+115
+238
+103
+100
+227
+85
+83
+235
+90
+85
+199
+50
+44
+194
+47
+37
+197
+55
+41
+195
+55
+38
+192
+55
+37
+193
+56
+38
+196
+56
+39
+200
+59
+42
+207
+59
+45
+211
+61
+47
+213
+57
+44
+213
+57
+44
+211
+58
+44
+210
+58
+44
+209
+57
+43
+209
+57
+43
+212
+56
+43
+216
+56
+44
+223
+59
+49
+224
+57
+48
+220
+56
+46
+214
+56
+44
+207
+57
+42
+200
+57
+40
+193
+58
+38
+190
+57
+38
+190
+54
+42
+193
+56
+48
+198
+61
+53
+201
+64
+56
+202
+65
+57
+200
+63
+55
+197
+60
+52
+194
+57
+49
+191
+52
+45
+199
+62
+54
+209
+72
+64
+216
+79
+71
+218
+81
+73
+215
+78
+70
+204
+67
+59
+195
+55
+42
+202
+55
+37
+211
+56
+36
+221
+55
+41
+229
+52
+44
+237
+47
+47
+244
+43
+51
+249
+41
+55
+253
+40
+58
+255
+43
+64
+255
+42
+65
+255
+41
+65
+255
+38
+65
+255
+35
+64
+255
+33
+60
+255
+30
+61
+255
+29
+58
+255
+30
+57
+255
+31
+56
+255
+36
+58
+255
+41
+59
+247
+45
+57
+241
+50
+58
+234
+55
+58
+230
+60
+60
+220
+57
+52
+220
+58
+53
+222
+59
+52
+224
+59
+53
+227
+58
+53
+230
+57
+53
+233
+55
+51
+235
+53
+50
+235
+51
+53
+236
+52
+54
+235
+53
+52
+232
+54
+52
+228
+55
+49
+223
+54
+47
+220
+53
+44
+217
+53
+41
+219
+57
+42
+219
+57
+42
+220
+57
+40
+220
+57
+38
+222
+57
+38
+223
+56
+37
+225
+56
+37
+227
+54
+37
+231
+53
+43
+234
+51
+43
+235
+52
+44
+235
+53
+42
+235
+53
+42
+232
+54
+40
+228
+55
+41
+223
+55
+42
+221
+61
+49
+209
+52
+43
+207
+53
+51
+239
+84
+88
+255
+102
+114
+255
+91
+111
+241
+73
+98
+249
+76
+104
+248
+69
+99
+247
+64
+95
+244
+56
+91
+243
+62
+97
+239
+78
+109
+205
+76
+98
+139
+56
+64
+89
+41
+37
+69
+51
+39
+60
+54
+40
+62
+59
+44
+67
+64
+49
+67
+66
+48
+61
+64
+45
+56
+68
+46
+58
+73
+44
+60
+68
+29
+75
+80
+39
+92
+98
+60
+101
+111
+74
+104
+118
+82
+101
+122
+81
+100
+126
+79
+100
+130
+76
+97
+131
+70
+97
+134
+65
+97
+137
+64
+99
+140
+64
+103
+141
+68
+105
+142
+72
+107
+144
+77
+108
+145
+78
+108
+145
+75
+106
+144
+71
+104
+141
+72
+102
+139
+70
+103
+138
+74
+102
+137
+73
+102
+133
+74
+100
+131
+72
+102
+131
+75
+100
+129
+73
+100
+127
+72
+100
+128
+70
+101
+129
+71
+101
+129
+71
+102
+127
+69
+98
+126
+65
+93
+128
+62
+95
+132
+63
+98
+135
+66
+54
+57
+46
+58
+60
+49
+63
+63
+55
+68
+65
+58
+75
+66
+59
+79
+69
+60
+86
+72
+61
+89
+76
+60
+94
+79
+60
+92
+79
+60
+92
+83
+66
+94
+87
+77
+99
+93
+93
+104
+101
+108
+111
+109
+123
+115
+113
+137
+115
+111
+148
+113
+107
+153
+106
+102
+152
+99
+96
+149
+92
+91
+148
+90
+90
+152
+92
+93
+160
+92
+95
+166
+104
+106
+181
+110
+111
+191
+119
+120
+202
+127
+128
+210
+134
+132
+216
+138
+136
+220
+143
+139
+224
+145
+142
+221
+147
+144
+215
+147
+144
+211
+147
+144
+211
+147
+144
+211
+148
+142
+212
+147
+141
+211
+147
+140
+208
+146
+139
+206
+149
+140
+205
+147
+139
+199
+148
+139
+194
+148
+140
+191
+147
+139
+186
+140
+133
+175
+131
+123
+162
+126
+115
+145
+121
+103
+119
+115
+96
+102
+103
+91
+91
+100
+91
+86
+100
+91
+82
+104
+88
+75
+117
+85
+72
+135
+83
+72
+166
+89
+81
+190
+95
+89
+203
+91
+89
+208
+88
+87
+218
+100
+98
+222
+109
+105
+220
+113
+107
+226
+119
+113
+251
+138
+132
+255
+138
+134
+255
+133
+129
+255
+125
+121
+247
+110
+104
+238
+97
+88
+196
+52
+43
+192
+50
+38
+196
+56
+41
+193
+58
+39
+192
+57
+38
+192
+57
+37
+194
+57
+38
+198
+59
+40
+204
+58
+43
+208
+58
+44
+214
+58
+45
+211
+53
+41
+206
+53
+39
+208
+56
+42
+212
+62
+47
+212
+62
+47
+206
+54
+40
+203
+47
+34
+218
+58
+46
+218
+56
+45
+217
+55
+44
+214
+56
+44
+208
+58
+43
+201
+58
+41
+194
+57
+38
+190
+55
+36
+189
+53
+41
+192
+54
+44
+194
+56
+46
+196
+58
+48
+199
+61
+51
+202
+64
+54
+203
+65
+55
+204
+66
+56
+199
+58
+49
+202
+64
+54
+207
+69
+59
+208
+70
+60
+210
+72
+62
+209
+71
+61
+202
+64
+54
+197
+55
+43
+204
+54
+37
+214
+54
+38
+223
+55
+44
+231
+52
+47
+241
+48
+51
+246
+45
+53
+251
+43
+57
+255
+42
+60
+252
+39
+59
+252
+39
+61
+251
+37
+61
+249
+35
+59
+251
+33
+58
+250
+30
+55
+252
+28
+55
+254
+27
+54
+255
+29
+55
+255
+30
+53
+254
+35
+55
+253
+42
+59
+247
+50
+60
+242
+55
+62
+236
+57
+60
+229
+59
+59
+220
+57
+52
+220
+58
+53
+222
+59
+52
+224
+59
+53
+229
+57
+53
+231
+56
+53
+233
+55
+51
+235
+53
+50
+237
+51
+54
+238
+52
+55
+237
+53
+53
+234
+54
+53
+229
+54
+49
+225
+54
+47
+220
+53
+44
+216
+52
+40
+218
+56
+41
+217
+57
+41
+218
+57
+39
+219
+56
+37
+221
+56
+37
+222
+55
+36
+224
+55
+36
+225
+54
+37
+225
+53
+39
+226
+52
+41
+227
+53
+42
+227
+54
+40
+227
+54
+40
+225
+55
+40
+221
+55
+41
+218
+56
+43
+219
+61
+50
+204
+50
+42
+211
+56
+54
+255
+108
+112
+255
+93
+108
+249
+81
+104
+237
+62
+91
+255
+75
+108
+247
+59
+92
+255
+66
+100
+240
+56
+90
+233
+65
+98
+227
+87
+113
+171
+64
+82
+101
+34
+41
+81
+46
+42
+65
+52
+43
+52
+53
+39
+53
+54
+38
+58
+59
+41
+63
+62
+42
+62
+61
+40
+60
+64
+41
+62
+69
+38
+62
+70
+29
+88
+97
+52
+115
+126
+84
+128
+140
+100
+119
+135
+96
+104
+127
+83
+97
+125
+76
+97
+128
+71
+96
+131
+67
+96
+133
+63
+97
+137
+64
+99
+140
+64
+104
+142
+69
+106
+143
+74
+107
+144
+77
+108
+145
+78
+110
+147
+77
+107
+145
+72
+104
+141
+72
+103
+140
+71
+104
+139
+75
+104
+139
+75
+102
+136
+76
+100
+134
+74
+101
+132
+75
+100
+131
+74
+99
+128
+70
+100
+129
+71
+102
+130
+72
+102
+130
+71
+101
+129
+70
+98
+128
+66
+99
+134
+68
+101
+138
+69
+104
+141
+72
+50
+53
+42
+53
+56
+45
+59
+60
+52
+65
+62
+55
+71
+64
+58
+75
+66
+59
+82
+69
+60
+86
+74
+60
+88
+76
+60
+89
+77
+61
+89
+81
+68
+94
+87
+79
+99
+94
+98
+105
+103
+114
+111
+110
+128
+114
+111
+140
+114
+109
+149
+106
+103
+148
+96
+94
+143
+87
+87
+139
+84
+85
+142
+87
+88
+152
+92
+95
+162
+97
+99
+173
+108
+110
+187
+114
+115
+195
+123
+124
+206
+130
+131
+213
+136
+134
+217
+138
+136
+219
+140
+136
+220
+141
+138
+217
+143
+142
+212
+143
+140
+209
+143
+140
+209
+142
+139
+210
+143
+137
+211
+142
+136
+210
+142
+134
+209
+141
+133
+206
+143
+133
+202
+142
+133
+196
+143
+134
+191
+144
+136
+187
+143
+136
+180
+137
+131
+169
+128
+121
+154
+126
+112
+137
+127
+96
+112
+121
+90
+96
+107
+89
+89
+99
+92
+84
+96
+94
+81
+98
+91
+73
+109
+86
+70
+128
+82
+69
+161
+84
+76
+193
+91
+89
+209
+89
+91
+217
+88
+92
+228
+99
+103
+228
+108
+107
+224
+112
+108
+228
+121
+115
+236
+125
+118
+237
+122
+115
+254
+131
+126
+255
+134
+129
+255
+129
+123
+245
+107
+97
+201
+60
+50
+196
+56
+41
+194
+59
+40
+191
+58
+39
+191
+59
+38
+190
+58
+37
+193
+58
+38
+197
+58
+39
+200
+57
+41
+206
+56
+42
+216
+58
+46
+212
+54
+42
+206
+53
+39
+206
+56
+41
+209
+62
+46
+209
+62
+46
+203
+56
+40
+199
+47
+33
+210
+54
+41
+211
+53
+41
+210
+52
+40
+210
+54
+41
+209
+57
+43
+205
+60
+43
+200
+61
+42
+196
+59
+41
+196
+58
+45
+196
+58
+47
+198
+57
+48
+198
+57
+47
+199
+58
+49
+200
+59
+49
+201
+60
+51
+203
+61
+51
+211
+68
+60
+211
+69
+59
+208
+65
+57
+203
+61
+51
+203
+60
+52
+207
+65
+55
+207
+64
+56
+206
+59
+49
+206
+53
+39
+217
+53
+41
+226
+53
+46
+235
+51
+49
+242
+47
+53
+247
+43
+54
+249
+41
+55
+252
+41
+58
+249
+38
+57
+247
+38
+59
+247
+38
+59
+248
+39
+60
+251
+38
+60
+253
+37
+58
+255
+36
+58
+255
+35
+58
+255
+33
+54
+253
+34
+54
+250
+37
+55
+249
+44
+59
+247
+53
+62
+242
+57
+63
+233
+57
+59
+225
+57
+56
+220
+57
+52
+220
+58
+53
+222
+59
+52
+224
+59
+53
+229
+57
+53
+231
+56
+53
+233
+55
+51
+235
+53
+52
+238
+52
+55
+238
+52
+55
+238
+54
+54
+234
+54
+53
+230
+55
+50
+225
+54
+47
+220
+53
+44
+215
+53
+42
+216
+56
+42
+216
+56
+40
+216
+56
+40
+217
+56
+38
+218
+55
+38
+220
+55
+36
+221
+54
+36
+221
+54
+36
+219
+53
+37
+220
+54
+40
+221
+55
+39
+220
+57
+40
+220
+57
+40
+218
+59
+40
+215
+58
+41
+214
+58
+43
+213
+59
+49
+206
+51
+46
+231
+73
+74
+255
+111
+119
+254
+85
+104
+243
+69
+94
+243
+62
+95
+255
+67
+102
+251
+55
+91
+252
+60
+97
+240
+66
+99
+228
+79
+108
+196
+80
+101
+129
+47
+61
+78
+29
+33
+72
+48
+46
+54
+47
+39
+50
+52
+39
+56
+58
+44
+62
+65
+46
+65
+64
+43
+63
+61
+36
+65
+64
+36
+69
+70
+36
+84
+93
+48
+112
+126
+77
+143
+159
+114
+151
+168
+124
+131
+152
+109
+106
+132
+87
+95
+123
+74
+93
+126
+69
+95
+131
+67
+97
+134
+64
+98
+138
+65
+102
+143
+67
+107
+144
+74
+108
+145
+76
+109
+146
+79
+109
+146
+79
+111
+148
+78
+108
+146
+73
+105
+142
+73
+104
+141
+72
+105
+140
+76
+105
+140
+76
+104
+138
+78
+103
+137
+77
+102
+133
+76
+100
+131
+74
+100
+129
+71
+101
+130
+72
+103
+131
+72
+104
+132
+73
+102
+130
+71
+100
+130
+68
+103
+138
+72
+105
+142
+73
+108
+145
+76
+45
+51
+39
+51
+54
+43
+56
+57
+49
+60
+59
+54
+66
+61
+57
+71
+64
+58
+77
+68
+61
+81
+71
+61
+83
+73
+61
+83
+75
+62
+85
+78
+68
+90
+85
+81
+97
+94
+101
+105
+103
+117
+109
+107
+129
+108
+107
+138
+106
+104
+144
+98
+96
+143
+88
+86
+136
+80
+80
+134
+81
+81
+141
+88
+89
+154
+96
+99
+170
+102
+106
+180
+111
+114
+193
+117
+120
+201
+124
+127
+208
+130
+133
+214
+134
+135
+217
+135
+136
+216
+138
+137
+217
+139
+138
+214
+139
+139
+209
+139
+138
+206
+138
+136
+209
+137
+135
+210
+137
+133
+210
+136
+131
+211
+138
+131
+211
+137
+130
+207
+140
+132
+205
+139
+132
+199
+141
+133
+192
+141
+134
+185
+141
+134
+175
+135
+130
+162
+126
+120
+146
+127
+110
+129
+131
+90
+104
+125
+84
+90
+108
+87
+84
+99
+92
+82
+92
+96
+79
+91
+95
+72
+102
+90
+68
+122
+83
+66
+149
+74
+68
+187
+83
+82
+209
+83
+87
+219
+82
+89
+230
+93
+100
+231
+102
+106
+224
+108
+108
+227
+118
+113
+228
+117
+110
+226
+111
+104
+247
+126
+118
+255
+130
+123
+255
+135
+126
+244
+108
+96
+201
+63
+50
+193
+56
+40
+192
+59
+40
+191
+61
+39
+191
+61
+39
+192
+60
+39
+194
+59
+39
+197
+58
+39
+199
+56
+40
+205
+55
+41
+216
+58
+47
+217
+56
+46
+210
+56
+44
+207
+57
+43
+204
+58
+43
+201
+58
+42
+200
+57
+41
+201
+55
+40
+207
+57
+43
+209
+55
+43
+210
+56
+44
+209
+55
+43
+207
+55
+42
+204
+56
+42
+203
+60
+44
+203
+62
+45
+202
+60
+48
+201
+61
+48
+202
+60
+50
+201
+59
+47
+200
+58
+48
+198
+56
+44
+197
+55
+45
+197
+53
+42
+208
+64
+55
+208
+64
+53
+205
+61
+52
+201
+57
+46
+203
+56
+48
+206
+59
+49
+205
+58
+50
+204
+53
+44
+208
+47
+37
+217
+48
+41
+228
+50
+48
+236
+50
+53
+244
+47
+56
+249
+45
+57
+251
+43
+59
+252
+44
+60
+252
+45
+63
+251
+46
+63
+252
+47
+64
+252
+47
+64
+254
+47
+65
+255
+47
+63
+255
+45
+63
+255
+46
+64
+255
+40
+56
+251
+40
+55
+247
+43
+55
+245
+48
+58
+241
+54
+61
+237
+56
+61
+228
+56
+56
+221
+53
+52
+220
+57
+52
+220
+58
+53
+222
+59
+54
+226
+58
+55
+229
+57
+53
+231
+56
+53
+234
+54
+53
+236
+52
+52
+241
+52
+56
+241
+52
+56
+239
+53
+54
+237
+55
+54
+230
+55
+50
+225
+54
+47
+218
+54
+44
+215
+53
+42
+216
+56
+42
+214
+57
+40
+214
+57
+40
+216
+57
+38
+216
+57
+38
+217
+56
+38
+218
+55
+38
+217
+56
+38
+213
+56
+37
+213
+58
+38
+214
+59
+39
+213
+61
+40
+212
+61
+40
+211
+62
+42
+211
+61
+44
+211
+61
+46
+208
+55
+47
+215
+60
+56
+255
+93
+100
+255
+96
+111
+255
+80
+103
+240
+60
+89
+255
+66
+104
+250
+55
+95
+255
+55
+95
+242
+52
+88
+237
+78
+108
+215
+92
+113
+148
+64
+79
+91
+38
+46
+71
+40
+45
+63
+49
+48
+49
+46
+41
+52
+54
+43
+58
+62
+47
+60
+65
+43
+58
+61
+34
+62
+61
+30
+80
+74
+40
+94
+92
+53
+121
+133
+83
+144
+163
+108
+170
+190
+139
+168
+190
+141
+142
+165
+119
+111
+139
+91
+97
+127
+75
+94
+127
+70
+96
+132
+68
+99
+136
+66
+101
+141
+68
+106
+147
+71
+111
+148
+78
+112
+149
+80
+111
+147
+83
+111
+147
+83
+111
+148
+78
+108
+146
+73
+105
+142
+73
+103
+140
+71
+105
+140
+76
+105
+140
+76
+105
+139
+79
+104
+138
+78
+102
+133
+74
+101
+132
+73
+100
+131
+72
+101
+132
+73
+103
+133
+73
+104
+134
+72
+103
+133
+71
+101
+133
+68
+105
+142
+73
+105
+145
+75
+108
+148
+78
+43
+49
+37
+46
+52
+42
+52
+55
+48
+56
+57
+51
+62
+58
+55
+66
+61
+58
+72
+65
+59
+75
+68
+60
+78
+72
+60
+78
+71
+61
+79
+74
+68
+87
+83
+82
+95
+94
+102
+102
+101
+117
+103
+103
+127
+103
+102
+134
+98
+97
+137
+91
+89
+138
+81
+81
+133
+78
+79
+135
+82
+83
+147
+91
+94
+163
+101
+105
+179
+108
+111
+190
+117
+119
+202
+122
+124
+209
+127
+129
+214
+131
+133
+216
+134
+135
+217
+134
+135
+215
+136
+135
+213
+137
+136
+212
+135
+135
+205
+134
+134
+204
+134
+132
+205
+133
+130
+207
+133
+128
+210
+133
+128
+210
+135
+127
+212
+135
+128
+208
+141
+133
+210
+140
+133
+201
+141
+133
+192
+140
+134
+182
+139
+133
+169
+132
+128
+155
+123
+118
+138
+124
+106
+120
+129
+87
+97
+126
+81
+86
+109
+85
+81
+100
+94
+80
+92
+100
+77
+89
+97
+73
+99
+93
+69
+118
+87
+67
+146
+78
+69
+183
+85
+82
+209
+84
+90
+219
+82
+90
+231
+92
+99
+231
+98
+103
+228
+104
+106
+231
+113
+111
+236
+121
+114
+230
+113
+104
+247
+124
+116
+243
+115
+106
+254
+120
+109
+230
+92
+81
+196
+59
+43
+190
+53
+35
+194
+59
+39
+193
+61
+40
+193
+61
+40
+195
+60
+40
+196
+59
+40
+200
+59
+41
+203
+57
+42
+207
+55
+42
+214
+53
+43
+216
+55
+45
+212
+58
+46
+206
+58
+44
+199
+58
+41
+196
+56
+39
+198
+58
+41
+202
+61
+44
+207
+61
+46
+214
+64
+50
+217
+65
+52
+214
+62
+49
+206
+56
+42
+200
+52
+38
+202
+56
+41
+203
+60
+44
+201
+58
+44
+200
+58
+44
+201
+59
+47
+201
+59
+45
+202
+58
+47
+200
+57
+43
+200
+53
+43
+199
+53
+40
+202
+54
+44
+207
+59
+47
+210
+62
+52
+211
+63
+51
+214
+63
+54
+213
+62
+51
+206
+55
+46
+201
+44
+35
+210
+43
+37
+220
+45
+42
+231
+48
+50
+240
+51
+57
+246
+49
+59
+250
+48
+60
+253
+48
+63
+253
+48
+63
+249
+48
+64
+247
+49
+64
+247
+49
+64
+246
+48
+61
+247
+47
+60
+247
+45
+57
+250
+44
+57
+250
+42
+55
+252
+46
+59
+248
+46
+58
+245
+48
+58
+240
+51
+58
+237
+54
+59
+231
+55
+58
+224
+54
+54
+218
+53
+51
+220
+57
+52
+221
+58
+53
+223
+58
+54
+226
+58
+55
+229
+57
+53
+231
+56
+53
+234
+54
+53
+236
+52
+52
+242
+53
+57
+242
+53
+57
+240
+54
+55
+237
+55
+54
+230
+55
+52
+223
+54
+47
+218
+54
+45
+214
+54
+42
+213
+55
+43
+212
+56
+41
+212
+56
+41
+212
+57
+39
+213
+56
+39
+213
+56
+37
+215
+55
+39
+212
+57
+37
+208
+57
+36
+206
+60
+37
+207
+61
+38
+207
+63
+39
+206
+64
+40
+206
+64
+42
+206
+63
+46
+208
+60
+48
+208
+55
+49
+232
+72
+72
+255
+103
+113
+254
+78
+98
+255
+72
+100
+246
+56
+90
+255
+66
+108
+246
+49
+92
+255
+57
+96
+234
+55
+87
+221
+83
+106
+185
+87
+102
+107
+50
+57
+71
+41
+43
+71
+55
+58
+59
+50
+51
+56
+51
+48
+58
+55
+48
+57
+59
+45
+53
+58
+35
+51
+56
+24
+66
+68
+29
+102
+99
+58
+129
+131
+84
+159
+174
+119
+169
+193
+135
+181
+206
+151
+175
+199
+147
+146
+174
+125
+118
+148
+98
+101
+134
+81
+96
+130
+70
+96
+133
+66
+99
+136
+66
+103
+143
+70
+109
+150
+74
+114
+152
+79
+114
+151
+82
+113
+149
+85
+112
+148
+84
+111
+148
+78
+108
+145
+75
+104
+141
+72
+102
+139
+70
+104
+139
+75
+105
+140
+76
+105
+139
+78
+105
+139
+79
+103
+134
+75
+102
+133
+74
+101
+132
+73
+102
+133
+73
+104
+136
+73
+105
+137
+72
+105
+135
+71
+102
+134
+67
+106
+143
+74
+107
+147
+77
+110
+150
+80
+40
+48
+35
+43
+49
+39
+47
+52
+45
+51
+53
+48
+55
+54
+52
+60
+56
+53
+64
+61
+56
+67
+62
+56
+73
+69
+60
+72
+69
+60
+75
+72
+67
+82
+80
+81
+91
+91
+101
+97
+98
+116
+98
+98
+124
+96
+96
+130
+95
+94
+136
+90
+88
+138
+84
+84
+138
+84
+84
+144
+92
+93
+160
+103
+105
+179
+112
+115
+196
+118
+120
+205
+123
+127
+216
+126
+130
+219
+131
+132
+222
+132
+134
+221
+132
+133
+216
+131
+132
+214
+133
+132
+212
+134
+133
+209
+131
+134
+203
+130
+133
+202
+131
+131
+205
+130
+129
+207
+131
+127
+211
+133
+128
+212
+136
+128
+214
+136
+128
+211
+141
+133
+210
+139
+132
+200
+139
+131
+188
+139
+132
+176
+137
+130
+163
+129
+124
+146
+119
+113
+127
+117
+102
+109
+125
+86
+91
+121
+81
+81
+107
+87
+78
+101
+95
+79
+93
+101
+77
+91
+100
+73
+100
+96
+71
+116
+91
+69
+140
+82
+70
+176
+91
+84
+202
+89
+91
+214
+85
+90
+226
+91
+97
+230
+93
+100
+231
+98
+101
+237
+109
+108
+245
+122
+115
+237
+114
+106
+247
+120
+111
+222
+89
+80
+229
+91
+80
+210
+68
+56
+195
+53
+39
+199
+58
+41
+197
+58
+39
+196
+60
+38
+197
+61
+39
+200
+61
+40
+202
+59
+42
+205
+58
+42
+208
+56
+42
+212
+54
+42
+211
+48
+39
+212
+51
+41
+210
+56
+44
+205
+59
+44
+199
+59
+42
+194
+59
+40
+192
+59
+40
+195
+60
+41
+200
+59
+42
+213
+67
+52
+225
+75
+61
+222
+72
+58
+211
+61
+47
+202
+52
+38
+201
+53
+39
+205
+59
+44
+200
+57
+41
+200
+57
+41
+200
+57
+43
+200
+57
+41
+202
+56
+43
+202
+56
+41
+203
+55
+43
+203
+55
+41
+205
+54
+43
+210
+60
+46
+215
+63
+52
+216
+64
+51
+218
+64
+54
+219
+65
+53
+215
+58
+49
+210
+49
+41
+220
+48
+46
+229
+49
+52
+238
+52
+57
+245
+54
+62
+249
+52
+62
+249
+49
+62
+250
+48
+64
+248
+47
+63
+242
+46
+60
+239
+47
+60
+237
+47
+57
+237
+48
+55
+239
+45
+53
+239
+44
+50
+242
+43
+50
+241
+42
+49
+244
+49
+57
+244
+50
+58
+242
+53
+59
+236
+53
+57
+229
+53
+55
+225
+53
+53
+223
+55
+54
+221
+56
+54
+220
+56
+54
+221
+57
+55
+223
+58
+54
+227
+58
+55
+230
+56
+55
+233
+55
+55
+234
+54
+55
+236
+52
+54
+244
+53
+58
+244
+53
+58
+241
+55
+58
+238
+56
+55
+230
+55
+52
+224
+55
+48
+218
+54
+45
+212
+54
+42
+211
+55
+42
+209
+56
+42
+208
+56
+42
+208
+57
+40
+208
+57
+40
+208
+57
+38
+209
+56
+40
+208
+57
+38
+203
+57
+34
+200
+58
+34
+200
+62
+36
+199
+63
+37
+200
+64
+40
+200
+64
+42
+203
+62
+45
+206
+59
+49
+213
+58
+54
+250
+85
+91
+255
+94
+111
+255
+71
+97
+253
+62
+95
+254
+58
+96
+255
+56
+102
+250
+53
+98
+244
+58
+95
+230
+71
+99
+192
+80
+96
+135
+64
+72
+84
+50
+51
+67
+53
+52
+68
+57
+61
+62
+51
+55
+66
+51
+54
+64
+53
+49
+58
+56
+43
+54
+60
+34
+57
+67
+30
+80
+92
+46
+125
+132
+80
+159
+168
+113
+176
+197
+138
+175
+203
+142
+176
+204
+146
+166
+195
+141
+146
+174
+125
+123
+153
+101
+103
+136
+81
+95
+129
+69
+94
+131
+64
+99
+137
+64
+105
+143
+68
+111
+149
+74
+115
+153
+80
+115
+152
+83
+113
+149
+85
+111
+147
+83
+110
+147
+78
+107
+144
+74
+103
+140
+71
+101
+138
+69
+103
+138
+74
+104
+139
+75
+105
+139
+78
+105
+139
+78
+102
+136
+75
+100
+134
+73
+100
+134
+73
+101
+136
+72
+103
+138
+74
+104
+139
+73
+105
+137
+72
+102
+137
+69
+106
+146
+76
+108
+150
+78
+111
+153
+81
+38
+46
+33
+40
+48
+37
+45
+50
+43
+49
+51
+46
+51
+51
+49
+55
+54
+52
+58
+57
+53
+60
+59
+54
+71
+68
+61
+68
+68
+60
+71
+70
+66
+79
+79
+81
+90
+90
+100
+95
+97
+112
+94
+96
+121
+92
+92
+126
+96
+95
+137
+92
+90
+140
+89
+88
+145
+92
+92
+154
+103
+103
+173
+113
+115
+192
+122
+124
+209
+127
+128
+220
+129
+132
+225
+130
+133
+228
+133
+134
+227
+132
+133
+225
+131
+131
+219
+129
+130
+213
+131
+130
+210
+131
+130
+206
+132
+135
+204
+131
+134
+201
+132
+132
+204
+131
+130
+206
+133
+130
+211
+135
+130
+214
+138
+130
+215
+140
+131
+212
+141
+133
+208
+140
+131
+196
+139
+130
+183
+138
+130
+171
+133
+127
+155
+127
+120
+136
+115
+110
+117
+111
+99
+99
+117
+87
+85
+114
+84
+76
+105
+87
+75
+102
+95
+77
+99
+101
+77
+97
+100
+73
+102
+96
+70
+115
+93
+70
+125
+79
+63
+159
+89
+77
+184
+89
+83
+197
+83
+82
+215
+86
+90
+226
+87
+92
+233
+90
+96
+240
+100
+101
+247
+114
+109
+241
+110
+102
+247
+113
+104
+209
+68
+59
+212
+65
+55
+197
+49
+37
+200
+52
+38
+212
+67
+50
+199
+57
+37
+199
+58
+38
+201
+59
+39
+205
+60
+41
+208
+58
+43
+211
+58
+44
+216
+56
+44
+217
+55
+44
+207
+44
+35
+206
+48
+37
+206
+54
+41
+203
+60
+44
+199
+64
+45
+193
+62
+42
+190
+59
+39
+188
+55
+36
+192
+52
+35
+209
+66
+50
+227
+79
+65
+228
+78
+64
+216
+66
+52
+203
+55
+41
+203
+55
+41
+208
+62
+47
+202
+59
+43
+201
+58
+42
+199
+56
+40
+198
+55
+39
+200
+54
+39
+202
+54
+40
+206
+56
+42
+208
+56
+43
+211
+59
+46
+213
+59
+47
+213
+57
+45
+210
+54
+42
+213
+55
+44
+218
+60
+49
+221
+60
+50
+220
+55
+49
+232
+56
+56
+241
+56
+61
+247
+58
+65
+251
+57
+66
+250
+52
+65
+245
+47
+60
+242
+44
+59
+239
+44
+58
+237
+47
+59
+234
+49
+57
+234
+51
+56
+235
+52
+56
+237
+53
+55
+241
+53
+54
+244
+51
+54
+243
+53
+55
+239
+50
+54
+238
+53
+58
+236
+56
+59
+233
+54
+57
+226
+52
+53
+222
+52
+52
+223
+55
+54
+225
+60
+58
+221
+56
+54
+222
+57
+55
+225
+57
+54
+227
+58
+55
+230
+56
+55
+233
+55
+55
+234
+54
+55
+236
+52
+54
+244
+53
+58
+244
+53
+58
+241
+55
+58
+236
+56
+57
+230
+57
+53
+223
+56
+50
+216
+55
+47
+211
+55
+43
+208
+56
+43
+205
+58
+42
+205
+57
+43
+204
+59
+42
+205
+58
+42
+205
+58
+40
+205
+58
+42
+204
+59
+40
+197
+57
+34
+194
+58
+34
+195
+61
+36
+194
+62
+37
+195
+63
+40
+198
+63
+43
+201
+61
+46
+205
+56
+49
+220
+60
+62
+255
+93
+102
+255
+81
+103
+255
+72
+100
+250
+56
+91
+255
+63
+103
+246
+46
+92
+251
+62
+104
+228
+61
+91
+224
+93
+111
+162
+76
+85
+91
+45
+45
+71
+56
+51
+70
+66
+63
+64
+55
+58
+67
+52
+57
+71
+48
+54
+70
+50
+49
+64
+57
+41
+63
+68
+38
+69
+86
+42
+96
+116
+63
+139
+157
+97
+170
+190
+127
+177
+203
+140
+171
+201
+139
+166
+195
+139
+157
+186
+132
+142
+172
+122
+123
+153
+101
+102
+135
+80
+90
+124
+64
+94
+129
+63
+97
+135
+62
+104
+142
+67
+111
+149
+74
+114
+152
+79
+114
+151
+82
+112
+148
+84
+110
+146
+82
+110
+147
+78
+106
+143
+73
+102
+139
+70
+100
+137
+68
+102
+137
+73
+104
+139
+75
+105
+139
+78
+105
+139
+78
+102
+136
+75
+101
+135
+74
+100
+135
+71
+101
+136
+70
+103
+138
+72
+104
+139
+71
+104
+139
+71
+101
+138
+68
+107
+147
+76
+109
+151
+79
+112
+154
+82
+40
+48
+33
+39
+47
+34
+40
+45
+38
+41
+46
+40
+46
+48
+45
+51
+51
+49
+55
+56
+51
+57
+58
+52
+61
+61
+53
+63
+64
+56
+68
+69
+64
+74
+76
+75
+79
+82
+89
+86
+88
+101
+90
+92
+115
+93
+94
+125
+89
+88
+130
+91
+89
+139
+94
+93
+150
+101
+101
+163
+110
+110
+182
+119
+120
+200
+127
+129
+216
+132
+133
+226
+140
+140
+238
+140
+140
+240
+138
+138
+236
+134
+135
+228
+130
+130
+220
+128
+128
+214
+130
+128
+211
+131
+130
+206
+128
+131
+198
+129
+133
+197
+131
+131
+201
+132
+132
+206
+134
+131
+208
+136
+131
+211
+139
+132
+210
+140
+132
+207
+138
+128
+197
+138
+128
+188
+137
+128
+175
+135
+125
+160
+128
+120
+143
+119
+111
+122
+107
+101
+103
+102
+93
+88
+106
+92
+81
+108
+92
+77
+104
+92
+76
+102
+94
+75
+101
+95
+73
+102
+96
+72
+106
+96
+71
+114
+94
+70
+114
+79
+59
+135
+84
+65
+166
+92
+79
+193
+96
+89
+209
+89
+88
+220
+81
+84
+237
+83
+91
+247
+92
+96
+249
+104
+101
+230
+89
+80
+212
+68
+60
+206
+55
+48
+209
+55
+47
+215
+58
+49
+214
+61
+47
+212
+59
+43
+207
+57
+40
+205
+58
+38
+207
+57
+40
+209
+58
+41
+212
+56
+41
+216
+56
+42
+220
+53
+44
+220
+53
+44
+208
+47
+37
+205
+51
+41
+204
+56
+44
+202
+62
+47
+197
+64
+47
+193
+64
+45
+190
+61
+42
+188
+57
+39
+194
+57
+41
+190
+48
+34
+233
+87
+74
+223
+75
+63
+195
+47
+35
+209
+61
+49
+206
+60
+47
+199
+56
+40
+202
+59
+43
+201
+58
+41
+200
+57
+40
+199
+56
+39
+200
+55
+38
+201
+54
+38
+203
+53
+38
+204
+52
+38
+208
+55
+41
+215
+59
+46
+220
+62
+50
+220
+60
+48
+217
+55
+44
+218
+56
+45
+226
+62
+52
+236
+67
+60
+245
+66
+69
+242
+57
+63
+240
+50
+60
+246
+52
+63
+246
+50
+64
+241
+45
+59
+237
+45
+58
+237
+50
+61
+236
+55
+62
+230
+53
+59
+228
+54
+56
+229
+55
+56
+235
+57
+57
+240
+58
+57
+241
+55
+56
+239
+55
+55
+242
+59
+61
+238
+60
+60
+234
+58
+58
+230
+56
+55
+225
+56
+53
+223
+55
+52
+220
+55
+53
+220
+55
+53
+222
+57
+55
+225
+57
+56
+227
+57
+57
+230
+58
+58
+233
+57
+59
+236
+57
+60
+237
+57
+60
+239
+56
+60
+244
+55
+59
+243
+54
+58
+240
+56
+58
+237
+57
+58
+231
+59
+57
+224
+59
+53
+215
+57
+48
+207
+55
+44
+202
+56
+43
+200
+57
+41
+199
+57
+43
+198
+58
+41
+199
+58
+41
+199
+58
+40
+200
+59
+42
+199
+60
+41
+193
+57
+35
+196
+61
+39
+190
+58
+35
+182
+52
+30
+188
+57
+37
+201
+68
+51
+206
+64
+54
+201
+49
+44
+255
+95
+101
+255
+87
+103
+255
+75
+98
+252
+61
+92
+245
+51
+88
+242
+50
+89
+247
+56
+99
+240
+69
+105
+228
+91
+111
+171
+71
+81
+110
+52
+51
+78
+51
+44
+67
+63
+54
+65
+66
+60
+66
+54
+56
+66
+43
+49
+77
+46
+51
+77
+49
+46
+67
+56
+38
+68
+74
+40
+88
+110
+61
+125
+155
+95
+155
+186
+119
+167
+198
+130
+171
+203
+140
+159
+190
+130
+152
+182
+128
+148
+178
+126
+130
+160
+110
+102
+132
+82
+88
+118
+66
+89
+123
+63
+93
+128
+62
+99
+135
+65
+105
+143
+68
+110
+148
+73
+109
+149
+76
+108
+148
+78
+107
+146
+79
+108
+145
+78
+105
+142
+73
+102
+138
+68
+99
+134
+66
+99
+134
+66
+102
+137
+73
+104
+139
+75
+102
+138
+76
+100
+136
+74
+103
+139
+77
+104
+140
+78
+103
+139
+75
+102
+139
+72
+101
+138
+69
+102
+139
+69
+106
+143
+73
+107
+147
+74
+113
+155
+81
+113
+157
+82
+114
+158
+83
+42
+48
+34
+41
+47
+35
+41
+46
+39
+41
+46
+40
+45
+47
+44
+49
+51
+48
+53
+54
+49
+55
+56
+50
+59
+60
+52
+62
+63
+55
+65
+68
+61
+72
+74
+71
+79
+80
+84
+83
+85
+97
+88
+89
+107
+90
+92
+117
+92
+90
+127
+94
+93
+137
+100
+98
+148
+107
+106
+164
+117
+116
+186
+127
+126
+206
+135
+135
+223
+139
+140
+233
+141
+141
+239
+140
+140
+240
+137
+137
+235
+133
+132
+226
+128
+128
+216
+128
+126
+210
+128
+127
+207
+130
+130
+204
+133
+134
+199
+134
+135
+199
+135
+136
+201
+137
+136
+204
+139
+136
+207
+140
+134
+206
+141
+134
+204
+142
+133
+200
+138
+128
+188
+137
+127
+177
+134
+124
+161
+130
+120
+147
+123
+115
+130
+116
+107
+112
+108
+98
+96
+100
+93
+83
+99
+96
+79
+98
+96
+75
+101
+94
+75
+102
+94
+75
+105
+92
+73
+108
+93
+72
+110
+94
+71
+113
+93
+69
+121
+93
+71
+130
+89
+67
+149
+88
+70
+173
+90
+76
+199
+86
+80
+221
+83
+83
+243
+82
+88
+254
+89
+95
+240
+85
+83
+227
+76
+69
+217
+62
+57
+213
+54
+48
+217
+54
+47
+220
+57
+48
+219
+57
+44
+214
+57
+40
+211
+56
+38
+209
+56
+38
+209
+56
+40
+212
+56
+41
+215
+55
+41
+220
+54
+42
+223
+52
+44
+221
+53
+44
+206
+48
+39
+201
+53
+41
+200
+57
+43
+198
+61
+45
+196
+65
+47
+193
+64
+45
+191
+60
+42
+190
+57
+40
+196
+56
+41
+203
+60
+46
+228
+82
+69
+220
+72
+60
+200
+52
+40
+204
+58
+45
+200
+58
+44
+194
+52
+38
+202
+61
+44
+203
+60
+43
+202
+59
+42
+202
+59
+42
+203
+58
+41
+204
+57
+41
+206
+56
+41
+207
+54
+40
+211
+55
+42
+214
+56
+44
+217
+55
+44
+215
+51
+41
+213
+49
+39
+216
+49
+40
+222
+55
+46
+231
+60
+53
+248
+68
+71
+241
+56
+62
+237
+47
+57
+239
+47
+58
+240
+48
+61
+238
+46
+59
+235
+49
+60
+235
+54
+63
+228
+53
+58
+220
+51
+54
+216
+50
+50
+223
+58
+56
+238
+69
+66
+248
+73
+70
+248
+68
+67
+243
+63
+62
+233
+58
+55
+231
+57
+56
+229
+57
+55
+226
+57
+54
+225
+56
+53
+224
+56
+53
+225
+57
+56
+225
+57
+56
+224
+56
+55
+226
+56
+56
+229
+57
+57
+231
+57
+58
+233
+57
+59
+236
+57
+60
+237
+57
+60
+238
+55
+59
+243
+54
+58
+242
+53
+57
+238
+54
+56
+234
+56
+56
+228
+59
+56
+220
+58
+53
+211
+57
+47
+203
+55
+43
+198
+56
+42
+195
+58
+42
+194
+58
+42
+192
+59
+42
+192
+59
+42
+193
+60
+41
+193
+60
+43
+193
+60
+41
+189
+57
+36
+193
+63
+41
+187
+58
+37
+179
+53
+31
+185
+58
+39
+192
+60
+47
+201
+58
+50
+215
+61
+61
+255
+95
+103
+255
+81
+100
+253
+67
+91
+246
+57
+87
+242
+57
+91
+242
+61
+96
+240
+64
+100
+224
+74
+101
+170
+64
+76
+131
+63
+62
+95
+58
+50
+72
+58
+47
+59
+61
+48
+59
+61
+50
+73
+59
+58
+85
+61
+61
+81
+47
+46
+84
+55
+47
+87
+75
+53
+100
+104
+69
+119
+143
+91
+140
+176
+112
+154
+195
+125
+159
+199
+129
+152
+186
+125
+154
+185
+128
+154
+182
+131
+141
+169
+120
+114
+142
+94
+89
+117
+69
+84
+112
+61
+92
+123
+66
+95
+127
+64
+98
+134
+64
+105
+141
+67
+109
+147
+72
+108
+148
+75
+107
+147
+76
+105
+144
+77
+105
+144
+77
+103
+140
+71
+101
+137
+67
+99
+134
+66
+99
+134
+68
+103
+138
+74
+105
+140
+76
+104
+140
+78
+103
+139
+77
+105
+141
+79
+105
+141
+77
+105
+142
+75
+103
+140
+71
+103
+140
+70
+102
+142
+69
+108
+146
+73
+109
+149
+76
+112
+156
+81
+111
+157
+82
+114
+158
+83
+45
+49
+34
+45
+49
+35
+44
+47
+38
+44
+46
+41
+47
+47
+45
+49
+49
+47
+51
+52
+47
+52
+53
+45
+57
+59
+48
+60
+62
+49
+64
+66
+55
+69
+72
+65
+75
+77
+76
+81
+82
+87
+85
+85
+97
+86
+87
+105
+92
+89
+116
+94
+93
+127
+102
+100
+140
+112
+110
+160
+122
+120
+183
+133
+131
+206
+141
+139
+223
+144
+144
+234
+144
+142
+239
+142
+140
+237
+138
+137
+231
+135
+132
+223
+129
+127
+211
+127
+124
+203
+127
+125
+200
+128
+127
+195
+134
+134
+196
+136
+136
+196
+138
+138
+198
+140
+139
+199
+140
+138
+201
+140
+136
+197
+140
+132
+191
+139
+130
+183
+137
+128
+175
+134
+124
+161
+128
+118
+145
+123
+112
+129
+117
+106
+114
+110
+100
+99
+105
+94
+88
+99
+93
+81
+93
+98
+76
+93
+98
+75
+97
+95
+74
+103
+92
+74
+109
+90
+73
+112
+91
+72
+114
+92
+71
+114
+92
+69
+122
+96
+73
+123
+87
+63
+137
+82
+61
+164
+85
+68
+199
+88
+79
+224
+86
+83
+245
+80
+84
+252
+79
+83
+226
+62
+60
+222
+60
+55
+221
+56
+52
+222
+55
+49
+225
+54
+47
+225
+54
+46
+221
+55
+43
+218
+55
+40
+212
+55
+38
+211
+56
+36
+211
+56
+38
+213
+56
+39
+216
+54
+41
+221
+53
+42
+224
+51
+44
+221
+53
+44
+203
+51
+40
+196
+54
+40
+194
+57
+41
+193
+60
+43
+194
+63
+45
+194
+63
+45
+193
+60
+43
+192
+56
+40
+195
+53
+39
+220
+74
+61
+218
+70
+58
+213
+65
+53
+206
+60
+47
+196
+54
+40
+196
+59
+43
+190
+54
+38
+198
+58
+41
+199
+58
+41
+199
+58
+41
+201
+58
+42
+202
+56
+41
+203
+55
+41
+204
+54
+40
+205
+51
+39
+213
+57
+45
+213
+55
+44
+214
+51
+42
+215
+51
+42
+218
+51
+43
+223
+54
+47
+229
+58
+51
+233
+60
+56
+240
+60
+61
+237
+52
+57
+235
+48
+55
+236
+49
+56
+238
+51
+60
+237
+52
+60
+235
+55
+64
+234
+61
+67
+221
+55
+59
+225
+65
+65
+236
+78
+75
+248
+89
+85
+253
+90
+85
+250
+81
+76
+239
+66
+62
+229
+56
+52
+226
+54
+50
+224
+55
+50
+224
+55
+50
+224
+55
+50
+225
+56
+53
+226
+57
+54
+228
+59
+56
+228
+59
+56
+225
+55
+55
+228
+56
+56
+230
+56
+58
+232
+56
+59
+235
+56
+60
+235
+56
+60
+235
+56
+60
+236
+56
+59
+239
+53
+56
+238
+52
+55
+236
+53
+55
+231
+55
+55
+226
+58
+55
+217
+58
+52
+207
+56
+47
+199
+55
+44
+194
+56
+43
+191
+58
+43
+189
+59
+43
+187
+60
+43
+187
+60
+43
+187
+60
+41
+187
+60
+43
+187
+60
+41
+184
+57
+38
+189
+64
+42
+179
+57
+36
+177
+54
+36
+182
+59
+43
+180
+49
+39
+194
+52
+48
+235
+80
+84
+255
+92
+105
+254
+75
+96
+243
+59
+85
+237
+57
+86
+238
+65
+93
+236
+73
+102
+227
+75
+100
+202
+79
+97
+130
+56
+57
+102
+62
+54
+85
+63
+50
+71
+64
+48
+59
+60
+44
+56
+54
+41
+65
+52
+43
+78
+55
+47
+72
+43
+35
+83
+60
+44
+103
+93
+66
+129
+136
+95
+146
+171
+116
+149
+188
+123
+148
+194
+122
+149
+192
+123
+146
+180
+120
+156
+184
+133
+154
+180
+133
+128
+154
+109
+92
+117
+75
+72
+98
+53
+78
+104
+56
+91
+120
+66
+95
+125
+63
+99
+131
+64
+104
+140
+68
+108
+146
+71
+106
+146
+73
+104
+146
+74
+103
+144
+76
+102
+143
+75
+100
+137
+68
+100
+135
+67
+99
+134
+68
+101
+136
+70
+104
+139
+75
+107
+142
+78
+107
+143
+79
+106
+142
+78
+105
+144
+79
+105
+144
+79
+105
+144
+77
+104
+144
+74
+103
+143
+72
+104
+146
+72
+108
+148
+75
+111
+153
+77
+115
+161
+86
+115
+163
+87
+117
+163
+88
+50
+52
+38
+48
+52
+38
+48
+49
+41
+48
+49
+43
+49
+50
+45
+50
+51
+46
+51
+52
+46
+52
+54
+43
+57
+59
+45
+59
+62
+45
+63
+65
+51
+68
+70
+57
+73
+74
+68
+77
+79
+78
+82
+81
+87
+83
+83
+93
+88
+86
+100
+92
+90
+111
+100
+97
+126
+110
+108
+148
+122
+119
+172
+132
+130
+195
+140
+137
+214
+145
+143
+227
+148
+145
+234
+147
+144
+235
+142
+139
+226
+137
+133
+217
+130
+127
+204
+127
+124
+195
+127
+124
+191
+128
+126
+189
+132
+131
+189
+134
+133
+190
+137
+136
+193
+141
+138
+193
+139
+136
+189
+137
+133
+183
+135
+127
+174
+133
+125
+166
+133
+123
+157
+128
+118
+143
+121
+110
+127
+114
+102
+112
+109
+97
+99
+107
+93
+90
+105
+90
+83
+99
+91
+78
+92
+97
+75
+90
+98
+74
+97
+95
+74
+103
+92
+74
+111
+89
+75
+115
+89
+74
+117
+90
+73
+119
+91
+70
+118
+86
+65
+123
+81
+59
+139
+81
+61
+171
+88
+70
+205
+91
+80
+226
+84
+80
+237
+71
+73
+239
+63
+65
+219
+50
+47
+220
+53
+47
+225
+53
+49
+227
+54
+48
+227
+53
+46
+225
+53
+43
+224
+54
+41
+219
+56
+41
+214
+55
+36
+211
+56
+36
+209
+56
+38
+212
+57
+39
+216
+54
+41
+220
+54
+42
+224
+51
+44
+218
+54
+45
+200
+54
+41
+189
+56
+39
+188
+55
+38
+189
+58
+40
+191
+62
+43
+194
+63
+45
+195
+59
+43
+196
+56
+41
+198
+52
+39
+233
+85
+73
+211
+60
+49
+204
+56
+44
+209
+66
+52
+190
+53
+37
+192
+61
+43
+192
+61
+43
+192
+56
+40
+196
+56
+39
+197
+57
+40
+199
+58
+41
+200
+57
+41
+203
+55
+41
+204
+54
+40
+205
+51
+39
+210
+54
+42
+212
+51
+41
+213
+50
+41
+219
+52
+44
+227
+58
+51
+233
+62
+55
+236
+63
+57
+236
+61
+58
+232
+52
+53
+236
+53
+57
+239
+54
+59
+238
+53
+59
+234
+50
+58
+230
+51
+57
+228
+55
+61
+226
+60
+64
+243
+85
+86
+252
+98
+98
+255
+109
+106
+255
+105
+100
+243
+86
+81
+228
+65
+60
+223
+54
+51
+221
+52
+47
+223
+54
+49
+222
+55
+49
+222
+55
+49
+223
+56
+50
+225
+56
+53
+226
+57
+54
+229
+57
+55
+230
+58
+56
+229
+55
+56
+230
+56
+57
+232
+56
+59
+233
+57
+60
+235
+56
+60
+235
+56
+60
+235
+56
+60
+236
+55
+60
+238
+53
+58
+238
+54
+56
+234
+54
+55
+229
+57
+55
+223
+60
+55
+214
+60
+52
+204
+57
+47
+197
+57
+44
+190
+57
+42
+186
+59
+42
+182
+59
+41
+181
+60
+41
+181
+60
+43
+180
+61
+41
+179
+59
+42
+179
+60
+40
+179
+58
+39
+183
+64
+44
+173
+56
+38
+173
+56
+39
+179
+59
+45
+171
+43
+34
+193
+53
+52
+252
+97
+103
+253
+85
+100
+249
+72
+92
+238
+62
+85
+232
+62
+88
+229
+73
+95
+220
+81
+100
+206
+81
+95
+177
+85
+90
+119
+70
+65
+92
+70
+57
+79
+66
+50
+74
+67
+49
+70
+67
+48
+64
+61
+42
+61
+54
+35
+61
+50
+30
+65
+50
+29
+81
+70
+42
+110
+107
+72
+138
+147
+102
+149
+172
+116
+145
+180
+116
+141
+184
+115
+144
+186
+120
+157
+187
+133
+161
+184
+138
+144
+167
+125
+108
+130
+91
+75
+95
+58
+65
+87
+48
+76
+99
+55
+87
+114
+63
+95
+123
+64
+100
+131
+64
+105
+138
+67
+107
+145
+70
+105
+145
+72
+103
+145
+71
+100
+143
+72
+101
+142
+74
+98
+135
+66
+99
+134
+66
+100
+135
+69
+103
+138
+72
+106
+141
+77
+108
+143
+79
+109
+145
+81
+110
+146
+82
+106
+145
+80
+106
+145
+78
+106
+146
+76
+104
+146
+74
+103
+145
+71
+105
+147
+71
+109
+151
+75
+112
+156
+79
+119
+166
+88
+118
+166
+90
+118
+166
+90
+55
+56
+40
+54
+56
+42
+54
+54
+44
+53
+54
+46
+53
+54
+48
+53
+54
+48
+54
+55
+47
+54
+56
+43
+59
+62
+45
+61
+64
+45
+64
+67
+46
+68
+71
+52
+73
+75
+62
+77
+78
+70
+81
+80
+78
+82
+82
+82
+86
+85
+83
+89
+88
+93
+97
+95
+108
+107
+105
+129
+117
+115
+155
+128
+125
+178
+136
+134
+199
+140
+138
+211
+149
+146
+225
+148
+145
+226
+144
+141
+220
+139
+135
+211
+132
+129
+196
+129
+125
+186
+127
+124
+181
+127
+124
+179
+129
+126
+181
+132
+129
+182
+135
+133
+183
+137
+134
+181
+138
+132
+176
+134
+128
+166
+129
+122
+155
+128
+119
+146
+127
+115
+135
+122
+110
+124
+114
+101
+108
+109
+95
+95
+106
+91
+88
+105
+90
+83
+106
+89
+79
+102
+90
+76
+97
+96
+76
+95
+97
+76
+100
+95
+76
+105
+92
+75
+110
+91
+76
+116
+90
+75
+122
+90
+75
+125
+90
+71
+127
+84
+65
+136
+81
+61
+157
+81
+65
+182
+86
+70
+205
+83
+72
+216
+72
+64
+223
+58
+56
+226
+52
+51
+221
+49
+45
+223
+51
+47
+226
+53
+47
+227
+53
+46
+225
+51
+44
+223
+51
+41
+221
+53
+40
+220
+57
+40
+211
+56
+36
+208
+57
+36
+207
+58
+38
+209
+58
+39
+212
+56
+41
+217
+55
+42
+221
+53
+44
+216
+55
+45
+196
+59
+43
+185
+58
+41
+181
+54
+37
+183
+56
+39
+189
+59
+43
+194
+61
+46
+199
+59
+46
+199
+55
+44
+208
+57
+48
+245
+92
+84
+214
+61
+53
+201
+53
+43
+207
+65
+53
+184
+51
+36
+183
+58
+40
+188
+63
+43
+191
+58
+41
+195
+58
+42
+198
+58
+43
+200
+58
+44
+202
+59
+45
+204
+58
+45
+207
+56
+45
+209
+55
+45
+208
+51
+42
+210
+49
+41
+214
+49
+43
+222
+55
+49
+229
+60
+55
+234
+62
+58
+232
+59
+55
+230
+55
+52
+233
+55
+53
+239
+59
+60
+240
+60
+63
+234
+54
+57
+228
+49
+53
+228
+53
+58
+232
+66
+70
+237
+77
+79
+255
+120
+119
+255
+113
+110
+241
+96
+91
+221
+74
+67
+209
+56
+51
+209
+50
+46
+220
+55
+51
+231
+64
+58
+224
+57
+51
+224
+57
+49
+224
+55
+50
+224
+55
+50
+226
+54
+50
+227
+55
+51
+229
+55
+54
+229
+55
+54
+230
+54
+56
+231
+55
+57
+234
+55
+59
+235
+56
+60
+235
+56
+62
+235
+56
+62
+232
+55
+61
+234
+55
+59
+238
+55
+59
+238
+55
+57
+234
+55
+58
+228
+58
+58
+223
+61
+58
+214
+61
+55
+203
+59
+50
+195
+59
+47
+186
+56
+42
+181
+58
+42
+179
+59
+42
+175
+60
+41
+175
+60
+42
+172
+60
+40
+172
+59
+41
+172
+59
+41
+170
+59
+40
+172
+61
+42
+166
+56
+39
+167
+57
+42
+170
+56
+45
+171
+48
+41
+203
+64
+67
+255
+105
+114
+243
+78
+94
+241
+72
+91
+235
+69
+89
+226
+73
+91
+215
+80
+94
+199
+85
+93
+178
+86
+87
+153
+90
+85
+103
+75
+63
+83
+74
+57
+80
+68
+52
+78
+67
+49
+73
+67
+45
+66
+64
+39
+63
+66
+35
+65
+71
+35
+77
+85
+46
+94
+103
+60
+120
+129
+84
+139
+153
+102
+145
+164
+109
+141
+169
+110
+143
+178
+114
+151
+185
+125
+157
+183
+136
+146
+167
+128
+117
+134
+100
+82
+99
+67
+63
+80
+48
+66
+83
+49
+79
+97
+57
+86
+108
+61
+98
+123
+66
+101
+130
+66
+105
+138
+67
+106
+144
+69
+105
+146
+70
+101
+145
+70
+98
+144
+72
+99
+142
+71
+98
+135
+66
+102
+134
+67
+103
+138
+72
+105
+140
+74
+107
+142
+78
+109
+144
+80
+110
+146
+82
+111
+147
+83
+106
+145
+78
+107
+146
+79
+106
+147
+77
+105
+147
+75
+105
+147
+73
+106
+150
+73
+110
+154
+75
+114
+158
+79
+120
+167
+89
+118
+167
+88
+118
+167
+88
+63
+61
+46
+61
+62
+46
+61
+61
+49
+61
+61
+51
+61
+61
+53
+59
+60
+52
+59
+61
+50
+59
+61
+47
+63
+66
+47
+64
+68
+45
+67
+71
+46
+70
+74
+51
+75
+76
+58
+78
+79
+65
+81
+81
+73
+82
+82
+72
+89
+87
+74
+90
+90
+78
+95
+94
+92
+103
+101
+114
+113
+110
+137
+123
+121
+161
+131
+128
+183
+135
+133
+196
+143
+140
+209
+143
+140
+211
+141
+138
+207
+138
+133
+199
+131
+127
+186
+126
+121
+175
+122
+119
+166
+121
+118
+165
+123
+119
+169
+124
+122
+171
+128
+125
+170
+131
+126
+166
+131
+125
+161
+127
+121
+149
+124
+116
+137
+122
+114
+129
+118
+107
+115
+114
+102
+104
+109
+95
+94
+106
+91
+86
+107
+90
+82
+108
+90
+80
+108
+90
+78
+107
+91
+78
+103
+94
+77
+102
+95
+77
+103
+94
+77
+106
+93
+77
+110
+93
+77
+118
+92
+77
+124
+92
+77
+131
+89
+73
+150
+94
+79
+157
+85
+71
+169
+77
+64
+185
+73
+61
+197
+64
+55
+204
+56
+46
+213
+50
+43
+221
+50
+43
+225
+53
+49
+225
+54
+47
+226
+53
+46
+226
+52
+45
+224
+50
+41
+222
+52
+39
+220
+54
+38
+218
+59
+40
+209
+57
+36
+205
+59
+36
+204
+59
+38
+206
+59
+39
+209
+58
+41
+213
+57
+42
+217
+55
+44
+211
+57
+45
+193
+62
+44
+180
+59
+40
+176
+53
+35
+178
+53
+35
+187
+57
+41
+196
+60
+46
+201
+59
+47
+203
+55
+45
+217
+63
+55
+248
+91
+84
+227
+73
+65
+206
+58
+48
+204
+64
+51
+184
+54
+38
+172
+51
+32
+181
+60
+41
+188
+57
+39
+191
+55
+39
+192
+55
+39
+195
+55
+40
+197
+55
+41
+201
+55
+42
+206
+55
+44
+209
+55
+45
+217
+60
+51
+219
+58
+50
+222
+57
+51
+229
+60
+55
+234
+62
+58
+234
+61
+57
+231
+56
+53
+227
+52
+49
+232
+57
+54
+235
+60
+57
+236
+58
+58
+232
+56
+58
+236
+62
+64
+248
+80
+80
+255
+98
+99
+255
+112
+112
+249
+104
+101
+226
+84
+80
+202
+61
+54
+192
+49
+43
+201
+52
+48
+214
+59
+55
+223
+61
+58
+224
+59
+55
+226
+59
+53
+225
+58
+50
+226
+57
+52
+225
+56
+51
+227
+55
+51
+228
+55
+51
+229
+53
+53
+230
+54
+54
+233
+54
+57
+233
+54
+57
+234
+55
+59
+235
+56
+60
+235
+56
+62
+234
+55
+61
+232
+55
+61
+233
+54
+58
+239
+56
+60
+236
+56
+57
+232
+56
+58
+227
+59
+58
+221
+62
+58
+211
+62
+55
+201
+60
+50
+192
+60
+47
+182
+56
+41
+178
+58
+41
+174
+59
+41
+170
+59
+40
+169
+60
+40
+168
+59
+39
+165
+58
+38
+165
+58
+40
+165
+60
+41
+160
+57
+40
+160
+59
+41
+160
+57
+42
+162
+54
+42
+181
+62
+56
+219
+84
+88
+249
+102
+112
+237
+76
+92
+237
+74
+93
+231
+76
+92
+216
+78
+91
+198
+83
+90
+177
+87
+86
+156
+92
+82
+136
+97
+82
+84
+71
+55
+77
+74
+57
+83
+70
+53
+77
+62
+43
+63
+51
+27
+57
+54
+23
+65
+77
+37
+78
+102
+54
+108
+138
+84
+119
+148
+92
+132
+155
+101
+137
+154
+100
+141
+155
+102
+144
+163
+107
+148
+173
+116
+152
+176
+124
+131
+149
+109
+110
+125
+92
+81
+96
+67
+60
+74
+48
+57
+70
+44
+65
+80
+49
+79
+95
+59
+87
+106
+61
+99
+122
+68
+101
+130
+66
+106
+139
+68
+107
+145
+70
+105
+146
+70
+101
+145
+70
+97
+143
+70
+99
+142
+71
+99
+136
+67
+105
+137
+70
+106
+141
+75
+108
+143
+77
+108
+143
+79
+108
+143
+79
+109
+145
+81
+110
+146
+82
+109
+148
+81
+109
+149
+79
+109
+150
+80
+108
+150
+76
+107
+151
+74
+109
+153
+74
+114
+159
+78
+115
+162
+81
+124
+173
+94
+123
+172
+93
+122
+171
+92
+68
+65
+48
+68
+66
+51
+68
+66
+54
+67
+67
+57
+67
+67
+59
+67
+67
+59
+66
+66
+54
+66
+67
+51
+68
+70
+48
+69
+72
+45
+71
+74
+45
+74
+77
+50
+79
+78
+57
+82
+81
+63
+84
+82
+69
+85
+83
+68
+92
+90
+67
+92
+92
+68
+92
+93
+79
+97
+97
+97
+105
+104
+120
+114
+113
+144
+123
+122
+166
+129
+126
+181
+134
+130
+191
+136
+131
+195
+136
+132
+193
+132
+129
+186
+127
+123
+174
+121
+115
+161
+116
+111
+151
+111
+109
+148
+112
+109
+154
+114
+111
+158
+118
+113
+154
+119
+115
+150
+119
+115
+142
+116
+111
+131
+115
+107
+120
+114
+105
+110
+109
+97
+97
+108
+95
+89
+106
+92
+83
+107
+90
+80
+109
+91
+79
+111
+91
+80
+111
+92
+78
+111
+92
+78
+110
+92
+78
+109
+93
+78
+107
+94
+78
+108
+95
+79
+111
+95
+79
+117
+96
+79
+125
+93
+78
+137
+89
+77
+161
+95
+83
+167
+79
+69
+174
+66
+56
+186
+59
+50
+197
+55
+45
+204
+50
+40
+212
+51
+41
+220
+53
+44
+224
+55
+48
+225
+54
+47
+225
+52
+45
+224
+51
+44
+224
+52
+42
+221
+53
+40
+216
+55
+37
+212
+57
+37
+207
+58
+34
+202
+61
+34
+201
+61
+36
+202
+62
+39
+205
+60
+41
+210
+59
+42
+213
+57
+44
+207
+59
+45
+191
+64
+45
+177
+60
+40
+172
+53
+33
+174
+51
+33
+186
+56
+40
+196
+60
+46
+202
+58
+47
+206
+53
+45
+216
+57
+51
+240
+78
+73
+241
+84
+77
+217
+66
+57
+204
+66
+53
+190
+63
+46
+166
+49
+29
+179
+60
+40
+190
+60
+44
+193
+57
+43
+193
+55
+42
+194
+54
+41
+197
+55
+43
+201
+57
+46
+207
+59
+49
+212
+59
+51
+225
+68
+61
+227
+65
+60
+228
+63
+59
+231
+62
+59
+233
+61
+59
+233
+59
+58
+232
+56
+56
+231
+56
+53
+231
+56
+53
+230
+57
+53
+230
+55
+52
+233
+59
+58
+244
+74
+74
+255
+92
+91
+255
+100
+99
+248
+99
+95
+204
+61
+57
+193
+56
+50
+189
+52
+46
+195
+56
+49
+213
+65
+61
+222
+69
+64
+223
+61
+59
+217
+52
+50
+226
+59
+53
+226
+59
+51
+226
+57
+52
+226
+57
+52
+228
+56
+52
+229
+56
+52
+231
+55
+55
+233
+55
+55
+234
+54
+57
+235
+55
+58
+235
+54
+59
+235
+56
+60
+235
+56
+62
+232
+55
+61
+232
+55
+61
+233
+54
+58
+235
+55
+58
+233
+54
+57
+230
+56
+57
+224
+59
+57
+219
+62
+57
+209
+62
+54
+198
+60
+49
+190
+60
+46
+179
+56
+41
+174
+59
+41
+170
+59
+40
+166
+59
+39
+164
+59
+40
+163
+58
+39
+163
+58
+39
+160
+57
+38
+161
+62
+43
+150
+55
+37
+156
+61
+43
+154
+57
+41
+154
+50
+39
+195
+80
+75
+237
+107
+109
+237
+93
+102
+235
+80
+94
+232
+75
+92
+220
+74
+87
+202
+77
+83
+182
+84
+83
+161
+93
+82
+142
+101
+81
+127
+106
+85
+78
+75
+56
+75
+72
+55
+80
+63
+47
+76
+55
+36
+69
+53
+27
+71
+71
+35
+87
+111
+61
+105
+146
+86
+127
+178
+111
+130
+179
+113
+131
+165
+104
+125
+146
+89
+131
+141
+89
+142
+150
+99
+137
+151
+100
+124
+140
+95
+88
+102
+67
+71
+84
+56
+57
+69
+45
+54
+66
+42
+58
+68
+44
+61
+74
+48
+74
+88
+55
+87
+104
+62
+101
+124
+70
+104
+130
+67
+108
+139
+69
+108
+144
+70
+105
+147
+71
+99
+145
+70
+97
+145
+71
+97
+143
+71
+102
+139
+70
+108
+140
+73
+109
+144
+78
+110
+145
+79
+108
+143
+79
+107
+142
+78
+107
+143
+79
+109
+145
+81
+112
+151
+84
+113
+153
+83
+112
+153
+83
+112
+154
+80
+111
+155
+78
+113
+157
+78
+116
+163
+82
+119
+166
+85
+126
+175
+96
+123
+174
+95
+121
+172
+93
+73
+67
+51
+74
+68
+54
+73
+69
+57
+73
+69
+58
+73
+71
+59
+73
+71
+59
+72
+70
+57
+72
+71
+53
+73
+72
+51
+74
+74
+50
+76
+76
+50
+78
+78
+52
+82
+80
+59
+84
+81
+62
+88
+82
+68
+89
+84
+65
+93
+89
+62
+91
+90
+62
+92
+89
+72
+94
+91
+84
+100
+97
+104
+110
+107
+126
+120
+115
+147
+125
+120
+160
+129
+123
+167
+131
+125
+171
+133
+127
+173
+131
+124
+166
+125
+119
+157
+117
+110
+143
+111
+105
+133
+107
+103
+130
+105
+102
+133
+106
+103
+134
+109
+104
+134
+109
+105
+128
+109
+105
+120
+108
+103
+110
+107
+98
+101
+106
+96
+94
+103
+93
+84
+104
+92
+80
+104
+90
+77
+107
+91
+76
+110
+93
+77
+113
+94
+79
+113
+94
+79
+112
+93
+78
+112
+93
+79
+111
+93
+79
+112
+93
+78
+115
+93
+79
+119
+93
+78
+126
+93
+78
+137
+91
+76
+147
+87
+76
+162
+84
+72
+166
+69
+60
+171
+57
+47
+186
+55
+45
+200
+56
+47
+211
+54
+45
+217
+54
+45
+221
+54
+45
+223
+54
+47
+223
+52
+45
+223
+52
+44
+223
+52
+44
+223
+55
+44
+221
+55
+41
+216
+54
+39
+209
+54
+36
+207
+58
+36
+204
+60
+36
+202
+60
+38
+203
+61
+39
+206
+59
+41
+209
+59
+42
+211
+58
+44
+206
+60
+45
+190
+65
+47
+175
+60
+39
+168
+51
+33
+172
+51
+32
+182
+57
+39
+193
+61
+46
+201
+59
+47
+204
+56
+46
+204
+50
+42
+224
+65
+59
+248
+91
+84
+224
+73
+64
+208
+68
+55
+202
+70
+55
+171
+50
+31
+184
+63
+44
+202
+70
+55
+204
+66
+53
+202
+64
+51
+203
+63
+50
+205
+63
+51
+210
+66
+55
+220
+69
+60
+225
+71
+63
+226
+64
+59
+226
+61
+57
+227
+58
+55
+226
+54
+52
+226
+54
+52
+227
+55
+53
+229
+57
+55
+229
+60
+57
+228
+63
+57
+224
+61
+54
+221
+58
+53
+225
+63
+58
+234
+77
+72
+234
+81
+76
+211
+64
+57
+184
+41
+35
+184
+45
+38
+190
+53
+45
+201
+62
+55
+208
+65
+59
+214
+62
+57
+217
+59
+56
+225
+59
+59
+231
+61
+61
+226
+57
+54
+226
+57
+54
+226
+57
+54
+228
+56
+54
+229
+57
+53
+231
+58
+54
+233
+57
+57
+234
+58
+58
+234
+56
+56
+234
+56
+56
+235
+56
+59
+235
+56
+59
+233
+57
+60
+232
+56
+59
+231
+55
+58
+231
+55
+58
+233
+54
+58
+230
+54
+56
+226
+56
+56
+222
+58
+56
+214
+61
+56
+204
+61
+53
+194
+60
+49
+185
+59
+45
+174
+57
+40
+170
+59
+42
+166
+59
+41
+162
+59
+40
+160
+59
+39
+158
+59
+38
+159
+58
+40
+155
+58
+39
+152
+63
+45
+140
+53
+34
+153
+61
+46
+152
+56
+42
+151
+47
+38
+205
+92
+88
+246
+122
+124
+222
+88
+95
+229
+89
+100
+217
+81
+91
+200
+77
+82
+183
+77
+79
+167
+87
+80
+155
+97
+85
+141
+104
+85
+128
+110
+86
+84
+84
+56
+67
+72
+42
+66
+57
+28
+72
+59
+27
+88
+80
+43
+110
+116
+68
+132
+162
+102
+148
+193
+126
+135
+188
+118
+134
+184
+115
+124
+158
+97
+110
+130
+77
+117
+126
+81
+130
+135
+94
+117
+125
+86
+91
+98
+64
+59
+68
+41
+52
+60
+37
+53
+61
+40
+61
+68
+50
+60
+69
+50
+57
+67
+43
+67
+80
+50
+85
+101
+62
+103
+123
+72
+105
+131
+70
+108
+139
+71
+109
+145
+71
+106
+147
+71
+102
+146
+71
+98
+144
+71
+99
+142
+71
+104
+141
+74
+108
+143
+77
+111
+146
+80
+110
+147
+80
+108
+143
+77
+105
+142
+75
+106
+143
+74
+106
+146
+76
+115
+155
+84
+115
+157
+85
+115
+157
+83
+114
+158
+81
+114
+158
+79
+115
+162
+82
+119
+166
+85
+122
+171
+90
+119
+167
+91
+117
+165
+91
+116
+164
+90
+82
+75
+59
+82
+75
+59
+82
+74
+61
+82
+74
+61
+82
+74
+61
+82
+74
+61
+82
+74
+61
+82
+75
+59
+85
+78
+60
+86
+79
+61
+87
+80
+62
+88
+81
+63
+89
+82
+64
+91
+84
+68
+92
+85
+69
+92
+85
+69
+98
+91
+72
+97
+90
+72
+97
+89
+76
+98
+89
+82
+101
+93
+91
+107
+97
+105
+113
+102
+116
+117
+106
+123
+122
+110
+132
+124
+112
+136
+127
+115
+139
+127
+115
+137
+124
+112
+132
+117
+106
+123
+109
+98
+114
+101
+93
+106
+99
+96
+105
+96
+95
+101
+95
+93
+98
+95
+90
+94
+94
+90
+89
+94
+89
+85
+97
+90
+82
+98
+90
+79
+101
+91
+79
+103
+91
+75
+105
+92
+75
+107
+92
+73
+107
+92
+71
+109
+92
+72
+109
+93
+70
+106
+94
+72
+106
+98
+79
+114
+101
+84
+113
+90
+74
+117
+79
+66
+139
+87
+74
+156
+92
+80
+162
+90
+76
+170
+91
+76
+164
+78
+61
+165
+70
+52
+166
+60
+44
+176
+56
+40
+194
+56
+45
+210
+56
+48
+221
+52
+49
+222
+49
+45
+223
+54
+47
+222
+55
+46
+222
+55
+46
+222
+55
+46
+222
+55
+46
+219
+55
+43
+216
+54
+41
+215
+55
+41
+213
+56
+41
+212
+56
+41
+210
+57
+41
+210
+57
+41
+210
+57
+43
+210
+57
+43
+212
+56
+43
+205
+59
+44
+189
+59
+43
+182
+62
+45
+174
+57
+40
+169
+49
+32
+171
+50
+33
+183
+57
+42
+192
+60
+47
+195
+57
+46
+200
+53
+43
+206
+53
+45
+212
+58
+48
+219
+67
+56
+221
+75
+62
+212
+72
+57
+194
+61
+44
+183
+50
+35
+221
+80
+70
+216
+74
+64
+212
+70
+60
+211
+69
+59
+215
+73
+63
+219
+72
+64
+221
+68
+62
+223
+61
+58
+223
+55
+52
+230
+56
+55
+234
+58
+58
+234
+58
+58
+229
+57
+55
+224
+55
+52
+222
+57
+51
+220
+61
+55
+220
+69
+62
+209
+65
+57
+199
+57
+47
+191
+50
+40
+185
+48
+38
+186
+52
+41
+191
+59
+47
+195
+63
+51
+195
+58
+48
+199
+61
+51
+208
+64
+55
+217
+64
+58
+224
+62
+59
+229
+60
+57
+233
+57
+57
+236
+58
+58
+230
+56
+58
+229
+56
+58
+229
+56
+58
+229
+57
+57
+229
+57
+55
+229
+57
+55
+229
+57
+53
+229
+57
+53
+224
+52
+48
+225
+53
+49
+228
+54
+53
+229
+55
+54
+230
+56
+57
+231
+57
+58
+231
+57
+58
+231
+57
+59
+235
+59
+62
+230
+57
+59
+223
+57
+57
+220
+61
+58
+214
+65
+61
+205
+66
+59
+193
+65
+54
+183
+63
+49
+169
+58
+41
+163
+60
+43
+160
+61
+42
+155
+60
+40
+153
+58
+38
+150
+58
+37
+151
+56
+38
+145
+56
+38
+144
+65
+48
+139
+60
+45
+135
+47
+35
+145
+47
+38
+188
+76
+74
+228
+109
+111
+229
+109
+111
+205
+86
+90
+189
+76
+78
+181
+78
+79
+170
+81
+77
+162
+85
+79
+155
+88
+79
+150
+93
+82
+149
+97
+84
+138
+106
+83
+88
+89
+47
+61
+75
+22
+56
+69
+15
+86
+97
+41
+127
+141
+80
+155
+176
+111
+161
+188
+121
+156
+189
+120
+146
+181
+115
+126
+157
+97
+104
+128
+76
+92
+109
+67
+89
+100
+66
+84
+93
+66
+72
+80
+57
+63
+68
+48
+58
+61
+44
+64
+67
+50
+60
+64
+49
+58
+62
+48
+60
+67
+51
+58
+67
+48
+65
+78
+50
+82
+100
+62
+93
+115
+66
+103
+131
+72
+112
+143
+75
+111
+147
+75
+108
+146
+71
+106
+146
+73
+105
+147
+75
+103
+144
+74
+108
+144
+80
+109
+145
+83
+111
+147
+83
+108
+147
+80
+109
+146
+77
+107
+147
+74
+109
+150
+74
+109
+152
+73
+113
+156
+76
+113
+158
+77
+114
+159
+78
+114
+161
+80
+116
+163
+82
+118
+167
+85
+121
+170
+89
+122
+170
+94
+123
+168
+101
+111
+155
+92
+101
+145
+82
+87
+78
+63
+87
+78
+63
+87
+78
+63
+87
+78
+63
+87
+78
+63
+87
+78
+63
+87
+78
+63
+87
+78
+63
+88
+79
+64
+89
+80
+65
+89
+80
+65
+91
+82
+67
+92
+83
+68
+93
+84
+69
+94
+85
+70
+95
+86
+71
+100
+91
+74
+99
+90
+73
+99
+89
+77
+99
+89
+79
+102
+91
+85
+106
+95
+93
+110
+98
+100
+112
+100
+104
+114
+101
+108
+116
+103
+112
+118
+105
+114
+118
+105
+114
+115
+102
+109
+109
+96
+103
+103
+91
+95
+98
+88
+89
+94
+91
+86
+90
+90
+82
+89
+86
+79
+87
+84
+75
+88
+84
+73
+88
+84
+72
+92
+86
+72
+94
+87
+71
+99
+90
+75
+99
+90
+73
+102
+91
+73
+103
+92
+72
+105
+93
+71
+106
+94
+70
+107
+95
+71
+106
+95
+73
+102
+97
+77
+111
+103
+84
+119
+91
+77
+129
+83
+70
+153
+86
+77
+168
+88
+79
+175
+82
+74
+180
+82
+69
+173
+73
+57
+170
+67
+48
+171
+61
+44
+177
+57
+41
+190
+56
+44
+204
+55
+48
+216
+52
+50
+220
+51
+48
+221
+54
+46
+220
+56
+46
+220
+56
+46
+220
+56
+46
+219
+55
+45
+218
+56
+45
+217
+55
+44
+215
+55
+43
+215
+55
+43
+213
+55
+43
+213
+55
+43
+213
+55
+43
+212
+56
+43
+212
+56
+43
+212
+56
+43
+206
+58
+44
+190
+60
+46
+182
+62
+46
+174
+57
+40
+166
+49
+32
+167
+50
+32
+178
+58
+41
+185
+62
+46
+190
+60
+46
+198
+58
+45
+199
+52
+42
+203
+52
+41
+210
+59
+48
+220
+69
+58
+225
+79
+66
+223
+81
+67
+221
+79
+67
+219
+70
+63
+214
+65
+59
+209
+60
+53
+208
+59
+52
+211
+62
+55
+215
+62
+56
+217
+58
+54
+218
+53
+51
+230
+56
+55
+234
+56
+56
+236
+56
+57
+234
+56
+56
+230
+56
+55
+226
+58
+55
+225
+62
+57
+219
+66
+58
+205
+64
+55
+194
+61
+52
+187
+57
+44
+180
+52
+39
+178
+52
+38
+181
+55
+41
+186
+60
+45
+191
+64
+49
+198
+64
+52
+205
+64
+54
+213
+65
+55
+220
+63
+56
+226
+58
+55
+230
+56
+55
+235
+55
+54
+239
+56
+58
+233
+54
+58
+231
+54
+60
+231
+55
+58
+230
+56
+57
+230
+56
+55
+229
+57
+53
+229
+57
+53
+227
+58
+53
+226
+57
+50
+227
+58
+51
+227
+58
+53
+228
+59
+54
+228
+59
+56
+228
+59
+56
+229
+57
+57
+229
+57
+57
+228
+58
+59
+227
+59
+59
+223
+60
+61
+217
+63
+61
+208
+65
+59
+196
+63
+54
+183
+61
+50
+172
+59
+45
+165
+59
+43
+160
+61
+42
+156
+61
+43
+151
+60
+41
+150
+59
+40
+146
+58
+38
+147
+56
+37
+140
+58
+37
+128
+57
+39
+128
+56
+41
+137
+53
+42
+157
+60
+53
+191
+81
+80
+215
+101
+101
+209
+94
+97
+183
+77
+77
+172
+78
+76
+164
+84
+77
+157
+89
+80
+152
+92
+81
+151
+94
+83
+151
+94
+83
+152
+95
+86
+140
+102
+81
+96
+95
+47
+83
+103
+42
+94
+114
+51
+122
+144
+79
+153
+175
+110
+165
+190
+124
+153
+178
+112
+136
+160
+98
+106
+130
+72
+97
+117
+66
+84
+101
+59
+74
+88
+55
+70
+80
+55
+63
+72
+53
+57
+63
+49
+53
+56
+45
+58
+60
+47
+65
+66
+52
+61
+63
+52
+58
+61
+50
+61
+65
+51
+58
+67
+48
+64
+77
+51
+82
+100
+62
+94
+116
+69
+103
+131
+72
+113
+144
+77
+112
+148
+76
+110
+146
+72
+107
+148
+72
+107
+147
+76
+104
+145
+75
+109
+145
+81
+110
+146
+84
+109
+148
+83
+109
+148
+81
+107
+147
+76
+107
+148
+72
+108
+151
+72
+109
+152
+72
+112
+157
+74
+112
+157
+74
+112
+160
+76
+115
+162
+81
+117
+166
+84
+120
+169
+88
+120
+169
+88
+120
+168
+94
+110
+152
+89
+100
+141
+83
+90
+131
+73
+93
+84
+69
+93
+84
+69
+93
+84
+69
+93
+84
+69
+93
+84
+69
+93
+84
+69
+93
+84
+69
+93
+84
+69
+91
+82
+67
+92
+83
+68
+93
+84
+69
+94
+85
+70
+95
+86
+71
+96
+87
+72
+97
+88
+73
+97
+88
+71
+101
+93
+74
+101
+93
+72
+100
+91
+74
+100
+91
+76
+101
+91
+81
+102
+91
+85
+104
+93
+89
+104
+93
+91
+105
+93
+93
+106
+94
+94
+107
+95
+95
+107
+95
+95
+105
+94
+92
+102
+91
+89
+98
+87
+83
+95
+86
+81
+90
+86
+77
+87
+84
+75
+85
+81
+72
+82
+78
+67
+81
+77
+66
+83
+79
+67
+87
+81
+67
+88
+82
+66
+94
+87
+71
+94
+87
+69
+97
+89
+70
+99
+91
+70
+103
+92
+72
+105
+94
+72
+107
+96
+74
+105
+97
+76
+101
+96
+77
+113
+101
+85
+123
+94
+80
+136
+88
+78
+162
+91
+85
+175
+88
+81
+177
+74
+69
+182
+71
+64
+182
+65
+55
+183
+63
+49
+182
+60
+47
+184
+56
+43
+189
+55
+43
+197
+57
+44
+204
+57
+47
+211
+57
+47
+217
+56
+46
+219
+55
+45
+219
+55
+45
+219
+57
+46
+218
+56
+45
+217
+55
+44
+217
+55
+44
+215
+55
+43
+215
+55
+43
+213
+55
+43
+213
+55
+43
+212
+56
+43
+212
+56
+43
+212
+56
+43
+210
+57
+43
+205
+59
+44
+192
+62
+48
+182
+62
+46
+173
+58
+40
+163
+50
+32
+163
+51
+31
+170
+58
+38
+179
+62
+44
+185
+62
+46
+196
+63
+48
+196
+56
+43
+197
+50
+40
+200
+52
+42
+208
+60
+48
+216
+70
+57
+220
+77
+63
+225
+78
+68
+216
+59
+54
+215
+53
+51
+210
+51
+48
+211
+53
+50
+216
+58
+55
+222
+63
+60
+227
+62
+60
+232
+60
+60
+236
+57
+60
+237
+54
+58
+234
+51
+55
+231
+51
+54
+230
+54
+56
+227
+57
+57
+224
+60
+58
+217
+64
+58
+193
+55
+45
+184
+56
+43
+179
+53
+39
+175
+52
+37
+175
+52
+37
+178
+55
+40
+182
+59
+43
+187
+61
+46
+200
+68
+53
+205
+67
+54
+213
+66
+56
+217
+63
+55
+223
+58
+52
+229
+56
+52
+234
+54
+53
+238
+55
+57
+234
+54
+57
+233
+54
+57
+233
+54
+57
+231
+55
+55
+231
+55
+55
+230
+57
+53
+229
+57
+53
+229
+58
+51
+227
+58
+51
+228
+59
+52
+228
+59
+54
+227
+60
+54
+227
+59
+56
+226
+58
+57
+225
+57
+57
+222
+56
+56
+221
+57
+58
+220
+60
+60
+218
+64
+62
+211
+66
+61
+200
+63
+57
+185
+58
+49
+173
+55
+43
+165
+55
+40
+161
+59
+44
+157
+60
+43
+153
+60
+43
+148
+59
+41
+147
+58
+40
+144
+57
+38
+144
+55
+37
+138
+57
+38
+122
+54
+35
+121
+54
+37
+136
+57
+44
+160
+70
+61
+185
+83
+79
+192
+87
+84
+184
+80
+79
+171
+73
+70
+162
+77
+72
+156
+83
+76
+153
+89
+80
+151
+94
+83
+151
+97
+87
+151
+97
+87
+152
+95
+86
+139
+101
+80
+115
+114
+70
+122
+141
+86
+147
+166
+110
+164
+185
+128
+171
+192
+135
+158
+179
+123
+124
+144
+91
+91
+111
+60
+63
+82
+36
+65
+83
+43
+65
+80
+47
+63
+76
+50
+58
+67
+48
+54
+60
+46
+54
+57
+48
+53
+56
+47
+57
+59
+46
+64
+65
+51
+61
+63
+52
+57
+60
+49
+61
+65
+51
+57
+66
+47
+64
+77
+51
+81
+99
+61
+96
+118
+71
+105
+133
+74
+115
+146
+79
+114
+150
+78
+112
+148
+74
+109
+150
+74
+109
+149
+78
+107
+148
+78
+112
+148
+84
+113
+149
+85
+111
+150
+83
+110
+150
+80
+108
+148
+75
+108
+149
+73
+108
+151
+72
+110
+153
+73
+112
+157
+76
+112
+157
+76
+112
+159
+78
+117
+164
+83
+120
+169
+88
+121
+170
+91
+117
+166
+87
+113
+160
+88
+95
+137
+74
+86
+127
+69
+79
+120
+62
+97
+88
+73
+97
+88
+73
+97
+88
+73
+97
+88
+73
+97
+88
+73
+97
+88
+73
+97
+88
+73
+97
+88
+73
+95
+86
+71
+96
+87
+72
+96
+87
+72
+97
+88
+73
+98
+89
+74
+99
+90
+75
+100
+91
+76
+100
+91
+74
+101
+93
+72
+102
+94
+71
+102
+94
+73
+103
+95
+76
+103
+94
+79
+102
+92
+80
+102
+92
+82
+102
+92
+83
+104
+93
+87
+104
+93
+87
+104
+93
+87
+104
+94
+85
+103
+93
+84
+101
+91
+81
+100
+90
+80
+99
+91
+78
+93
+89
+77
+90
+86
+74
+86
+82
+70
+82
+78
+66
+80
+76
+64
+80
+77
+62
+84
+78
+64
+85
+79
+63
+87
+81
+65
+89
+84
+65
+91
+86
+67
+93
+88
+68
+97
+90
+71
+100
+93
+74
+102
+95
+76
+102
+97
+77
+103
+97
+81
+111
+99
+85
+119
+91
+79
+138
+91
+81
+169
+98
+92
+182
+91
+88
+180
+71
+68
+183
+61
+58
+193
+61
+56
+195
+60
+54
+195
+58
+48
+193
+57
+45
+189
+56
+41
+189
+57
+42
+193
+61
+46
+202
+62
+47
+213
+57
+45
+217
+55
+44
+218
+56
+45
+217
+57
+45
+218
+56
+45
+216
+56
+44
+216
+56
+44
+213
+55
+43
+213
+55
+43
+212
+56
+43
+212
+56
+43
+212
+56
+43
+212
+56
+43
+212
+56
+43
+210
+57
+43
+205
+59
+44
+193
+63
+49
+182
+62
+46
+172
+57
+39
+162
+51
+32
+157
+51
+29
+162
+56
+34
+172
+61
+41
+181
+64
+46
+188
+63
+45
+191
+58
+43
+195
+55
+42
+197
+53
+42
+203
+55
+43
+206
+58
+46
+206
+60
+47
+211
+58
+50
+220
+55
+53
+223
+50
+52
+218
+50
+50
+218
+52
+52
+222
+56
+56
+226
+60
+60
+232
+62
+63
+235
+61
+62
+235
+56
+60
+235
+52
+56
+232
+49
+54
+229
+50
+53
+228
+54
+56
+224
+56
+55
+217
+55
+53
+204
+55
+49
+185
+51
+40
+177
+54
+39
+175
+53
+38
+174
+54
+38
+174
+54
+38
+176
+56
+40
+179
+58
+41
+181
+58
+42
+195
+65
+49
+202
+66
+52
+210
+66
+55
+217
+64
+56
+223
+60
+53
+227
+58
+53
+234
+56
+54
+236
+56
+55
+237
+54
+56
+235
+55
+56
+235
+55
+56
+234
+56
+54
+234
+56
+54
+232
+57
+52
+231
+58
+52
+230
+59
+52
+226
+57
+50
+225
+58
+50
+223
+58
+52
+224
+59
+55
+222
+58
+56
+220
+58
+56
+219
+57
+55
+217
+57
+57
+214
+60
+58
+213
+64
+60
+210
+67
+61
+202
+65
+59
+187
+59
+50
+175
+54
+43
+164
+54
+39
+158
+55
+40
+156
+59
+42
+152
+59
+41
+148
+59
+41
+146
+59
+40
+143
+58
+38
+141
+56
+36
+140
+55
+35
+135
+57
+37
+128
+61
+42
+118
+53
+35
+129
+53
+39
+153
+69
+58
+170
+80
+72
+172
+77
+71
+169
+76
+71
+166
+81
+76
+157
+80
+74
+152
+85
+76
+148
+90
+79
+148
+94
+82
+149
+97
+86
+149
+97
+86
+151
+97
+87
+141
+103
+84
+137
+133
+95
+153
+169
+120
+173
+189
+142
+166
+184
+136
+144
+161
+116
+115
+134
+89
+78
+96
+56
+47
+65
+27
+45
+62
+28
+51
+66
+37
+58
+70
+46
+61
+70
+51
+59
+65
+51
+58
+61
+50
+58
+61
+52
+60
+61
+53
+57
+57
+45
+63
+64
+50
+60
+62
+51
+57
+60
+49
+60
+64
+50
+57
+66
+47
+63
+76
+50
+80
+98
+60
+97
+119
+72
+106
+134
+75
+116
+147
+80
+115
+151
+79
+114
+150
+76
+111
+152
+76
+111
+151
+80
+109
+151
+79
+112
+151
+84
+115
+152
+85
+112
+152
+82
+111
+151
+80
+109
+150
+74
+109
+150
+72
+110
+153
+74
+112
+155
+75
+113
+158
+77
+114
+159
+78
+116
+163
+83
+121
+168
+88
+123
+172
+93
+119
+167
+91
+109
+157
+83
+101
+146
+77
+90
+132
+69
+82
+123
+65
+77
+118
+60
+99
+90
+75
+99
+90
+75
+99
+90
+75
+99
+90
+75
+99
+90
+75
+99
+90
+75
+99
+90
+75
+99
+90
+75
+99
+90
+75
+99
+90
+75
+100
+91
+76
+100
+91
+76
+101
+92
+77
+102
+93
+78
+102
+93
+78
+102
+93
+76
+102
+94
+71
+103
+95
+72
+104
+96
+73
+105
+97
+76
+105
+97
+78
+105
+96
+79
+104
+95
+80
+103
+94
+79
+106
+96
+84
+105
+96
+81
+105
+96
+81
+104
+95
+78
+104
+95
+78
+104
+96
+77
+104
+96
+77
+104
+97
+78
+100
+94
+78
+96
+90
+76
+91
+85
+71
+86
+80
+66
+80
+77
+62
+78
+75
+58
+78
+75
+58
+78
+75
+58
+80
+77
+60
+82
+79
+62
+84
+81
+64
+86
+83
+64
+88
+87
+67
+91
+90
+70
+93
+92
+72
+95
+92
+75
+99
+96
+81
+105
+93
+81
+112
+85
+74
+134
+91
+82
+172
+105
+99
+189
+100
+96
+191
+79
+77
+197
+67
+67
+205
+61
+61
+210
+58
+57
+209
+57
+52
+203
+56
+48
+194
+56
+43
+187
+60
+41
+184
+65
+43
+190
+65
+43
+208
+58
+43
+215
+55
+41
+216
+56
+42
+215
+58
+43
+217
+57
+43
+214
+57
+42
+214
+57
+42
+212
+56
+41
+212
+56
+41
+212
+56
+41
+212
+56
+41
+210
+57
+41
+210
+57
+41
+210
+57
+41
+210
+57
+41
+205
+59
+44
+193
+63
+49
+182
+62
+48
+171
+58
+40
+161
+54
+34
+154
+52
+30
+155
+55
+32
+163
+61
+38
+175
+66
+45
+179
+59
+42
+186
+59
+44
+194
+58
+44
+199
+57
+45
+203
+56
+46
+206
+58
+48
+208
+60
+48
+216
+59
+52
+232
+58
+60
+234
+53
+60
+228
+51
+57
+226
+51
+56
+223
+53
+56
+223
+53
+56
+225
+52
+56
+225
+51
+53
+233
+54
+60
+232
+53
+57
+231
+52
+58
+230
+56
+58
+226
+57
+60
+218
+56
+54
+206
+51
+49
+191
+48
+40
+181
+53
+40
+174
+57
+40
+174
+57
+40
+173
+58
+40
+173
+58
+40
+173
+58
+40
+173
+56
+38
+175
+55
+38
+184
+58
+43
+193
+59
+47
+205
+63
+51
+215
+64
+55
+221
+62
+56
+225
+60
+56
+231
+58
+54
+235
+57
+55
+237
+55
+54
+238
+54
+54
+238
+54
+54
+237
+55
+52
+234
+56
+52
+232
+58
+51
+231
+58
+51
+228
+60
+51
+225
+58
+50
+223
+59
+50
+223
+60
+53
+220
+61
+55
+219
+61
+58
+217
+62
+60
+215
+61
+59
+212
+62
+61
+207
+64
+60
+203
+66
+60
+197
+66
+58
+185
+61
+53
+173
+55
+45
+163
+53
+40
+158
+55
+40
+154
+58
+42
+150
+59
+41
+147
+60
+41
+145
+59
+42
+141
+58
+40
+138
+57
+38
+137
+56
+37
+136
+55
+36
+131
+56
+37
+131
+64
+45
+117
+52
+34
+123
+51
+37
+147
+71
+58
+164
+81
+73
+161
+78
+70
+158
+78
+71
+161
+87
+78
+152
+85
+76
+146
+88
+76
+144
+90
+78
+141
+92
+78
+143
+93
+82
+148
+96
+85
+151
+97
+87
+143
+104
+87
+141
+137
+102
+152
+165
+122
+157
+169
+129
+128
+142
+106
+93
+107
+72
+68
+83
+52
+50
+64
+38
+36
+50
+25
+45
+58
+38
+48
+59
+42
+53
+61
+46
+57
+63
+51
+60
+63
+52
+61
+63
+52
+58
+59
+51
+58
+58
+48
+57
+57
+45
+62
+63
+49
+59
+61
+50
+56
+59
+48
+59
+63
+49
+56
+65
+46
+62
+75
+49
+80
+98
+60
+98
+120
+73
+107
+135
+76
+117
+148
+81
+116
+152
+80
+115
+151
+77
+113
+154
+78
+113
+153
+82
+111
+153
+81
+114
+154
+83
+114
+154
+83
+114
+154
+81
+112
+153
+77
+109
+151
+75
+109
+152
+73
+112
+155
+76
+115
+158
+79
+116
+160
+81
+118
+162
+83
+120
+167
+89
+123
+169
+94
+122
+168
+95
+113
+159
+86
+100
+146
+74
+89
+134
+67
+92
+133
+73
+85
+124
+69
+81
+120
+65
+101
+92
+77
+101
+92
+77
+101
+92
+77
+101
+92
+77
+101
+92
+77
+101
+92
+77
+101
+92
+77
+101
+92
+77
+101
+92
+77
+102
+93
+78
+102
+93
+78
+102
+93
+78
+103
+94
+79
+103
+94
+79
+104
+95
+80
+104
+95
+78
+103
+95
+74
+104
+96
+73
+105
+97
+76
+106
+98
+77
+106
+98
+79
+106
+98
+79
+106
+97
+80
+106
+97
+80
+106
+97
+80
+105
+97
+78
+104
+96
+77
+104
+96
+75
+104
+96
+75
+104
+96
+73
+105
+97
+74
+106
+98
+75
+102
+95
+77
+98
+93
+74
+94
+88
+72
+88
+82
+66
+83
+77
+61
+77
+74
+57
+75
+72
+55
+73
+72
+54
+75
+74
+56
+76
+75
+57
+76
+77
+59
+78
+79
+61
+80
+81
+63
+81
+84
+65
+83
+86
+69
+84
+85
+69
+92
+88
+76
+95
+85
+73
+100
+80
+69
+124
+87
+78
+161
+104
+97
+181
+102
+97
+193
+88
+85
+211
+83
+82
+214
+65
+67
+220
+60
+62
+219
+57
+55
+210
+56
+48
+200
+58
+46
+189
+62
+43
+178
+66
+42
+183
+64
+40
+204
+59
+42
+212
+55
+40
+213
+56
+41
+213
+57
+42
+214
+57
+42
+213
+57
+42
+213
+57
+42
+212
+56
+41
+212
+56
+41
+210
+57
+41
+210
+57
+41
+210
+57
+41
+210
+57
+41
+210
+57
+41
+210
+57
+41
+205
+59
+44
+193
+63
+49
+181
+61
+47
+171
+60
+41
+162
+57
+36
+153
+54
+31
+149
+53
+29
+155
+59
+34
+167
+65
+42
+178
+66
+46
+185
+64
+47
+191
+59
+44
+195
+55
+42
+197
+50
+40
+203
+52
+43
+210
+59
+48
+223
+61
+56
+233
+54
+58
+237
+52
+60
+234
+55
+61
+232
+57
+62
+229
+59
+62
+228
+59
+62
+225
+59
+61
+224
+58
+60
+223
+53
+56
+224
+55
+58
+226
+57
+62
+224
+61
+62
+217
+61
+62
+207
+58
+54
+194
+51
+47
+181
+48
+39
+177
+57
+43
+172
+61
+42
+172
+61
+42
+171
+62
+42
+170
+61
+41
+169
+60
+40
+169
+58
+39
+171
+56
+37
+175
+54
+37
+183
+56
+41
+197
+59
+48
+206
+62
+51
+214
+61
+53
+222
+60
+55
+227
+59
+56
+232
+59
+55
+236
+56
+55
+239
+55
+53
+239
+55
+53
+238
+56
+53
+235
+58
+52
+233
+59
+52
+231
+60
+52
+228
+61
+52
+226
+62
+53
+224
+63
+55
+222
+65
+58
+218
+65
+59
+217
+65
+62
+213
+65
+63
+209
+64
+61
+205
+66
+63
+195
+63
+58
+187
+64
+56
+179
+61
+51
+170
+56
+45
+161
+53
+40
+155
+53
+39
+152
+56
+40
+149
+60
+42
+145
+60
+40
+141
+60
+41
+138
+60
+40
+136
+58
+38
+134
+57
+39
+132
+55
+37
+131
+54
+36
+127
+54
+37
+125
+58
+41
+116
+51
+33
+126
+57
+42
+151
+79
+65
+163
+89
+78
+156
+82
+71
+149
+79
+69
+152
+86
+74
+149
+89
+78
+144
+91
+77
+142
+90
+77
+140
+91
+77
+142
+92
+81
+147
+95
+84
+153
+96
+87
+145
+103
+87
+126
+120
+88
+121
+131
+94
+114
+124
+90
+85
+96
+66
+59
+69
+44
+47
+59
+37
+48
+59
+42
+48
+60
+46
+51
+61
+50
+52
+60
+49
+54
+60
+50
+60
+63
+54
+64
+65
+57
+63
+65
+54
+60
+60
+48
+55
+55
+43
+56
+57
+43
+62
+63
+49
+58
+60
+49
+55
+58
+47
+58
+62
+48
+55
+64
+45
+61
+74
+48
+79
+97
+59
+98
+120
+73
+107
+135
+76
+117
+148
+81
+117
+153
+81
+116
+152
+78
+113
+154
+78
+114
+154
+83
+112
+154
+82
+114
+154
+81
+115
+156
+80
+114
+155
+79
+112
+153
+75
+110
+153
+74
+112
+155
+76
+115
+158
+79
+118
+161
+82
+121
+165
+88
+123
+167
+90
+122
+168
+93
+120
+166
+93
+113
+159
+87
+103
+148
+79
+93
+138
+69
+88
+130
+66
+95
+134
+77
+87
+126
+71
+82
+121
+66
+103
+94
+79
+103
+94
+79
+103
+94
+79
+103
+94
+79
+103
+94
+79
+103
+94
+79
+103
+94
+79
+103
+94
+79
+103
+94
+79
+103
+94
+79
+103
+94
+79
+104
+95
+80
+104
+95
+80
+104
+95
+80
+104
+95
+80
+105
+96
+79
+106
+97
+80
+106
+98
+79
+106
+98
+79
+106
+98
+79
+105
+96
+79
+105
+96
+79
+105
+97
+78
+105
+97
+78
+105
+97
+78
+104
+96
+75
+104
+96
+75
+104
+96
+73
+104
+96
+73
+104
+97
+71
+104
+97
+71
+104
+97
+71
+102
+95
+76
+101
+94
+75
+98
+91
+73
+92
+87
+68
+87
+82
+63
+80
+77
+58
+76
+73
+56
+73
+72
+54
+73
+72
+54
+71
+72
+54
+71
+74
+57
+71
+75
+58
+72
+76
+59
+73
+77
+60
+72
+79
+63
+74
+78
+63
+82
+80
+67
+89
+81
+70
+92
+78
+67
+105
+82
+68
+129
+89
+77
+149
+87
+76
+174
+84
+76
+209
+91
+89
+217
+75
+74
+223
+65
+66
+223
+57
+57
+217
+55
+50
+207
+59
+49
+195
+62
+45
+183
+64
+42
+180
+60
+36
+201
+58
+41
+211
+55
+40
+212
+56
+41
+211
+58
+42
+213
+57
+42
+211
+58
+42
+211
+58
+42
+211
+58
+42
+210
+57
+41
+209
+58
+41
+209
+58
+41
+209
+58
+41
+209
+58
+41
+209
+58
+41
+209
+58
+41
+205
+59
+44
+193
+61
+48
+181
+61
+47
+172
+61
+44
+163
+60
+41
+152
+56
+32
+144
+52
+27
+149
+57
+32
+161
+65
+41
+173
+67
+45
+182
+65
+47
+191
+61
+47
+192
+54
+43
+194
+47
+37
+199
+48
+39
+208
+54
+46
+222
+58
+56
+232
+53
+57
+238
+54
+62
+236
+59
+65
+233
+64
+67
+229
+66
+69
+224
+66
+67
+220
+64
+65
+217
+63
+63
+204
+50
+50
+207
+55
+54
+211
+58
+60
+207
+62
+59
+199
+60
+57
+189
+56
+49
+180
+53
+46
+171
+53
+41
+170
+60
+45
+167
+62
+43
+167
+62
+43
+166
+63
+44
+165
+62
+43
+166
+61
+40
+166
+59
+39
+169
+58
+39
+170
+55
+37
+177
+56
+39
+188
+56
+43
+195
+57
+46
+203
+56
+48
+211
+58
+52
+220
+61
+57
+228
+63
+59
+233
+58
+55
+236
+57
+53
+236
+57
+53
+235
+58
+52
+233
+59
+52
+232
+59
+52
+229
+61
+52
+226
+62
+52
+224
+66
+55
+221
+67
+57
+218
+67
+60
+213
+66
+59
+207
+65
+61
+202
+63
+60
+199
+61
+59
+191
+62
+57
+177
+60
+51
+169
+58
+47
+162
+56
+43
+156
+54
+40
+152
+55
+39
+148
+56
+41
+145
+58
+41
+141
+58
+40
+139
+61
+41
+137
+60
+42
+135
+60
+41
+131
+58
+39
+130
+57
+40
+128
+55
+38
+127
+54
+37
+125
+54
+36
+120
+51
+35
+120
+53
+37
+133
+66
+50
+152
+85
+69
+157
+87
+75
+148
+80
+67
+144
+80
+68
+149
+90
+76
+147
+89
+77
+144
+90
+78
+144
+92
+81
+144
+92
+81
+146
+91
+84
+149
+92
+85
+152
+91
+86
+142
+98
+85
+107
+98
+69
+86
+96
+61
+74
+83
+52
+61
+71
+44
+54
+63
+42
+50
+61
+44
+52
+62
+51
+53
+63
+54
+54
+61
+54
+56
+63
+56
+61
+66
+59
+67
+70
+61
+69
+71
+60
+67
+68
+54
+64
+62
+47
+59
+57
+42
+55
+56
+42
+61
+62
+48
+58
+60
+49
+55
+58
+47
+58
+62
+48
+54
+63
+44
+61
+74
+48
+78
+96
+58
+97
+119
+72
+107
+135
+76
+117
+148
+81
+117
+153
+81
+116
+152
+78
+114
+155
+79
+114
+154
+83
+112
+154
+80
+113
+155
+79
+114
+157
+78
+113
+156
+77
+112
+155
+76
+111
+154
+75
+114
+157
+78
+117
+161
+84
+121
+165
+88
+127
+171
+96
+126
+169
+97
+122
+165
+93
+113
+156
+85
+102
+145
+76
+95
+137
+71
+93
+135
+69
+94
+136
+73
+97
+136
+79
+89
+128
+73
+82
+121
+66
+104
+95
+80
+104
+95
+80
+104
+95
+80
+104
+95
+80
+104
+95
+80
+104
+95
+80
+104
+95
+80
+104
+95
+80
+103
+94
+79
+104
+95
+80
+104
+95
+80
+104
+95
+80
+104
+95
+80
+104
+95
+80
+105
+96
+81
+105
+96
+81
+109
+100
+85
+108
+99
+84
+106
+97
+82
+105
+96
+81
+104
+95
+80
+103
+94
+79
+103
+94
+77
+104
+96
+77
+105
+97
+78
+105
+97
+76
+105
+97
+76
+105
+97
+76
+104
+96
+73
+104
+96
+73
+104
+97
+71
+104
+96
+73
+103
+97
+75
+102
+95
+76
+101
+94
+75
+98
+91
+72
+92
+87
+68
+85
+82
+63
+80
+77
+60
+77
+76
+58
+69
+70
+52
+68
+71
+52
+68
+72
+55
+68
+72
+55
+66
+73
+57
+66
+75
+58
+66
+75
+58
+67
+74
+58
+74
+74
+62
+84
+80
+68
+85
+79
+65
+89
+76
+60
+101
+75
+58
+115
+69
+53
+146
+74
+62
+192
+91
+83
+215
+83
+79
+222
+70
+69
+223
+59
+58
+220
+55
+53
+213
+59
+51
+204
+61
+47
+189
+60
+41
+184
+55
+34
+203
+58
+41
+207
+56
+39
+208
+57
+40
+210
+59
+42
+210
+59
+42
+210
+59
+42
+210
+59
+42
+210
+59
+42
+209
+58
+41
+209
+58
+41
+209
+58
+41
+209
+58
+41
+209
+58
+41
+209
+58
+41
+209
+58
+41
+205
+59
+44
+193
+59
+48
+182
+58
+46
+173
+60
+44
+167
+62
+43
+153
+57
+35
+143
+51
+26
+147
+55
+30
+159
+63
+39
+163
+57
+35
+176
+59
+41
+192
+62
+48
+198
+60
+49
+204
+56
+46
+208
+55
+47
+217
+60
+53
+227
+63
+61
+236
+61
+66
+238
+63
+68
+233
+67
+69
+226
+68
+67
+214
+64
+63
+202
+59
+55
+192
+53
+48
+187
+49
+46
+183
+48
+44
+187
+54
+49
+190
+58
+54
+187
+60
+54
+179
+58
+50
+169
+57
+46
+164
+56
+44
+160
+58
+43
+161
+61
+45
+159
+62
+43
+160
+63
+44
+161
+64
+45
+161
+64
+45
+163
+64
+43
+163
+62
+42
+164
+61
+42
+169
+59
+42
+173
+58
+40
+178
+55
+40
+184
+54
+41
+191
+53
+43
+201
+57
+48
+212
+63
+57
+224
+67
+62
+229
+60
+55
+232
+59
+53
+232
+59
+53
+231
+60
+52
+229
+60
+53
+228
+61
+52
+225
+62
+53
+222
+64
+53
+220
+68
+57
+216
+68
+58
+210
+67
+59
+202
+65
+57
+196
+63
+58
+188
+59
+54
+184
+56
+53
+176
+57
+51
+162
+55
+45
+153
+56
+40
+149
+53
+39
+147
+54
+39
+145
+58
+41
+143
+60
+42
+139
+58
+41
+133
+56
+38
+136
+61
+42
+133
+60
+43
+131
+60
+42
+128
+60
+41
+126
+58
+39
+124
+56
+37
+123
+54
+38
+123
+54
+38
+121
+49
+35
+128
+56
+42
+140
+71
+56
+150
+83
+67
+146
+80
+66
+139
+76
+61
+144
+82
+69
+153
+95
+83
+145
+87
+76
+146
+89
+78
+148
+91
+82
+150
+93
+84
+150
+93
+86
+151
+92
+86
+150
+89
+84
+140
+94
+81
+97
+88
+59
+69
+77
+40
+54
+64
+30
+56
+65
+38
+62
+71
+50
+60
+69
+52
+51
+61
+50
+45
+55
+46
+49
+56
+49
+55
+62
+54
+66
+69
+60
+71
+74
+63
+72
+73
+59
+66
+67
+49
+63
+62
+42
+59
+58
+38
+55
+56
+40
+61
+62
+48
+57
+59
+48
+54
+57
+46
+58
+62
+48
+54
+63
+44
+60
+73
+47
+78
+96
+58
+97
+119
+72
+106
+134
+75
+117
+148
+81
+116
+152
+80
+116
+152
+78
+114
+155
+79
+114
+154
+83
+112
+154
+80
+113
+156
+77
+113
+156
+76
+113
+156
+76
+112
+155
+75
+112
+155
+76
+115
+158
+79
+119
+163
+86
+123
+167
+92
+130
+173
+101
+128
+171
+100
+120
+163
+92
+106
+149
+80
+93
+135
+69
+89
+131
+65
+94
+136
+72
+101
+143
+80
+99
+138
+81
+90
+129
+74
+83
+122
+67
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+95
+83
+106
+96
+87
+106
+96
+87
+106
+96
+87
+106
+96
+87
+106
+96
+86
+106
+96
+86
+106
+96
+84
+106
+97
+82
+106
+97
+82
+106
+97
+80
+106
+97
+80
+106
+98
+79
+106
+98
+79
+106
+98
+79
+106
+98
+77
+106
+98
+77
+103
+95
+74
+103
+95
+74
+102
+94
+73
+101
+95
+73
+98
+93
+73
+90
+88
+67
+83
+80
+61
+77
+76
+58
+72
+73
+55
+69
+72
+55
+65
+69
+54
+64
+68
+53
+63
+69
+55
+63
+71
+56
+63
+71
+56
+63
+69
+55
+72
+74
+61
+74
+75
+61
+67
+68
+52
+75
+74
+54
+92
+81
+59
+96
+70
+47
+128
+75
+57
+189
+107
+93
+217
+104
+96
+224
+86
+83
+226
+71
+69
+229
+65
+64
+226
+64
+61
+215
+61
+53
+203
+59
+48
+201
+59
+45
+199
+51
+37
+203
+53
+38
+204
+54
+39
+205
+55
+40
+205
+55
+40
+206
+56
+41
+209
+59
+44
+211
+61
+46
+210
+60
+45
+210
+60
+45
+210
+60
+45
+210
+60
+45
+209
+59
+44
+209
+59
+44
+209
+59
+44
+206
+60
+45
+187
+50
+40
+182
+55
+46
+177
+59
+47
+168
+58
+41
+154
+55
+34
+148
+53
+31
+149
+55
+30
+156
+57
+34
+174
+65
+45
+179
+59
+43
+186
+54
+41
+193
+52
+42
+205
+54
+47
+215
+60
+55
+226
+67
+63
+234
+72
+69
+232
+68
+69
+232
+69
+72
+221
+67
+67
+201
+58
+54
+187
+54
+49
+180
+56
+48
+176
+55
+46
+169
+52
+43
+171
+57
+47
+169
+57
+46
+164
+56
+46
+160
+56
+45
+155
+57
+44
+150
+58
+43
+147
+60
+43
+146
+60
+43
+150
+61
+43
+152
+61
+42
+153
+62
+43
+154
+63
+44
+155
+64
+45
+156
+65
+44
+158
+66
+45
+161
+64
+45
+162
+59
+42
+165
+58
+40
+171
+55
+40
+176
+54
+41
+182
+54
+43
+190
+56
+45
+197
+58
+51
+204
+60
+52
+218
+61
+54
+224
+61
+54
+226
+63
+56
+226
+65
+55
+226
+65
+57
+222
+66
+54
+218
+64
+54
+215
+64
+53
+216
+72
+61
+210
+69
+59
+199
+65
+56
+187
+59
+50
+178
+53
+47
+170
+51
+45
+166
+49
+42
+159
+50
+43
+153
+57
+45
+146
+59
+42
+145
+57
+43
+141
+58
+42
+139
+58
+41
+136
+59
+41
+135
+59
+43
+133
+60
+43
+128
+57
+39
+125
+56
+40
+124
+57
+40
+124
+57
+40
+124
+57
+40
+123
+56
+39
+121
+54
+38
+120
+51
+36
+119
+45
+32
+139
+65
+52
+151
+79
+67
+147
+77
+65
+142
+76
+64
+145
+81
+69
+147
+85
+74
+142
+82
+71
+152
+92
+82
+152
+92
+82
+145
+85
+77
+144
+84
+76
+151
+90
+85
+149
+88
+83
+148
+87
+84
+147
+103
+90
+93
+84
+53
+73
+81
+42
+65
+75
+40
+66
+75
+44
+62
+72
+47
+55
+64
+43
+50
+61
+45
+52
+63
+49
+52
+60
+49
+72
+80
+67
+90
+94
+80
+87
+91
+74
+77
+79
+58
+68
+70
+46
+65
+65
+39
+61
+61
+37
+58
+59
+41
+62
+63
+49
+59
+61
+50
+58
+61
+50
+59
+63
+49
+52
+61
+42
+59
+72
+46
+80
+98
+60
+99
+121
+74
+108
+136
+77
+117
+148
+81
+115
+151
+79
+114
+150
+76
+112
+153
+77
+114
+154
+83
+113
+155
+81
+112
+157
+76
+113
+158
+75
+114
+159
+78
+114
+159
+78
+115
+159
+80
+118
+162
+85
+123
+167
+92
+127
+170
+98
+130
+173
+102
+120
+163
+94
+106
+147
+79
+96
+137
+71
+94
+135
+69
+97
+137
+74
+102
+142
+80
+104
+144
+84
+100
+137
+83
+91
+128
+76
+84
+121
+69
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+95
+83
+106
+95
+89
+106
+95
+91
+106
+95
+91
+106
+95
+89
+106
+95
+89
+106
+96
+87
+106
+96
+86
+106
+96
+84
+106
+96
+84
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+80
+106
+97
+80
+104
+96
+77
+104
+96
+75
+103
+95
+74
+103
+95
+74
+100
+93
+74
+94
+89
+69
+85
+82
+63
+79
+78
+58
+73
+74
+58
+69
+72
+55
+66
+68
+54
+64
+68
+53
+63
+69
+55
+62
+70
+55
+62
+70
+55
+61
+69
+54
+66
+70
+56
+65
+67
+53
+64
+69
+49
+72
+76
+53
+77
+73
+48
+82
+65
+39
+124
+82
+58
+185
+117
+98
+201
+100
+88
+221
+96
+90
+234
+86
+84
+230
+72
+71
+226
+64
+62
+226
+64
+61
+219
+62
+57
+209
+56
+48
+205
+57
+43
+206
+61
+44
+207
+61
+46
+207
+62
+45
+207
+59
+45
+206
+59
+43
+205
+57
+43
+205
+58
+42
+206
+58
+44
+208
+58
+43
+208
+58
+44
+208
+58
+43
+208
+58
+44
+208
+58
+43
+208
+58
+44
+205
+59
+46
+201
+63
+53
+197
+66
+58
+188
+66
+55
+174
+61
+47
+159
+54
+35
+150
+49
+29
+150
+49
+29
+155
+50
+29
+168
+53
+35
+180
+54
+40
+195
+59
+47
+209
+65
+56
+222
+69
+63
+230
+73
+68
+233
+74
+70
+234
+75
+72
+224
+66
+65
+219
+69
+68
+208
+66
+62
+190
+59
+51
+175
+57
+47
+171
+61
+48
+165
+63
+49
+159
+61
+48
+159
+63
+49
+156
+62
+50
+151
+62
+48
+149
+61
+47
+143
+61
+47
+139
+62
+46
+135
+64
+46
+136
+63
+44
+142
+61
+42
+143
+60
+42
+146
+60
+43
+145
+62
+44
+148
+63
+43
+148
+63
+43
+150
+63
+44
+153
+62
+44
+159
+64
+46
+161
+61
+45
+164
+58
+44
+168
+56
+44
+173
+55
+43
+178
+56
+45
+184
+57
+48
+189
+56
+47
+202
+60
+50
+208
+60
+50
+211
+63
+53
+213
+65
+55
+215
+67
+57
+214
+67
+57
+212
+68
+57
+209
+69
+56
+202
+66
+54
+195
+65
+52
+185
+61
+51
+176
+58
+48
+169
+54
+47
+164
+53
+46
+159
+52
+44
+153
+55
+44
+146
+58
+46
+140
+61
+44
+138
+59
+44
+136
+59
+43
+134
+58
+42
+132
+59
+42
+131
+60
+42
+129
+60
+44
+126
+59
+42
+124
+59
+41
+123
+57
+41
+121
+58
+41
+120
+57
+40
+119
+56
+39
+117
+54
+39
+119
+52
+36
+128
+52
+39
+144
+68
+55
+152
+78
+67
+145
+75
+63
+140
+74
+62
+143
+81
+68
+146
+84
+73
+144
+82
+71
+147
+83
+74
+152
+88
+79
+152
+85
+79
+151
+86
+80
+156
+93
+88
+148
+87
+82
+142
+83
+79
+138
+99
+84
+93
+87
+53
+88
+99
+57
+95
+106
+66
+90
+102
+66
+73
+84
+54
+54
+67
+41
+52
+64
+42
+60
+72
+52
+79
+88
+71
+89
+98
+81
+95
+102
+84
+87
+92
+70
+74
+78
+55
+66
+69
+42
+63
+63
+35
+60
+60
+34
+57
+58
+40
+61
+62
+48
+58
+60
+49
+57
+60
+49
+60
+64
+50
+53
+62
+43
+59
+72
+46
+80
+98
+60
+100
+122
+75
+108
+136
+77
+117
+148
+81
+116
+152
+80
+114
+150
+76
+113
+154
+78
+114
+154
+83
+113
+155
+81
+115
+160
+79
+114
+159
+76
+112
+157
+76
+113
+158
+77
+116
+160
+81
+120
+164
+87
+124
+167
+95
+127
+170
+99
+123
+166
+97
+111
+154
+85
+99
+140
+74
+93
+134
+68
+97
+137
+74
+101
+141
+78
+101
+141
+78
+99
+139
+79
+100
+137
+83
+91
+128
+76
+84
+121
+69
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+95
+85
+106
+95
+91
+106
+94
+94
+106
+94
+94
+106
+95
+93
+106
+95
+89
+106
+96
+87
+106
+96
+86
+106
+96
+84
+106
+96
+84
+106
+96
+84
+106
+96
+84
+106
+96
+84
+106
+96
+84
+106
+96
+84
+106
+96
+86
+106
+96
+84
+108
+97
+79
+107
+96
+76
+105
+97
+78
+105
+97
+78
+102
+95
+76
+97
+92
+72
+89
+86
+67
+83
+82
+62
+77
+75
+60
+72
+73
+57
+68
+70
+56
+65
+69
+54
+65
+69
+54
+63
+70
+54
+62
+68
+54
+61
+67
+53
+62
+69
+53
+58
+62
+45
+66
+71
+49
+73
+75
+51
+69
+63
+37
+84
+64
+39
+132
+92
+67
+181
+116
+96
+179
+87
+74
+214
+100
+90
+239
+101
+98
+236
+84
+83
+230
+70
+72
+235
+71
+72
+232
+66
+68
+219
+57
+54
+203
+55
+43
+201
+58
+42
+201
+58
+44
+201
+58
+42
+203
+57
+44
+202
+56
+41
+200
+54
+41
+200
+54
+39
+202
+56
+43
+203
+55
+41
+203
+55
+43
+203
+55
+41
+203
+55
+43
+204
+56
+42
+204
+56
+44
+203
+56
+46
+194
+51
+45
+190
+53
+47
+182
+54
+45
+173
+51
+40
+161
+48
+34
+158
+47
+30
+160
+49
+32
+167
+51
+36
+188
+65
+50
+199
+67
+55
+214
+71
+63
+225
+76
+70
+231
+76
+71
+233
+74
+70
+229
+70
+66
+223
+68
+64
+216
+66
+65
+209
+67
+65
+195
+63
+58
+177
+59
+49
+166
+60
+47
+161
+65
+49
+156
+69
+52
+152
+69
+51
+149
+68
+51
+146
+67
+52
+143
+66
+50
+138
+65
+48
+133
+64
+48
+130
+65
+47
+126
+65
+46
+129
+64
+46
+132
+59
+42
+136
+59
+43
+137
+58
+41
+137
+60
+42
+139
+60
+43
+139
+60
+43
+142
+61
+42
+143
+60
+42
+150
+63
+46
+152
+60
+45
+155
+59
+43
+158
+56
+42
+162
+56
+43
+167
+56
+45
+170
+58
+46
+175
+57
+47
+185
+57
+46
+190
+57
+48
+193
+59
+48
+196
+62
+51
+197
+63
+51
+197
+65
+52
+195
+65
+51
+193
+65
+52
+182
+59
+44
+178
+58
+44
+170
+56
+45
+163
+55
+43
+158
+54
+43
+155
+54
+44
+152
+55
+46
+148
+58
+47
+141
+59
+47
+136
+60
+44
+135
+59
+45
+132
+59
+44
+130
+58
+43
+128
+59
+43
+128
+59
+43
+127
+60
+44
+125
+59
+43
+122
+59
+42
+122
+59
+44
+119
+57
+42
+118
+56
+41
+117
+55
+40
+116
+54
+41
+118
+52
+38
+136
+59
+49
+148
+70
+60
+150
+78
+66
+142
+74
+61
+136
+72
+60
+141
+79
+66
+145
+83
+72
+146
+82
+73
+146
+79
+73
+153
+84
+79
+153
+83
+81
+154
+86
+83
+154
+93
+90
+147
+89
+85
+141
+91
+84
+141
+108
+91
+129
+125
+88
+126
+137
+94
+128
+139
+97
+108
+120
+82
+76
+88
+52
+54
+68
+35
+61
+74
+46
+76
+90
+64
+101
+113
+89
+101
+111
+87
+93
+101
+77
+80
+85
+62
+69
+73
+48
+63
+67
+40
+61
+64
+35
+58
+60
+36
+56
+57
+39
+59
+60
+46
+56
+58
+47
+57
+60
+49
+61
+65
+51
+54
+63
+44
+60
+73
+47
+80
+98
+60
+100
+122
+75
+109
+137
+78
+118
+149
+82
+116
+152
+80
+115
+151
+77
+113
+154
+78
+114
+154
+83
+112
+154
+80
+117
+162
+81
+112
+160
+76
+110
+157
+76
+112
+159
+79
+117
+164
+86
+121
+167
+92
+125
+168
+96
+124
+167
+96
+112
+153
+85
+102
+143
+77
+92
+132
+69
+92
+132
+69
+101
+140
+77
+105
+144
+81
+102
+141
+78
+95
+133
+72
+99
+136
+82
+90
+127
+76
+83
+120
+69
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+96
+86
+107
+96
+92
+107
+95
+95
+107
+96
+94
+107
+96
+92
+107
+96
+90
+107
+97
+88
+107
+97
+87
+107
+97
+85
+107
+97
+85
+107
+97
+85
+107
+97
+85
+107
+97
+85
+107
+97
+87
+107
+97
+87
+107
+97
+88
+107
+97
+87
+110
+98
+82
+109
+98
+80
+106
+98
+79
+106
+98
+79
+104
+97
+78
+101
+94
+75
+95
+90
+71
+89
+86
+69
+82
+79
+62
+77
+75
+60
+71
+72
+58
+68
+70
+56
+67
+69
+55
+66
+68
+54
+64
+68
+53
+62
+66
+51
+63
+70
+52
+60
+65
+45
+71
+73
+51
+76
+70
+48
+77
+59
+37
+110
+78
+57
+152
+100
+79
+167
+96
+78
+158
+66
+53
+197
+84
+76
+229
+100
+95
+239
+95
+94
+237
+83
+85
+237
+74
+79
+234
+68
+72
+227
+64
+65
+205
+56
+49
+199
+57
+45
+197
+55
+43
+197
+55
+43
+200
+56
+45
+202
+58
+47
+203
+59
+48
+205
+58
+48
+209
+62
+52
+209
+62
+52
+210
+62
+52
+210
+62
+52
+211
+63
+53
+211
+63
+53
+211
+63
+53
+211
+62
+55
+211
+63
+59
+209
+66
+62
+203
+68
+62
+198
+70
+61
+194
+70
+60
+195
+73
+62
+199
+77
+64
+206
+80
+68
+217
+83
+72
+221
+80
+71
+226
+77
+71
+228
+73
+69
+228
+71
+66
+226
+67
+63
+224
+65
+61
+220
+65
+61
+214
+69
+66
+202
+67
+63
+189
+62
+55
+173
+59
+48
+161
+61
+46
+155
+66
+48
+151
+70
+51
+148
+73
+54
+142
+69
+52
+140
+69
+51
+138
+66
+51
+133
+66
+49
+130
+64
+48
+125
+64
+46
+123
+64
+46
+124
+63
+45
+128
+59
+44
+131
+57
+44
+131
+58
+43
+132
+59
+44
+132
+59
+44
+133
+60
+45
+135
+59
+43
+136
+59
+43
+137
+58
+43
+140
+57
+41
+143
+55
+41
+147
+55
+42
+150
+56
+44
+156
+58
+47
+160
+59
+47
+163
+59
+48
+170
+58
+47
+173
+56
+46
+175
+57
+47
+176
+58
+46
+176
+58
+46
+176
+58
+44
+175
+57
+43
+174
+56
+42
+168
+55
+41
+165
+55
+40
+158
+54
+41
+155
+54
+42
+149
+55
+43
+146
+56
+45
+145
+57
+47
+142
+60
+48
+136
+60
+46
+133
+60
+45
+131
+59
+44
+129
+57
+42
+127
+58
+42
+126
+57
+42
+125
+58
+42
+125
+59
+43
+124
+58
+44
+122
+59
+44
+121
+59
+44
+119
+57
+42
+115
+56
+42
+113
+54
+40
+114
+55
+41
+117
+53
+41
+140
+68
+56
+146
+72
+61
+145
+75
+63
+138
+72
+58
+135
+73
+60
+139
+79
+68
+147
+84
+75
+151
+84
+76
+150
+81
+76
+155
+84
+80
+152
+81
+79
+148
+83
+79
+150
+92
+88
+144
+95
+88
+144
+104
+94
+151
+126
+106
+148
+148
+112
+133
+146
+102
+117
+130
+87
+89
+104
+63
+67
+82
+43
+63
+79
+42
+80
+96
+60
+99
+114
+81
+101
+116
+85
+92
+105
+75
+78
+88
+61
+67
+76
+49
+63
+69
+43
+62
+66
+41
+61
+65
+40
+59
+61
+39
+55
+56
+40
+58
+59
+45
+55
+57
+46
+57
+60
+49
+61
+65
+51
+55
+64
+45
+60
+73
+47
+79
+97
+59
+98
+120
+73
+108
+136
+77
+118
+149
+82
+117
+153
+81
+116
+152
+78
+114
+155
+79
+114
+154
+83
+111
+155
+80
+113
+160
+79
+111
+158
+77
+111
+158
+77
+115
+162
+82
+122
+168
+93
+124
+170
+97
+122
+165
+94
+117
+160
+91
+99
+140
+74
+94
+135
+69
+91
+131
+68
+95
+135
+72
+103
+142
+79
+106
+145
+80
+102
+141
+76
+96
+135
+72
+98
+135
+81
+89
+126
+75
+82
+119
+68
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+96
+84
+107
+96
+90
+107
+96
+92
+107
+96
+90
+107
+97
+88
+107
+97
+87
+107
+97
+85
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+97
+85
+107
+97
+87
+107
+97
+87
+107
+97
+88
+107
+97
+87
+111
+99
+85
+110
+98
+82
+107
+98
+81
+107
+98
+81
+107
+98
+81
+104
+97
+79
+100
+93
+77
+96
+90
+74
+88
+82
+66
+82
+79
+62
+78
+75
+60
+73
+71
+56
+71
+69
+54
+68
+69
+53
+66
+67
+51
+63
+66
+49
+64
+72
+49
+65
+70
+47
+77
+71
+49
+83
+62
+43
+101
+62
+45
+148
+90
+76
+170
+96
+83
+153
+63
+52
+155
+52
+43
+179
+64
+57
+214
+89
+85
+241
+106
+103
+245
+101
+101
+235
+82
+85
+232
+73
+78
+233
+77
+80
+217
+73
+65
+211
+70
+60
+205
+64
+54
+203
+62
+52
+206
+64
+54
+210
+68
+58
+213
+71
+61
+215
+71
+62
+218
+74
+65
+218
+74
+65
+221
+74
+66
+221
+74
+66
+222
+75
+67
+222
+75
+67
+224
+75
+68
+224
+75
+69
+235
+83
+82
+232
+84
+84
+227
+83
+82
+220
+82
+79
+216
+83
+76
+216
+83
+76
+219
+85
+76
+224
+85
+78
+224
+76
+72
+225
+73
+70
+227
+69
+66
+226
+67
+64
+228
+66
+64
+226
+67
+64
+228
+69
+66
+224
+70
+68
+218
+73
+70
+203
+68
+64
+188
+61
+55
+174
+60
+50
+163
+62
+50
+153
+66
+49
+147
+68
+51
+146
+71
+52
+141
+68
+51
+138
+66
+51
+137
+65
+51
+132
+63
+48
+130
+62
+49
+128
+62
+48
+125
+62
+47
+125
+62
+47
+127
+59
+46
+128
+58
+46
+128
+58
+46
+128
+58
+46
+128
+61
+45
+129
+60
+45
+129
+60
+45
+131
+59
+45
+130
+57
+42
+132
+56
+42
+134
+56
+43
+138
+56
+42
+140
+57
+43
+144
+58
+45
+146
+58
+46
+148
+58
+47
+155
+59
+47
+158
+57
+45
+159
+57
+45
+160
+58
+44
+161
+57
+44
+162
+56
+43
+162
+56
+42
+162
+56
+42
+159
+56
+41
+156
+56
+41
+152
+56
+40
+148
+56
+41
+143
+57
+42
+140
+58
+44
+137
+58
+45
+135
+59
+45
+132
+58
+45
+130
+58
+44
+129
+57
+43
+128
+56
+42
+125
+56
+41
+125
+55
+43
+124
+56
+43
+123
+57
+43
+122
+56
+44
+121
+57
+45
+120
+58
+45
+118
+56
+43
+113
+53
+42
+111
+53
+41
+113
+55
+43
+116
+57
+43
+140
+72
+59
+141
+73
+60
+137
+73
+61
+132
+73
+59
+133
+75
+63
+140
+82
+70
+147
+87
+77
+152
+88
+79
+152
+81
+77
+156
+85
+81
+152
+82
+80
+147
+86
+81
+146
+96
+89
+136
+98
+87
+131
+103
+91
+134
+122
+100
+110
+114
+81
+90
+105
+64
+74
+89
+48
+65
+82
+40
+73
+90
+48
+87
+105
+63
+100
+118
+78
+106
+124
+86
+88
+105
+69
+76
+91
+58
+63
+76
+46
+58
+68
+41
+60
+68
+44
+62
+67
+45
+60
+65
+45
+58
+61
+44
+56
+57
+43
+58
+59
+45
+54
+56
+45
+56
+59
+48
+62
+66
+52
+55
+64
+45
+59
+72
+46
+76
+94
+56
+95
+117
+70
+105
+133
+74
+116
+147
+80
+116
+152
+80
+116
+152
+78
+114
+155
+79
+115
+155
+84
+112
+156
+81
+110
+157
+77
+109
+158
+76
+112
+161
+80
+119
+168
+89
+124
+170
+97
+122
+168
+96
+114
+157
+88
+105
+147
+81
+90
+131
+65
+92
+132
+69
+97
+136
+73
+101
+140
+77
+103
+142
+77
+103
+142
+75
+104
+141
+74
+102
+138
+76
+99
+134
+80
+89
+123
+73
+82
+116
+66
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+97
+85
+108
+98
+89
+108
+98
+89
+108
+98
+89
+108
+98
+86
+108
+98
+86
+108
+99
+82
+108
+99
+82
+108
+100
+81
+108
+100
+81
+108
+100
+81
+108
+99
+82
+108
+99
+84
+108
+98
+86
+108
+98
+88
+108
+98
+88
+108
+98
+88
+111
+99
+85
+110
+98
+82
+107
+98
+81
+108
+99
+82
+108
+99
+82
+107
+98
+81
+103
+96
+80
+100
+93
+77
+94
+87
+71
+89
+83
+67
+83
+77
+63
+77
+74
+59
+75
+72
+57
+71
+69
+54
+69
+66
+51
+64
+65
+47
+61
+71
+46
+66
+70
+45
+81
+66
+45
+98
+61
+45
+129
+69
+58
+169
+89
+82
+178
+79
+74
+155
+46
+43
+175
+60
+57
+184
+62
+59
+208
+84
+82
+242
+112
+110
+254
+118
+118
+243
+100
+104
+237
+88
+94
+242
+93
+95
+227
+85
+81
+218
+80
+70
+212
+71
+64
+208
+67
+58
+209
+68
+61
+212
+71
+62
+214
+71
+65
+214
+71
+63
+217
+72
+67
+218
+74
+66
+220
+72
+68
+221
+74
+67
+222
+74
+70
+222
+75
+68
+224
+75
+71
+224
+75
+71
+226
+72
+72
+225
+71
+73
+220
+72
+72
+217
+71
+71
+214
+72
+68
+215
+72
+68
+216
+71
+66
+219
+70
+66
+224
+66
+65
+228
+65
+66
+230
+66
+65
+232
+66
+66
+231
+67
+66
+228
+66
+64
+223
+65
+62
+219
+65
+63
+221
+73
+71
+205
+66
+63
+188
+59
+54
+175
+61
+51
+165
+63
+51
+153
+64
+48
+146
+65
+48
+144
+67
+51
+140
+64
+50
+137
+64
+49
+136
+62
+49
+134
+60
+49
+132
+60
+48
+129
+59
+49
+129
+59
+49
+128
+60
+49
+128
+60
+49
+127
+61
+49
+127
+60
+51
+127
+61
+49
+127
+61
+49
+127
+61
+47
+127
+61
+49
+127
+61
+47
+128
+60
+47
+129
+60
+45
+131
+59
+45
+131
+57
+44
+133
+57
+44
+132
+56
+42
+133
+55
+43
+133
+54
+41
+141
+57
+46
+143
+56
+46
+145
+57
+45
+148
+58
+47
+151
+59
+46
+154
+61
+46
+158
+60
+47
+159
+62
+46
+153
+57
+41
+150
+57
+40
+147
+58
+42
+144
+58
+43
+138
+59
+44
+135
+59
+43
+132
+59
+44
+130
+58
+43
+130
+58
+44
+129
+57
+43
+127
+55
+41
+126
+54
+40
+123
+53
+41
+123
+53
+41
+123
+53
+41
+122
+54
+41
+120
+54
+42
+120
+56
+44
+119
+57
+44
+115
+56
+42
+112
+52
+41
+111
+53
+41
+114
+58
+45
+118
+60
+48
+139
+77
+64
+137
+75
+60
+132
+74
+60
+130
+77
+61
+133
+81
+67
+139
+86
+72
+146
+88
+77
+151
+87
+78
+147
+78
+73
+153
+84
+79
+151
+86
+82
+149
+92
+85
+144
+101
+92
+123
+94
+80
+102
+86
+70
+96
+94
+71
+69
+79
+45
+62
+78
+41
+63
+79
+40
+74
+92
+50
+95
+114
+69
+107
+126
+81
+101
+120
+75
+88
+106
+64
+77
+95
+55
+64
+81
+45
+54
+69
+38
+55
+68
+42
+61
+70
+49
+61
+68
+52
+58
+62
+48
+55
+59
+45
+56
+58
+44
+58
+59
+45
+54
+56
+45
+56
+59
+48
+62
+66
+52
+55
+64
+45
+57
+70
+44
+73
+91
+53
+91
+113
+66
+101
+129
+70
+114
+145
+78
+115
+151
+79
+115
+151
+77
+114
+155
+79
+115
+155
+84
+112
+156
+81
+109
+156
+76
+111
+160
+79
+115
+164
+85
+120
+168
+92
+122
+168
+96
+115
+160
+91
+105
+147
+81
+96
+138
+72
+89
+129
+66
+94
+134
+71
+101
+140
+77
+103
+142
+77
+102
+141
+74
+101
+141
+71
+103
+140
+71
+104
+140
+76
+97
+132
+78
+88
+122
+72
+81
+115
+65
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+108
+98
+88
+108
+98
+86
+108
+98
+86
+108
+99
+82
+108
+99
+82
+108
+100
+79
+108
+100
+79
+108
+100
+77
+108
+100
+77
+108
+100
+77
+108
+100
+79
+108
+100
+81
+108
+99
+82
+108
+99
+84
+108
+98
+86
+108
+98
+86
+111
+99
+85
+109
+97
+83
+107
+98
+83
+108
+99
+84
+109
+100
+85
+108
+99
+84
+105
+96
+81
+102
+95
+79
+98
+91
+75
+94
+87
+71
+88
+81
+65
+82
+76
+60
+79
+73
+57
+74
+71
+54
+73
+67
+51
+65
+67
+46
+60
+70
+43
+66
+69
+42
+86
+64
+43
+122
+70
+57
+163
+80
+76
+178
+72
+72
+180
+57
+60
+183
+52
+57
+197
+67
+69
+193
+65
+64
+200
+75
+73
+222
+98
+96
+241
+113
+112
+242
+109
+112
+233
+97
+101
+228
+89
+92
+219
+81
+78
+213
+76
+68
+207
+68
+63
+205
+66
+59
+207
+68
+63
+208
+69
+62
+208
+66
+62
+205
+64
+57
+210
+67
+63
+210
+67
+61
+212
+67
+64
+213
+68
+63
+215
+67
+65
+216
+68
+64
+217
+69
+67
+218
+68
+67
+221
+65
+68
+221
+65
+68
+222
+68
+70
+221
+71
+72
+223
+73
+72
+224
+74
+73
+227
+73
+73
+229
+71
+72
+231
+65
+67
+234
+65
+68
+236
+66
+69
+236
+66
+69
+231
+65
+65
+226
+64
+62
+219
+61
+58
+214
+60
+58
+219
+69
+70
+204
+60
+60
+188
+54
+51
+177
+58
+50
+169
+62
+52
+155
+61
+49
+147
+61
+48
+145
+63
+49
+139
+60
+47
+139
+59
+48
+138
+58
+49
+137
+57
+48
+136
+56
+49
+135
+56
+51
+136
+57
+52
+133
+58
+52
+128
+60
+51
+125
+61
+51
+125
+61
+52
+125
+61
+51
+125
+61
+51
+125
+61
+49
+125
+61
+51
+124
+60
+48
+124
+60
+48
+124
+61
+46
+126
+60
+46
+126
+58
+45
+125
+57
+44
+125
+56
+41
+126
+54
+42
+126
+54
+42
+131
+57
+46
+131
+57
+46
+135
+57
+45
+137
+57
+46
+141
+57
+46
+145
+59
+46
+149
+60
+46
+150
+61
+45
+146
+57
+41
+145
+58
+41
+141
+58
+42
+138
+59
+42
+135
+59
+43
+131
+60
+42
+128
+59
+43
+126
+59
+42
+128
+56
+42
+128
+56
+44
+126
+54
+42
+125
+53
+41
+124
+52
+40
+122
+52
+40
+122
+52
+42
+121
+53
+42
+117
+50
+41
+118
+54
+44
+118
+56
+45
+114
+54
+43
+111
+51
+41
+111
+53
+42
+115
+58
+47
+120
+64
+51
+138
+80
+66
+134
+78
+63
+129
+78
+61
+130
+81
+64
+133
+86
+70
+137
+88
+73
+142
+85
+74
+145
+82
+73
+146
+79
+73
+151
+84
+78
+147
+84
+79
+145
+92
+86
+138
+102
+90
+110
+91
+74
+80
+75
+55
+69
+75
+49
+65
+78
+48
+75
+90
+57
+87
+103
+67
+96
+114
+74
+103
+121
+79
+100
+122
+76
+86
+108
+62
+71
+93
+47
+65
+86
+45
+55
+72
+36
+49
+64
+33
+54
+66
+42
+61
+70
+53
+60
+68
+57
+56
+61
+54
+55
+58
+51
+57
+59
+46
+59
+60
+46
+54
+56
+45
+57
+60
+49
+63
+67
+53
+55
+64
+45
+55
+68
+42
+70
+88
+50
+86
+108
+61
+97
+125
+66
+111
+142
+75
+113
+149
+77
+115
+151
+77
+114
+155
+79
+116
+156
+85
+113
+157
+82
+111
+158
+80
+113
+162
+81
+117
+166
+87
+118
+166
+90
+115
+161
+89
+106
+151
+82
+98
+140
+74
+91
+133
+69
+94
+134
+72
+96
+136
+73
+99
+138
+75
+101
+140
+75
+102
+141
+74
+102
+142
+72
+102
+139
+70
+101
+137
+73
+96
+131
+77
+87
+121
+71
+80
+114
+64
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+105
+96
+81
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+108
+98
+86
+108
+99
+84
+108
+99
+84
+108
+99
+82
+108
+100
+81
+108
+100
+79
+108
+100
+79
+108
+100
+77
+108
+100
+77
+108
+100
+79
+108
+100
+79
+108
+100
+81
+108
+99
+82
+108
+99
+84
+108
+99
+84
+108
+99
+84
+110
+98
+84
+109
+97
+83
+109
+97
+83
+109
+97
+83
+109
+100
+85
+108
+99
+84
+106
+97
+82
+103
+96
+80
+100
+93
+77
+96
+89
+73
+90
+83
+67
+85
+78
+62
+80
+75
+56
+77
+72
+53
+73
+68
+49
+69
+67
+46
+65
+69
+42
+71
+67
+40
+92
+65
+44
+137
+83
+71
+175
+92
+88
+169
+63
+65
+169
+49
+51
+203
+74
+78
+195
+64
+69
+189
+61
+62
+185
+59
+60
+195
+71
+71
+216
+90
+91
+229
+101
+102
+221
+88
+91
+205
+71
+72
+209
+74
+71
+207
+69
+66
+205
+66
+63
+206
+67
+62
+210
+71
+66
+210
+71
+66
+206
+67
+62
+201
+62
+55
+207
+68
+61
+209
+68
+61
+210
+68
+64
+212
+69
+65
+214
+69
+66
+217
+69
+67
+220
+67
+69
+222
+68
+70
+222
+63
+67
+223
+64
+68
+222
+66
+69
+223
+69
+69
+225
+71
+71
+224
+70
+70
+224
+66
+67
+225
+62
+63
+232
+66
+68
+234
+64
+67
+232
+62
+65
+231
+61
+62
+228
+62
+62
+228
+64
+63
+226
+67
+64
+223
+69
+67
+215
+65
+66
+200
+56
+56
+184
+52
+48
+177
+58
+52
+169
+62
+54
+155
+61
+51
+146
+60
+47
+142
+63
+50
+137
+59
+47
+136
+58
+48
+136
+58
+48
+136
+56
+49
+136
+55
+51
+138
+55
+51
+137
+56
+52
+136
+59
+53
+128
+58
+50
+126
+59
+50
+126
+59
+50
+124
+60
+50
+124
+60
+48
+124
+60
+48
+124
+60
+48
+124
+60
+48
+120
+56
+44
+121
+57
+45
+124
+58
+46
+124
+58
+46
+125
+59
+45
+125
+59
+45
+125
+57
+44
+125
+57
+44
+126
+58
+47
+127
+57
+47
+128
+55
+46
+129
+55
+44
+132
+54
+42
+133
+53
+42
+134
+55
+42
+134
+55
+40
+138
+56
+42
+136
+57
+42
+136
+59
+43
+133
+60
+45
+132
+60
+45
+128
+61
+44
+126
+60
+44
+125
+59
+43
+125
+57
+44
+125
+55
+45
+124
+54
+44
+121
+53
+42
+122
+52
+42
+120
+52
+41
+120
+52
+41
+120
+53
+44
+114
+50
+40
+117
+53
+43
+118
+56
+45
+114
+54
+43
+110
+52
+41
+110
+53
+42
+116
+59
+48
+120
+66
+54
+138
+85
+71
+132
+80
+66
+128
+79
+64
+132
+83
+68
+136
+87
+73
+140
+86
+74
+140
+82
+71
+141
+78
+71
+149
+84
+78
+148
+85
+78
+139
+82
+75
+132
+88
+77
+127
+100
+83
+101
+90
+68
+71
+75
+50
+61
+74
+44
+73
+88
+57
+90
+107
+73
+103
+120
+84
+99
+120
+81
+89
+110
+69
+83
+104
+61
+78
+99
+56
+74
+95
+52
+58
+76
+38
+48
+63
+30
+44
+57
+29
+53
+62
+41
+61
+67
+53
+60
+66
+56
+58
+60
+55
+57
+60
+53
+59
+61
+50
+59
+61
+48
+55
+57
+46
+57
+60
+49
+63
+67
+53
+56
+63
+45
+56
+66
+41
+69
+85
+49
+85
+104
+59
+97
+122
+67
+110
+138
+77
+114
+147
+78
+114
+150
+78
+114
+154
+81
+115
+157
+83
+113
+157
+82
+114
+160
+85
+117
+163
+88
+118
+164
+91
+116
+162
+90
+111
+154
+85
+102
+144
+78
+94
+136
+72
+91
+131
+68
+100
+140
+78
+97
+137
+75
+96
+135
+72
+99
+138
+73
+102
+141
+74
+103
+142
+75
+101
+138
+69
+97
+133
+69
+96
+131
+77
+87
+121
+71
+80
+114
+64
+105
+96
+81
+105
+96
+81
+105
+96
+81
+106
+97
+82
+106
+97
+82
+107
+98
+83
+107
+98
+83
+107
+98
+83
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+81
+107
+98
+81
+107
+98
+81
+107
+98
+81
+108
+99
+82
+108
+99
+82
+108
+99
+82
+108
+99
+82
+108
+99
+84
+108
+99
+84
+108
+99
+84
+110
+98
+84
+107
+93
+80
+112
+96
+81
+116
+100
+87
+114
+100
+87
+110
+98
+86
+106
+96
+84
+104
+96
+83
+104
+98
+84
+103
+97
+83
+103
+97
+81
+99
+93
+77
+91
+86
+67
+86
+81
+61
+83
+78
+56
+78
+72
+50
+71
+65
+41
+76
+70
+44
+74
+62
+36
+98
+73
+51
+145
+103
+87
+182
+120
+109
+187
+108
+101
+183
+89
+87
+185
+79
+79
+182
+66
+69
+189
+66
+69
+194
+68
+71
+200
+70
+72
+205
+72
+75
+208
+74
+75
+211
+75
+77
+211
+75
+77
+205
+69
+69
+205
+69
+69
+208
+70
+68
+211
+72
+69
+212
+70
+66
+207
+68
+61
+206
+67
+60
+207
+70
+60
+200
+68
+56
+201
+69
+57
+203
+69
+60
+207
+68
+63
+212
+67
+64
+216
+66
+67
+222
+63
+68
+222
+61
+67
+225
+66
+70
+223
+67
+68
+223
+67
+68
+224
+68
+69
+224
+68
+69
+225
+70
+68
+225
+70
+68
+227
+69
+68
+227
+67
+67
+228
+66
+64
+228
+64
+63
+227
+63
+62
+227
+63
+62
+227
+63
+61
+227
+63
+61
+224
+66
+63
+211
+66
+63
+197
+62
+58
+184
+57
+51
+170
+55
+48
+160
+57
+48
+151
+61
+50
+142
+62
+51
+134
+62
+50
+131
+63
+50
+129
+63
+51
+129
+61
+50
+129
+59
+51
+132
+57
+51
+135
+56
+51
+136
+56
+49
+136
+57
+50
+133
+59
+48
+132
+60
+46
+132
+60
+46
+129
+60
+45
+129
+59
+47
+128
+58
+46
+128
+58
+46
+128
+58
+46
+126
+58
+45
+126
+58
+45
+126
+58
+45
+126
+58
+45
+126
+58
+47
+126
+58
+47
+126
+58
+47
+126
+58
+47
+125
+57
+48
+125
+57
+48
+126
+56
+48
+126
+56
+46
+128
+55
+46
+128
+55
+46
+128
+55
+46
+126
+56
+44
+128
+56
+44
+126
+56
+44
+125
+57
+44
+124
+56
+45
+123
+57
+45
+122
+56
+44
+120
+56
+44
+120
+56
+44
+120
+56
+46
+120
+56
+46
+119
+55
+45
+118
+56
+45
+118
+54
+44
+116
+54
+43
+115
+53
+42
+113
+53
+43
+109
+49
+39
+114
+54
+44
+110
+52
+41
+109
+51
+40
+111
+54
+43
+109
+52
+41
+113
+56
+45
+127
+73
+61
+133
+83
+72
+133
+83
+74
+134
+82
+71
+136
+82
+72
+139
+80
+72
+144
+81
+74
+148
+81
+75
+149
+82
+76
+147
+84
+77
+141
+84
+75
+137
+91
+78
+130
+99
+81
+111
+95
+72
+89
+85
+58
+77
+86
+55
+79
+95
+59
+106
+126
+89
+98
+120
+81
+89
+111
+72
+85
+106
+67
+82
+103
+64
+77
+98
+59
+73
+89
+53
+67
+82
+49
+55
+68
+38
+52
+62
+35
+50
+58
+35
+54
+59
+39
+60
+62
+48
+64
+66
+53
+64
+64
+54
+60
+62
+51
+53
+56
+45
+51
+57
+45
+52
+58
+46
+55
+58
+47
+57
+61
+47
+59
+63
+46
+61
+66
+44
+60
+69
+40
+83
+95
+59
+97
+114
+70
+110
+134
+82
+115
+145
+85
+114
+149
+81
+114
+154
+83
+115
+157
+83
+114
+157
+85
+117
+158
+90
+126
+167
+101
+126
+167
+101
+112
+152
+89
+98
+138
+75
+94
+134
+71
+94
+134
+72
+94
+132
+71
+96
+134
+73
+98
+136
+75
+100
+138
+77
+102
+141
+78
+101
+140
+77
+99
+138
+75
+96
+135
+72
+94
+132
+71
+95
+130
+76
+84
+118
+68
+75
+109
+59
+105
+96
+81
+105
+96
+81
+105
+96
+81
+106
+97
+82
+106
+97
+82
+107
+98
+83
+107
+98
+83
+107
+98
+83
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+110
+98
+84
+114
+98
+83
+113
+97
+82
+114
+98
+85
+113
+99
+86
+114
+102
+90
+111
+103
+90
+109
+101
+88
+106
+100
+86
+103
+99
+87
+107
+104
+89
+111
+105
+89
+108
+103
+84
+104
+99
+79
+99
+94
+72
+91
+85
+61
+82
+76
+52
+80
+74
+48
+72
+62
+37
+81
+63
+41
+107
+80
+61
+127
+88
+71
+132
+78
+66
+136
+69
+61
+147
+68
+63
+177
+87
+86
+184
+84
+84
+187
+81
+81
+192
+80
+79
+192
+78
+77
+193
+77
+77
+194
+76
+74
+194
+76
+74
+205
+85
+84
+197
+73
+71
+192
+62
+62
+195
+61
+58
+205
+67
+64
+209
+70
+65
+205
+66
+59
+199
+62
+52
+202
+68
+57
+202
+68
+57
+204
+70
+61
+208
+69
+62
+214
+69
+66
+219
+66
+68
+223
+64
+69
+224
+63
+69
+223
+67
+70
+223
+67
+68
+223
+67
+68
+223
+69
+69
+224
+69
+67
+224
+70
+68
+225
+70
+68
+225
+70
+68
+224
+69
+65
+225
+67
+64
+224
+66
+63
+224
+65
+62
+226
+64
+61
+226
+64
+61
+226
+64
+61
+224
+66
+63
+213
+68
+63
+200
+67
+60
+186
+62
+54
+172
+58
+48
+160
+57
+48
+148
+58
+47
+138
+60
+48
+130
+60
+48
+128
+65
+50
+126
+64
+51
+126
+62
+52
+127
+60
+51
+131
+58
+51
+134
+57
+49
+136
+56
+49
+137
+57
+48
+135
+59
+46
+133
+60
+45
+132
+59
+44
+132
+59
+44
+131
+59
+45
+130
+58
+44
+130
+58
+44
+130
+58
+44
+127
+57
+45
+127
+57
+45
+127
+57
+45
+127
+57
+45
+126
+58
+47
+126
+58
+47
+126
+58
+47
+126
+58
+47
+125
+57
+48
+125
+57
+48
+125
+57
+48
+125
+57
+48
+125
+57
+48
+125
+57
+48
+124
+57
+48
+124
+57
+48
+124
+57
+48
+122
+58
+48
+122
+58
+48
+121
+57
+47
+121
+57
+47
+121
+57
+47
+119
+57
+46
+119
+57
+46
+119
+56
+47
+119
+56
+47
+116
+56
+46
+115
+55
+45
+114
+54
+44
+114
+54
+44
+112
+54
+43
+112
+54
+43
+107
+49
+38
+113
+55
+44
+109
+52
+41
+108
+51
+40
+111
+54
+43
+108
+51
+40
+112
+55
+44
+126
+72
+62
+132
+82
+73
+133
+83
+76
+136
+81
+74
+139
+80
+74
+144
+81
+76
+148
+80
+77
+149
+81
+78
+148
+83
+79
+138
+79
+71
+133
+83
+72
+128
+91
+75
+123
+101
+80
+115
+105
+80
+104
+107
+76
+102
+113
+81
+103
+120
+84
+94
+116
+77
+88
+110
+71
+80
+102
+63
+76
+97
+58
+75
+95
+58
+75
+92
+58
+71
+86
+55
+67
+80
+52
+60
+70
+45
+56
+64
+41
+54
+59
+39
+55
+58
+41
+60
+61
+47
+63
+64
+50
+62
+62
+50
+59
+61
+48
+52
+58
+48
+51
+59
+48
+53
+59
+49
+54
+60
+48
+58
+60
+47
+60
+63
+46
+62
+65
+44
+62
+68
+42
+81
+91
+57
+94
+109
+68
+107
+129
+82
+112
+140
+82
+112
+147
+83
+113
+153
+82
+115
+157
+83
+115
+158
+86
+120
+159
+94
+124
+162
+101
+120
+158
+97
+107
+145
+84
+96
+134
+73
+93
+131
+70
+93
+131
+70
+92
+130
+69
+96
+134
+73
+97
+135
+74
+99
+137
+76
+101
+139
+78
+100
+138
+77
+98
+136
+75
+96
+134
+73
+94
+132
+73
+93
+127
+76
+82
+116
+66
+73
+107
+57
+105
+96
+81
+105
+96
+81
+105
+96
+81
+106
+97
+82
+106
+97
+82
+107
+98
+83
+107
+98
+83
+107
+98
+83
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+110
+98
+84
+113
+100
+84
+111
+95
+80
+109
+93
+80
+109
+95
+82
+113
+101
+89
+111
+103
+92
+108
+100
+89
+104
+98
+86
+102
+98
+87
+112
+108
+96
+123
+120
+105
+126
+123
+106
+127
+121
+105
+122
+117
+98
+112
+105
+86
+101
+96
+74
+84
+84
+60
+70
+70
+46
+67
+62
+40
+77
+66
+46
+83
+64
+47
+85
+56
+40
+93
+55
+42
+108
+61
+51
+110
+55
+48
+117
+57
+49
+126
+59
+53
+135
+64
+58
+146
+73
+66
+155
+80
+74
+165
+88
+80
+171
+91
+82
+185
+94
+89
+183
+84
+78
+181
+72
+69
+186
+67
+63
+198
+68
+66
+206
+71
+67
+210
+68
+64
+207
+64
+58
+208
+65
+59
+209
+66
+60
+211
+68
+62
+213
+70
+64
+215
+70
+67
+219
+69
+70
+222
+68
+70
+222
+68
+70
+222
+68
+68
+222
+68
+68
+222
+68
+68
+221
+69
+68
+223
+69
+69
+222
+70
+69
+223
+69
+67
+223
+69
+67
+222
+68
+66
+222
+68
+66
+221
+68
+63
+220
+67
+62
+221
+66
+61
+221
+66
+61
+221
+66
+61
+220
+67
+62
+214
+69
+64
+206
+69
+63
+195
+66
+60
+179
+62
+53
+162
+58
+49
+148
+56
+45
+136
+57
+44
+131
+59
+45
+130
+64
+50
+127
+64
+49
+126
+62
+50
+127
+61
+49
+131
+58
+49
+134
+57
+49
+135
+56
+49
+136
+58
+48
+135
+59
+46
+132
+59
+44
+132
+59
+44
+132
+59
+44
+130
+58
+44
+130
+58
+44
+128
+58
+46
+128
+58
+46
+127
+57
+45
+127
+57
+45
+126
+58
+47
+126
+58
+47
+126
+58
+47
+126
+58
+47
+126
+58
+47
+126
+58
+47
+125
+57
+48
+125
+57
+48
+125
+57
+48
+125
+57
+48
+124
+57
+48
+123
+56
+47
+123
+56
+47
+123
+56
+47
+123
+59
+49
+123
+59
+49
+122
+58
+48
+121
+59
+48
+120
+58
+47
+120
+58
+47
+120
+58
+47
+120
+58
+47
+116
+56
+46
+116
+56
+46
+115
+55
+45
+115
+55
+45
+114
+54
+44
+113
+53
+43
+111
+53
+42
+111
+53
+42
+106
+49
+38
+111
+54
+43
+109
+52
+41
+107
+50
+39
+108
+54
+42
+105
+51
+39
+109
+55
+43
+125
+71
+61
+135
+80
+73
+135
+80
+73
+139
+80
+74
+142
+81
+76
+145
+82
+77
+146
+83
+78
+148
+85
+80
+145
+86
+80
+140
+87
+79
+135
+91
+80
+126
+94
+79
+116
+98
+78
+111
+105
+81
+111
+114
+85
+108
+119
+89
+102
+119
+85
+81
+101
+66
+75
+95
+58
+69
+89
+54
+68
+85
+51
+69
+86
+54
+71
+86
+57
+71
+84
+56
+69
+82
+56
+63
+73
+48
+60
+68
+45
+57
+62
+42
+55
+59
+42
+58
+60
+46
+60
+62
+48
+59
+61
+47
+57
+59
+46
+54
+60
+50
+53
+61
+50
+54
+60
+50
+54
+60
+48
+58
+60
+47
+60
+62
+48
+61
+64
+45
+61
+67
+41
+77
+87
+53
+90
+105
+64
+102
+124
+77
+108
+136
+78
+110
+145
+81
+113
+153
+82
+117
+159
+85
+116
+159
+87
+122
+161
+96
+119
+157
+96
+110
+148
+87
+99
+137
+76
+92
+130
+69
+92
+130
+69
+92
+130
+69
+90
+128
+67
+95
+133
+72
+97
+135
+74
+98
+136
+75
+100
+138
+77
+99
+137
+76
+97
+135
+74
+95
+133
+72
+93
+131
+72
+91
+125
+74
+80
+113
+66
+70
+103
+56
+105
+96
+81
+105
+96
+81
+105
+96
+81
+106
+97
+82
+106
+97
+82
+107
+98
+83
+107
+98
+83
+107
+98
+83
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+106
+97
+82
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+110
+98
+84
+114
+100
+87
+111
+97
+84
+109
+95
+82
+107
+95
+83
+107
+97
+87
+108
+99
+90
+108
+101
+91
+106
+102
+93
+106
+102
+93
+120
+116
+105
+136
+132
+120
+145
+141
+129
+149
+143
+129
+146
+140
+126
+137
+130
+114
+125
+122
+103
+96
+99
+78
+79
+84
+62
+68
+71
+50
+70
+69
+49
+72
+67
+48
+70
+61
+44
+76
+60
+44
+86
+67
+52
+80
+57
+43
+82
+54
+42
+86
+52
+42
+89
+53
+41
+92
+54
+43
+97
+57
+47
+101
+61
+49
+109
+61
+49
+136
+76
+66
+157
+83
+74
+173
+86
+79
+181
+79
+75
+188
+70
+68
+196
+66
+66
+208
+68
+67
+216
+70
+70
+212
+64
+62
+213
+65
+63
+214
+66
+62
+216
+68
+64
+217
+69
+67
+219
+69
+68
+219
+69
+68
+221
+69
+68
+222
+68
+68
+221
+69
+68
+221
+69
+68
+221
+69
+68
+221
+69
+68
+221
+69
+68
+221
+69
+66
+220
+71
+67
+219
+70
+66
+218
+69
+65
+217
+68
+62
+217
+68
+62
+218
+67
+60
+218
+67
+60
+219
+68
+61
+217
+68
+62
+214
+67
+60
+211
+70
+63
+201
+70
+62
+186
+65
+56
+167
+59
+49
+152
+56
+44
+140
+57
+43
+133
+60
+45
+131
+64
+48
+127
+64
+49
+126
+63
+48
+127
+61
+47
+131
+58
+49
+132
+58
+47
+135
+57
+47
+136
+58
+46
+132
+58
+45
+132
+59
+44
+132
+59
+44
+131
+58
+43
+130
+58
+44
+130
+58
+44
+127
+57
+45
+127
+57
+45
+127
+57
+45
+127
+57
+45
+126
+58
+47
+126
+58
+47
+126
+58
+47
+126
+58
+47
+126
+58
+47
+126
+58
+47
+125
+57
+48
+124
+57
+48
+125
+57
+48
+123
+56
+47
+123
+56
+47
+123
+56
+47
+123
+56
+47
+120
+56
+46
+123
+59
+49
+121
+59
+48
+121
+59
+48
+121
+59
+48
+120
+58
+47
+120
+58
+47
+120
+58
+47
+118
+58
+47
+115
+55
+45
+115
+55
+45
+115
+55
+45
+114
+54
+44
+113
+53
+43
+111
+53
+42
+111
+53
+42
+109
+52
+41
+106
+49
+38
+111
+54
+43
+108
+51
+40
+104
+50
+38
+107
+53
+41
+104
+50
+38
+108
+54
+42
+124
+70
+60
+138
+79
+71
+140
+79
+74
+141
+80
+75
+143
+82
+77
+144
+83
+78
+145
+86
+80
+144
+87
+80
+140
+90
+81
+137
+93
+82
+133
+97
+85
+121
+95
+80
+105
+90
+71
+100
+95
+73
+100
+104
+79
+92
+102
+75
+78
+93
+64
+69
+85
+56
+65
+81
+52
+61
+77
+48
+60
+75
+46
+63
+77
+51
+67
+81
+55
+70
+82
+58
+71
+83
+59
+66
+76
+52
+62
+71
+50
+58
+65
+47
+57
+61
+44
+57
+61
+46
+57
+61
+46
+56
+60
+45
+55
+59
+45
+55
+61
+51
+54
+61
+53
+54
+59
+52
+54
+60
+50
+58
+60
+49
+59
+61
+47
+60
+63
+44
+60
+65
+42
+74
+83
+52
+86
+101
+62
+98
+120
+73
+106
+134
+76
+110
+145
+81
+115
+155
+84
+119
+161
+87
+120
+162
+90
+123
+162
+97
+114
+152
+91
+101
+139
+78
+92
+130
+69
+90
+128
+67
+92
+130
+69
+92
+130
+69
+90
+128
+67
+95
+133
+72
+96
+134
+73
+97
+135
+74
+98
+136
+75
+97
+135
+74
+96
+134
+73
+94
+132
+71
+93
+131
+74
+90
+124
+74
+78
+111
+64
+69
+102
+55
+104
+97
+81
+104
+97
+81
+104
+97
+81
+105
+98
+82
+105
+98
+82
+106
+99
+83
+106
+99
+83
+106
+99
+83
+105
+98
+82
+105
+98
+82
+105
+98
+82
+105
+98
+82
+105
+98
+82
+105
+98
+82
+105
+98
+82
+105
+98
+82
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+114
+102
+88
+116
+104
+92
+115
+103
+91
+109
+99
+89
+106
+97
+88
+108
+101
+93
+115
+110
+104
+122
+119
+112
+129
+126
+119
+144
+141
+134
+160
+157
+148
+168
+165
+156
+171
+167
+156
+168
+164
+153
+163
+157
+145
+153
+150
+135
+122
+123
+107
+99
+102
+83
+79
+82
+63
+71
+74
+55
+69
+72
+53
+66
+69
+50
+66
+69
+50
+69
+72
+53
+75
+76
+60
+74
+72
+57
+71
+68
+53
+68
+62
+48
+65
+57
+44
+65
+55
+43
+64
+54
+42
+70
+52
+40
+85
+53
+42
+113
+66
+56
+142
+79
+72
+160
+79
+75
+175
+73
+71
+191
+71
+73
+204
+69
+73
+211
+66
+69
+213
+64
+66
+215
+65
+66
+216
+66
+65
+217
+67
+66
+218
+69
+65
+218
+69
+65
+218
+69
+65
+218
+69
+65
+221
+69
+68
+221
+68
+70
+221
+68
+70
+219
+69
+70
+219
+69
+68
+219
+69
+68
+219
+69
+68
+217
+69
+67
+218
+70
+66
+217
+69
+65
+214
+70
+62
+213
+69
+61
+213
+69
+61
+213
+69
+61
+213
+69
+61
+214
+70
+62
+212
+65
+58
+211
+67
+59
+206
+69
+61
+193
+66
+57
+174
+62
+51
+158
+57
+45
+145
+59
+46
+138
+60
+47
+132
+63
+48
+129
+63
+47
+128
+62
+46
+128
+61
+45
+129
+59
+47
+132
+58
+45
+134
+58
+45
+135
+59
+46
+132
+58
+45
+131
+59
+45
+130
+58
+44
+130
+58
+44
+130
+58
+44
+129
+57
+43
+127
+57
+45
+127
+57
+45
+126
+58
+47
+126
+58
+47
+126
+58
+47
+126
+58
+47
+125
+58
+49
+125
+58
+49
+125
+58
+49
+125
+58
+49
+124
+57
+49
+122
+58
+49
+124
+57
+49
+121
+57
+48
+121
+57
+48
+120
+56
+47
+120
+56
+47
+118
+55
+46
+121
+58
+49
+121
+58
+49
+120
+57
+48
+118
+58
+48
+118
+58
+48
+117
+57
+47
+117
+57
+47
+116
+58
+47
+114
+55
+47
+113
+54
+46
+113
+54
+46
+112
+53
+45
+111
+52
+44
+110
+51
+43
+110
+51
+43
+109
+52
+43
+106
+49
+40
+109
+55
+45
+106
+52
+42
+104
+50
+40
+106
+52
+42
+102
+50
+39
+106
+54
+43
+125
+68
+59
+141
+78
+71
+143
+78
+72
+144
+81
+74
+144
+84
+76
+144
+85
+79
+142
+87
+80
+138
+89
+82
+131
+91
+81
+123
+89
+77
+118
+92
+79
+107
+90
+74
+93
+85
+66
+89
+88
+68
+89
+94
+72
+79
+89
+65
+63
+75
+51
+58
+72
+47
+55
+69
+46
+52
+66
+43
+53
+65
+43
+56
+68
+46
+61
+73
+51
+67
+76
+55
+69
+78
+57
+66
+75
+54
+63
+72
+53
+60
+69
+50
+58
+65
+47
+56
+63
+47
+55
+62
+46
+53
+60
+44
+52
+58
+44
+53
+60
+52
+53
+60
+53
+54
+59
+53
+54
+59
+52
+57
+59
+48
+58
+60
+47
+59
+62
+45
+59
+64
+41
+71
+80
+49
+82
+97
+58
+96
+118
+71
+105
+133
+75
+111
+146
+82
+117
+157
+86
+121
+163
+89
+121
+163
+91
+120
+159
+96
+110
+145
+87
+96
+131
+73
+90
+125
+67
+91
+126
+68
+94
+129
+71
+94
+129
+71
+93
+128
+70
+96
+131
+73
+97
+132
+74
+98
+133
+75
+98
+133
+75
+97
+132
+74
+96
+131
+73
+95
+130
+72
+94
+129
+73
+87
+124
+73
+76
+112
+66
+66
+102
+56
+104
+97
+81
+104
+97
+81
+104
+97
+81
+105
+98
+82
+105
+98
+82
+106
+99
+83
+106
+99
+83
+106
+99
+83
+105
+98
+82
+105
+98
+82
+105
+98
+82
+105
+98
+82
+105
+98
+82
+105
+98
+82
+105
+98
+82
+105
+98
+82
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+107
+97
+85
+110
+100
+90
+112
+102
+92
+108
+99
+90
+107
+100
+92
+114
+109
+103
+132
+129
+124
+145
+144
+140
+167
+163
+160
+181
+177
+174
+196
+193
+188
+201
+198
+193
+201
+196
+190
+197
+192
+186
+192
+185
+177
+185
+178
+168
+164
+156
+143
+136
+130
+114
+102
+99
+84
+80
+81
+63
+70
+73
+56
+62
+69
+51
+59
+68
+49
+58
+70
+50
+56
+69
+51
+56
+69
+51
+56
+67
+50
+58
+66
+51
+60
+66
+52
+64
+67
+56
+67
+69
+58
+71
+69
+57
+64
+52
+40
+83
+56
+47
+104
+61
+54
+129
+68
+65
+163
+79
+79
+192
+87
+91
+204
+81
+86
+202
+67
+73
+211
+71
+74
+214
+70
+70
+216
+70
+70
+218
+70
+68
+219
+70
+66
+219
+70
+66
+220
+68
+63
+220
+68
+65
+221
+69
+68
+221
+68
+70
+219
+69
+70
+219
+69
+70
+218
+68
+67
+218
+68
+67
+218
+68
+67
+217
+69
+67
+217
+69
+65
+215
+70
+65
+214
+69
+64
+212
+69
+61
+211
+68
+60
+210
+69
+60
+211
+70
+61
+212
+69
+61
+212
+63
+56
+213
+64
+57
+208
+67
+58
+198
+67
+57
+182
+65
+55
+165
+61
+48
+150
+61
+47
+140
+61
+46
+134
+62
+47
+130
+63
+47
+129
+62
+46
+128
+61
+45
+129
+60
+45
+131
+59
+45
+132
+58
+45
+133
+59
+46
+130
+58
+44
+130
+58
+44
+130
+58
+44
+130
+58
+44
+129
+57
+43
+127
+58
+43
+127
+57
+45
+126
+56
+44
+126
+58
+47
+126
+58
+47
+126
+58
+47
+126
+58
+47
+125
+58
+49
+125
+58
+49
+125
+58
+49
+125
+58
+49
+122
+58
+49
+122
+58
+49
+121
+57
+48
+121
+57
+48
+120
+56
+47
+118
+55
+46
+118
+55
+46
+116
+56
+46
+119
+56
+47
+117
+57
+47
+117
+57
+47
+115
+57
+46
+116
+56
+46
+115
+57
+46
+114
+56
+45
+114
+56
+45
+113
+54
+46
+113
+54
+46
+112
+53
+45
+111
+52
+44
+110
+51
+43
+109
+52
+43
+108
+51
+42
+106
+52
+42
+104
+50
+40
+108
+54
+44
+105
+51
+41
+102
+50
+39
+104
+52
+41
+101
+49
+38
+105
+53
+42
+123
+66
+57
+142
+77
+71
+146
+77
+72
+145
+80
+74
+143
+84
+76
+141
+86
+79
+135
+88
+78
+129
+89
+79
+124
+92
+81
+115
+92
+78
+107
+91
+76
+96
+87
+70
+86
+83
+66
+80
+83
+66
+74
+81
+63
+64
+73
+54
+52
+64
+44
+51
+60
+43
+50
+59
+42
+48
+57
+40
+48
+57
+40
+50
+59
+42
+53
+62
+45
+57
+66
+49
+60
+69
+52
+63
+72
+55
+63
+72
+53
+62
+71
+52
+58
+70
+50
+58
+67
+50
+53
+64
+47
+51
+62
+45
+49
+60
+44
+51
+58
+51
+51
+57
+53
+52
+57
+53
+52
+57
+50
+56
+57
+49
+57
+59
+46
+59
+62
+45
+59
+64
+42
+67
+76
+47
+79
+94
+55
+93
+115
+68
+105
+132
+77
+112
+147
+83
+119
+159
+89
+121
+163
+89
+119
+161
+89
+113
+152
+89
+102
+137
+79
+90
+125
+67
+88
+123
+65
+92
+127
+69
+93
+128
+70
+93
+128
+70
+94
+129
+71
+96
+131
+73
+96
+131
+73
+96
+131
+73
+96
+131
+73
+96
+131
+73
+95
+130
+72
+94
+129
+71
+93
+128
+74
+85
+121
+73
+74
+110
+64
+65
+101
+57
+104
+97
+81
+104
+97
+81
+104
+97
+81
+105
+98
+82
+105
+98
+82
+106
+99
+83
+106
+99
+83
+106
+99
+83
+105
+98
+82
+105
+98
+82
+105
+98
+82
+105
+98
+82
+105
+98
+82
+105
+98
+82
+105
+98
+82
+105
+98
+82
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+98
+86
+106
+96
+86
+106
+97
+88
+107
+100
+90
+107
+103
+94
+117
+112
+106
+136
+133
+128
+159
+158
+154
+176
+176
+174
+195
+194
+192
+211
+210
+208
+226
+225
+223
+231
+230
+228
+231
+227
+224
+227
+222
+218
+222
+214
+211
+217
+206
+200
+206
+188
+178
+184
+165
+151
+151
+135
+122
+121
+109
+93
+95
+89
+73
+75
+76
+58
+64
+69
+49
+59
+68
+47
+62
+74
+54
+61
+72
+55
+61
+70
+53
+59
+67
+52
+59
+62
+53
+58
+59
+51
+57
+56
+51
+58
+55
+48
+63
+60
+51
+69
+59
+50
+81
+53
+49
+99
+55
+52
+137
+71
+72
+177
+92
+95
+199
+96
+100
+202
+87
+90
+205
+81
+83
+209
+79
+79
+213
+78
+75
+216
+77
+74
+219
+74
+71
+221
+72
+68
+224
+69
+65
+223
+68
+66
+222
+68
+68
+221
+68
+70
+221
+68
+70
+220
+67
+69
+220
+67
+69
+219
+66
+68
+219
+67
+66
+217
+67
+66
+218
+68
+67
+216
+68
+64
+213
+68
+63
+212
+69
+63
+211
+68
+60
+210
+69
+60
+211
+70
+61
+212
+69
+61
+217
+64
+58
+217
+64
+58
+209
+66
+58
+200
+67
+58
+188
+67
+58
+172
+64
+52
+153
+59
+47
+140
+57
+43
+137
+61
+47
+131
+62
+46
+129
+62
+45
+128
+61
+44
+129
+60
+44
+131
+59
+44
+131
+59
+44
+132
+60
+45
+130
+58
+44
+130
+58
+44
+130
+58
+44
+129
+57
+43
+127
+57
+45
+127
+57
+45
+126
+56
+46
+125
+57
+46
+126
+58
+47
+126
+58
+47
+125
+58
+49
+125
+58
+49
+125
+58
+49
+125
+58
+49
+125
+58
+49
+125
+58
+49
+122
+58
+49
+121
+58
+49
+120
+57
+48
+120
+57
+48
+119
+56
+47
+116
+56
+46
+115
+55
+45
+114
+56
+45
+116
+56
+46
+115
+57
+46
+114
+56
+45
+113
+56
+45
+114
+56
+45
+112
+55
+44
+112
+55
+44
+112
+55
+44
+111
+54
+45
+111
+54
+45
+110
+53
+44
+110
+53
+44
+109
+52
+43
+108
+51
+42
+107
+50
+41
+105
+51
+41
+103
+49
+39
+107
+55
+44
+104
+52
+41
+101
+49
+38
+104
+52
+41
+98
+48
+37
+102
+52
+41
+122
+65
+56
+144
+77
+71
+146
+77
+72
+145
+80
+74
+142
+85
+76
+136
+88
+78
+129
+89
+79
+120
+90
+79
+114
+92
+78
+107
+94
+78
+94
+87
+71
+82
+80
+65
+75
+78
+61
+67
+74
+58
+57
+66
+49
+50
+58
+43
+48
+56
+41
+49
+55
+43
+49
+55
+45
+48
+54
+44
+47
+53
+43
+47
+53
+41
+48
+56
+43
+50
+58
+43
+52
+60
+45
+57
+68
+52
+59
+70
+53
+61
+72
+55
+60
+73
+55
+59
+70
+53
+54
+67
+49
+51
+64
+44
+49
+62
+45
+46
+56
+48
+48
+54
+50
+49
+54
+50
+50
+55
+49
+55
+56
+50
+57
+59
+48
+58
+60
+46
+58
+63
+41
+63
+72
+43
+75
+89
+53
+91
+113
+67
+104
+131
+76
+113
+147
+86
+119
+158
+91
+119
+161
+89
+115
+156
+86
+103
+141
+80
+94
+129
+73
+85
+120
+64
+87
+122
+66
+91
+126
+70
+91
+126
+70
+91
+126
+70
+93
+128
+72
+95
+130
+74
+95
+130
+74
+95
+130
+74
+95
+130
+74
+94
+129
+73
+94
+129
+73
+93
+128
+72
+93
+128
+74
+85
+118
+73
+74
+107
+64
+64
+96
+55
+104
+97
+81
+104
+97
+81
+104
+97
+81
+105
+98
+82
+105
+98
+82
+106
+99
+83
+106
+99
+83
+106
+99
+83
+105
+98
+82
+105
+98
+82
+105
+98
+82
+105
+98
+82
+105
+98
+82
+105
+98
+82
+105
+98
+82
+105
+98
+82
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+99
+84
+108
+98
+86
+112
+103
+94
+110
+103
+95
+108
+103
+97
+116
+113
+106
+135
+132
+127
+161
+160
+156
+188
+188
+186
+206
+208
+207
+207
+207
+207
+224
+224
+224
+242
+242
+242
+250
+248
+249
+251
+247
+246
+247
+243
+240
+241
+236
+233
+240
+226
+223
+232
+208
+198
+221
+193
+181
+193
+171
+157
+162
+145
+129
+125
+117
+98
+94
+92
+71
+75
+77
+55
+67
+72
+50
+65
+73
+50
+65
+73
+52
+64
+71
+53
+66
+68
+55
+65
+65
+55
+66
+61
+57
+67
+57
+55
+65
+57
+54
+59
+58
+53
+66
+61
+55
+71
+53
+49
+76
+45
+43
+102
+54
+54
+145
+81
+82
+181
+102
+105
+199
+109
+109
+192
+92
+92
+199
+90
+87
+206
+87
+83
+211
+84
+78
+216
+78
+75
+222
+74
+72
+225
+70
+68
+226
+68
+67
+221
+68
+70
+219
+69
+70
+219
+69
+70
+220
+67
+69
+220
+67
+69
+219
+66
+68
+219
+67
+66
+219
+67
+66
+220
+68
+67
+217
+67
+66
+215
+67
+63
+212
+67
+62
+212
+67
+62
+211
+68
+60
+210
+69
+60
+213
+69
+61
+221
+66
+61
+219
+65
+57
+210
+66
+58
+202
+68
+59
+191
+69
+58
+176
+65
+54
+156
+58
+45
+139
+53
+38
+138
+60
+47
+133
+61
+46
+130
+61
+45
+128
+61
+44
+129
+60
+44
+129
+60
+44
+131
+60
+42
+132
+60
+45
+130
+58
+44
+130
+58
+44
+130
+58
+44
+127
+58
+43
+127
+57
+45
+126
+56
+44
+125
+57
+46
+125
+57
+46
+126
+58
+47
+126
+58
+47
+125
+58
+49
+125
+58
+49
+125
+58
+49
+125
+58
+49
+125
+58
+49
+123
+59
+49
+121
+58
+49
+119
+59
+49
+120
+57
+48
+117
+57
+47
+116
+56
+46
+115
+57
+46
+114
+56
+45
+113
+55
+44
+114
+56
+45
+113
+56
+45
+112
+55
+44
+110
+56
+44
+112
+55
+44
+109
+55
+43
+111
+54
+43
+111
+54
+43
+111
+54
+45
+111
+54
+45
+110
+53
+44
+109
+52
+43
+108
+51
+42
+106
+52
+42
+105
+51
+41
+104
+52
+41
+102
+50
+39
+107
+55
+44
+104
+52
+41
+99
+49
+38
+101
+51
+40
+98
+48
+37
+101
+51
+40
+120
+66
+56
+142
+77
+71
+146
+79
+73
+142
+82
+74
+138
+85
+77
+131
+88
+79
+122
+90
+79
+113
+91
+77
+104
+92
+76
+90
+84
+68
+73
+74
+58
+63
+67
+52
+62
+68
+54
+57
+65
+50
+48
+56
+43
+47
+55
+42
+54
+60
+50
+52
+55
+48
+53
+56
+49
+53
+55
+50
+52
+55
+48
+50
+53
+46
+48
+54
+44
+48
+56
+45
+49
+57
+44
+54
+65
+51
+58
+69
+53
+61
+74
+57
+62
+75
+57
+60
+73
+55
+55
+70
+51
+50
+65
+44
+49
+62
+45
+44
+54
+46
+46
+52
+48
+48
+53
+49
+49
+54
+48
+54
+55
+49
+56
+58
+47
+58
+60
+46
+58
+63
+43
+60
+69
+42
+73
+87
+52
+89
+111
+65
+103
+130
+77
+112
+146
+86
+118
+157
+92
+117
+158
+88
+112
+153
+85
+96
+134
+73
+88
+123
+67
+83
+118
+62
+87
+122
+66
+91
+126
+70
+89
+124
+68
+89
+124
+68
+92
+127
+71
+95
+130
+74
+95
+130
+74
+94
+129
+73
+94
+129
+73
+94
+129
+73
+93
+128
+72
+93
+128
+72
+93
+127
+76
+83
+116
+73
+72
+104
+65
+63
+93
+55
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+106
+99
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+108
+99
+84
+108
+99
+84
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+108
+100
+87
+105
+98
+90
+103
+100
+93
+118
+115
+110
+147
+146
+142
+175
+175
+173
+196
+198
+197
+218
+220
+219
+234
+238
+239
+243
+244
+246
+246
+247
+249
+252
+252
+254
+255
+255
+255
+255
+255
+253
+255
+251
+250
+252
+247
+244
+253
+242
+236
+247
+225
+212
+242
+216
+199
+224
+202
+181
+198
+182
+159
+170
+160
+135
+136
+132
+105
+98
+98
+70
+69
+72
+45
+68
+72
+47
+67
+71
+48
+70
+69
+49
+71
+68
+53
+70
+60
+51
+67
+54
+48
+70
+52
+50
+73
+57
+57
+65
+60
+57
+66
+61
+58
+70
+56
+55
+75
+54
+53
+101
+69
+70
+147
+105
+106
+198
+147
+146
+233
+172
+169
+211
+140
+136
+199
+119
+112
+191
+96
+90
+195
+86
+81
+210
+82
+79
+219
+77
+76
+225
+71
+73
+225
+69
+72
+220
+70
+71
+220
+74
+75
+217
+68
+70
+210
+60
+62
+215
+62
+64
+225
+72
+74
+225
+71
+73
+216
+62
+64
+218
+64
+64
+218
+64
+64
+217
+65
+64
+215
+66
+62
+215
+66
+62
+212
+64
+60
+209
+64
+59
+211
+64
+57
+222
+67
+62
+219
+65
+57
+211
+64
+57
+202
+65
+57
+190
+66
+56
+176
+64
+53
+159
+58
+46
+144
+56
+42
+140
+61
+48
+135
+62
+47
+131
+62
+46
+129
+62
+45
+128
+61
+44
+127
+60
+43
+129
+61
+42
+129
+60
+44
+127
+58
+43
+127
+57
+45
+127
+57
+45
+126
+56
+44
+126
+56
+46
+124
+56
+45
+124
+56
+45
+124
+56
+45
+124
+57
+48
+124
+57
+48
+124
+57
+48
+124
+57
+48
+122
+58
+49
+122
+58
+49
+122
+58
+49
+122
+58
+49
+121
+61
+53
+119
+60
+52
+119
+59
+51
+117
+58
+50
+116
+57
+49
+113
+56
+47
+112
+55
+46
+112
+55
+46
+111
+54
+45
+109
+55
+45
+109
+55
+45
+108
+56
+45
+109
+55
+45
+108
+56
+45
+109
+55
+45
+109
+55
+45
+105
+50
+43
+109
+54
+47
+112
+57
+50
+111
+56
+49
+107
+52
+45
+103
+50
+42
+103
+50
+42
+104
+51
+43
+101
+48
+40
+105
+55
+46
+100
+50
+41
+93
+45
+35
+96
+48
+38
+95
+47
+37
+98
+50
+40
+115
+62
+54
+140
+79
+74
+143
+80
+75
+136
+81
+74
+129
+82
+74
+125
+89
+77
+118
+95
+81
+102
+89
+73
+84
+78
+62
+68
+69
+53
+62
+69
+53
+58
+67
+50
+53
+64
+48
+52
+60
+47
+51
+59
+48
+52
+58
+48
+52
+58
+48
+54
+56
+51
+55
+56
+51
+54
+54
+52
+52
+54
+49
+51
+53
+48
+49
+54
+47
+47
+54
+46
+46
+54
+43
+46
+57
+43
+50
+61
+45
+54
+67
+50
+58
+71
+54
+58
+73
+54
+56
+71
+52
+52
+67
+46
+49
+63
+46
+42
+52
+43
+44
+50
+46
+45
+50
+46
+46
+51
+45
+52
+53
+47
+55
+57
+46
+58
+60
+47
+58
+63
+43
+54
+62
+38
+68
+82
+49
+87
+108
+67
+104
+130
+82
+115
+148
+93
+119
+158
+95
+114
+155
+87
+107
+148
+82
+91
+126
+68
+88
+121
+68
+84
+117
+64
+84
+117
+64
+87
+120
+67
+90
+123
+70
+91
+124
+71
+90
+123
+70
+94
+127
+74
+98
+131
+78
+98
+131
+78
+94
+127
+74
+92
+125
+72
+95
+128
+75
+96
+129
+76
+94
+126
+77
+83
+113
+75
+70
+100
+66
+61
+88
+55
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+108
+99
+84
+108
+99
+84
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+108
+100
+89
+103
+100
+93
+111
+110
+106
+134
+133
+131
+164
+164
+162
+193
+195
+194
+214
+218
+219
+234
+238
+239
+247
+251
+252
+247
+251
+254
+248
+252
+255
+252
+253
+255
+254
+254
+254
+255
+255
+253
+255
+254
+250
+255
+252
+249
+255
+250
+243
+255
+240
+224
+251
+235
+212
+237
+223
+197
+215
+205
+178
+192
+187
+157
+164
+163
+132
+130
+131
+99
+103
+106
+75
+76
+81
+51
+71
+74
+47
+69
+67
+46
+71
+66
+47
+72
+62
+50
+73
+58
+51
+76
+57
+53
+75
+60
+57
+66
+56
+55
+71
+62
+63
+81
+69
+69
+96
+80
+80
+124
+104
+103
+166
+140
+139
+207
+178
+174
+232
+197
+191
+255
+213
+207
+234
+177
+168
+201
+131
+123
+188
+99
+93
+199
+87
+85
+213
+83
+83
+219
+74
+77
+216
+67
+69
+213
+71
+70
+210
+70
+69
+215
+73
+72
+219
+75
+75
+218
+70
+70
+212
+62
+63
+214
+61
+63
+221
+67
+69
+217
+63
+63
+217
+63
+63
+218
+64
+64
+218
+64
+64
+217
+65
+62
+214
+65
+61
+212
+64
+60
+212
+63
+57
+220
+65
+60
+219
+64
+59
+211
+64
+57
+203
+66
+58
+191
+67
+59
+177
+65
+54
+160
+59
+49
+146
+56
+45
+140
+61
+48
+135
+62
+47
+131
+62
+46
+129
+62
+45
+128
+61
+44
+127
+60
+43
+129
+60
+44
+129
+60
+44
+127
+58
+43
+127
+57
+45
+127
+57
+45
+126
+56
+44
+125
+57
+46
+124
+56
+45
+124
+56
+45
+124
+56
+45
+124
+57
+48
+124
+57
+48
+124
+57
+48
+124
+57
+48
+122
+58
+49
+123
+59
+50
+123
+59
+50
+122
+59
+50
+119
+60
+52
+117
+60
+51
+117
+58
+50
+115
+58
+49
+114
+57
+48
+110
+56
+46
+111
+54
+45
+109
+55
+45
+109
+55
+45
+108
+56
+45
+108
+56
+45
+108
+56
+45
+108
+56
+45
+106
+56
+45
+108
+56
+45
+108
+56
+45
+107
+54
+46
+110
+55
+48
+111
+56
+49
+110
+57
+49
+108
+55
+47
+105
+52
+44
+103
+50
+42
+101
+51
+42
+99
+49
+40
+100
+52
+42
+95
+47
+37
+94
+46
+36
+98
+50
+40
+94
+46
+36
+96
+48
+38
+112
+62
+53
+129
+74
+69
+135
+82
+76
+135
+88
+82
+126
+88
+79
+114
+86
+75
+100
+82
+68
+81
+74
+58
+62
+63
+47
+58
+65
+49
+54
+65
+48
+53
+64
+48
+51
+62
+48
+52
+60
+49
+52
+60
+49
+53
+59
+49
+55
+58
+51
+55
+57
+52
+55
+55
+53
+55
+55
+53
+53
+55
+50
+52
+54
+49
+49
+54
+47
+47
+54
+46
+47
+55
+44
+46
+57
+43
+49
+60
+46
+52
+65
+48
+56
+69
+52
+57
+72
+53
+56
+71
+52
+52
+69
+50
+52
+66
+49
+46
+56
+47
+46
+53
+46
+46
+51
+45
+45
+50
+43
+50
+51
+43
+52
+54
+43
+56
+58
+45
+57
+61
+44
+55
+63
+40
+68
+81
+51
+87
+108
+69
+104
+130
+85
+116
+149
+96
+119
+157
+98
+112
+152
+89
+103
+143
+80
+89
+124
+68
+87
+120
+67
+84
+117
+64
+84
+117
+64
+86
+119
+66
+89
+122
+69
+89
+122
+69
+89
+122
+69
+91
+124
+71
+95
+128
+75
+95
+128
+75
+92
+125
+72
+91
+124
+71
+94
+127
+74
+94
+127
+74
+94
+123
+77
+82
+109
+74
+70
+95
+66
+59
+84
+55
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+107
+98
+83
+107
+98
+83
+107
+98
+83
+108
+99
+84
+108
+99
+84
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+110
+101
+86
+110
+101
+86
+108
+102
+90
+101
+100
+95
+121
+123
+120
+151
+153
+152
+178
+182
+183
+205
+209
+210
+228
+233
+236
+244
+249
+252
+250
+255
+255
+251
+255
+255
+252
+255
+255
+253
+254
+255
+254
+254
+254
+255
+254
+252
+255
+255
+251
+255
+255
+250
+255
+255
+244
+254
+252
+231
+250
+249
+221
+239
+240
+209
+225
+229
+196
+210
+216
+180
+188
+196
+159
+160
+168
+131
+135
+145
+108
+96
+103
+69
+81
+88
+55
+68
+71
+44
+68
+67
+46
+74
+68
+52
+76
+68
+55
+75
+65
+56
+73
+62
+58
+68
+58
+57
+84
+74
+75
+107
+95
+95
+130
+118
+118
+157
+146
+144
+192
+178
+175
+219
+206
+200
+234
+220
+211
+248
+228
+217
+255
+240
+229
+255
+224
+214
+234
+167
+159
+190
+101
+97
+177
+67
+68
+198
+72
+75
+219
+86
+89
+216
+88
+85
+207
+79
+76
+202
+70
+66
+204
+69
+66
+210
+70
+69
+214
+70
+70
+216
+68
+68
+217
+67
+68
+214
+61
+63
+216
+62
+64
+217
+63
+63
+217
+63
+63
+217
+65
+64
+214
+64
+63
+213
+65
+61
+213
+64
+58
+217
+64
+58
+217
+64
+58
+210
+66
+58
+203
+69
+60
+192
+68
+60
+178
+66
+55
+161
+60
+50
+147
+57
+46
+142
+60
+48
+137
+61
+48
+131
+62
+47
+129
+62
+46
+127
+61
+45
+126
+60
+44
+128
+61
+45
+128
+61
+45
+127
+57
+45
+127
+57
+45
+126
+58
+47
+125
+57
+46
+125
+57
+46
+124
+56
+45
+123
+56
+47
+123
+56
+47
+125
+58
+49
+125
+58
+49
+123
+59
+50
+123
+59
+50
+123
+59
+50
+123
+59
+50
+122
+59
+52
+120
+60
+52
+116
+59
+50
+113
+59
+49
+114
+57
+48
+111
+57
+47
+110
+56
+46
+108
+56
+45
+108
+54
+44
+107
+55
+44
+108
+56
+45
+106
+56
+45
+106
+56
+45
+106
+56
+45
+106
+56
+45
+105
+57
+45
+106
+56
+45
+106
+56
+45
+110
+57
+49
+109
+56
+48
+109
+56
+48
+109
+56
+48
+109
+56
+48
+105
+55
+46
+102
+52
+43
+99
+49
+40
+100
+50
+41
+97
+49
+39
+93
+45
+35
+95
+48
+38
+99
+52
+42
+92
+45
+35
+95
+48
+38
+115
+68
+60
+125
+80
+74
+129
+86
+80
+126
+89
+81
+112
+84
+73
+94
+74
+63
+79
+67
+55
+63
+60
+45
+52
+54
+40
+50
+59
+42
+48
+59
+43
+49
+60
+46
+50
+61
+47
+52
+60
+49
+52
+60
+49
+53
+59
+49
+55
+58
+51
+55
+57
+52
+55
+57
+54
+54
+56
+51
+53
+55
+50
+53
+55
+50
+50
+55
+48
+48
+55
+47
+48
+56
+45
+46
+57
+43
+48
+59
+45
+50
+63
+46
+54
+67
+50
+55
+69
+52
+56
+71
+52
+56
+71
+52
+57
+70
+53
+52
+62
+51
+51
+58
+50
+47
+52
+45
+44
+50
+40
+47
+48
+40
+49
+51
+40
+53
+55
+42
+54
+58
+41
+54
+62
+39
+68
+81
+53
+89
+109
+74
+107
+132
+90
+119
+151
+102
+119
+156
+102
+108
+147
+90
+95
+135
+75
+87
+120
+67
+87
+117
+67
+84
+114
+64
+84
+114
+64
+86
+116
+66
+88
+118
+68
+89
+119
+69
+89
+119
+69
+90
+120
+70
+93
+123
+73
+95
+125
+75
+93
+123
+73
+93
+123
+73
+95
+125
+75
+94
+124
+74
+90
+119
+75
+78
+101
+72
+65
+87
+64
+54
+76
+53
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+105
+99
+83
+106
+99
+83
+107
+98
+83
+107
+98
+83
+108
+99
+84
+108
+99
+84
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+110
+101
+86
+110
+101
+86
+110
+101
+86
+110
+101
+86
+109
+103
+91
+106
+107
+102
+131
+135
+136
+163
+167
+168
+185
+190
+193
+208
+213
+216
+229
+237
+239
+243
+251
+253
+245
+253
+255
+251
+255
+255
+251
+255
+255
+252
+255
+255
+252
+254
+251
+253
+254
+249
+254
+253
+248
+255
+254
+247
+255
+255
+243
+248
+253
+230
+244
+253
+222
+238
+247
+216
+230
+242
+206
+221
+233
+195
+206
+218
+180
+182
+193
+153
+161
+171
+134
+128
+135
+101
+102
+109
+76
+77
+81
+54
+70
+72
+48
+72
+74
+53
+75
+73
+58
+72
+68
+57
+68
+64
+55
+80
+70
+68
+106
+96
+95
+139
+129
+128
+164
+154
+153
+183
+175
+172
+203
+198
+194
+223
+218
+212
+234
+230
+221
+247
+238
+229
+255
+249
+239
+255
+246
+235
+255
+215
+207
+245
+178
+172
+227
+141
+140
+200
+100
+100
+176
+68
+66
+194
+83
+76
+200
+85
+78
+199
+82
+73
+195
+72
+65
+199
+72
+66
+211
+77
+74
+213
+74
+71
+207
+63
+62
+210
+62
+62
+212
+62
+63
+213
+63
+62
+216
+64
+63
+214
+64
+63
+214
+64
+63
+213
+65
+61
+213
+65
+61
+214
+62
+57
+213
+64
+58
+210
+67
+61
+204
+69
+63
+192
+69
+62
+178
+65
+57
+162
+61
+53
+149
+59
+50
+142
+60
+49
+137
+61
+48
+131
+62
+47
+129
+62
+46
+127
+61
+47
+126
+60
+44
+128
+61
+45
+128
+61
+45
+127
+57
+45
+127
+57
+45
+126
+58
+47
+125
+57
+46
+125
+57
+46
+124
+56
+45
+123
+56
+47
+123
+56
+47
+126
+59
+50
+126
+59
+50
+124
+60
+51
+123
+59
+50
+123
+59
+50
+123
+59
+50
+122
+59
+52
+120
+60
+52
+114
+57
+48
+111
+57
+47
+111
+57
+47
+109
+57
+46
+108
+56
+45
+107
+55
+44
+106
+54
+43
+104
+54
+43
+105
+55
+44
+105
+55
+44
+105
+55
+44
+104
+56
+44
+104
+56
+44
+104
+56
+44
+104
+56
+44
+104
+56
+44
+109
+59
+50
+108
+55
+47
+106
+53
+45
+105
+55
+46
+106
+56
+47
+106
+56
+47
+102
+52
+43
+97
+49
+39
+101
+53
+43
+97
+50
+40
+93
+46
+36
+97
+50
+40
+98
+51
+41
+89
+42
+32
+97
+50
+40
+121
+78
+69
+129
+92
+86
+118
+87
+82
+105
+78
+71
+87
+67
+58
+73
+60
+51
+64
+58
+46
+58
+59
+45
+56
+60
+46
+48
+56
+41
+47
+58
+42
+51
+59
+46
+52
+60
+47
+53
+61
+50
+53
+59
+49
+54
+57
+48
+54
+57
+48
+55
+57
+52
+54
+56
+51
+54
+56
+51
+52
+57
+50
+51
+56
+49
+51
+57
+47
+49
+57
+46
+49
+57
+46
+46
+57
+43
+47
+58
+44
+48
+61
+44
+50
+63
+46
+53
+66
+49
+55
+69
+52
+59
+72
+54
+60
+73
+56
+57
+67
+56
+55
+63
+52
+50
+56
+46
+45
+51
+39
+46
+48
+37
+47
+49
+36
+50
+52
+38
+52
+56
+39
+52
+60
+39
+69
+82
+56
+93
+112
+80
+114
+139
+100
+123
+154
+110
+119
+156
+105
+102
+141
+88
+85
+124
+69
+83
+115
+65
+84
+114
+64
+83
+113
+63
+83
+113
+63
+84
+114
+64
+85
+115
+65
+86
+116
+66
+86
+116
+66
+87
+117
+67
+91
+121
+71
+93
+123
+73
+92
+122
+72
+94
+124
+74
+95
+125
+75
+92
+122
+72
+87
+114
+73
+73
+93
+68
+61
+78
+60
+49
+66
+48
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+105
+99
+83
+106
+99
+83
+107
+98
+83
+107
+98
+83
+108
+99
+84
+108
+99
+84
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+110
+101
+86
+110
+101
+86
+111
+102
+87
+111
+102
+87
+110
+103
+93
+113
+113
+111
+135
+140
+143
+164
+169
+172
+183
+191
+194
+205
+213
+216
+227
+237
+239
+242
+252
+254
+244
+254
+255
+248
+255
+255
+250
+255
+255
+251
+255
+252
+253
+255
+250
+252
+253
+245
+250
+252
+241
+249
+249
+237
+246
+248
+234
+246
+255
+232
+243
+255
+228
+240
+253
+225
+238
+249
+217
+233
+244
+210
+222
+232
+197
+202
+210
+173
+182
+190
+153
+157
+163
+129
+125
+130
+98
+89
+93
+66
+71
+76
+53
+70
+75
+55
+70
+74
+57
+67
+71
+57
+65
+67
+56
+98
+95
+88
+133
+125
+122
+170
+162
+159
+192
+184
+181
+203
+195
+193
+213
+208
+205
+230
+225
+221
+241
+238
+233
+249
+246
+239
+250
+243
+233
+251
+237
+226
+255
+236
+227
+255
+242
+234
+255
+224
+219
+233
+165
+162
+182
+105
+99
+164
+76
+64
+178
+82
+68
+192
+90
+78
+199
+92
+82
+197
+83
+73
+190
+69
+61
+193
+64
+59
+202
+67
+64
+203
+64
+61
+206
+64
+62
+209
+63
+63
+210
+64
+64
+211
+66
+63
+211
+66
+63
+211
+66
+63
+211
+66
+61
+211
+63
+59
+210
+65
+60
+208
+69
+64
+201
+69
+64
+189
+67
+62
+175
+64
+57
+160
+62
+53
+149
+61
+51
+142
+60
+49
+137
+60
+50
+131
+61
+49
+129
+61
+48
+127
+61
+49
+126
+60
+46
+127
+61
+47
+127
+61
+47
+126
+58
+47
+126
+58
+47
+126
+58
+47
+125
+57
+46
+124
+57
+48
+123
+56
+47
+123
+56
+47
+123
+56
+47
+124
+60
+51
+124
+60
+51
+124
+60
+51
+123
+59
+50
+122
+59
+52
+121
+58
+51
+121
+58
+51
+119
+59
+51
+110
+55
+48
+109
+56
+48
+108
+55
+47
+108
+55
+47
+107
+54
+46
+104
+54
+45
+104
+54
+45
+104
+54
+45
+105
+55
+46
+104
+56
+46
+104
+56
+46
+103
+56
+46
+103
+56
+46
+103
+56
+46
+103
+56
+46
+104
+56
+46
+107
+57
+50
+104
+54
+47
+102
+52
+45
+103
+53
+46
+105
+55
+48
+104
+55
+48
+101
+52
+45
+98
+49
+42
+99
+50
+43
+98
+51
+43
+95
+48
+40
+93
+49
+40
+93
+49
+40
+86
+42
+33
+98
+54
+45
+123
+85
+76
+116
+89
+82
+97
+78
+72
+78
+63
+56
+65
+55
+46
+61
+54
+44
+59
+57
+45
+57
+59
+46
+57
+60
+49
+51
+57
+45
+51
+59
+46
+53
+59
+47
+54
+60
+48
+54
+60
+48
+55
+58
+47
+53
+56
+45
+52
+55
+46
+54
+57
+48
+52
+57
+50
+51
+56
+49
+51
+57
+47
+51
+57
+47
+50
+58
+47
+49
+57
+46
+49
+57
+44
+46
+57
+43
+46
+57
+43
+47
+58
+44
+48
+59
+45
+51
+62
+46
+54
+67
+50
+58
+69
+53
+60
+71
+55
+61
+69
+56
+58
+66
+53
+53
+59
+47
+48
+54
+40
+48
+50
+37
+47
+49
+36
+49
+51
+37
+49
+53
+36
+50
+58
+37
+71
+83
+59
+98
+117
+87
+119
+143
+107
+124
+155
+114
+113
+149
+103
+92
+130
+81
+74
+112
+61
+79
+111
+62
+81
+110
+62
+81
+110
+62
+81
+110
+62
+81
+110
+62
+81
+110
+62
+83
+112
+64
+83
+112
+64
+87
+116
+68
+91
+120
+72
+93
+122
+74
+93
+122
+74
+95
+124
+76
+95
+124
+76
+90
+119
+71
+82
+108
+69
+65
+82
+63
+54
+67
+57
+43
+56
+46
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+105
+99
+83
+106
+99
+83
+107
+98
+83
+107
+98
+83
+108
+99
+84
+108
+99
+84
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+110
+101
+86
+110
+101
+86
+111
+102
+87
+112
+103
+88
+112
+103
+88
+110
+103
+93
+108
+110
+109
+122
+130
+133
+147
+154
+160
+171
+181
+183
+196
+206
+208
+220
+230
+232
+237
+247
+249
+244
+254
+255
+245
+254
+253
+246
+255
+252
+250
+255
+250
+251
+255
+249
+251
+254
+243
+248
+250
+237
+245
+246
+232
+241
+244
+227
+244
+253
+234
+244
+253
+232
+244
+252
+229
+243
+249
+223
+242
+246
+219
+233
+236
+205
+216
+215
+185
+197
+196
+165
+177
+176
+146
+143
+142
+114
+101
+103
+79
+77
+80
+59
+71
+75
+58
+70
+77
+61
+71
+79
+66
+74
+82
+71
+122
+123
+115
+158
+155
+148
+195
+190
+184
+215
+207
+204
+222
+212
+211
+230
+220
+219
+243
+235
+233
+252
+247
+244
+243
+240
+235
+254
+251
+244
+255
+255
+246
+255
+251
+241
+255
+243
+234
+255
+237
+229
+255
+226
+218
+255
+210
+199
+212
+143
+127
+181
+100
+81
+162
+75
+58
+178
+85
+70
+190
+88
+74
+182
+71
+60
+182
+63
+55
+199
+74
+68
+199
+67
+62
+202
+67
+63
+205
+66
+63
+208
+66
+64
+208
+66
+62
+208
+66
+62
+208
+66
+62
+208
+65
+61
+210
+65
+60
+210
+67
+63
+206
+68
+65
+197
+68
+63
+184
+65
+61
+170
+61
+56
+158
+59
+53
+149
+60
+52
+142
+59
+51
+137
+60
+50
+131
+61
+51
+129
+61
+50
+127
+61
+49
+126
+60
+48
+127
+61
+49
+127
+61
+47
+126
+58
+47
+126
+58
+47
+126
+58
+47
+125
+57
+46
+124
+57
+48
+123
+56
+47
+123
+56
+47
+123
+56
+47
+124
+60
+51
+123
+59
+50
+123
+59
+50
+122
+58
+49
+121
+58
+51
+120
+57
+50
+119
+56
+49
+117
+57
+49
+110
+55
+48
+108
+55
+47
+108
+55
+47
+106
+56
+47
+105
+55
+46
+105
+55
+46
+104
+54
+45
+103
+55
+45
+103
+55
+45
+103
+55
+45
+102
+55
+45
+102
+55
+45
+102
+55
+45
+102
+55
+45
+102
+55
+45
+102
+55
+45
+104
+55
+48
+104
+54
+47
+103
+53
+46
+103
+53
+46
+103
+54
+47
+104
+55
+48
+103
+54
+47
+102
+53
+46
+97
+50
+42
+101
+54
+46
+94
+50
+41
+92
+48
+39
+96
+52
+43
+97
+53
+44
+105
+61
+52
+117
+83
+74
+88
+71
+64
+69
+62
+54
+60
+53
+47
+57
+53
+44
+59
+56
+47
+56
+58
+47
+53
+55
+44
+51
+54
+43
+54
+57
+46
+53
+59
+47
+55
+58
+47
+54
+57
+46
+54
+57
+46
+53
+56
+45
+53
+55
+44
+51
+54
+43
+50
+56
+44
+49
+57
+44
+50
+56
+46
+49
+57
+44
+49
+57
+46
+49
+57
+44
+49
+57
+44
+49
+57
+44
+46
+57
+43
+46
+57
+43
+46
+57
+43
+47
+58
+44
+48
+59
+43
+51
+62
+46
+54
+65
+49
+55
+66
+50
+60
+68
+53
+58
+67
+50
+56
+63
+47
+53
+59
+45
+52
+54
+41
+50
+52
+39
+49
+51
+37
+48
+52
+37
+48
+55
+37
+72
+84
+62
+101
+120
+92
+117
+141
+109
+116
+146
+108
+102
+137
+95
+82
+119
+75
+66
+104
+57
+75
+107
+60
+78
+107
+59
+80
+109
+61
+80
+109
+61
+78
+107
+59
+78
+107
+59
+79
+108
+60
+81
+110
+62
+86
+115
+67
+90
+119
+71
+93
+122
+74
+94
+123
+75
+95
+124
+76
+95
+124
+76
+86
+115
+67
+78
+102
+66
+59
+73
+56
+48
+59
+51
+38
+47
+42
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+105
+99
+83
+106
+99
+83
+107
+98
+83
+107
+98
+83
+108
+99
+84
+108
+99
+84
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+109
+100
+85
+110
+101
+86
+110
+101
+86
+111
+102
+87
+112
+103
+88
+113
+104
+89
+111
+104
+94
+104
+105
+107
+109
+116
+122
+133
+140
+148
+163
+172
+177
+191
+200
+205
+211
+222
+226
+229
+240
+242
+240
+252
+252
+242
+252
+251
+245
+254
+249
+248
+255
+247
+250
+255
+246
+252
+255
+242
+250
+253
+236
+248
+249
+231
+246
+247
+231
+246
+246
+234
+247
+247
+235
+250
+247
+232
+252
+246
+230
+253
+245
+226
+247
+236
+214
+231
+216
+195
+213
+198
+175
+192
+177
+154
+158
+147
+125
+117
+110
+91
+90
+87
+70
+80
+81
+67
+83
+86
+75
+91
+98
+90
+99
+109
+100
+146
+154
+141
+176
+179
+168
+210
+207
+198
+230
+223
+217
+242
+228
+227
+249
+235
+235
+255
+241
+244
+255
+248
+249
+255
+253
+251
+255
+251
+248
+249
+248
+243
+247
+247
+237
+251
+249
+237
+255
+252
+240
+255
+253
+241
+255
+249
+234
+255
+224
+203
+234
+168
+144
+183
+111
+89
+168
+87
+68
+174
+85
+69
+183
+82
+70
+185
+77
+65
+191
+74
+65
+195
+71
+63
+198
+69
+63
+202
+69
+64
+203
+68
+64
+205
+68
+62
+204
+67
+61
+203
+66
+60
+204
+65
+60
+209
+67
+63
+208
+69
+64
+204
+69
+65
+194
+67
+61
+179
+61
+57
+166
+59
+53
+156
+59
+53
+149
+60
+54
+140
+60
+51
+135
+61
+52
+133
+60
+53
+129
+61
+52
+127
+60
+51
+126
+60
+48
+127
+61
+49
+127
+61
+49
+126
+58
+47
+126
+58
+47
+126
+58
+47
+125
+57
+46
+124
+57
+48
+123
+56
+47
+123
+56
+47
+123
+56
+47
+123
+59
+50
+123
+59
+50
+121
+58
+51
+120
+57
+50
+119
+56
+49
+118
+55
+48
+118
+55
+48
+115
+55
+47
+110
+55
+48
+106
+56
+47
+106
+56
+47
+106
+56
+47
+106
+56
+47
+104
+56
+46
+104
+56
+46
+104
+56
+46
+103
+55
+45
+102
+55
+45
+102
+55
+45
+102
+55
+45
+100
+56
+45
+100
+56
+45
+100
+56
+45
+102
+55
+45
+103
+54
+47
+104
+55
+48
+105
+56
+49
+105
+56
+49
+104
+55
+48
+105
+56
+49
+106
+59
+51
+108
+61
+53
+103
+56
+48
+107
+60
+52
+98
+54
+45
+97
+53
+44
+111
+67
+58
+120
+76
+67
+116
+73
+64
+110
+77
+68
+67
+57
+48
+53
+54
+46
+52
+53
+47
+56
+57
+49
+56
+59
+50
+52
+55
+46
+49
+52
+43
+50
+53
+44
+53
+56
+45
+53
+56
+45
+53
+55
+44
+52
+54
+43
+52
+54
+43
+52
+54
+43
+52
+54
+41
+51
+55
+41
+47
+55
+40
+46
+57
+41
+48
+56
+43
+46
+57
+41
+46
+57
+43
+46
+57
+41
+48
+56
+41
+48
+56
+41
+49
+57
+42
+48
+56
+41
+48
+56
+43
+47
+55
+42
+48
+56
+43
+49
+57
+44
+51
+59
+46
+52
+60
+45
+57
+66
+49
+58
+67
+48
+59
+66
+48
+58
+65
+49
+58
+60
+46
+54
+56
+42
+50
+52
+38
+47
+51
+36
+50
+57
+39
+73
+85
+63
+99
+117
+91
+109
+132
+103
+102
+132
+98
+87
+121
+84
+73
+110
+69
+63
+100
+56
+72
+103
+59
+76
+105
+59
+78
+107
+61
+78
+107
+61
+76
+105
+59
+76
+105
+59
+77
+106
+60
+79
+108
+62
+85
+114
+68
+89
+118
+72
+91
+120
+74
+93
+122
+76
+94
+123
+77
+92
+121
+75
+81
+110
+64
+71
+95
+59
+54
+66
+52
+43
+52
+47
+34
+40
+38
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+103
+100
+83
+105
+99
+83
+106
+99
+83
+106
+99
+83
+106
+98
+85
+108
+98
+86
+108
+98
+86
+109
+99
+87
+109
+100
+85
+109
+100
+85
+109
+100
+85
+108
+101
+85
+109
+102
+86
+110
+103
+87
+111
+103
+90
+110
+104
+92
+111
+104
+94
+109
+106
+101
+107
+111
+114
+109
+116
+122
+131
+138
+144
+165
+174
+179
+195
+204
+209
+213
+223
+225
+230
+238
+241
+244
+252
+254
+244
+253
+250
+247
+253
+249
+249
+254
+247
+250
+255
+244
+252
+255
+242
+252
+255
+241
+252
+255
+238
+253
+254
+240
+251
+248
+239
+254
+250
+241
+255
+249
+239
+255
+250
+237
+255
+249
+233
+255
+242
+223
+239
+224
+203
+221
+206
+183
+193
+178
+155
+162
+151
+129
+124
+117
+98
+98
+95
+78
+88
+90
+76
+93
+99
+87
+109
+119
+110
+124
+134
+125
+165
+173
+162
+187
+193
+181
+215
+215
+207
+235
+230
+226
+250
+238
+238
+255
+244
+244
+255
+245
+247
+254
+244
+245
+253
+247
+247
+250
+249
+247
+250
+252
+247
+251
+255
+249
+250
+253
+244
+244
+247
+238
+247
+249
+238
+255
+252
+239
+255
+242
+225
+255
+242
+224
+250
+201
+184
+188
+129
+113
+157
+85
+71
+171
+85
+72
+183
+85
+74
+177
+69
+59
+192
+74
+64
+198
+71
+64
+201
+70
+62
+202
+69
+62
+202
+67
+61
+201
+66
+60
+199
+66
+59
+200
+65
+59
+207
+70
+62
+205
+71
+62
+199
+71
+62
+188
+67
+59
+173
+62
+53
+159
+58
+50
+149
+59
+51
+145
+62
+54
+138
+61
+53
+132
+62
+52
+130
+62
+53
+129
+61
+52
+127
+60
+51
+126
+60
+48
+128
+60
+49
+128
+60
+49
+126
+58
+47
+126
+58
+47
+126
+58
+49
+125
+57
+48
+124
+57
+48
+123
+56
+47
+123
+56
+47
+123
+56
+47
+122
+58
+49
+122
+58
+49
+120
+57
+50
+119
+56
+49
+118
+55
+48
+117
+54
+47
+117
+54
+47
+113
+54
+46
+109
+56
+48
+107
+57
+48
+106
+56
+47
+106
+56
+47
+105
+57
+47
+105
+57
+47
+105
+57
+47
+104
+56
+46
+103
+55
+45
+102
+55
+45
+103
+55
+45
+102
+55
+45
+102
+55
+45
+102
+55
+45
+102
+55
+45
+102
+55
+45
+102
+53
+46
+106
+56
+49
+109
+59
+52
+107
+58
+51
+106
+57
+50
+106
+58
+48
+109
+62
+52
+111
+67
+56
+108
+64
+53
+111
+68
+59
+100
+60
+50
+99
+61
+50
+122
+86
+74
+134
+100
+90
+121
+87
+77
+98
+76
+65
+62
+58
+49
+51
+56
+49
+52
+57
+50
+55
+60
+53
+52
+58
+48
+47
+53
+43
+50
+53
+44
+57
+60
+51
+51
+54
+43
+50
+53
+42
+50
+52
+41
+48
+51
+40
+49
+51
+40
+50
+53
+42
+52
+54
+43
+52
+55
+44
+46
+54
+41
+44
+55
+41
+47
+55
+42
+45
+56
+42
+47
+55
+42
+47
+55
+42
+47
+55
+42
+47
+55
+42
+49
+57
+44
+48
+56
+43
+48
+56
+45
+47
+55
+44
+47
+55
+44
+47
+55
+44
+48
+56
+45
+48
+56
+43
+55
+63
+48
+57
+66
+49
+60
+69
+52
+61
+68
+52
+59
+65
+51
+56
+60
+46
+50
+54
+39
+45
+52
+36
+50
+59
+42
+74
+86
+66
+99
+114
+91
+104
+124
+97
+93
+118
+88
+79
+109
+75
+70
+102
+65
+65
+97
+58
+72
+100
+59
+75
+104
+60
+78
+107
+63
+78
+107
+63
+75
+104
+60
+74
+103
+57
+76
+105
+61
+78
+107
+61
+84
+113
+69
+87
+116
+72
+90
+119
+75
+91
+120
+76
+93
+122
+78
+90
+118
+77
+78
+106
+65
+67
+91
+59
+50
+62
+52
+41
+47
+47
+31
+37
+37
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+106
+100
+86
+106
+100
+86
+106
+100
+88
+108
+100
+89
+108
+99
+90
+109
+101
+90
+109
+101
+88
+109
+102
+86
+103
+96
+78
+106
+101
+82
+110
+107
+88
+111
+108
+93
+104
+101
+92
+102
+101
+97
+115
+113
+114
+129
+130
+134
+137
+142
+146
+149
+157
+160
+170
+178
+181
+194
+199
+202
+215
+220
+223
+233
+237
+238
+245
+246
+248
+248
+250
+249
+252
+254
+253
+254
+254
+252
+255
+255
+250
+253
+254
+246
+250
+253
+242
+249
+252
+241
+250
+253
+242
+251
+254
+243
+249
+250
+242
+250
+250
+242
+249
+249
+237
+252
+250
+235
+254
+252
+231
+249
+247
+222
+233
+229
+202
+213
+212
+182
+186
+185
+155
+152
+152
+124
+113
+116
+89
+95
+100
+77
+98
+107
+88
+114
+125
+108
+132
+144
+130
+145
+155
+144
+180
+185
+178
+202
+204
+199
+226
+227
+222
+240
+239
+235
+247
+243
+242
+251
+247
+246
+253
+249
+248
+252
+248
+247
+255
+254
+252
+254
+254
+252
+254
+254
+252
+253
+255
+250
+254
+255
+250
+254
+255
+250
+254
+255
+250
+254
+255
+250
+251
+253
+248
+255
+253
+248
+255
+251
+246
+255
+229
+223
+215
+166
+159
+163
+96
+88
+155
+68
+61
+178
+75
+66
+193
+79
+69
+195
+71
+61
+198
+67
+57
+201
+68
+59
+205
+72
+63
+206
+73
+64
+203
+72
+64
+202
+71
+61
+198
+71
+56
+195
+72
+56
+190
+73
+56
+181
+71
+56
+166
+69
+53
+154
+66
+52
+144
+66
+53
+139
+67
+53
+133
+67
+53
+129
+67
+54
+127
+65
+52
+127
+63
+51
+128
+62
+50
+128
+60
+49
+129
+59
+49
+129
+59
+49
+127
+57
+49
+126
+58
+49
+124
+57
+49
+123
+56
+48
+122
+55
+47
+122
+55
+47
+119
+55
+46
+118
+54
+45
+119
+55
+46
+119
+55
+46
+119
+56
+47
+119
+56
+47
+118
+55
+46
+117
+54
+45
+113
+53
+43
+110
+51
+43
+108
+55
+47
+105
+56
+49
+105
+56
+49
+104
+55
+48
+104
+55
+48
+103
+54
+47
+103
+54
+47
+103
+54
+47
+102
+53
+46
+103
+54
+47
+105
+55
+48
+105
+56
+49
+104
+55
+48
+103
+54
+47
+101
+52
+45
+101
+51
+44
+104
+51
+45
+106
+53
+47
+109
+56
+48
+107
+57
+48
+106
+58
+48
+105
+59
+46
+105
+61
+48
+107
+65
+51
+103
+66
+50
+106
+73
+58
+100
+72
+58
+118
+95
+79
+126
+107
+92
+138
+120
+106
+140
+127
+111
+82
+74
+61
+55
+57
+46
+52
+58
+48
+52
+58
+48
+51
+57
+47
+51
+57
+47
+51
+57
+47
+50
+56
+46
+50
+56
+46
+49
+55
+45
+49
+55
+45
+51
+54
+45
+48
+54
+44
+50
+53
+44
+47
+53
+43
+49
+52
+43
+47
+53
+43
+47
+52
+45
+46
+53
+45
+47
+52
+45
+46
+53
+45
+47
+52
+45
+47
+52
+45
+47
+52
+45
+47
+52
+45
+48
+53
+46
+47
+52
+45
+47
+52
+45
+46
+51
+44
+46
+51
+44
+47
+52
+45
+47
+52
+45
+47
+54
+46
+49
+59
+50
+51
+61
+50
+54
+64
+53
+56
+66
+55
+57
+68
+54
+55
+66
+52
+53
+64
+48
+51
+62
+45
+52
+63
+46
+68
+81
+61
+87
+101
+78
+91
+107
+81
+80
+98
+72
+69
+88
+60
+64
+84
+56
+66
+87
+54
+73
+99
+62
+75
+101
+62
+75
+102
+61
+75
+102
+61
+74
+101
+60
+74
+101
+58
+76
+103
+62
+79
+106
+63
+85
+112
+71
+89
+116
+75
+92
+118
+79
+93
+119
+80
+93
+119
+82
+87
+113
+78
+72
+98
+63
+59
+79
+54
+37
+48
+42
+38
+43
+46
+36
+41
+44
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+106
+99
+89
+107
+100
+90
+108
+99
+92
+109
+100
+91
+109
+101
+90
+109
+102
+86
+105
+100
+81
+106
+104
+83
+109
+106
+87
+106
+107
+91
+103
+103
+95
+108
+108
+108
+126
+127
+132
+144
+147
+154
+167
+174
+180
+183
+193
+195
+208
+213
+216
+225
+230
+233
+241
+242
+244
+250
+251
+253
+255
+254
+255
+255
+254
+255
+254
+253
+251
+255
+254
+250
+255
+255
+250
+254
+255
+249
+251
+252
+244
+248
+251
+242
+246
+252
+242
+247
+253
+243
+247
+250
+241
+248
+250
+239
+248
+250
+237
+247
+250
+233
+249
+251
+229
+242
+245
+218
+223
+226
+195
+204
+208
+175
+180
+184
+151
+145
+150
+118
+107
+113
+85
+89
+97
+73
+95
+107
+85
+116
+129
+111
+140
+152
+138
+157
+167
+156
+191
+193
+188
+211
+211
+209
+231
+231
+229
+243
+243
+241
+247
+247
+245
+251
+251
+249
+252
+252
+250
+251
+251
+249
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+251
+255
+254
+241
+255
+255
+237
+251
+252
+247
+249
+248
+255
+248
+247
+255
+233
+230
+239
+190
+185
+196
+128
+119
+164
+80
+70
+176
+78
+65
+186
+76
+63
+193
+75
+63
+196
+74
+61
+194
+68
+56
+188
+61
+52
+190
+63
+54
+196
+70
+58
+196
+70
+55
+195
+74
+55
+191
+76
+58
+180
+73
+55
+166
+70
+54
+153
+67
+50
+144
+68
+54
+138
+71
+55
+130
+68
+55
+127
+67
+56
+126
+66
+55
+124
+64
+53
+126
+62
+52
+127
+60
+51
+128
+60
+49
+128
+60
+51
+125
+58
+50
+125
+58
+50
+122
+58
+49
+122
+58
+49
+121
+57
+48
+120
+56
+47
+118
+55
+46
+118
+55
+46
+117
+54
+45
+118
+55
+46
+116
+56
+46
+116
+56
+46
+116
+56
+46
+114
+54
+44
+111
+53
+42
+109
+52
+43
+108
+55
+47
+105
+56
+49
+106
+56
+49
+104
+55
+48
+105
+55
+48
+104
+55
+48
+103
+54
+47
+103
+54
+47
+101
+51
+44
+101
+51
+44
+103
+53
+46
+104
+54
+47
+106
+56
+49
+106
+56
+49
+106
+56
+49
+107
+57
+50
+107
+54
+48
+108
+55
+49
+107
+57
+48
+107
+59
+49
+107
+59
+47
+106
+62
+49
+106
+64
+48
+105
+68
+50
+103
+72
+54
+107
+80
+61
+103
+82
+65
+117
+102
+83
+129
+117
+101
+140
+133
+115
+134
+131
+114
+75
+76
+60
+54
+57
+46
+51
+57
+47
+51
+57
+47
+51
+57
+47
+50
+56
+46
+50
+56
+46
+50
+56
+46
+49
+55
+45
+49
+55
+45
+49
+55
+45
+49
+55
+45
+48
+54
+44
+48
+54
+44
+47
+53
+43
+47
+53
+43
+47
+53
+43
+47
+52
+46
+47
+52
+46
+47
+52
+46
+47
+52
+46
+47
+52
+46
+47
+52
+46
+47
+52
+46
+47
+52
+46
+48
+53
+47
+47
+52
+46
+46
+51
+45
+46
+51
+45
+46
+51
+45
+46
+51
+45
+47
+52
+46
+47
+54
+47
+46
+56
+48
+47
+58
+50
+49
+61
+51
+52
+64
+54
+54
+66
+54
+54
+66
+54
+54
+66
+52
+53
+66
+49
+54
+67
+49
+67
+80
+62
+80
+93
+73
+82
+96
+73
+73
+87
+64
+65
+79
+54
+66
+80
+55
+69
+85
+58
+74
+98
+64
+74
+100
+63
+75
+101
+64
+75
+101
+62
+73
+99
+60
+72
+99
+58
+73
+100
+59
+74
+101
+60
+83
+110
+69
+88
+114
+75
+92
+118
+81
+93
+119
+84
+91
+116
+84
+84
+109
+79
+67
+92
+62
+54
+73
+53
+38
+49
+45
+39
+44
+48
+37
+42
+46
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+106
+99
+89
+107
+100
+90
+108
+99
+92
+109
+100
+91
+109
+101
+90
+109
+102
+86
+109
+104
+85
+107
+105
+84
+109
+106
+87
+106
+107
+91
+107
+107
+99
+119
+119
+119
+145
+146
+151
+167
+172
+178
+190
+197
+203
+209
+219
+221
+235
+240
+243
+246
+251
+254
+253
+254
+255
+254
+255
+255
+255
+254
+255
+255
+253
+254
+254
+253
+251
+255
+254
+250
+255
+255
+250
+253
+254
+248
+250
+251
+243
+245
+248
+239
+241
+247
+235
+241
+247
+235
+244
+247
+236
+245
+249
+235
+246
+248
+234
+245
+248
+229
+245
+247
+225
+238
+238
+212
+219
+219
+191
+201
+202
+171
+176
+177
+146
+147
+150
+121
+117
+121
+96
+107
+112
+90
+116
+123
+105
+136
+144
+129
+159
+167
+156
+174
+181
+173
+205
+207
+202
+222
+222
+220
+239
+239
+237
+248
+248
+246
+251
+251
+249
+254
+254
+252
+254
+254
+252
+253
+253
+251
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+253
+255
+254
+245
+250
+253
+251
+255
+255
+254
+254
+254
+255
+248
+246
+255
+250
+244
+255
+245
+235
+248
+204
+193
+215
+157
+143
+147
+75
+60
+164
+81
+65
+168
+75
+58
+167
+64
+49
+183
+71
+59
+207
+89
+77
+206
+84
+73
+189
+63
+51
+196
+68
+55
+198
+72
+58
+195
+75
+61
+185
+73
+59
+170
+66
+55
+157
+63
+51
+149
+65
+55
+144
+70
+59
+134
+66
+57
+129
+66
+57
+126
+66
+56
+123
+65
+54
+122
+64
+53
+122
+62
+52
+122
+62
+52
+122
+62
+52
+120
+60
+52
+120
+60
+52
+119
+59
+51
+119
+59
+51
+117
+58
+50
+116
+57
+49
+116
+57
+49
+116
+57
+49
+114
+57
+48
+114
+57
+48
+114
+57
+48
+114
+57
+48
+111
+57
+47
+110
+56
+46
+108
+54
+44
+107
+53
+43
+108
+55
+47
+106
+56
+49
+108
+55
+49
+106
+56
+49
+107
+54
+48
+105
+55
+48
+105
+55
+48
+104
+54
+47
+103
+53
+46
+103
+53
+46
+102
+53
+46
+103
+54
+47
+104
+55
+48
+105
+56
+49
+107
+58
+51
+107
+58
+51
+108
+59
+52
+106
+59
+51
+105
+58
+48
+104
+60
+49
+107
+63
+50
+106
+67
+52
+105
+68
+50
+102
+69
+50
+102
+73
+55
+108
+86
+65
+106
+89
+71
+117
+106
+86
+134
+127
+109
+145
+142
+123
+128
+127
+109
+69
+70
+54
+53
+56
+45
+50
+56
+46
+50
+56
+46
+50
+56
+46
+49
+55
+45
+49
+55
+45
+49
+55
+45
+48
+54
+44
+49
+55
+45
+49
+55
+45
+49
+55
+45
+48
+54
+44
+48
+54
+44
+47
+53
+43
+47
+53
+43
+47
+53
+43
+47
+52
+46
+47
+52
+46
+47
+52
+46
+47
+52
+46
+47
+52
+46
+47
+52
+46
+47
+52
+46
+47
+52
+46
+47
+52
+46
+47
+52
+46
+46
+51
+45
+45
+50
+44
+45
+50
+44
+46
+51
+45
+47
+52
+46
+46
+53
+46
+43
+53
+45
+43
+54
+46
+45
+57
+47
+47
+59
+49
+50
+62
+50
+52
+64
+52
+54
+66
+52
+55
+68
+51
+56
+69
+51
+63
+76
+58
+69
+82
+62
+67
+81
+58
+59
+73
+50
+56
+70
+45
+62
+76
+51
+68
+84
+57
+74
+95
+64
+74
+98
+64
+76
+100
+66
+75
+99
+63
+73
+97
+61
+71
+96
+57
+70
+95
+56
+71
+96
+57
+82
+107
+68
+88
+112
+76
+93
+117
+83
+94
+118
+86
+90
+113
+84
+80
+103
+75
+61
+84
+56
+46
+65
+46
+38
+49
+45
+39
+44
+48
+37
+42
+46
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+106
+99
+89
+107
+100
+90
+108
+99
+92
+109
+100
+91
+109
+101
+90
+109
+102
+86
+110
+105
+86
+108
+106
+85
+108
+107
+87
+108
+109
+93
+112
+113
+105
+128
+130
+129
+158
+161
+166
+185
+190
+196
+195
+202
+208
+218
+228
+230
+244
+249
+252
+250
+255
+255
+251
+252
+254
+251
+252
+254
+253
+251
+252
+251
+250
+248
+255
+254
+252
+255
+255
+251
+255
+254
+249
+251
+252
+244
+245
+246
+238
+238
+241
+230
+233
+239
+227
+231
+237
+223
+237
+241
+226
+240
+244
+229
+241
+244
+227
+241
+244
+223
+242
+241
+220
+234
+234
+208
+216
+216
+188
+199
+199
+171
+178
+177
+149
+161
+161
+137
+145
+147
+125
+144
+147
+128
+156
+158
+145
+170
+173
+162
+182
+187
+180
+192
+197
+191
+220
+220
+218
+233
+233
+231
+246
+246
+244
+251
+251
+249
+253
+253
+251
+255
+255
+253
+255
+255
+253
+253
+253
+251
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+254
+251
+251
+253
+255
+254
+255
+255
+254
+255
+245
+240
+237
+246
+237
+230
+255
+249
+240
+255
+250
+236
+255
+238
+222
+232
+191
+173
+183
+127
+110
+148
+79
+63
+163
+80
+64
+185
+89
+75
+184
+78
+64
+180
+68
+56
+190
+69
+58
+193
+65
+54
+198
+70
+59
+197
+73
+63
+188
+71
+61
+173
+64
+57
+161
+60
+52
+152
+62
+54
+149
+66
+60
+139
+64
+59
+133
+66
+60
+128
+65
+58
+124
+65
+59
+121
+64
+57
+119
+64
+57
+117
+64
+56
+118
+63
+56
+118
+61
+52
+118
+61
+52
+118
+61
+52
+117
+60
+51
+115
+61
+51
+114
+60
+50
+114
+60
+50
+113
+59
+49
+111
+59
+48
+111
+59
+48
+111
+59
+48
+110
+58
+47
+107
+57
+46
+106
+56
+45
+106
+56
+45
+105
+55
+46
+109
+56
+50
+110
+55
+50
+109
+54
+49
+108
+55
+49
+108
+55
+49
+107
+54
+48
+105
+55
+48
+105
+55
+48
+108
+58
+51
+106
+57
+50
+104
+55
+48
+102
+55
+47
+102
+55
+47
+102
+55
+47
+104
+57
+49
+102
+58
+49
+106
+63
+54
+102
+62
+52
+101
+61
+49
+102
+62
+50
+104
+67
+51
+105
+69
+53
+102
+71
+51
+99
+71
+50
+99
+74
+54
+104
+86
+64
+105
+92
+73
+115
+107
+86
+133
+130
+111
+143
+142
+122
+112
+113
+95
+57
+61
+44
+52
+55
+44
+50
+56
+46
+49
+55
+45
+49
+55
+45
+49
+55
+45
+48
+54
+44
+48
+54
+44
+48
+54
+44
+49
+55
+45
+49
+55
+45
+49
+55
+45
+48
+54
+44
+48
+54
+44
+47
+53
+43
+47
+53
+43
+47
+53
+43
+46
+51
+45
+46
+51
+45
+46
+51
+45
+46
+51
+45
+46
+51
+45
+46
+51
+45
+46
+51
+45
+46
+51
+45
+46
+51
+45
+46
+51
+45
+45
+50
+44
+45
+50
+44
+45
+50
+44
+45
+50
+44
+46
+51
+45
+45
+52
+45
+42
+52
+44
+41
+52
+44
+42
+54
+44
+43
+55
+45
+46
+58
+46
+49
+61
+49
+52
+64
+50
+53
+65
+51
+54
+67
+50
+58
+71
+53
+60
+73
+55
+56
+69
+49
+50
+63
+43
+50
+64
+41
+56
+70
+47
+62
+78
+52
+68
+88
+60
+69
+93
+61
+75
+96
+65
+74
+98
+64
+75
+96
+63
+71
+95
+59
+72
+94
+58
+70
+94
+58
+83
+105
+69
+88
+112
+78
+96
+117
+86
+94
+117
+88
+90
+110
+83
+76
+99
+73
+57
+77
+52
+41
+58
+40
+38
+47
+44
+37
+42
+46
+35
+40
+44
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+106
+99
+89
+107
+100
+90
+108
+99
+92
+109
+100
+91
+109
+101
+90
+109
+102
+86
+108
+103
+84
+107
+105
+84
+110
+109
+89
+111
+112
+96
+116
+117
+109
+133
+135
+134
+164
+167
+172
+191
+196
+202
+205
+212
+218
+229
+239
+241
+251
+255
+255
+251
+255
+255
+250
+251
+253
+252
+253
+255
+255
+253
+254
+253
+252
+250
+255
+255
+253
+255
+255
+251
+254
+253
+248
+247
+248
+240
+239
+240
+232
+231
+234
+223
+224
+230
+218
+222
+229
+213
+231
+235
+218
+234
+239
+219
+237
+240
+219
+236
+240
+217
+238
+238
+214
+232
+232
+208
+218
+216
+191
+204
+202
+177
+194
+189
+167
+183
+181
+160
+177
+174
+157
+182
+180
+167
+193
+190
+181
+201
+200
+195
+210
+211
+206
+217
+217
+215
+232
+232
+230
+242
+242
+240
+250
+250
+248
+252
+252
+250
+253
+253
+251
+255
+255
+253
+255
+255
+253
+252
+252
+250
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+255
+254
+252
+255
+251
+254
+255
+247
+250
+250
+246
+245
+248
+247
+243
+252
+255
+248
+254
+255
+248
+254
+255
+244
+253
+252
+234
+255
+254
+236
+245
+220
+200
+196
+155
+137
+157
+98
+80
+151
+75
+59
+165
+76
+60
+180
+80
+64
+186
+74
+60
+189
+65
+55
+196
+68
+59
+195
+71
+63
+188
+69
+61
+176
+63
+59
+166
+58
+55
+157
+59
+56
+152
+63
+59
+143
+62
+59
+137
+63
+60
+130
+65
+61
+124
+65
+61
+119
+66
+60
+115
+66
+59
+114
+67
+59
+115
+66
+59
+113
+63
+54
+115
+62
+54
+115
+62
+54
+114
+61
+53
+114
+61
+53
+114
+61
+53
+112
+62
+53
+111
+61
+52
+110
+62
+52
+109
+61
+51
+108
+60
+50
+107
+59
+49
+106
+59
+49
+105
+58
+48
+105
+58
+48
+106
+58
+48
+110
+55
+50
+112
+54
+50
+112
+54
+50
+109
+54
+49
+109
+54
+49
+108
+55
+49
+105
+55
+48
+105
+55
+48
+108
+59
+52
+107
+58
+51
+104
+57
+49
+101
+57
+48
+101
+57
+48
+101
+57
+48
+101
+58
+49
+100
+60
+50
+102
+66
+54
+99
+65
+53
+99
+67
+52
+100
+68
+53
+100
+71
+53
+100
+73
+54
+98
+73
+51
+95
+73
+50
+94
+76
+54
+101
+86
+63
+106
+98
+77
+114
+109
+87
+132
+131
+111
+132
+135
+114
+91
+96
+76
+51
+58
+40
+50
+56
+44
+50
+56
+46
+49
+55
+45
+49
+55
+45
+49
+55
+45
+48
+54
+44
+48
+54
+44
+48
+54
+44
+49
+55
+45
+49
+55
+45
+49
+55
+45
+48
+54
+44
+48
+54
+44
+47
+53
+43
+47
+53
+43
+47
+53
+43
+46
+51
+45
+46
+51
+45
+46
+51
+45
+46
+51
+45
+46
+51
+45
+46
+51
+45
+46
+51
+45
+46
+51
+45
+45
+50
+44
+45
+50
+44
+44
+49
+43
+44
+49
+43
+44
+49
+43
+44
+49
+43
+45
+50
+44
+44
+51
+44
+44
+54
+46
+43
+53
+45
+42
+52
+43
+42
+52
+43
+43
+53
+44
+46
+56
+45
+48
+59
+45
+50
+61
+47
+50
+61
+45
+53
+64
+47
+54
+65
+48
+53
+65
+45
+49
+61
+41
+49
+61
+41
+53
+65
+45
+56
+70
+47
+61
+79
+53
+64
+84
+56
+70
+89
+61
+72
+92
+64
+74
+93
+63
+73
+94
+61
+75
+94
+62
+75
+96
+63
+84
+103
+71
+91
+112
+81
+99
+118
+90
+97
+117
+90
+89
+107
+83
+74
+93
+71
+54
+71
+52
+38
+52
+37
+36
+45
+42
+36
+41
+44
+34
+39
+42
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+106
+99
+89
+107
+100
+90
+108
+99
+92
+109
+100
+91
+109
+101
+90
+108
+102
+86
+106
+103
+84
+107
+106
+85
+108
+110
+89
+111
+114
+97
+115
+118
+109
+129
+133
+132
+159
+164
+168
+184
+191
+199
+213
+222
+227
+236
+246
+248
+251
+255
+255
+251
+255
+255
+250
+251
+255
+253
+254
+255
+255
+254
+255
+253
+252
+250
+255
+255
+251
+255
+255
+250
+252
+252
+244
+243
+245
+234
+235
+237
+226
+227
+231
+217
+221
+227
+213
+220
+227
+209
+228
+233
+211
+231
+236
+213
+233
+237
+214
+234
+236
+212
+235
+235
+211
+232
+230
+207
+223
+218
+196
+211
+206
+184
+211
+206
+186
+204
+198
+182
+203
+195
+184
+208
+201
+193
+215
+210
+206
+224
+219
+216
+234
+230
+229
+240
+239
+237
+243
+242
+240
+249
+249
+247
+253
+253
+251
+253
+253
+251
+253
+253
+251
+255
+255
+253
+254
+254
+252
+252
+252
+250
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+255
+253
+252
+255
+252
+253
+255
+246
+247
+253
+249
+248
+254
+255
+253
+249
+255
+253
+246
+255
+250
+237
+255
+243
+240
+254
+239
+235
+242
+226
+255
+255
+237
+255
+236
+217
+204
+166
+147
+163
+106
+87
+161
+90
+70
+170
+87
+69
+173
+76
+59
+182
+70
+58
+188
+70
+60
+189
+70
+62
+185
+70
+63
+178
+66
+62
+169
+61
+58
+161
+59
+57
+153
+59
+57
+149
+61
+60
+142
+62
+61
+133
+63
+61
+125
+64
+59
+120
+65
+60
+115
+66
+59
+112
+68
+59
+112
+68
+59
+112
+63
+56
+113
+63
+54
+113
+63
+54
+113
+63
+54
+113
+63
+54
+112
+62
+53
+111
+63
+53
+111
+63
+53
+111
+64
+54
+110
+63
+53
+109
+62
+52
+107
+60
+50
+104
+60
+49
+104
+60
+49
+104
+60
+49
+108
+60
+50
+111
+56
+51
+113
+54
+50
+112
+54
+50
+112
+54
+50
+109
+54
+49
+108
+55
+49
+106
+56
+49
+105
+56
+49
+104
+55
+48
+103
+56
+48
+101
+57
+48
+101
+58
+49
+100
+60
+50
+101
+63
+52
+102
+64
+53
+100
+66
+54
+94
+66
+52
+97
+71
+56
+99
+76
+58
+100
+77
+59
+99
+77
+56
+96
+75
+54
+93
+75
+51
+93
+77
+52
+93
+81
+57
+98
+88
+63
+109
+104
+82
+115
+115
+91
+128
+131
+110
+118
+123
+101
+70
+79
+58
+52
+61
+42
+51
+57
+45
+50
+56
+46
+50
+56
+46
+50
+56
+46
+49
+55
+45
+49
+55
+45
+49
+55
+45
+48
+54
+44
+49
+55
+45
+49
+55
+45
+49
+55
+45
+48
+54
+44
+48
+54
+44
+47
+53
+43
+47
+53
+43
+47
+53
+43
+45
+50
+44
+45
+50
+44
+45
+50
+44
+45
+50
+44
+45
+50
+44
+45
+50
+44
+45
+50
+44
+45
+50
+44
+45
+50
+44
+44
+49
+43
+43
+48
+42
+43
+48
+42
+43
+48
+42
+43
+48
+42
+44
+49
+43
+44
+51
+44
+46
+53
+46
+44
+54
+46
+42
+52
+43
+42
+52
+43
+42
+52
+43
+43
+53
+44
+45
+55
+44
+46
+57
+43
+45
+56
+42
+48
+59
+43
+52
+63
+47
+53
+64
+47
+52
+63
+46
+51
+63
+43
+51
+62
+45
+51
+64
+44
+55
+70
+47
+57
+75
+51
+64
+79
+56
+66
+84
+58
+71
+87
+60
+72
+91
+63
+77
+93
+66
+77
+96
+68
+85
+101
+74
+92
+111
+83
+100
+116
+90
+96
+114
+90
+88
+103
+82
+71
+88
+69
+52
+66
+49
+36
+50
+37
+36
+45
+42
+36
+41
+44
+34
+39
+42
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+106
+100
+86
+106
+100
+86
+106
+99
+89
+107
+100
+90
+108
+99
+92
+109
+100
+91
+108
+102
+90
+108
+102
+86
+108
+105
+86
+108
+107
+86
+107
+109
+88
+107
+110
+93
+108
+114
+104
+121
+127
+125
+149
+157
+160
+174
+183
+190
+209
+218
+223
+233
+242
+247
+251
+255
+255
+248
+253
+255
+248
+249
+253
+254
+255
+255
+255
+254
+255
+249
+248
+246
+255
+255
+251
+254
+253
+248
+249
+249
+241
+241
+243
+232
+233
+235
+222
+227
+231
+216
+223
+230
+214
+224
+232
+211
+228
+233
+210
+231
+237
+211
+232
+236
+211
+231
+233
+209
+232
+232
+208
+231
+229
+206
+224
+219
+199
+215
+208
+190
+218
+211
+195
+217
+209
+198
+222
+212
+203
+230
+221
+216
+238
+228
+227
+243
+233
+234
+250
+241
+244
+255
+249
+251
+250
+249
+247
+254
+254
+252
+255
+255
+253
+253
+253
+251
+253
+253
+251
+255
+255
+253
+255
+255
+253
+252
+252
+250
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+255
+253
+252
+255
+250
+249
+255
+251
+250
+255
+254
+253
+252
+255
+253
+245
+255
+252
+234
+251
+245
+234
+255
+248
+242
+255
+253
+245
+255
+250
+239
+245
+231
+255
+250
+234
+255
+250
+232
+242
+204
+185
+171
+119
+98
+143
+81
+58
+170
+93
+73
+175
+80
+62
+179
+76
+61
+179
+75
+62
+179
+75
+64
+177
+73
+64
+172
+69
+62
+162
+63
+58
+154
+59
+55
+150
+61
+57
+143
+62
+58
+136
+63
+57
+129
+64
+58
+122
+65
+58
+117
+67
+58
+113
+69
+58
+113
+69
+60
+112
+63
+56
+113
+63
+56
+113
+63
+56
+113
+63
+56
+113
+63
+56
+113
+63
+56
+112
+63
+56
+112
+63
+56
+113
+66
+58
+112
+65
+57
+110
+63
+55
+108
+61
+53
+105
+61
+52
+106
+62
+53
+106
+62
+53
+110
+61
+54
+111
+56
+51
+114
+55
+51
+112
+54
+50
+112
+54
+50
+110
+55
+50
+108
+55
+49
+106
+56
+49
+105
+56
+49
+100
+56
+47
+100
+57
+48
+99
+59
+49
+100
+62
+51
+100
+64
+52
+99
+65
+53
+99
+65
+53
+95
+67
+53
+90
+69
+52
+95
+78
+60
+103
+86
+66
+104
+87
+67
+99
+83
+60
+94
+79
+56
+91
+79
+53
+92
+82
+55
+93
+86
+60
+93
+89
+62
+110
+108
+85
+116
+118
+94
+124
+129
+107
+99
+109
+85
+50
+62
+40
+54
+66
+46
+51
+59
+46
+51
+57
+47
+51
+57
+47
+51
+57
+47
+50
+56
+46
+50
+56
+46
+50
+56
+46
+49
+55
+45
+49
+55
+45
+49
+55
+45
+49
+55
+45
+48
+54
+44
+48
+54
+44
+47
+53
+43
+47
+53
+43
+47
+53
+43
+45
+50
+44
+45
+50
+44
+45
+50
+44
+45
+50
+44
+45
+50
+44
+45
+50
+44
+45
+50
+44
+45
+50
+44
+44
+49
+43
+44
+49
+43
+43
+48
+42
+42
+47
+41
+42
+47
+41
+43
+48
+42
+44
+49
+43
+43
+50
+43
+45
+52
+45
+43
+53
+45
+42
+52
+44
+42
+52
+44
+43
+53
+44
+43
+53
+44
+44
+54
+43
+45
+55
+44
+44
+54
+43
+47
+58
+44
+50
+61
+47
+54
+65
+49
+55
+66
+50
+55
+66
+49
+53
+64
+48
+52
+63
+46
+50
+63
+45
+52
+67
+46
+58
+71
+51
+61
+76
+53
+65
+79
+56
+68
+84
+58
+74
+88
+63
+76
+92
+66
+84
+98
+73
+92
+107
+84
+99
+113
+90
+94
+109
+88
+85
+98
+80
+68
+82
+65
+50
+62
+48
+35
+47
+37
+38
+47
+44
+38
+44
+44
+36
+42
+42
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+106
+100
+86
+106
+100
+86
+106
+99
+89
+107
+100
+90
+108
+99
+92
+109
+100
+91
+108
+102
+90
+108
+102
+86
+111
+108
+89
+109
+108
+87
+106
+108
+87
+103
+107
+90
+102
+108
+98
+114
+123
+120
+142
+152
+154
+168
+177
+184
+201
+210
+215
+226
+235
+240
+247
+252
+255
+246
+251
+254
+249
+250
+254
+254
+255
+255
+255
+254
+255
+249
+248
+244
+255
+255
+250
+253
+253
+245
+248
+248
+238
+240
+242
+229
+233
+235
+221
+229
+233
+216
+227
+234
+216
+229
+237
+214
+230
+236
+210
+233
+237
+210
+234
+237
+210
+232
+232
+206
+232
+230
+207
+232
+227
+207
+225
+218
+200
+216
+208
+195
+216
+206
+196
+221
+210
+204
+234
+223
+219
+248
+237
+235
+255
+244
+246
+255
+245
+249
+255
+245
+251
+255
+249
+252
+254
+252
+253
+255
+255
+253
+255
+255
+253
+254
+254
+252
+254
+254
+252
+255
+255
+253
+255
+255
+253
+253
+253
+251
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+255
+254
+250
+255
+249
+247
+255
+249
+247
+251
+250
+248
+247
+251
+250
+245
+255
+254
+243
+255
+255
+240
+255
+255
+237
+253
+250
+240
+252
+248
+251
+255
+250
+255
+253
+241
+255
+242
+226
+255
+239
+219
+255
+225
+203
+216
+174
+150
+170
+114
+91
+164
+89
+68
+169
+84
+64
+168
+81
+62
+169
+82
+65
+173
+81
+66
+169
+77
+64
+161
+68
+60
+151
+61
+53
+149
+62
+55
+143
+63
+54
+137
+62
+56
+131
+64
+55
+125
+65
+55
+119
+67
+54
+116
+68
+56
+115
+69
+56
+113
+63
+56
+113
+63
+56
+115
+62
+56
+113
+63
+56
+113
+63
+56
+113
+63
+56
+113
+63
+56
+112
+63
+56
+115
+66
+59
+113
+66
+58
+111
+64
+56
+109
+62
+54
+108
+61
+53
+106
+62
+53
+109
+62
+54
+111
+62
+55
+111
+56
+51
+113
+55
+51
+111
+56
+51
+109
+56
+50
+109
+56
+50
+105
+56
+49
+104
+57
+49
+102
+58
+49
+102
+59
+50
+100
+62
+51
+100
+64
+52
+98
+66
+53
+96
+67
+53
+93
+65
+51
+92
+64
+50
+87
+66
+49
+84
+71
+52
+91
+83
+62
+102
+94
+71
+105
+94
+72
+98
+88
+63
+90
+83
+57
+90
+83
+55
+92
+87
+58
+90
+86
+59
+88
+87
+59
+107
+109
+85
+115
+119
+94
+117
+125
+102
+85
+97
+73
+38
+50
+28
+56
+68
+48
+51
+59
+46
+52
+58
+48
+52
+58
+48
+51
+57
+47
+51
+57
+47
+51
+57
+47
+50
+56
+46
+50
+56
+46
+49
+55
+45
+49
+55
+45
+49
+55
+45
+48
+54
+44
+48
+54
+44
+47
+53
+43
+47
+53
+43
+47
+53
+43
+45
+50
+44
+45
+50
+44
+45
+50
+44
+45
+50
+44
+45
+50
+44
+45
+50
+44
+45
+50
+44
+45
+50
+44
+44
+49
+43
+43
+48
+42
+43
+48
+42
+42
+47
+41
+42
+47
+41
+43
+48
+42
+43
+48
+42
+44
+49
+43
+43
+50
+43
+41
+51
+43
+42
+52
+44
+43
+53
+45
+43
+53
+44
+44
+54
+45
+45
+55
+46
+45
+55
+44
+44
+54
+43
+46
+56
+45
+50
+60
+49
+54
+65
+51
+57
+68
+54
+57
+68
+52
+55
+66
+52
+54
+65
+49
+48
+59
+43
+50
+63
+45
+53
+66
+48
+57
+70
+50
+60
+73
+53
+64
+78
+55
+70
+84
+61
+74
+88
+63
+82
+96
+73
+91
+104
+84
+97
+110
+90
+92
+105
+87
+81
+94
+77
+66
+78
+64
+47
+59
+47
+34
+44
+35
+42
+48
+44
+40
+46
+44
+38
+44
+44
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+107
+101
+87
+107
+101
+87
+107
+100
+90
+108
+101
+91
+109
+100
+93
+110
+101
+92
+109
+103
+91
+109
+103
+87
+113
+110
+91
+107
+109
+87
+107
+110
+89
+107
+114
+96
+106
+114
+103
+112
+121
+118
+135
+145
+147
+159
+170
+176
+187
+196
+201
+208
+217
+222
+234
+239
+243
+246
+251
+254
+252
+253
+255
+254
+255
+255
+255
+254
+255
+254
+253
+249
+255
+255
+250
+254
+254
+246
+250
+250
+240
+246
+248
+235
+244
+246
+232
+240
+244
+227
+234
+241
+223
+231
+239
+216
+240
+246
+218
+237
+242
+212
+235
+238
+209
+236
+236
+210
+232
+230
+209
+225
+220
+201
+221
+213
+200
+222
+212
+202
+224
+211
+205
+231
+217
+216
+241
+227
+227
+249
+234
+237
+253
+241
+243
+255
+246
+250
+255
+248
+255
+255
+252
+255
+255
+253
+254
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+255
+250
+255
+254
+250
+255
+255
+251
+255
+255
+253
+254
+255
+255
+252
+255
+255
+250
+255
+255
+249
+254
+255
+249
+253
+255
+254
+255
+255
+254
+253
+251
+254
+249
+243
+255
+248
+238
+255
+249
+233
+255
+248
+226
+255
+241
+217
+255
+232
+207
+182
+132
+105
+162
+100
+75
+147
+83
+58
+155
+87
+64
+165
+93
+71
+160
+83
+65
+154
+75
+58
+155
+76
+61
+142
+63
+50
+141
+63
+50
+135
+63
+51
+128
+60
+47
+121
+59
+46
+116
+60
+45
+115
+63
+49
+115
+66
+52
+114
+61
+53
+114
+61
+55
+116
+61
+56
+115
+62
+56
+117
+64
+58
+117
+64
+58
+116
+63
+57
+113
+63
+56
+115
+65
+58
+113
+64
+57
+113
+64
+57
+113
+64
+57
+112
+63
+56
+110
+63
+55
+111
+62
+55
+111
+62
+55
+107
+57
+50
+109
+56
+50
+108
+58
+51
+108
+59
+52
+108
+59
+52
+104
+60
+51
+103
+60
+51
+99
+61
+50
+99
+63
+51
+94
+62
+49
+100
+71
+57
+99
+71
+57
+84
+61
+45
+78
+57
+40
+77
+56
+39
+64
+49
+30
+87
+81
+59
+80
+78
+55
+75
+73
+48
+79
+75
+50
+93
+89
+62
+105
+101
+74
+101
+97
+68
+86
+85
+55
+88
+88
+60
+93
+96
+67
+111
+115
+90
+122
+128
+102
+100
+108
+85
+61
+73
+49
+45
+57
+35
+50
+62
+42
+52
+60
+47
+53
+59
+49
+52
+58
+48
+52
+58
+48
+52
+58
+48
+51
+57
+47
+51
+57
+47
+51
+57
+47
+51
+57
+47
+51
+57
+47
+51
+57
+47
+50
+56
+46
+49
+55
+45
+49
+55
+45
+49
+55
+45
+48
+54
+44
+49
+54
+48
+49
+54
+48
+48
+53
+47
+48
+53
+47
+47
+52
+46
+47
+52
+46
+47
+52
+46
+47
+52
+46
+44
+49
+43
+44
+49
+43
+44
+49
+43
+44
+49
+43
+44
+49
+43
+44
+49
+43
+43
+48
+42
+43
+48
+42
+46
+53
+46
+45
+52
+45
+45
+52
+45
+44
+51
+44
+45
+52
+45
+45
+52
+44
+46
+53
+45
+46
+53
+45
+43
+50
+42
+45
+52
+44
+48
+55
+47
+53
+61
+50
+57
+65
+54
+61
+69
+56
+63
+71
+60
+63
+74
+60
+55
+66
+50
+53
+64
+47
+51
+62
+45
+49
+61
+41
+50
+62
+42
+57
+69
+47
+66
+78
+56
+73
+85
+63
+79
+91
+71
+86
+98
+78
+93
+104
+87
+89
+100
+84
+76
+87
+73
+60
+70
+59
+47
+57
+46
+41
+51
+42
+42
+48
+44
+41
+47
+43
+40
+46
+44
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+107
+101
+87
+107
+101
+87
+107
+100
+90
+108
+101
+91
+109
+100
+93
+110
+101
+92
+109
+103
+91
+107
+104
+87
+111
+110
+90
+106
+108
+86
+107
+110
+89
+107
+114
+96
+106
+116
+105
+113
+124
+120
+137
+148
+150
+163
+174
+180
+190
+199
+204
+210
+219
+224
+235
+240
+244
+247
+252
+255
+253
+254
+255
+254
+255
+255
+255
+254
+252
+254
+253
+249
+255
+255
+250
+254
+254
+244
+251
+251
+239
+247
+249
+235
+244
+247
+230
+240
+245
+225
+234
+242
+221
+232
+237
+214
+234
+239
+209
+230
+235
+203
+228
+231
+202
+230
+230
+204
+227
+225
+204
+223
+217
+201
+222
+212
+202
+223
+212
+206
+230
+216
+215
+236
+222
+222
+245
+230
+233
+250
+238
+242
+255
+243
+247
+255
+246
+250
+255
+249
+253
+255
+251
+254
+255
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+253
+255
+252
+250
+255
+249
+250
+255
+249
+253
+255
+252
+253
+254
+255
+253
+252
+255
+253
+250
+255
+255
+250
+255
+255
+248
+255
+255
+252
+255
+255
+250
+253
+255
+248
+246
+255
+249
+242
+255
+252
+239
+255
+252
+234
+254
+248
+226
+255
+241
+215
+255
+234
+206
+217
+178
+149
+163
+117
+91
+142
+92
+67
+146
+92
+66
+152
+92
+68
+152
+87
+67
+150
+83
+64
+138
+70
+51
+137
+68
+52
+135
+68
+51
+131
+68
+51
+126
+67
+51
+122
+66
+49
+118
+65
+49
+115
+63
+49
+117
+64
+56
+115
+62
+56
+117
+62
+57
+117
+64
+58
+116
+63
+57
+111
+61
+54
+112
+62
+55
+115
+65
+58
+113
+63
+56
+112
+63
+56
+112
+63
+56
+110
+63
+55
+111
+62
+55
+109
+62
+54
+110
+61
+54
+109
+62
+54
+107
+60
+52
+108
+61
+53
+109
+62
+54
+107
+63
+54
+106
+63
+54
+103
+65
+54
+101
+65
+53
+98
+66
+53
+100
+71
+57
+91
+65
+50
+94
+71
+55
+94
+73
+56
+78
+61
+43
+70
+55
+36
+71
+56
+37
+62
+54
+33
+76
+76
+52
+71
+75
+50
+68
+71
+44
+68
+68
+42
+77
+77
+49
+92
+91
+63
+98
+97
+67
+96
+97
+66
+89
+89
+61
+100
+103
+74
+115
+119
+94
+115
+121
+95
+88
+96
+73
+58
+68
+44
+47
+59
+37
+55
+67
+47
+54
+62
+49
+54
+60
+50
+54
+60
+50
+54
+60
+50
+53
+59
+49
+53
+59
+49
+53
+59
+49
+53
+59
+49
+53
+59
+49
+53
+59
+49
+53
+59
+49
+52
+58
+48
+52
+58
+48
+51
+57
+47
+51
+57
+47
+51
+57
+47
+50
+55
+49
+50
+55
+49
+50
+55
+49
+49
+54
+48
+49
+54
+48
+49
+54
+48
+48
+53
+47
+48
+53
+47
+46
+51
+45
+46
+51
+45
+45
+50
+44
+45
+50
+44
+44
+49
+43
+44
+49
+43
+43
+48
+42
+43
+48
+42
+42
+49
+42
+42
+49
+42
+41
+48
+41
+41
+48
+41
+41
+48
+41
+42
+49
+42
+43
+50
+42
+44
+51
+43
+46
+53
+45
+45
+52
+44
+46
+53
+45
+48
+55
+47
+52
+59
+51
+57
+65
+54
+63
+70
+62
+66
+74
+63
+59
+70
+56
+58
+69
+53
+55
+66
+49
+52
+63
+46
+51
+63
+43
+54
+66
+46
+60
+72
+50
+64
+76
+54
+76
+88
+68
+83
+95
+75
+89
+100
+84
+87
+98
+82
+76
+86
+75
+61
+71
+60
+49
+59
+50
+43
+53
+44
+44
+51
+44
+43
+49
+45
+42
+48
+44
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+107
+101
+87
+107
+101
+87
+108
+99
+90
+109
+100
+91
+109
+100
+93
+110
+101
+92
+109
+103
+91
+107
+104
+87
+109
+108
+88
+105
+109
+86
+106
+111
+89
+107
+116
+97
+105
+117
+105
+113
+125
+121
+138
+152
+153
+165
+178
+184
+191
+202
+208
+212
+221
+226
+237
+242
+246
+247
+252
+255
+252
+253
+255
+253
+255
+254
+255
+254
+252
+254
+253
+248
+255
+255
+247
+253
+253
+243
+250
+251
+237
+247
+250
+233
+244
+247
+228
+239
+244
+222
+231
+239
+216
+229
+235
+209
+226
+231
+201
+222
+225
+194
+221
+221
+193
+222
+222
+198
+222
+219
+200
+221
+215
+203
+224
+213
+207
+228
+217
+215
+237
+225
+225
+242
+230
+234
+249
+237
+241
+254
+243
+247
+255
+246
+250
+255
+248
+251
+255
+249
+252
+255
+252
+252
+255
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+253
+255
+252
+246
+255
+250
+246
+255
+250
+250
+254
+253
+253
+253
+253
+255
+250
+254
+255
+248
+255
+255
+246
+255
+255
+244
+254
+255
+249
+255
+255
+247
+252
+255
+247
+247
+255
+250
+245
+255
+255
+246
+255
+255
+242
+250
+253
+236
+250
+248
+227
+254
+240
+214
+255
+246
+219
+255
+235
+208
+223
+191
+166
+168
+131
+105
+132
+90
+66
+131
+83
+60
+145
+93
+71
+148
+93
+72
+139
+82
+62
+127
+70
+50
+118
+63
+42
+117
+62
+42
+118
+66
+45
+121
+70
+51
+120
+71
+54
+113
+63
+52
+110
+60
+51
+113
+60
+52
+116
+66
+57
+115
+65
+56
+111
+63
+53
+113
+65
+55
+120
+72
+62
+110
+62
+52
+109
+62
+52
+109
+62
+52
+107
+63
+52
+108
+61
+51
+106
+62
+51
+108
+61
+51
+106
+62
+51
+103
+63
+53
+103
+65
+54
+103
+65
+54
+103
+67
+55
+101
+67
+55
+99
+67
+54
+96
+67
+53
+94
+68
+53
+98
+75
+59
+85
+66
+49
+90
+73
+55
+96
+83
+64
+82
+71
+51
+67
+59
+38
+69
+61
+40
+70
+65
+43
+65
+69
+44
+66
+72
+46
+65
+69
+42
+60
+64
+37
+63
+66
+37
+78
+78
+50
+95
+96
+65
+105
+106
+75
+97
+97
+69
+110
+113
+84
+118
+122
+97
+103
+109
+83
+74
+79
+57
+52
+60
+37
+52
+61
+40
+61
+70
+51
+56
+62
+50
+56
+62
+52
+56
+62
+52
+56
+62
+52
+55
+61
+51
+55
+61
+51
+55
+61
+51
+54
+60
+50
+56
+62
+52
+56
+62
+52
+55
+61
+51
+55
+61
+51
+55
+61
+51
+54
+60
+50
+54
+60
+50
+54
+60
+50
+53
+58
+52
+52
+57
+51
+52
+57
+51
+52
+57
+51
+51
+56
+50
+51
+56
+50
+51
+56
+50
+50
+55
+49
+48
+53
+47
+48
+53
+47
+47
+52
+46
+46
+51
+45
+45
+50
+44
+44
+49
+43
+43
+48
+42
+43
+48
+42
+41
+46
+40
+41
+46
+40
+41
+46
+40
+41
+46
+40
+41
+46
+40
+42
+47
+41
+43
+48
+42
+44
+49
+43
+49
+54
+48
+47
+52
+46
+44
+49
+43
+44
+49
+43
+47
+52
+46
+54
+59
+52
+61
+66
+60
+65
+72
+64
+64
+75
+61
+62
+75
+58
+60
+73
+55
+56
+69
+51
+52
+65
+45
+50
+63
+43
+51
+65
+42
+53
+67
+44
+68
+81
+61
+75
+88
+68
+81
+94
+77
+81
+94
+77
+72
+84
+72
+60
+72
+60
+50
+62
+52
+46
+56
+47
+46
+53
+46
+46
+53
+46
+45
+52
+45
+103
+100
+85
+103
+100
+85
+104
+101
+86
+104
+101
+86
+104
+101
+86
+104
+101
+86
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+107
+101
+87
+107
+101
+87
+108
+99
+90
+109
+100
+91
+109
+100
+93
+109
+102
+92
+109
+103
+91
+106
+105
+87
+107
+109
+88
+105
+109
+86
+106
+111
+89
+106
+115
+96
+104
+116
+104
+109
+124
+119
+136
+152
+152
+166
+179
+185
+191
+202
+208
+211
+220
+227
+235
+240
+246
+246
+251
+255
+252
+253
+255
+253
+255
+254
+255
+255
+253
+255
+254
+249
+254
+254
+246
+253
+253
+241
+250
+251
+237
+247
+250
+231
+244
+247
+226
+238
+243
+220
+229
+237
+213
+226
+232
+206
+219
+224
+192
+215
+218
+187
+214
+214
+188
+217
+215
+194
+221
+215
+199
+222
+215
+205
+229
+219
+217
+236
+224
+224
+247
+235
+239
+250
+239
+245
+255
+244
+250
+255
+248
+253
+255
+249
+252
+255
+250
+250
+255
+250
+250
+255
+252
+251
+255
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+253
+255
+252
+247
+255
+253
+247
+255
+253
+250
+254
+253
+253
+253
+253
+255
+251
+253
+255
+248
+254
+255
+246
+253
+255
+244
+250
+255
+248
+251
+255
+247
+250
+255
+248
+248
+255
+252
+249
+255
+255
+248
+255
+255
+248
+250
+255
+244
+250
+252
+238
+255
+255
+237
+255
+248
+228
+253
+238
+219
+255
+239
+219
+255
+239
+217
+238
+210
+188
+176
+144
+121
+118
+82
+60
+117
+76
+54
+117
+75
+53
+119
+74
+53
+123
+78
+57
+125
+80
+59
+120
+75
+54
+107
+64
+45
+98
+55
+38
+123
+77
+64
+115
+68
+58
+113
+66
+56
+115
+68
+58
+111
+67
+56
+103
+59
+48
+100
+56
+45
+103
+61
+49
+105
+63
+51
+105
+63
+51
+105
+63
+51
+103
+63
+51
+102
+62
+50
+102
+62
+50
+102
+62
+50
+101
+63
+50
+98
+64
+52
+98
+66
+53
+96
+67
+53
+95
+67
+53
+95
+67
+53
+91
+68
+52
+90
+69
+52
+87
+68
+51
+88
+73
+54
+79
+66
+47
+92
+84
+63
+111
+105
+83
+99
+94
+72
+77
+75
+52
+73
+71
+48
+73
+75
+51
+62
+68
+42
+63
+72
+45
+64
+70
+42
+60
+66
+38
+60
+65
+35
+70
+73
+44
+88
+89
+58
+100
+101
+70
+109
+109
+81
+120
+120
+92
+116
+118
+94
+91
+95
+70
+64
+67
+46
+54
+59
+37
+56
+64
+43
+60
+67
+49
+57
+63
+51
+57
+63
+53
+57
+63
+53
+56
+62
+52
+56
+62
+52
+55
+61
+51
+55
+61
+51
+55
+61
+51
+57
+63
+53
+56
+62
+52
+56
+62
+52
+56
+62
+52
+56
+62
+52
+56
+62
+52
+56
+62
+52
+56
+62
+52
+55
+60
+54
+55
+60
+54
+55
+60
+54
+54
+59
+53
+54
+59
+53
+54
+59
+53
+53
+58
+52
+53
+58
+52
+51
+56
+50
+51
+56
+50
+49
+54
+48
+48
+53
+47
+47
+52
+46
+45
+50
+44
+44
+49
+43
+44
+49
+43
+43
+48
+42
+43
+48
+42
+42
+47
+41
+42
+47
+41
+43
+48
+42
+44
+49
+43
+45
+50
+44
+45
+50
+44
+48
+53
+47
+46
+51
+45
+43
+48
+42
+43
+48
+42
+45
+50
+46
+50
+55
+49
+56
+61
+57
+59
+66
+58
+64
+75
+61
+64
+77
+59
+64
+77
+59
+61
+74
+54
+56
+69
+49
+51
+64
+44
+49
+63
+40
+48
+62
+39
+60
+73
+53
+66
+79
+59
+72
+85
+67
+73
+86
+69
+68
+80
+66
+59
+71
+59
+50
+62
+52
+46
+58
+48
+45
+55
+47
+47
+54
+47
+46
+53
+46
+103
+100
+85
+103
+100
+85
+103
+100
+85
+104
+101
+86
+104
+101
+86
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+107
+101
+87
+108
+100
+87
+108
+99
+90
+109
+100
+91
+109
+100
+93
+109
+102
+92
+109
+103
+91
+106
+105
+87
+107
+109
+88
+105
+110
+87
+105
+113
+90
+103
+115
+95
+100
+114
+101
+106
+121
+116
+133
+149
+149
+163
+178
+183
+189
+200
+206
+210
+219
+226
+234
+239
+245
+244
+249
+253
+251
+252
+255
+253
+255
+254
+255
+255
+253
+255
+255
+250
+255
+255
+248
+255
+255
+243
+254
+255
+241
+251
+254
+235
+247
+250
+229
+240
+245
+222
+230
+238
+214
+226
+232
+204
+217
+220
+191
+213
+213
+185
+210
+208
+185
+212
+209
+190
+218
+212
+200
+224
+217
+209
+234
+224
+223
+244
+233
+237
+253
+242
+248
+255
+246
+251
+255
+250
+255
+255
+252
+255
+255
+253
+254
+254
+253
+251
+254
+253
+249
+254
+253
+249
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+253
+255
+254
+250
+255
+255
+250
+255
+255
+252
+255
+255
+255
+255
+255
+255
+253
+254
+255
+251
+251
+255
+249
+250
+255
+249
+248
+255
+248
+246
+255
+249
+247
+255
+250
+247
+255
+254
+249
+255
+255
+251
+255
+255
+251
+253
+255
+250
+252
+253
+248
+244
+241
+234
+255
+251
+243
+255
+253
+244
+255
+251
+241
+255
+248
+235
+255
+244
+228
+246
+227
+210
+228
+207
+188
+208
+183
+163
+183
+156
+135
+146
+118
+97
+118
+87
+67
+104
+73
+53
+104
+73
+53
+109
+76
+57
+112
+79
+60
+108
+71
+55
+105
+66
+51
+103
+66
+50
+106
+69
+53
+110
+73
+57
+110
+74
+58
+111
+75
+59
+111
+75
+59
+101
+65
+49
+99
+66
+49
+99
+66
+49
+99
+66
+49
+99
+66
+49
+99
+66
+49
+98
+67
+49
+96
+67
+51
+93
+70
+54
+92
+71
+54
+92
+71
+54
+90
+71
+54
+90
+71
+54
+87
+72
+53
+84
+71
+52
+82
+71
+51
+80
+72
+51
+78
+72
+50
+102
+100
+77
+126
+126
+102
+114
+114
+90
+86
+88
+64
+74
+76
+52
+71
+77
+51
+60
+69
+42
+60
+70
+43
+63
+72
+43
+65
+71
+43
+65
+70
+40
+68
+71
+42
+77
+78
+47
+84
+85
+54
+120
+119
+91
+123
+122
+94
+110
+110
+86
+85
+85
+61
+67
+66
+46
+63
+65
+44
+62
+65
+46
+58
+62
+45
+59
+62
+51
+57
+63
+53
+57
+63
+53
+56
+62
+52
+56
+62
+52
+55
+61
+51
+55
+61
+51
+55
+61
+51
+56
+62
+52
+56
+62
+52
+56
+62
+52
+56
+62
+52
+56
+62
+52
+56
+62
+52
+56
+62
+52
+56
+62
+52
+57
+62
+56
+57
+62
+56
+57
+62
+56
+56
+61
+55
+56
+61
+55
+56
+61
+55
+55
+60
+54
+55
+60
+54
+54
+59
+53
+53
+58
+52
+52
+57
+51
+51
+56
+50
+50
+55
+49
+48
+53
+47
+47
+52
+46
+47
+52
+46
+45
+50
+46
+45
+50
+46
+44
+49
+45
+43
+48
+44
+43
+48
+44
+44
+49
+45
+45
+50
+46
+45
+50
+46
+44
+49
+45
+44
+49
+45
+44
+49
+45
+44
+49
+45
+46
+50
+49
+48
+53
+49
+51
+55
+54
+52
+59
+52
+59
+71
+57
+61
+76
+57
+64
+79
+60
+64
+79
+58
+60
+75
+54
+55
+70
+47
+52
+67
+44
+50
+65
+42
+54
+69
+46
+58
+73
+52
+64
+79
+60
+66
+80
+63
+63
+77
+62
+56
+70
+55
+49
+63
+50
+45
+57
+45
+45
+55
+46
+46
+53
+45
+45
+52
+44
+102
+99
+84
+102
+99
+84
+103
+100
+85
+104
+101
+86
+104
+101
+86
+105
+102
+87
+106
+103
+88
+106
+103
+88
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+108
+100
+87
+108
+100
+87
+108
+99
+90
+109
+100
+91
+109
+100
+93
+109
+102
+92
+109
+103
+91
+106
+105
+87
+107
+109
+88
+105
+110
+87
+105
+113
+90
+103
+115
+95
+98
+112
+99
+103
+120
+114
+130
+148
+148
+163
+178
+183
+192
+203
+209
+212
+221
+228
+235
+240
+246
+245
+250
+254
+251
+252
+255
+253
+255
+254
+255
+255
+253
+255
+255
+250
+255
+255
+248
+255
+255
+244
+255
+255
+243
+255
+255
+239
+250
+253
+232
+242
+247
+224
+231
+240
+213
+226
+232
+204
+215
+218
+189
+209
+209
+181
+205
+203
+180
+206
+203
+186
+214
+207
+197
+222
+215
+209
+236
+226
+227
+247
+238
+243
+255
+245
+253
+255
+249
+255
+255
+252
+255
+255
+254
+255
+255
+254
+252
+253
+254
+249
+253
+254
+248
+253
+255
+249
+254
+255
+250
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+254
+253
+254
+255
+254
+255
+255
+254
+255
+255
+254
+255
+255
+254
+255
+253
+254
+255
+250
+253
+254
+248
+253
+253
+245
+251
+251
+241
+252
+252
+244
+254
+253
+248
+255
+254
+250
+255
+255
+253
+254
+254
+254
+254
+252
+255
+254
+252
+255
+251
+246
+252
+255
+250
+254
+254
+248
+250
+249
+244
+241
+253
+246
+240
+255
+254
+244
+255
+254
+241
+255
+254
+237
+255
+248
+230
+252
+239
+220
+242
+227
+208
+226
+209
+189
+205
+187
+167
+179
+161
+141
+155
+134
+115
+140
+117
+99
+122
+93
+75
+125
+94
+76
+116
+85
+67
+97
+68
+50
+87
+58
+40
+89
+60
+42
+91
+62
+44
+88
+61
+42
+96
+69
+50
+96
+69
+50
+96
+69
+50
+95
+70
+50
+96
+71
+51
+96
+71
+51
+96
+71
+51
+93
+72
+51
+92
+75
+55
+92
+77
+58
+92
+77
+58
+89
+76
+57
+88
+77
+57
+85
+77
+56
+82
+76
+54
+81
+76
+54
+78
+76
+53
+81
+81
+57
+105
+107
+83
+124
+128
+103
+109
+113
+88
+83
+89
+63
+70
+76
+50
+62
+71
+44
+60
+70
+43
+60
+70
+43
+63
+72
+43
+68
+74
+46
+69
+74
+44
+68
+71
+42
+72
+73
+42
+76
+77
+46
+121
+120
+92
+116
+115
+87
+102
+100
+77
+84
+82
+59
+76
+73
+54
+75
+74
+54
+70
+69
+51
+60
+61
+45
+60
+63
+52
+57
+63
+53
+57
+63
+53
+57
+63
+53
+56
+62
+52
+56
+62
+52
+56
+62
+52
+56
+62
+52
+55
+61
+51
+55
+61
+51
+56
+62
+52
+56
+62
+52
+56
+62
+52
+56
+62
+52
+57
+63
+53
+57
+63
+53
+58
+63
+57
+58
+63
+57
+58
+63
+57
+58
+63
+57
+57
+62
+56
+57
+62
+56
+57
+62
+56
+56
+61
+55
+56
+61
+55
+56
+61
+55
+55
+60
+54
+54
+59
+53
+53
+58
+52
+52
+57
+51
+51
+56
+50
+51
+56
+50
+47
+52
+48
+46
+51
+47
+45
+50
+46
+44
+49
+45
+43
+48
+44
+43
+48
+44
+43
+48
+44
+43
+48
+44
+43
+48
+44
+44
+49
+45
+45
+49
+48
+46
+50
+49
+47
+51
+50
+47
+51
+50
+47
+51
+50
+45
+52
+45
+51
+63
+49
+55
+70
+51
+61
+76
+55
+64
+79
+58
+63
+78
+55
+60
+75
+52
+57
+72
+49
+56
+71
+48
+53
+68
+45
+56
+71
+48
+60
+75
+54
+62
+77
+58
+60
+74
+57
+55
+69
+54
+49
+63
+50
+45
+57
+45
+44
+54
+45
+46
+53
+45
+45
+52
+44
+102
+99
+84
+102
+99
+84
+103
+100
+85
+104
+101
+86
+104
+101
+86
+105
+102
+87
+106
+103
+88
+106
+103
+88
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+108
+100
+87
+108
+100
+87
+108
+99
+90
+109
+100
+91
+109
+100
+93
+109
+102
+92
+109
+103
+91
+106
+105
+87
+106
+108
+87
+104
+109
+86
+104
+114
+90
+102
+115
+95
+99
+113
+100
+104
+121
+115
+133
+151
+151
+165
+183
+187
+199
+210
+216
+218
+227
+234
+240
+245
+251
+248
+253
+255
+252
+253
+255
+253
+255
+254
+255
+255
+253
+255
+254
+249
+255
+255
+245
+255
+255
+242
+255
+255
+240
+252
+255
+236
+248
+251
+230
+239
+244
+221
+226
+235
+208
+221
+227
+199
+213
+213
+185
+206
+204
+179
+201
+196
+176
+202
+196
+180
+208
+201
+191
+218
+210
+207
+233
+224
+227
+246
+237
+242
+255
+246
+254
+255
+249
+255
+255
+252
+255
+255
+254
+255
+254
+254
+252
+252
+254
+249
+251
+255
+247
+252
+255
+248
+253
+255
+250
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+254
+254
+251
+255
+255
+252
+255
+254
+253
+255
+253
+255
+254
+250
+255
+250
+247
+255
+248
+246
+255
+243
+245
+255
+240
+243
+254
+238
+245
+255
+242
+250
+255
+246
+253
+255
+250
+255
+253
+254
+255
+251
+255
+255
+249
+255
+255
+248
+255
+252
+241
+255
+254
+245
+255
+255
+250
+255
+255
+253
+255
+255
+252
+255
+252
+251
+249
+248
+248
+240
+245
+245
+233
+255
+255
+241
+255
+255
+239
+255
+255
+237
+255
+255
+237
+255
+252
+234
+255
+246
+229
+251
+239
+223
+248
+235
+218
+249
+228
+209
+255
+230
+208
+227
+202
+180
+165
+143
+120
+116
+94
+71
+101
+79
+56
+98
+76
+53
+92
+72
+48
+94
+74
+50
+92
+74
+50
+92
+74
+50
+93
+75
+51
+93
+75
+51
+94
+76
+52
+94
+76
+52
+92
+77
+54
+89
+78
+56
+87
+79
+58
+87
+79
+58
+86
+80
+58
+85
+79
+57
+83
+78
+56
+80
+78
+55
+78
+78
+54
+77
+79
+55
+80
+84
+59
+96
+102
+76
+102
+111
+84
+85
+94
+67
+69
+79
+52
+65
+75
+48
+60
+70
+43
+63
+73
+46
+63
+73
+46
+67
+76
+47
+72
+78
+50
+72
+77
+47
+70
+73
+44
+79
+80
+49
+89
+88
+58
+113
+109
+82
+106
+102
+75
+97
+92
+70
+91
+86
+64
+89
+84
+65
+84
+81
+62
+77
+74
+57
+66
+67
+51
+61
+64
+53
+59
+65
+55
+59
+65
+55
+59
+65
+55
+58
+64
+54
+58
+64
+54
+58
+64
+54
+57
+63
+53
+56
+62
+52
+56
+62
+52
+56
+62
+52
+57
+63
+53
+57
+63
+53
+58
+64
+54
+58
+64
+54
+58
+64
+54
+59
+64
+58
+59
+64
+58
+59
+64
+58
+58
+63
+57
+58
+63
+57
+57
+62
+56
+57
+62
+56
+57
+62
+56
+58
+63
+57
+58
+63
+57
+57
+62
+56
+57
+62
+56
+56
+61
+55
+56
+61
+55
+55
+60
+54
+55
+60
+54
+52
+57
+53
+50
+55
+51
+49
+54
+50
+47
+52
+48
+45
+50
+46
+44
+49
+45
+43
+47
+46
+43
+47
+46
+44
+48
+47
+44
+48
+47
+45
+49
+48
+46
+50
+49
+46
+50
+51
+46
+50
+51
+45
+49
+50
+43
+49
+45
+43
+57
+42
+47
+64
+45
+54
+72
+50
+59
+77
+55
+61
+79
+55
+60
+78
+52
+58
+76
+50
+58
+76
+50
+53
+71
+47
+55
+73
+49
+58
+76
+54
+60
+77
+58
+58
+75
+57
+54
+71
+55
+48
+64
+51
+45
+59
+46
+45
+55
+46
+46
+53
+45
+45
+52
+44
+99
+100
+82
+99
+100
+82
+100
+101
+83
+101
+102
+84
+101
+102
+86
+104
+102
+87
+105
+103
+88
+105
+103
+88
+104
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+105
+102
+87
+107
+101
+87
+107
+101
+87
+107
+101
+87
+108
+100
+89
+108
+101
+91
+109
+100
+93
+109
+102
+92
+107
+103
+91
+106
+105
+87
+105
+107
+86
+104
+109
+87
+104
+114
+90
+103
+116
+96
+100
+113
+103
+106
+123
+117
+137
+155
+157
+170
+187
+194
+205
+216
+222
+223
+232
+239
+242
+249
+255
+250
+255
+255
+251
+255
+255
+253
+255
+254
+254
+255
+250
+254
+254
+246
+250
+250
+238
+250
+251
+237
+250
+251
+233
+248
+250
+229
+244
+246
+225
+234
+238
+215
+223
+227
+202
+217
+219
+195
+211
+209
+184
+204
+199
+177
+197
+190
+172
+198
+190
+177
+204
+195
+188
+214
+206
+204
+230
+221
+224
+244
+234
+242
+253
+246
+254
+254
+249
+255
+255
+253
+255
+254
+254
+255
+253
+253
+251
+252
+254
+249
+251
+255
+249
+252
+255
+250
+253
+255
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+254
+254
+252
+255
+254
+252
+255
+254
+252
+255
+254
+252
+255
+253
+254
+255
+250
+255
+255
+251
+255
+254
+252
+255
+252
+254
+253
+249
+255
+251
+246
+255
+247
+244
+255
+244
+243
+255
+241
+242
+254
+240
+245
+255
+242
+250
+255
+246
+254
+255
+250
+255
+252
+251
+255
+249
+252
+255
+247
+255
+255
+246
+255
+255
+248
+255
+255
+247
+255
+255
+249
+255
+255
+252
+255
+253
+252
+255
+251
+253
+252
+250
+255
+251
+252
+255
+250
+244
+250
+240
+244
+250
+238
+247
+249
+236
+247
+248
+234
+248
+246
+231
+251
+248
+231
+255
+250
+234
+255
+253
+234
+253
+241
+219
+255
+251
+228
+236
+220
+197
+158
+142
+119
+96
+80
+55
+82
+66
+41
+88
+72
+47
+88
+72
+47
+91
+77
+51
+91
+77
+51
+90
+78
+52
+90
+78
+52
+91
+79
+53
+91
+79
+53
+92
+80
+54
+91
+81
+56
+85
+79
+55
+84
+79
+57
+84
+79
+57
+81
+79
+56
+80
+78
+55
+78
+78
+54
+75
+77
+53
+73
+77
+52
+74
+78
+53
+76
+82
+56
+83
+92
+65
+80
+89
+60
+64
+73
+44
+59
+70
+40
+65
+76
+46
+63
+74
+42
+67
+78
+46
+68
+79
+47
+72
+81
+50
+76
+83
+50
+73
+78
+48
+74
+77
+46
+89
+90
+59
+107
+106
+78
+102
+101
+73
+98
+94
+69
+94
+89
+67
+95
+90
+70
+96
+91
+71
+90
+85
+66
+83
+78
+59
+76
+73
+56
+65
+66
+52
+64
+66
+53
+64
+66
+53
+62
+65
+54
+62
+65
+54
+62
+65
+54
+61
+64
+55
+61
+64
+55
+57
+63
+53
+57
+63
+53
+57
+63
+53
+58
+64
+54
+58
+64
+54
+58
+66
+55
+58
+66
+55
+58
+66
+55
+59
+64
+57
+59
+64
+57
+59
+64
+58
+58
+63
+56
+58
+63
+57
+57
+62
+55
+57
+62
+56
+57
+62
+55
+59
+64
+58
+59
+64
+57
+59
+64
+58
+59
+64
+57
+58
+63
+57
+58
+63
+56
+58
+63
+57
+58
+63
+57
+56
+63
+56
+55
+61
+57
+52
+59
+52
+51
+56
+50
+49
+54
+48
+47
+52
+46
+46
+51
+47
+46
+51
+47
+46
+50
+49
+46
+50
+49
+44
+50
+46
+44
+50
+46
+43
+50
+43
+43
+50
+42
+44
+52
+41
+41
+54
+37
+36
+54
+30
+41
+61
+33
+50
+70
+43
+56
+76
+49
+59
+79
+54
+59
+77
+53
+59
+77
+53
+59
+77
+53
+56
+74
+50
+57
+75
+51
+59
+77
+53
+60
+78
+54
+60
+78
+56
+55
+72
+53
+49
+66
+48
+46
+60
+45
+46
+56
+45
+47
+54
+46
+46
+53
+45
+92
+102
+78
+93
+103
+79
+95
+103
+80
+96
+104
+81
+98
+106
+85
+101
+106
+86
+103
+106
+87
+104
+107
+88
+102
+103
+85
+104
+103
+85
+104
+101
+86
+104
+101
+86
+106
+100
+86
+107
+101
+87
+107
+101
+89
+108
+102
+88
+107
+101
+87
+106
+103
+88
+109
+103
+91
+108
+104
+93
+109
+102
+94
+106
+102
+91
+104
+100
+88
+102
+100
+85
+102
+103
+85
+103
+108
+86
+102
+111
+90
+98
+111
+93
+99
+112
+103
+114
+130
+127
+150
+168
+172
+185
+199
+208
+209
+219
+228
+224
+233
+240
+240
+247
+253
+247
+252
+255
+247
+253
+251
+250
+255
+251
+252
+255
+248
+252
+254
+243
+248
+249
+235
+250
+251
+235
+249
+248
+230
+243
+240
+221
+239
+236
+217
+236
+233
+214
+224
+222
+201
+214
+209
+189
+216
+208
+189
+203
+191
+175
+188
+179
+164
+188
+178
+169
+195
+184
+180
+205
+195
+196
+219
+210
+215
+233
+223
+231
+250
+243
+251
+253
+248
+255
+254
+251
+255
+255
+254
+255
+254
+254
+255
+252
+254
+253
+251
+253
+250
+252
+254
+251
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+255
+254
+252
+255
+254
+252
+255
+255
+253
+255
+255
+253
+255
+255
+251
+255
+254
+250
+255
+253
+250
+255
+252
+249
+255
+252
+249
+255
+252
+249
+255
+254
+255
+255
+253
+254
+253
+253
+253
+253
+253
+253
+254
+255
+255
+254
+255
+253
+251
+255
+252
+249
+254
+248
+253
+255
+250
+251
+252
+246
+253
+252
+247
+255
+255
+250
+255
+254
+248
+255
+249
+244
+255
+247
+243
+255
+250
+249
+255
+251
+255
+255
+252
+255
+254
+253
+255
+254
+255
+255
+254
+255
+255
+251
+255
+252
+251
+255
+252
+250
+254
+253
+252
+255
+255
+252
+255
+255
+255
+255
+253
+255
+254
+249
+255
+254
+242
+255
+254
+237
+255
+254
+234
+255
+254
+232
+251
+245
+223
+255
+252
+230
+233
+225
+202
+145
+137
+114
+86
+79
+53
+88
+78
+51
+85
+76
+47
+83
+74
+45
+87
+78
+49
+87
+78
+49
+85
+78
+49
+85
+78
+49
+84
+79
+50
+84
+79
+50
+84
+78
+52
+83
+79
+52
+81
+77
+50
+82
+78
+53
+80
+78
+53
+80
+80
+54
+77
+79
+55
+75
+79
+54
+72
+77
+54
+71
+76
+53
+74
+80
+54
+70
+79
+52
+65
+74
+45
+61
+70
+39
+62
+72
+38
+68
+75
+42
+70
+77
+43
+68
+78
+41
+77
+88
+48
+75
+87
+47
+70
+81
+41
+67
+77
+40
+79
+86
+52
+94
+99
+67
+96
+99
+68
+90
+90
+62
+89
+89
+63
+91
+89
+66
+95
+90
+68
+95
+90
+70
+95
+88
+69
+92
+85
+66
+88
+81
+62
+85
+78
+59
+75
+70
+51
+71
+68
+49
+68
+65
+48
+65
+63
+48
+64
+62
+49
+62
+62
+50
+63
+63
+53
+63
+65
+54
+60
+63
+54
+58
+64
+54
+58
+64
+54
+57
+65
+54
+57
+65
+52
+55
+66
+52
+55
+66
+52
+55
+66
+52
+58
+66
+55
+57
+65
+54
+57
+64
+56
+56
+64
+53
+56
+63
+55
+57
+65
+54
+57
+64
+56
+58
+66
+55
+58
+65
+57
+58
+66
+55
+57
+64
+56
+58
+66
+55
+59
+66
+58
+60
+68
+57
+61
+68
+60
+62
+69
+61
+56
+66
+58
+55
+65
+57
+55
+65
+56
+55
+63
+52
+53
+61
+48
+51
+59
+46
+50
+56
+46
+49
+54
+48
+46
+52
+48
+47
+53
+49
+45
+55
+47
+45
+57
+45
+46
+59
+41
+48
+64
+38
+54
+71
+39
+55
+77
+39
+59
+86
+43
+59
+88
+44
+60
+86
+49
+59
+84
+52
+59
+82
+56
+60
+79
+57
+61
+78
+59
+61
+79
+57
+58
+76
+54
+63
+81
+55
+68
+86
+60
+68
+87
+59
+67
+87
+60
+64
+84
+59
+55
+74
+52
+46
+63
+44
+45
+55
+44
+44
+51
+43
+41
+48
+40
+89
+103
+77
+90
+104
+78
+92
+104
+80
+93
+105
+81
+97
+107
+83
+98
+108
+84
+103
+108
+88
+103
+108
+88
+103
+104
+86
+103
+104
+86
+105
+102
+87
+105
+102
+87
+107
+101
+87
+108
+102
+88
+109
+101
+90
+109
+103
+89
+108
+102
+88
+106
+103
+88
+107
+103
+91
+108
+104
+93
+107
+103
+94
+106
+102
+91
+104
+102
+90
+101
+102
+86
+104
+105
+87
+103
+108
+86
+103
+112
+93
+102
+115
+98
+106
+119
+110
+121
+137
+136
+156
+171
+178
+186
+200
+209
+208
+218
+227
+224
+233
+238
+240
+247
+253
+246
+254
+255
+249
+255
+253
+249
+255
+249
+251
+254
+245
+249
+253
+239
+249
+250
+236
+248
+249
+231
+246
+243
+226
+238
+235
+216
+235
+230
+211
+230
+225
+206
+221
+214
+196
+210
+201
+184
+203
+191
+175
+193
+179
+166
+184
+172
+160
+187
+174
+166
+194
+183
+181
+205
+195
+196
+219
+208
+214
+228
+221
+228
+251
+243
+254
+253
+247
+255
+254
+251
+255
+255
+254
+255
+254
+253
+255
+252
+253
+255
+252
+254
+253
+252
+254
+253
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+255
+254
+252
+255
+254
+252
+255
+255
+253
+255
+255
+253
+255
+253
+250
+255
+253
+250
+255
+253
+250
+255
+252
+249
+255
+252
+248
+255
+253
+248
+255
+254
+253
+255
+254
+252
+253
+253
+253
+253
+253
+253
+255
+255
+255
+255
+255
+255
+254
+254
+254
+253
+253
+253
+255
+255
+253
+255
+255
+251
+255
+252
+249
+254
+247
+241
+245
+236
+229
+238
+228
+219
+244
+231
+222
+250
+241
+234
+255
+252
+253
+254
+254
+255
+253
+255
+254
+254
+255
+253
+252
+255
+251
+251
+255
+250
+251
+255
+254
+250
+254
+255
+252
+255
+255
+252
+255
+255
+255
+254
+255
+254
+254
+252
+255
+253
+244
+255
+254
+236
+255
+253
+231
+255
+254
+229
+248
+246
+223
+254
+252
+231
+229
+224
+202
+141
+137
+112
+83
+77
+51
+84
+79
+50
+82
+75
+46
+81
+74
+45
+85
+79
+47
+85
+79
+47
+84
+79
+49
+84
+79
+49
+83
+79
+50
+83
+79
+50
+81
+80
+52
+81
+80
+52
+81
+77
+50
+79
+78
+50
+80
+78
+53
+78
+81
+54
+77
+79
+55
+74
+80
+54
+72
+77
+54
+69
+77
+53
+71
+80
+53
+69
+78
+49
+65
+74
+45
+63
+73
+39
+66
+73
+40
+70
+77
+43
+74
+80
+44
+74
+82
+43
+75
+86
+43
+75
+88
+42
+82
+93
+51
+89
+100
+60
+93
+101
+64
+87
+94
+60
+83
+88
+58
+83
+86
+57
+85
+85
+61
+86
+86
+62
+90
+85
+65
+91
+86
+66
+92
+85
+66
+92
+84
+65
+90
+82
+61
+89
+81
+60
+82
+76
+54
+80
+74
+52
+75
+70
+51
+72
+67
+48
+67
+64
+49
+65
+63
+50
+66
+64
+52
+63
+65
+54
+61
+62
+54
+58
+64
+54
+58
+64
+54
+57
+65
+54
+55
+66
+52
+55
+66
+52
+54
+67
+50
+54
+67
+50
+58
+66
+55
+57
+65
+54
+57
+65
+54
+56
+64
+53
+56
+64
+53
+57
+65
+54
+57
+65
+54
+58
+66
+55
+58
+66
+55
+58
+66
+55
+58
+66
+55
+58
+66
+55
+59
+67
+56
+60
+68
+57
+61
+69
+58
+60
+70
+59
+61
+71
+63
+60
+72
+62
+60
+70
+59
+60
+71
+55
+60
+68
+53
+58
+66
+51
+57
+63
+51
+56
+61
+54
+55
+62
+55
+52
+62
+54
+51
+61
+52
+48
+62
+45
+51
+67
+41
+57
+77
+42
+66
+89
+47
+71
+97
+49
+79
+112
+59
+76
+110
+59
+76
+105
+61
+70
+97
+62
+66
+89
+63
+60
+82
+61
+59
+76
+58
+58
+75
+56
+61
+79
+57
+68
+86
+60
+74
+93
+65
+76
+95
+65
+75
+95
+67
+72
+92
+64
+60
+83
+57
+51
+70
+48
+43
+53
+42
+43
+50
+42
+40
+47
+39
+89
+103
+77
+90
+104
+78
+92
+104
+80
+94
+106
+82
+97
+107
+83
+99
+109
+85
+103
+108
+88
+104
+109
+89
+105
+106
+88
+105
+106
+88
+107
+104
+89
+107
+104
+89
+108
+102
+88
+109
+103
+89
+110
+102
+91
+110
+104
+90
+108
+102
+88
+107
+104
+89
+107
+103
+91
+107
+103
+92
+107
+103
+94
+106
+102
+91
+104
+102
+90
+101
+102
+86
+104
+105
+87
+101
+106
+84
+100
+109
+90
+103
+116
+99
+111
+124
+115
+127
+143
+142
+157
+172
+179
+182
+196
+205
+204
+214
+223
+221
+230
+235
+239
+246
+252
+246
+254
+255
+249
+255
+253
+248
+255
+248
+248
+251
+242
+245
+249
+235
+244
+245
+231
+241
+242
+224
+236
+233
+216
+226
+223
+204
+222
+217
+198
+216
+211
+192
+208
+201
+183
+199
+190
+173
+192
+180
+164
+188
+174
+161
+187
+175
+163
+194
+181
+173
+204
+193
+191
+215
+205
+206
+227
+216
+222
+234
+227
+234
+251
+243
+254
+253
+247
+255
+254
+251
+255
+254
+253
+255
+253
+252
+255
+252
+253
+255
+252
+254
+253
+253
+255
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+255
+254
+252
+255
+254
+252
+255
+255
+253
+255
+254
+252
+255
+253
+250
+255
+253
+250
+255
+252
+249
+255
+252
+249
+255
+252
+248
+255
+253
+248
+255
+254
+253
+254
+253
+251
+252
+252
+252
+253
+253
+253
+254
+254
+254
+255
+255
+255
+254
+254
+254
+253
+253
+253
+255
+255
+253
+255
+255
+251
+255
+253
+250
+249
+242
+236
+232
+223
+216
+223
+213
+204
+234
+221
+212
+246
+237
+230
+255
+252
+253
+254
+254
+255
+253
+255
+254
+254
+255
+253
+252
+255
+251
+251
+255
+250
+251
+255
+254
+250
+254
+255
+252
+255
+255
+252
+255
+255
+255
+254
+255
+254
+254
+252
+255
+253
+244
+255
+254
+236
+255
+253
+231
+255
+254
+229
+249
+247
+224
+254
+252
+231
+228
+223
+201
+138
+134
+109
+80
+74
+48
+82
+77
+48
+82
+75
+46
+82
+75
+46
+84
+78
+46
+85
+79
+47
+84
+79
+49
+85
+80
+50
+84
+80
+51
+83
+79
+50
+81
+80
+52
+80
+79
+51
+81
+77
+50
+79
+78
+50
+80
+78
+53
+77
+80
+53
+77
+79
+55
+74
+80
+54
+73
+78
+55
+70
+78
+54
+72
+81
+54
+69
+78
+49
+67
+76
+47
+66
+76
+42
+70
+77
+44
+73
+80
+46
+79
+85
+49
+81
+89
+50
+80
+91
+48
+85
+98
+52
+103
+116
+73
+119
+130
+90
+112
+120
+83
+88
+95
+61
+76
+81
+51
+78
+81
+52
+80
+80
+56
+81
+81
+57
+84
+79
+59
+85
+80
+60
+87
+80
+61
+88
+81
+62
+91
+83
+62
+92
+84
+63
+89
+83
+61
+86
+80
+58
+81
+76
+57
+77
+72
+53
+71
+68
+53
+68
+66
+53
+67
+65
+53
+63
+65
+54
+61
+62
+54
+58
+64
+54
+58
+64
+54
+57
+65
+54
+55
+66
+52
+55
+66
+52
+54
+67
+50
+54
+67
+50
+58
+66
+55
+58
+66
+55
+57
+65
+54
+57
+65
+54
+57
+65
+54
+57
+65
+54
+58
+66
+55
+58
+66
+55
+58
+66
+55
+58
+66
+55
+58
+66
+55
+58
+66
+55
+59
+67
+56
+60
+68
+57
+62
+70
+59
+60
+70
+59
+64
+74
+66
+63
+75
+65
+64
+74
+63
+64
+75
+59
+65
+73
+58
+63
+71
+56
+63
+69
+57
+62
+67
+60
+62
+69
+62
+57
+67
+59
+54
+64
+55
+52
+66
+49
+57
+73
+47
+66
+86
+51
+80
+103
+61
+88
+114
+66
+94
+127
+74
+91
+125
+74
+87
+116
+72
+77
+104
+69
+67
+90
+64
+57
+79
+58
+54
+71
+53
+52
+69
+50
+60
+78
+56
+69
+87
+61
+77
+96
+68
+82
+101
+71
+82
+102
+74
+78
+98
+70
+65
+88
+62
+56
+75
+53
+47
+57
+46
+47
+54
+46
+44
+51
+43
+89
+103
+77
+90
+104
+78
+92
+104
+80
+94
+106
+82
+98
+108
+84
+100
+110
+86
+104
+109
+89
+105
+110
+90
+107
+108
+90
+107
+108
+90
+109
+106
+91
+108
+105
+90
+110
+104
+90
+110
+104
+90
+111
+103
+92
+111
+105
+91
+109
+103
+89
+107
+104
+89
+107
+103
+91
+107
+103
+92
+106
+102
+93
+106
+102
+91
+104
+102
+90
+102
+103
+87
+102
+103
+85
+97
+102
+80
+95
+104
+85
+100
+113
+96
+112
+125
+116
+127
+143
+142
+151
+166
+173
+171
+185
+194
+199
+209
+218
+217
+226
+231
+237
+244
+250
+245
+253
+255
+248
+254
+252
+245
+252
+245
+243
+246
+237
+238
+242
+228
+234
+235
+221
+228
+229
+211
+221
+218
+201
+212
+209
+190
+208
+203
+184
+202
+197
+178
+195
+188
+170
+189
+180
+163
+196
+184
+168
+198
+184
+171
+203
+191
+179
+213
+200
+192
+224
+213
+211
+234
+224
+225
+244
+233
+239
+248
+241
+248
+252
+244
+255
+253
+247
+255
+254
+251
+255
+254
+253
+255
+253
+252
+255
+251
+252
+254
+252
+254
+253
+253
+255
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+255
+254
+252
+255
+254
+252
+255
+254
+252
+255
+254
+252
+255
+253
+250
+255
+252
+249
+255
+252
+249
+255
+252
+249
+255
+251
+247
+255
+252
+247
+255
+253
+252
+253
+252
+250
+251
+251
+251
+252
+252
+252
+254
+254
+254
+255
+255
+255
+254
+254
+254
+253
+253
+253
+254
+253
+251
+255
+255
+251
+255
+253
+250
+250
+243
+237
+234
+225
+218
+227
+217
+208
+239
+226
+217
+251
+242
+235
+255
+252
+253
+254
+254
+255
+253
+255
+254
+254
+255
+253
+252
+255
+251
+251
+255
+250
+251
+255
+254
+250
+254
+255
+252
+255
+255
+252
+255
+255
+255
+254
+255
+254
+254
+252
+255
+253
+244
+255
+254
+236
+255
+252
+230
+255
+253
+228
+252
+250
+227
+255
+254
+233
+228
+223
+201
+137
+133
+108
+80
+74
+48
+82
+77
+48
+84
+77
+48
+84
+77
+48
+84
+78
+46
+85
+79
+47
+85
+80
+50
+85
+80
+50
+84
+80
+51
+83
+79
+50
+80
+79
+51
+79
+78
+50
+81
+77
+50
+79
+78
+50
+79
+77
+52
+76
+79
+52
+76
+78
+54
+74
+80
+54
+74
+79
+56
+71
+79
+55
+74
+83
+56
+71
+80
+51
+70
+79
+50
+72
+82
+48
+76
+83
+50
+78
+85
+51
+85
+91
+55
+91
+99
+60
+103
+114
+71
+115
+128
+82
+135
+148
+105
+144
+156
+116
+133
+143
+106
+110
+117
+83
+90
+95
+65
+82
+87
+57
+79
+79
+55
+78
+78
+54
+80
+75
+55
+79
+74
+54
+82
+75
+56
+85
+78
+59
+89
+81
+60
+91
+83
+62
+90
+84
+62
+88
+82
+60
+84
+79
+60
+80
+75
+56
+74
+71
+56
+71
+69
+56
+69
+67
+55
+65
+67
+56
+61
+62
+54
+58
+64
+54
+58
+64
+54
+57
+65
+54
+55
+66
+52
+55
+66
+52
+54
+67
+50
+54
+67
+50
+59
+67
+56
+58
+66
+55
+57
+65
+54
+57
+65
+54
+57
+65
+54
+57
+65
+54
+58
+66
+55
+59
+67
+56
+59
+67
+56
+58
+66
+55
+58
+66
+55
+59
+67
+56
+59
+67
+56
+61
+69
+58
+62
+70
+59
+61
+71
+60
+61
+71
+63
+60
+72
+62
+62
+72
+61
+62
+73
+57
+64
+72
+57
+63
+71
+56
+63
+69
+57
+63
+68
+61
+61
+68
+61
+57
+67
+59
+54
+64
+55
+52
+66
+49
+57
+73
+47
+68
+88
+53
+82
+105
+63
+91
+117
+69
+89
+122
+69
+87
+121
+70
+84
+113
+69
+73
+100
+65
+62
+85
+59
+51
+73
+52
+48
+65
+47
+46
+63
+44
+54
+72
+50
+64
+82
+56
+75
+94
+66
+82
+101
+71
+83
+103
+75
+79
+99
+71
+65
+88
+62
+54
+73
+51
+49
+59
+48
+48
+55
+47
+45
+52
+44
+89
+103
+77
+90
+104
+78
+92
+104
+80
+94
+106
+82
+98
+108
+84
+100
+110
+86
+105
+110
+90
+106
+111
+91
+109
+110
+92
+108
+109
+91
+110
+107
+92
+109
+106
+91
+110
+104
+90
+110
+104
+90
+112
+104
+93
+111
+105
+91
+109
+103
+89
+107
+104
+89
+106
+102
+90
+106
+102
+91
+105
+101
+92
+105
+101
+90
+104
+102
+90
+102
+103
+87
+103
+104
+86
+97
+102
+80
+94
+103
+84
+100
+113
+96
+112
+125
+116
+125
+141
+140
+145
+160
+167
+161
+175
+184
+194
+204
+213
+214
+223
+228
+234
+241
+247
+243
+251
+253
+245
+251
+249
+242
+249
+242
+239
+242
+233
+233
+237
+223
+227
+228
+214
+218
+219
+201
+211
+208
+191
+204
+201
+182
+201
+196
+177
+195
+190
+171
+190
+183
+165
+187
+178
+161
+202
+190
+174
+209
+195
+182
+218
+206
+194
+229
+216
+208
+238
+227
+225
+248
+238
+239
+255
+245
+251
+255
+249
+255
+252
+244
+255
+253
+247
+255
+253
+250
+255
+253
+252
+255
+252
+251
+255
+251
+252
+254
+252
+254
+253
+254
+255
+255
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+254
+255
+254
+252
+255
+254
+252
+255
+254
+252
+255
+254
+252
+255
+252
+249
+255
+252
+249
+255
+252
+249
+255
+251
+248
+255
+251
+247
+255
+252
+247
+255
+252
+251
+252
+251
+249
+251
+251
+251
+252
+252
+252
+254
+254
+254
+255
+255
+255
+254
+254
+254
+253
+253
+253
+254
+253
+251
+254
+253
+249
+255
+252
+249
+254
+247
+241
+245
+236
+229
+239
+229
+220
+247
+234
+225
+254
+245
+238
+255
+252
+253
+254
+254
+255
+253
+255
+254
+254
+255
+253
+252
+255
+251
+251
+255
+250
+251
+255
+254
+250
+254
+255
+251
+255
+255
+251
+255
+255
+254
+253
+255
+254
+254
+252
+255
+254
+245
+255
+254
+236
+255
+252
+230
+255
+252
+227
+254
+252
+229
+255
+255
+235
+229
+224
+202
+138
+134
+109
+81
+75
+49
+84
+79
+50
+86
+79
+50
+87
+80
+51
+84
+78
+46
+85
+79
+47
+86
+81
+51
+86
+81
+51
+85
+81
+52
+83
+79
+50
+79
+78
+50
+78
+77
+49
+81
+77
+50
+79
+78
+50
+79
+77
+52
+76
+79
+52
+76
+78
+54
+74
+80
+54
+74
+79
+56
+73
+81
+57
+76
+85
+58
+73
+82
+53
+74
+83
+54
+78
+88
+54
+81
+88
+55
+82
+89
+55
+91
+97
+61
+99
+107
+68
+129
+142
+98
+146
+162
+115
+161
+174
+131
+157
+169
+129
+148
+158
+121
+138
+145
+111
+115
+120
+90
+90
+95
+65
+80
+80
+56
+78
+78
+54
+78
+73
+53
+76
+71
+51
+78
+71
+52
+81
+74
+55
+86
+78
+57
+88
+80
+59
+88
+82
+60
+86
+80
+58
+83
+78
+59
+80
+75
+56
+76
+73
+58
+73
+71
+58
+71
+69
+57
+67
+69
+58
+61
+62
+54
+58
+64
+54
+58
+64
+54
+57
+65
+54
+55
+66
+52
+55
+66
+52
+54
+67
+50
+54
+67
+50
+59
+67
+56
+59
+67
+56
+58
+66
+55
+57
+65
+54
+57
+65
+54
+58
+66
+55
+59
+67
+56
+59
+67
+56
+59
+67
+56
+59
+67
+56
+59
+67
+56
+59
+67
+56
+60
+68
+57
+61
+69
+58
+62
+70
+59
+61
+71
+60
+59
+69
+61
+58
+70
+60
+60
+70
+59
+60
+71
+55
+62
+70
+55
+61
+69
+54
+62
+68
+56
+61
+66
+59
+58
+65
+58
+55
+65
+57
+53
+63
+54
+52
+66
+49
+57
+73
+47
+66
+86
+51
+78
+101
+59
+85
+111
+63
+83
+116
+63
+81
+115
+64
+79
+108
+64
+69
+96
+61
+57
+80
+54
+46
+68
+47
+44
+61
+43
+44
+61
+42
+49
+67
+45
+60
+78
+52
+73
+92
+64
+80
+99
+69
+82
+102
+74
+78
+98
+70
+63
+86
+60
+52
+71
+49
+43
+53
+42
+43
+50
+42
+40
+47
+39
diff --git a/tools/h52jpeg/image8.txt b/tools/h52jpeg/image8.txt
new file mode 100644
index 0000000..4ba5980
--- /dev/null
+++ b/tools/h52jpeg/image8.txt
@@ -0,0 +1,120006 @@
+components
+1
+height
+400
+width
+300
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+12
+8
+5
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+61
+52
+39
+25
+10
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+93
+86
+77
+65
+48
+16
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+108
+106
+104
+99
+88
+48
+23
+8
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+109
+107
+106
+106
+105
+98
+60
+26
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+107
+105
+104
+104
+105
+105
+100
+73
+37
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+108
+105
+104
+104
+105
+105
+104
+93
+69
+29
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+109
+105
+103
+103
+104
+106
+106
+103
+89
+59
+12
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+111
+105
+103
+103
+104
+106
+107
+106
+100
+86
+29
+10
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+113
+105
+102
+101
+102
+105
+107
+108
+106
+100
+55
+20
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+115
+107
+102
+101
+100
+101
+104
+107
+108
+107
+88
+42
+15
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+118
+109
+103
+100
+99
+100
+102
+105
+108
+108
+99
+63
+30
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+119
+111
+104
+100
+97
+100
+101
+103
+106
+109
+105
+82
+48
+17
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+2
+3
+3
+4
+5
+6
+7
+7
+8
+9
+9
+9
+9
+9
+8
+7
+7
+6
+4
+3
+2
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+119
+113
+106
+100
+97
+100
+101
+102
+104
+108
+108
+95
+65
+30
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+3
+4
+6
+7
+9
+11
+13
+16
+18
+20
+22
+24
+26
+27
+27
+28
+28
+27
+25
+24
+22
+20
+16
+13
+11
+8
+6
+3
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+119
+115
+109
+102
+97
+100
+103
+104
+104
+106
+108
+103
+79
+46
+15
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+4
+6
+9
+12
+17
+21
+25
+30
+34
+40
+44
+48
+52
+55
+58
+60
+61
+62
+62
+60
+58
+56
+52
+48
+41
+35
+29
+23
+18
+11
+7
+4
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+115
+114
+111
+106
+99
+97
+104
+106
+106
+106
+107
+106
+91
+65
+30
+7
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+3
+6
+9
+13
+20
+26
+33
+41
+49
+59
+66
+74
+80
+87
+94
+98
+102
+106
+109
+112
+113
+114
+115
+115
+115
+114
+112
+109
+105
+98
+91
+82
+72
+61
+46
+36
+26
+18
+12
+5
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+109
+111
+110
+107
+103
+97
+104
+107
+108
+107
+107
+107
+97
+77
+44
+16
+7
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+4
+6
+11
+17
+24
+31
+40
+52
+62
+71
+79
+87
+95
+100
+104
+107
+110
+113
+115
+117
+119
+120
+121
+122
+123
+124
+124
+125
+125
+124
+124
+123
+120
+118
+113
+108
+101
+87
+75
+62
+49
+36
+21
+13
+7
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+102
+104
+106
+107
+106
+98
+101
+106
+109
+108
+108
+107
+101
+85
+56
+27
+14
+6
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+6
+10
+15
+22
+33
+43
+53
+64
+74
+85
+93
+99
+104
+109
+113
+115
+117
+119
+120
+121
+122
+123
+124
+124
+125
+126
+126
+127
+128
+128
+129
+129
+129
+129
+129
+129
+127
+125
+122
+115
+106
+96
+84
+70
+50
+37
+25
+16
+9
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+95
+97
+101
+104
+106
+100
+99
+104
+109
+110
+108
+108
+104
+92
+67
+38
+23
+12
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+3
+6
+12
+18
+27
+36
+48
+63
+75
+85
+95
+103
+110
+113
+116
+117
+118
+119
+120
+120
+121
+121
+122
+122
+122
+123
+123
+124
+124
+125
+126
+126
+127
+128
+129
+129
+130
+130
+130
+131
+131
+130
+129
+127
+122
+114
+104
+85
+69
+53
+38
+25
+11
+6
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+90
+92
+95
+99
+105
+105
+98
+102
+108
+111
+110
+109
+106
+98
+79
+48
+33
+19
+9
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+5
+10
+17
+29
+41
+55
+69
+83
+99
+107
+112
+115
+116
+117
+118
+118
+119
+119
+120
+120
+120
+120
+120
+119
+119
+119
+119
+119
+119
+119
+120
+121
+122
+123
+124
+126
+127
+128
+129
+130
+131
+131
+131
+131
+131
+131
+129
+128
+120
+108
+91
+73
+53
+31
+18
+10
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+89
+90
+93
+96
+99
+105
+100
+98
+101
+110
+111
+110
+108
+101
+85
+68
+54
+37
+21
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+9
+16
+26
+38
+52
+74
+88
+100
+109
+114
+115
+116
+117
+117
+118
+118
+117
+117
+115
+113
+111
+110
+109
+108
+108
+108
+109
+109
+110
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+121
+123
+124
+126
+128
+129
+131
+131
+131
+131
+132
+131
+130
+127
+120
+108
+83
+62
+43
+26
+14
+4
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+88
+89
+91
+95
+98
+104
+103
+99
+98
+106
+110
+110
+108
+102
+90
+71
+62
+50
+36
+18
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+4
+8
+15
+29
+42
+58
+73
+88
+102
+108
+111
+114
+116
+116
+116
+116
+115
+113
+110
+108
+107
+106
+105
+105
+105
+106
+106
+107
+107
+108
+109
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+123
+124
+125
+126
+128
+129
+130
+131
+132
+132
+132
+131
+129
+126
+115
+101
+83
+63
+44
+21
+11
+5
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+87
+88
+90
+93
+99
+103
+104
+101
+97
+99
+107
+109
+108
+103
+92
+74
+65
+57
+47
+31
+9
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+8
+15
+25
+38
+59
+74
+88
+99
+107
+114
+115
+115
+115
+115
+113
+111
+109
+107
+105
+103
+102
+102
+102
+102
+103
+104
+105
+106
+108
+109
+111
+112
+113
+114
+116
+117
+118
+118
+119
+119
+120
+120
+120
+121
+122
+122
+123
+124
+125
+126
+128
+129
+130
+131
+132
+132
+133
+133
+133
+130
+124
+113
+99
+81
+53
+34
+20
+10
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+87
+87
+88
+92
+100
+103
+104
+103
+99
+93
+101
+104
+105
+101
+93
+75
+66
+60
+54
+44
+18
+7
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+4
+11
+22
+35
+51
+68
+90
+102
+110
+114
+115
+115
+115
+113
+111
+110
+106
+103
+100
+99
+98
+99
+100
+101
+102
+104
+106
+108
+110
+113
+115
+118
+120
+123
+124
+126
+128
+129
+130
+130
+130
+130
+129
+129
+128
+127
+126
+126
+126
+126
+126
+126
+127
+128
+129
+130
+131
+132
+133
+133
+134
+134
+133
+131
+125
+115
+90
+68
+46
+27
+13
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+87
+87
+88
+92
+102
+105
+105
+104
+102
+95
+90
+97
+99
+97
+93
+76
+66
+61
+57
+54
+32
+13
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+6
+12
+28
+46
+66
+86
+104
+113
+114
+115
+115
+115
+114
+112
+107
+102
+98
+95
+95
+96
+96
+98
+99
+101
+103
+106
+109
+114
+119
+124
+129
+133
+138
+142
+145
+148
+150
+152
+153
+153
+153
+152
+150
+149
+147
+144
+142
+138
+136
+133
+131
+129
+128
+128
+128
+129
+129
+130
+131
+132
+133
+134
+134
+135
+135
+134
+133
+125
+108
+84
+58
+33
+11
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+90
+90
+91
+95
+104
+108
+107
+106
+104
+102
+91
+86
+86
+89
+89
+83
+71
+63
+60
+58
+48
+25
+10
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+5
+13
+26
+44
+74
+94
+107
+113
+114
+115
+115
+114
+112
+108
+100
+96
+94
+93
+93
+95
+96
+97
+100
+103
+110
+117
+125
+133
+141
+151
+158
+164
+169
+174
+178
+181
+183
+185
+186
+187
+187
+187
+187
+186
+185
+183
+182
+179
+176
+172
+168
+164
+159
+154
+148
+143
+139
+136
+133
+132
+132
+132
+133
+133
+134
+135
+135
+135
+135
+134
+132
+125
+110
+87
+49
+25
+11
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+93
+93
+96
+102
+107
+108
+107
+106
+105
+104
+96
+88
+83
+81
+82
+80
+75
+69
+64
+61
+55
+35
+16
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+9
+20
+38
+59
+81
+101
+108
+112
+114
+114
+113
+110
+105
+100
+96
+93
+92
+92
+93
+94
+98
+102
+109
+117
+127
+139
+149
+157
+164
+171
+178
+182
+185
+187
+189
+191
+192
+193
+193
+194
+194
+194
+193
+193
+193
+192
+191
+189
+188
+186
+184
+181
+179
+176
+173
+169
+164
+160
+155
+150
+143
+140
+137
+135
+134
+134
+135
+135
+135
+135
+135
+134
+132
+127
+117
+89
+61
+36
+17
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+96
+97
+101
+106
+109
+109
+107
+106
+105
+105
+101
+95
+87
+80
+77
+76
+75
+71
+67
+63
+59
+43
+23
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+4
+9
+27
+47
+69
+88
+103
+112
+113
+113
+113
+111
+105
+100
+96
+92
+90
+91
+92
+94
+98
+103
+114
+123
+134
+145
+155
+167
+174
+179
+184
+188
+192
+193
+195
+195
+196
+196
+196
+196
+196
+195
+195
+194
+194
+193
+193
+192
+192
+191
+190
+189
+188
+186
+185
+183
+182
+179
+177
+174
+170
+166
+160
+155
+150
+145
+141
+138
+136
+136
+135
+135
+135
+135
+135
+134
+131
+117
+96
+71
+44
+22
+5
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+99
+100
+104
+109
+110
+108
+106
+105
+105
+105
+104
+101
+95
+86
+76
+72
+72
+71
+69
+66
+62
+50
+30
+11
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+5
+13
+26
+55
+78
+96
+108
+112
+113
+112
+111
+108
+103
+95
+91
+89
+89
+89
+93
+97
+103
+112
+122
+139
+152
+163
+172
+180
+187
+190
+193
+195
+196
+196
+196
+196
+196
+196
+195
+194
+193
+192
+191
+189
+188
+187
+186
+186
+185
+185
+185
+185
+185
+185
+184
+184
+183
+183
+182
+181
+181
+179
+178
+174
+170
+165
+159
+153
+146
+142
+139
+137
+136
+136
+135
+135
+135
+135
+132
+123
+105
+80
+51
+19
+8
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+102
+103
+107
+110
+110
+104
+103
+103
+104
+105
+105
+105
+101
+94
+81
+70
+69
+69
+68
+67
+64
+56
+36
+15
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+5
+14
+30
+55
+93
+104
+110
+113
+114
+112
+110
+104
+97
+90
+87
+87
+87
+89
+91
+99
+110
+124
+140
+155
+171
+180
+186
+190
+193
+195
+196
+197
+197
+197
+197
+196
+195
+193
+192
+189
+186
+184
+181
+179
+175
+173
+172
+170
+169
+169
+169
+170
+171
+173
+175
+177
+178
+179
+180
+181
+181
+181
+180
+179
+178
+178
+176
+173
+170
+162
+155
+149
+143
+139
+137
+136
+136
+135
+135
+135
+134
+129
+116
+92
+47
+23
+9
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+103
+105
+108
+110
+110
+103
+101
+102
+103
+105
+105
+105
+103
+98
+87
+70
+68
+67
+67
+66
+65
+60
+42
+20
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+7
+23
+47
+75
+100
+109
+112
+113
+113
+111
+104
+95
+89
+86
+84
+86
+88
+92
+100
+111
+135
+151
+165
+177
+185
+191
+194
+195
+196
+197
+197
+196
+195
+194
+192
+189
+185
+181
+177
+172
+165
+159
+154
+149
+144
+138
+134
+130
+127
+125
+123
+123
+124
+125
+127
+132
+136
+141
+146
+151
+158
+164
+169
+173
+176
+177
+177
+177
+176
+175
+174
+172
+168
+163
+156
+146
+141
+138
+136
+136
+135
+135
+135
+132
+128
+104
+68
+37
+14
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+104
+105
+107
+109
+110
+103
+101
+101
+102
+104
+104
+104
+101
+95
+86
+70
+67
+66
+66
+66
+65
+61
+44
+23
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+7
+27
+54
+79
+97
+107
+112
+112
+111
+108
+101
+92
+87
+85
+85
+86
+90
+99
+112
+128
+144
+164
+175
+183
+188
+193
+195
+196
+196
+196
+195
+194
+192
+189
+185
+180
+173
+167
+160
+153
+145
+135
+128
+122
+115
+110
+103
+99
+95
+92
+89
+87
+87
+87
+87
+88
+91
+94
+98
+103
+108
+117
+125
+133
+141
+149
+159
+165
+170
+173
+174
+174
+173
+172
+170
+167
+161
+154
+148
+142
+138
+136
+136
+135
+134
+133
+124
+104
+76
+45
+18
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+103
+105
+107
+109
+110
+105
+102
+101
+102
+104
+104
+102
+97
+91
+84
+71
+66
+65
+65
+65
+65
+62
+46
+24
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+10
+24
+58
+82
+98
+107
+111
+112
+110
+105
+98
+91
+84
+83
+84
+87
+92
+106
+122
+138
+155
+170
+182
+188
+192
+195
+196
+196
+196
+195
+193
+191
+186
+182
+176
+169
+162
+151
+142
+133
+124
+115
+104
+97
+91
+85
+80
+76
+73
+71
+69
+67
+66
+66
+66
+66
+66
+68
+69
+72
+74
+78
+84
+89
+96
+103
+112
+125
+135
+145
+153
+161
+168
+171
+172
+172
+171
+168
+164
+159
+154
+147
+141
+138
+136
+135
+135
+133
+124
+107
+81
+48
+15
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+103
+104
+106
+108
+109
+106
+103
+102
+103
+104
+103
+99
+92
+85
+82
+74
+67
+64
+64
+65
+65
+62
+46
+24
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+10
+26
+51
+88
+101
+108
+111
+112
+109
+103
+96
+88
+84
+81
+84
+88
+95
+107
+130
+150
+165
+177
+187
+192
+195
+196
+196
+196
+195
+193
+190
+187
+182
+174
+166
+157
+148
+137
+123
+112
+103
+93
+85
+76
+71
+67
+63
+61
+59
+58
+57
+57
+57
+57
+57
+57
+57
+57
+57
+58
+58
+59
+60
+62
+64
+67
+72
+78
+88
+98
+110
+121
+134
+150
+158
+164
+168
+170
+171
+170
+168
+165
+159
+150
+144
+140
+137
+136
+135
+133
+127
+112
+85
+39
+18
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+102
+103
+105
+106
+107
+107
+105
+104
+104
+105
+104
+93
+85
+80
+80
+78
+69
+65
+64
+65
+65
+62
+45
+23
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+8
+25
+52
+86
+106
+109
+110
+111
+111
+103
+92
+85
+81
+80
+82
+87
+98
+114
+135
+161
+175
+185
+191
+195
+197
+197
+197
+196
+194
+191
+187
+182
+176
+169
+156
+144
+132
+120
+107
+91
+81
+73
+66
+61
+57
+56
+55
+55
+54
+54
+54
+54
+54
+55
+55
+55
+55
+55
+55
+56
+56
+56
+56
+57
+57
+57
+58
+59
+60
+62
+66
+72
+80
+92
+112
+129
+143
+156
+165
+170
+171
+171
+170
+169
+163
+155
+147
+141
+137
+136
+135
+134
+130
+122
+79
+42
+17
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+100
+101
+102
+103
+104
+107
+106
+106
+107
+108
+97
+85
+80
+80
+81
+80
+73
+67
+64
+65
+65
+61
+42
+19
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+9
+33
+64
+92
+106
+109
+110
+110
+107
+101
+87
+82
+79
+79
+82
+93
+110
+131
+153
+171
+186
+191
+195
+197
+197
+197
+195
+193
+190
+187
+180
+172
+162
+151
+138
+119
+104
+91
+80
+70
+61
+58
+55
+54
+53
+53
+53
+53
+53
+53
+54
+54
+54
+54
+54
+54
+54
+55
+55
+55
+55
+55
+55
+56
+56
+56
+56
+56
+57
+57
+57
+58
+59
+60
+62
+68
+76
+89
+105
+123
+145
+159
+166
+170
+170
+169
+167
+164
+157
+148
+140
+137
+136
+135
+133
+124
+94
+58
+26
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+99
+99
+99
+100
+102
+103
+105
+106
+107
+109
+91
+82
+80
+81
+82
+80
+72
+67
+65
+65
+65
+57
+36
+14
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+6
+31
+64
+88
+103
+108
+109
+109
+105
+98
+89
+81
+79
+79
+84
+93
+116
+138
+157
+174
+185
+194
+196
+197
+197
+196
+193
+191
+187
+182
+176
+164
+151
+138
+123
+108
+90
+78
+69
+63
+58
+55
+54
+53
+53
+53
+53
+53
+53
+53
+53
+53
+53
+54
+54
+54
+54
+54
+54
+54
+54
+55
+55
+55
+55
+55
+55
+56
+56
+56
+56
+57
+57
+58
+58
+59
+61
+64
+69
+76
+86
+106
+124
+139
+153
+164
+168
+168
+168
+165
+160
+150
+144
+139
+136
+135
+131
+119
+94
+62
+26
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+98
+98
+97
+97
+99
+100
+103
+105
+107
+109
+88
+81
+80
+81
+81
+78
+70
+66
+65
+65
+64
+52
+30
+10
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+7
+21
+61
+87
+101
+107
+109
+109
+105
+98
+89
+81
+77
+79
+85
+96
+113
+142
+162
+177
+187
+194
+197
+197
+196
+195
+193
+189
+184
+178
+169
+159
+141
+125
+110
+96
+82
+69
+62
+58
+55
+53
+52
+52
+52
+52
+52
+53
+53
+53
+53
+53
+53
+53
+53
+53
+53
+53
+53
+53
+53
+53
+54
+54
+54
+54
+54
+54
+55
+55
+55
+56
+56
+56
+57
+57
+57
+58
+59
+60
+62
+66
+78
+90
+105
+122
+139
+156
+164
+168
+168
+166
+160
+154
+147
+142
+137
+135
+131
+118
+95
+61
+19
+7
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+98
+97
+96
+95
+96
+98
+100
+103
+106
+109
+90
+82
+81
+81
+78
+74
+68
+66
+65
+66
+63
+44
+22
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+6
+19
+45
+88
+101
+107
+108
+108
+106
+98
+88
+81
+77
+78
+84
+97
+115
+138
+167
+181
+190
+195
+198
+198
+196
+194
+191
+188
+182
+174
+164
+151
+137
+114
+98
+84
+73
+64
+57
+54
+53
+52
+52
+52
+52
+52
+52
+52
+52
+52
+52
+52
+53
+53
+53
+53
+53
+53
+52
+52
+52
+52
+52
+52
+52
+53
+53
+53
+53
+53
+54
+54
+54
+55
+55
+56
+56
+56
+57
+57
+58
+58
+59
+62
+66
+75
+89
+106
+132
+148
+159
+165
+167
+166
+163
+157
+150
+143
+137
+135
+131
+120
+98
+47
+21
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+98
+97
+96
+95
+95
+96
+96
+99
+104
+109
+98
+83
+80
+80
+73
+70
+67
+66
+66
+66
+60
+33
+14
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+15
+39
+75
+103
+106
+108
+108
+107
+99
+87
+80
+76
+75
+82
+96
+117
+141
+165
+185
+192
+196
+198
+198
+196
+193
+190
+187
+182
+172
+160
+144
+127
+109
+87
+74
+65
+58
+54
+52
+52
+52
+52
+52
+52
+52
+52
+52
+52
+52
+52
+52
+52
+52
+52
+52
+52
+52
+52
+52
+52
+51
+51
+51
+51
+51
+51
+51
+51
+52
+52
+52
+52
+53
+53
+54
+54
+55
+55
+56
+57
+57
+57
+58
+58
+59
+61
+65
+71
+94
+116
+136
+153
+164
+167
+168
+166
+162
+153
+141
+138
+135
+132
+126
+88
+46
+18
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+97
+97
+96
+95
+95
+95
+95
+96
+100
+107
+107
+79
+76
+80
+73
+70
+68
+67
+66
+64
+40
+17
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+14
+41
+73
+100
+107
+108
+107
+105
+99
+85
+78
+75
+76
+80
+101
+126
+150
+172
+188
+196
+198
+199
+198
+195
+191
+188
+183
+176
+167
+147
+129
+110
+92
+77
+63
+58
+54
+52
+52
+51
+51
+51
+51
+51
+51
+52
+52
+52
+52
+52
+52
+52
+52
+52
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+52
+52
+53
+53
+54
+55
+56
+56
+57
+58
+58
+59
+60
+64
+72
+87
+108
+132
+158
+165
+167
+166
+164
+157
+148
+141
+137
+134
+125
+96
+58
+23
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+97
+97
+96
+95
+95
+95
+95
+96
+98
+102
+108
+78
+75
+80
+75
+71
+69
+67
+63
+54
+23
+9
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+8
+32
+64
+91
+104
+107
+107
+105
+99
+90
+77
+75
+76
+82
+94
+125
+150
+171
+186
+194
+198
+199
+197
+195
+191
+186
+181
+173
+162
+147
+122
+104
+87
+74
+63
+56
+54
+52
+51
+51
+51
+51
+51
+51
+51
+51
+52
+52
+52
+52
+52
+52
+52
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+51
+51
+51
+51
+51
+51
+52
+52
+53
+54
+54
+56
+56
+57
+58
+59
+60
+63
+70
+80
+96
+125
+144
+157
+164
+165
+164
+159
+151
+143
+138
+132
+120
+93
+58
+21
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+97
+97
+96
+96
+96
+96
+95
+95
+96
+99
+108
+80
+75
+78
+76
+72
+69
+64
+55
+38
+11
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+21
+55
+83
+101
+106
+107
+105
+99
+91
+81
+74
+75
+81
+94
+114
+149
+171
+185
+194
+198
+199
+197
+194
+191
+187
+180
+171
+158
+143
+124
+99
+83
+71
+62
+56
+53
+52
+51
+51
+51
+51
+51
+51
+51
+51
+51
+52
+52
+52
+52
+52
+51
+51
+51
+51
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+49
+49
+49
+49
+49
+49
+50
+50
+50
+50
+50
+50
+51
+51
+51
+52
+52
+54
+54
+55
+56
+57
+58
+60
+62
+66
+73
+92
+113
+132
+149
+160
+166
+164
+159
+153
+145
+137
+132
+117
+92
+54
+14
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+96
+97
+96
+96
+96
+97
+96
+95
+95
+96
+107
+87
+77
+74
+77
+72
+67
+58
+43
+22
+5
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+8
+41
+76
+96
+105
+107
+105
+100
+92
+83
+74
+73
+78
+91
+111
+138
+171
+186
+194
+198
+199
+198
+194
+190
+186
+181
+171
+157
+140
+121
+101
+78
+67
+59
+55
+52
+51
+51
+51
+50
+50
+50
+51
+51
+51
+51
+52
+52
+52
+52
+52
+51
+51
+51
+50
+50
+50
+50
+50
+50
+50
+50
+50
+49
+49
+49
+49
+49
+48
+48
+48
+48
+48
+48
+48
+48
+48
+49
+49
+49
+50
+50
+50
+50
+51
+51
+52
+52
+53
+54
+56
+57
+58
+59
+60
+62
+69
+83
+102
+123
+145
+161
+164
+164
+161
+154
+144
+138
+132
+119
+92
+38
+15
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+96
+96
+96
+96
+96
+97
+98
+97
+95
+95
+103
+101
+83
+69
+75
+69
+61
+47
+29
+11
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+7
+17
+65
+91
+103
+106
+106
+102
+95
+84
+76
+72
+74
+86
+107
+133
+161
+188
+195
+198
+199
+198
+195
+190
+186
+181
+174
+158
+139
+118
+98
+79
+63
+57
+54
+52
+51
+51
+50
+50
+50
+50
+50
+51
+51
+51
+52
+52
+52
+52
+52
+51
+51
+50
+50
+50
+50
+50
+49
+49
+49
+49
+49
+49
+48
+48
+48
+47
+47
+47
+47
+47
+46
+46
+46
+46
+46
+46
+47
+47
+47
+48
+49
+49
+50
+50
+50
+51
+51
+51
+52
+53
+55
+56
+57
+58
+59
+61
+65
+75
+91
+114
+147
+159
+164
+164
+163
+155
+145
+139
+133
+125
+79
+36
+12
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+96
+96
+96
+96
+96
+97
+99
+99
+98
+95
+96
+103
+90
+72
+66
+65
+53
+36
+19
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+4
+16
+42
+92
+101
+105
+106
+103
+94
+83
+75
+71
+72
+85
+108
+135
+162
+185
+198
+199
+198
+197
+195
+189
+184
+178
+170
+157
+132
+110
+90
+74
+62
+54
+53
+52
+51
+51
+50
+50
+50
+50
+50
+51
+51
+52
+52
+52
+52
+52
+51
+51
+50
+49
+49
+49
+49
+49
+49
+49
+49
+49
+48
+48
+48
+48
+47
+47
+47
+47
+47
+46
+46
+46
+46
+46
+45
+45
+45
+45
+45
+45
+45
+46
+46
+47
+48
+49
+50
+50
+51
+51
+51
+52
+53
+54
+56
+57
+59
+60
+62
+66
+74
+101
+126
+146
+160
+165
+164
+159
+150
+142
+136
+124
+88
+48
+15
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+96
+96
+96
+95
+95
+97
+99
+101
+101
+97
+96
+102
+98
+86
+65
+57
+49
+34
+18
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+10
+30
+64
+99
+104
+105
+103
+99
+87
+77
+72
+72
+76
+101
+129
+156
+179
+194
+199
+199
+197
+195
+191
+184
+178
+169
+157
+139
+111
+91
+75
+63
+56
+53
+52
+51
+51
+50
+50
+50
+50
+50
+51
+52
+52
+52
+52
+52
+52
+51
+50
+50
+49
+49
+49
+49
+49
+49
+49
+49
+49
+48
+48
+48
+48
+47
+47
+47
+47
+47
+47
+47
+47
+46
+46
+46
+46
+46
+45
+45
+45
+45
+45
+45
+45
+45
+46
+46
+48
+49
+50
+50
+51
+51
+52
+52
+53
+54
+57
+58
+60
+62
+65
+77
+95
+117
+138
+156
+164
+163
+159
+152
+143
+133
+117
+85
+47
+13
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+95
+95
+95
+95
+95
+97
+99
+101
+103
+101
+96
+99
+101
+94
+72
+50
+41
+29
+16
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+4
+19
+45
+82
+103
+105
+104
+100
+94
+80
+73
+72
+75
+86
+120
+149
+173
+190
+199
+199
+198
+195
+191
+186
+179
+170
+158
+141
+120
+91
+75
+64
+56
+53
+52
+51
+50
+50
+50
+50
+50
+50
+51
+51
+52
+52
+52
+52
+52
+51
+50
+50
+49
+49
+49
+49
+49
+49
+49
+49
+48
+48
+48
+48
+48
+48
+48
+48
+48
+48
+48
+48
+48
+48
+48
+48
+47
+47
+47
+47
+46
+46
+45
+45
+44
+44
+44
+44
+45
+45
+46
+47
+49
+50
+51
+51
+51
+52
+53
+54
+56
+58
+59
+61
+66
+75
+91
+111
+134
+156
+162
+162
+159
+152
+141
+132
+113
+83
+42
+8
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+95
+95
+95
+95
+95
+97
+99
+101
+104
+104
+98
+98
+100
+98
+84
+48
+34
+22
+13
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+8
+30
+60
+95
+105
+105
+102
+96
+88
+74
+71
+73
+82
+100
+139
+167
+186
+197
+200
+198
+196
+192
+187
+181
+172
+160
+143
+123
+100
+75
+63
+56
+53
+52
+51
+50
+50
+50
+49
+50
+50
+51
+52
+52
+53
+53
+52
+52
+51
+50
+49
+49
+49
+49
+49
+49
+49
+49
+49
+48
+48
+48
+48
+48
+48
+48
+48
+48
+48
+48
+49
+49
+49
+49
+49
+49
+49
+49
+49
+48
+48
+47
+47
+46
+45
+45
+44
+44
+44
+44
+44
+45
+46
+48
+49
+50
+51
+51
+51
+52
+53
+55
+57
+59
+61
+64
+72
+85
+105
+137
+153
+161
+162
+160
+149
+141
+132
+114
+80
+25
+9
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+95
+95
+94
+95
+95
+97
+99
+102
+104
+106
+103
+98
+99
+101
+98
+57
+33
+17
+7
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+15
+43
+76
+101
+106
+103
+98
+91
+81
+70
+70
+77
+92
+117
+159
+183
+195
+200
+200
+196
+193
+188
+183
+176
+164
+147
+126
+104
+82
+63
+56
+53
+52
+51
+50
+50
+49
+49
+49
+50
+51
+52
+52
+53
+53
+53
+52
+51
+50
+49
+49
+49
+49
+49
+49
+49
+49
+49
+48
+48
+48
+48
+48
+48
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+50
+50
+50
+50
+51
+51
+50
+50
+49
+47
+46
+45
+44
+44
+44
+44
+44
+44
+45
+47
+48
+50
+51
+51
+51
+52
+53
+54
+56
+59
+61
+63
+68
+77
+106
+134
+152
+162
+163
+160
+150
+140
+131
+119
+59
+22
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+94
+94
+94
+95
+95
+99
+102
+104
+105
+107
+107
+102
+100
+100
+103
+89
+47
+20
+6
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+5
+27
+61
+92
+104
+105
+100
+93
+83
+73
+68
+74
+88
+111
+142
+182
+194
+200
+200
+198
+193
+188
+182
+175
+167
+147
+125
+102
+82
+65
+55
+53
+52
+51
+50
+49
+49
+49
+49
+50
+51
+52
+53
+53
+53
+53
+52
+51
+50
+49
+49
+49
+49
+49
+49
+49
+49
+49
+48
+48
+48
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+50
+50
+50
+51
+51
+51
+52
+52
+52
+51
+50
+48
+46
+44
+44
+43
+43
+43
+44
+45
+47
+48
+50
+51
+51
+52
+52
+52
+55
+58
+60
+62
+64
+73
+93
+119
+143
+160
+163
+161
+153
+143
+133
+115
+66
+28
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+94
+94
+94
+95
+96
+101
+103
+105
+107
+107
+108
+105
+102
+100
+102
+97
+67
+34
+9
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+9
+39
+72
+97
+104
+104
+96
+87
+78
+70
+69
+79
+99
+127
+160
+191
+198
+200
+198
+195
+190
+183
+177
+168
+157
+131
+108
+87
+70
+58
+53
+52
+51
+50
+49
+49
+49
+49
+50
+51
+52
+53
+53
+53
+53
+52
+51
+50
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+48
+47
+47
+46
+46
+46
+46
+46
+47
+47
+48
+48
+49
+50
+51
+51
+52
+52
+53
+53
+52
+52
+50
+48
+46
+45
+44
+43
+43
+44
+44
+46
+47
+50
+51
+51
+52
+52
+53
+54
+57
+59
+62
+66
+75
+91
+114
+140
+159
+161
+159
+153
+142
+127
+101
+61
+23
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+93
+94
+94
+95
+97
+102
+104
+106
+107
+108
+109
+108
+104
+101
+102
+101
+84
+51
+18
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+16
+51
+81
+100
+103
+102
+92
+82
+74
+69
+72
+87
+113
+144
+176
+198
+200
+199
+196
+192
+186
+179
+171
+160
+145
+115
+92
+74
+62
+55
+52
+51
+50
+50
+49
+49
+49
+50
+50
+52
+53
+53
+53
+53
+53
+51
+50
+50
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+48
+47
+46
+46
+45
+44
+44
+44
+44
+44
+45
+45
+46
+47
+48
+48
+50
+50
+51
+52
+52
+53
+53
+54
+53
+53
+51
+50
+48
+46
+44
+43
+43
+43
+44
+45
+47
+49
+50
+51
+52
+52
+53
+54
+56
+59
+62
+66
+74
+89
+112
+145
+156
+160
+159
+152
+136
+122
+92
+53
+15
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+93
+94
+94
+96
+98
+103
+105
+107
+107
+108
+109
+109
+106
+103
+101
+102
+96
+68
+32
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+25
+63
+88
+102
+103
+99
+88
+78
+72
+69
+75
+97
+127
+160
+188
+202
+200
+198
+194
+189
+181
+174
+164
+150
+131
+99
+79
+65
+56
+53
+51
+51
+50
+49
+49
+49
+49
+50
+51
+53
+53
+54
+53
+53
+52
+51
+50
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+48
+48
+46
+45
+44
+43
+43
+43
+43
+43
+43
+44
+44
+45
+46
+46
+47
+48
+49
+50
+51
+52
+52
+53
+54
+54
+54
+54
+54
+53
+51
+49
+47
+44
+44
+43
+43
+44
+45
+47
+49
+50
+51
+52
+52
+52
+54
+56
+60
+62
+66
+72
+85
+120
+143
+156
+161
+160
+146
+135
+116
+86
+38
+5
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+92
+93
+94
+96
+100
+105
+106
+107
+108
+108
+109
+109
+108
+106
+101
+102
+101
+83
+52
+12
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+5
+33
+74
+95
+102
+103
+95
+83
+75
+70
+69
+80
+109
+143
+174
+197
+203
+199
+195
+191
+185
+177
+168
+155
+138
+116
+84
+68
+58
+54
+52
+51
+50
+49
+49
+49
+49
+50
+51
+52
+53
+54
+54
+53
+52
+51
+50
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+50
+50
+50
+49
+48
+47
+45
+43
+42
+42
+42
+42
+42
+43
+43
+43
+44
+44
+45
+46
+47
+47
+48
+49
+50
+51
+52
+52
+53
+54
+54
+54
+55
+55
+55
+54
+53
+51
+47
+45
+44
+43
+43
+43
+44
+46
+48
+50
+52
+52
+52
+52
+53
+56
+60
+62
+65
+69
+88
+119
+143
+158
+162
+158
+144
+132
+112
+77
+15
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+92
+93
+95
+97
+102
+106
+107
+107
+107
+108
+108
+109
+109
+108
+103
+102
+102
+96
+77
+35
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+8
+49
+83
+98
+101
+101
+90
+79
+73
+70
+71
+91
+128
+162
+188
+201
+202
+196
+192
+187
+180
+170
+158
+142
+121
+96
+69
+59
+54
+52
+51
+50
+49
+48
+48
+48
+49
+51
+52
+53
+54
+54
+53
+53
+52
+50
+49
+49
+49
+49
+49
+49
+49
+49
+49
+49
+50
+50
+50
+50
+49
+47
+44
+43
+42
+41
+42
+42
+42
+43
+43
+44
+45
+46
+47
+47
+48
+49
+49
+49
+50
+50
+51
+51
+52
+52
+53
+54
+54
+54
+55
+55
+55
+55
+55
+54
+52
+50
+47
+45
+43
+43
+43
+44
+45
+47
+50
+51
+52
+52
+52
+53
+55
+58
+62
+64
+69
+83
+109
+137
+157
+161
+157
+145
+131
+118
+57
+20
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+92
+94
+96
+99
+103
+107
+107
+107
+107
+107
+107
+108
+109
+108
+106
+102
+102
+100
+86
+54
+10
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+4
+13
+60
+88
+99
+101
+100
+85
+76
+71
+70
+73
+102
+142
+174
+195
+202
+201
+194
+189
+183
+175
+164
+150
+130
+107
+83
+62
+56
+53
+52
+51
+49
+48
+48
+48
+49
+50
+52
+53
+54
+54
+54
+53
+52
+51
+50
+49
+49
+49
+49
+49
+49
+49
+49
+49
+50
+50
+50
+49
+48
+46
+43
+42
+41
+41
+41
+42
+43
+44
+45
+46
+47
+48
+48
+49
+49
+50
+50
+50
+50
+50
+51
+51
+52
+52
+53
+53
+54
+54
+55
+55
+55
+55
+55
+55
+55
+54
+52
+50
+48
+46
+44
+43
+43
+44
+45
+48
+50
+51
+52
+52
+53
+54
+55
+58
+62
+66
+72
+86
+108
+138
+159
+159
+154
+143
+127
+94
+46
+16
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+92
+94
+96
+100
+104
+107
+107
+107
+107
+106
+106
+107
+108
+109
+108
+103
+103
+102
+94
+73
+17
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+6
+19
+69
+91
+100
+100
+98
+82
+74
+70
+71
+77
+115
+155
+183
+199
+202
+199
+191
+186
+180
+171
+157
+140
+118
+94
+73
+57
+54
+52
+51
+50
+49
+48
+48
+48
+49
+51
+52
+53
+54
+54
+54
+53
+52
+51
+50
+49
+49
+49
+49
+49
+49
+49
+49
+50
+50
+50
+49
+48
+46
+43
+41
+41
+41
+41
+42
+44
+45
+46
+47
+48
+49
+49
+50
+50
+50
+50
+50
+50
+50
+50
+51
+51
+51
+52
+52
+53
+54
+54
+55
+55
+55
+55
+55
+55
+55
+55
+54
+52
+50
+48
+45
+44
+43
+43
+44
+45
+48
+50
+51
+52
+53
+53
+54
+56
+58
+63
+66
+73
+87
+111
+146
+157
+158
+152
+140
+116
+75
+37
+9
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+92
+94
+97
+101
+105
+107
+107
+107
+107
+106
+105
+106
+107
+109
+109
+104
+103
+102
+99
+88
+29
+9
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+8
+25
+77
+94
+100
+99
+95
+78
+72
+69
+72
+82
+128
+167
+190
+201
+202
+196
+188
+182
+176
+166
+150
+129
+106
+83
+64
+54
+53
+51
+50
+49
+48
+48
+48
+49
+50
+51
+53
+53
+54
+54
+53
+52
+51
+50
+50
+49
+49
+49
+49
+49
+49
+49
+50
+50
+50
+50
+48
+46
+43
+41
+40
+41
+42
+43
+44
+46
+48
+48
+49
+49
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+51
+51
+51
+52
+53
+54
+54
+55
+55
+55
+55
+55
+55
+55
+55
+54
+53
+51
+47
+45
+44
+43
+43
+44
+46
+48
+50
+52
+53
+53
+53
+54
+56
+60
+63
+67
+73
+85
+124
+147
+157
+158
+152
+130
+103
+62
+24
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+93
+95
+98
+102
+106
+107
+107
+107
+106
+105
+104
+105
+106
+108
+109
+105
+103
+103
+101
+97
+46
+16
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+11
+32
+84
+96
+100
+98
+93
+75
+70
+68
+73
+89
+141
+177
+196
+202
+201
+193
+186
+179
+172
+162
+141
+118
+94
+73
+59
+53
+52
+51
+50
+48
+48
+48
+48
+49
+50
+52
+53
+53
+54
+54
+53
+52
+51
+50
+50
+50
+49
+49
+49
+49
+49
+50
+50
+50
+50
+49
+46
+43
+41
+40
+40
+41
+43
+45
+47
+48
+49
+49
+49
+50
+50
+50
+50
+50
+50
+51
+51
+51
+50
+50
+50
+50
+49
+49
+49
+50
+51
+53
+53
+54
+55
+55
+55
+55
+55
+55
+55
+55
+54
+53
+50
+47
+45
+44
+43
+43
+44
+46
+48
+50
+52
+53
+53
+54
+54
+57
+61
+64
+67
+71
+93
+127
+149
+160
+160
+142
+126
+90
+47
+10
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+93
+95
+98
+103
+107
+107
+107
+106
+106
+105
+103
+104
+105
+106
+109
+107
+104
+103
+102
+101
+65
+27
+8
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+15
+42
+90
+97
+100
+97
+88
+72
+69
+69
+78
+100
+157
+186
+199
+202
+201
+189
+182
+175
+166
+154
+128
+103
+81
+64
+55
+52
+51
+50
+49
+48
+48
+48
+49
+49
+51
+53
+53
+53
+53
+53
+53
+51
+50
+50
+50
+50
+50
+49
+49
+50
+50
+50
+50
+50
+50
+46
+42
+40
+40
+40
+42
+44
+46
+48
+48
+49
+49
+49
+50
+50
+51
+52
+53
+54
+55
+56
+56
+55
+54
+53
+51
+50
+49
+49
+48
+47
+47
+48
+50
+51
+53
+54
+54
+55
+55
+55
+55
+55
+55
+54
+52
+50
+48
+46
+44
+43
+44
+44
+46
+48
+51
+52
+53
+53
+54
+55
+58
+61
+64
+67
+73
+92
+122
+149
+161
+159
+140
+120
+88
+35
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+94
+95
+99
+103
+107
+107
+107
+106
+105
+104
+103
+103
+104
+105
+108
+107
+104
+103
+102
+102
+78
+34
+11
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+5
+19
+49
+93
+98
+99
+95
+85
+70
+68
+70
+82
+109
+167
+190
+200
+201
+199
+186
+179
+171
+161
+147
+118
+93
+73
+59
+54
+52
+51
+50
+48
+48
+48
+48
+49
+50
+51
+53
+53
+53
+53
+53
+52
+51
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+48
+42
+40
+40
+40
+41
+44
+46
+47
+48
+48
+49
+49
+50
+51
+53
+58
+62
+67
+71
+74
+77
+77
+76
+74
+71
+65
+60
+56
+52
+49
+47
+47
+47
+47
+48
+50
+51
+53
+54
+54
+55
+55
+55
+55
+54
+53
+52
+50
+47
+45
+44
+44
+44
+45
+46
+49
+51
+52
+53
+54
+55
+57
+59
+62
+65
+69
+78
+99
+126
+154
+161
+153
+136
+108
+68
+15
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+94
+95
+99
+103
+107
+107
+107
+106
+105
+103
+103
+103
+103
+105
+108
+108
+104
+103
+103
+102
+87
+42
+15
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+7
+23
+55
+94
+98
+98
+94
+83
+69
+68
+72
+87
+118
+175
+194
+201
+201
+197
+183
+176
+168
+156
+139
+108
+85
+67
+56
+53
+51
+50
+49
+48
+48
+48
+48
+49
+50
+51
+53
+53
+53
+53
+53
+52
+51
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+49
+45
+40
+39
+39
+40
+42
+46
+47
+48
+48
+48
+49
+51
+53
+58
+64
+73
+80
+86
+91
+96
+100
+101
+101
+100
+97
+91
+84
+76
+69
+61
+54
+50
+48
+46
+47
+48
+49
+51
+52
+53
+54
+54
+54
+54
+54
+54
+53
+51
+49
+47
+45
+44
+44
+44
+45
+48
+50
+52
+53
+53
+54
+56
+58
+60
+63
+67
+71
+82
+103
+134
+160
+159
+147
+127
+99
+34
+12
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+94
+96
+99
+104
+107
+107
+107
+106
+104
+103
+102
+102
+103
+104
+108
+108
+104
+103
+103
+102
+93
+50
+20
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+2
+2
+2
+2
+2
+2
+2
+2
+2
+2
+2
+3
+5
+6
+7
+7
+6
+5
+3
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+8
+26
+61
+95
+98
+98
+93
+81
+69
+68
+73
+91
+126
+183
+196
+201
+200
+195
+181
+173
+164
+151
+131
+99
+77
+62
+55
+53
+51
+50
+49
+48
+48
+48
+49
+49
+50
+51
+52
+53
+53
+53
+53
+51
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+49
+47
+42
+39
+39
+40
+41
+44
+47
+47
+48
+48
+48
+50
+54
+60
+68
+77
+88
+96
+102
+108
+112
+117
+119
+121
+121
+121
+117
+111
+103
+94
+83
+69
+61
+54
+50
+47
+47
+48
+49
+50
+52
+53
+53
+54
+54
+54
+54
+53
+52
+50
+48
+46
+44
+44
+44
+44
+46
+49
+51
+52
+53
+54
+55
+57
+59
+62
+66
+68
+72
+84
+108
+150
+159
+155
+142
+122
+61
+25
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+94
+96
+99
+104
+107
+107
+107
+106
+104
+103
+102
+102
+102
+104
+108
+108
+105
+103
+103
+103
+97
+58
+25
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+3
+4
+5
+6
+6
+6
+6
+5
+5
+4
+4
+4
+6
+8
+14
+18
+21
+21
+19
+14
+9
+5
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+10
+29
+67
+96
+98
+97
+91
+79
+68
+68
+75
+95
+134
+189
+198
+202
+199
+192
+179
+170
+160
+145
+123
+90
+70
+59
+54
+52
+51
+49
+48
+48
+48
+48
+49
+50
+50
+51
+52
+52
+53
+53
+52
+51
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+48
+45
+40
+39
+39
+40
+43
+46
+47
+47
+47
+48
+49
+54
+62
+71
+82
+90
+98
+103
+108
+112
+116
+120
+123
+125
+127
+129
+131
+131
+129
+124
+114
+96
+82
+69
+58
+50
+47
+47
+47
+48
+50
+52
+52
+53
+53
+54
+54
+53
+53
+51
+50
+47
+45
+44
+44
+44
+45
+47
+50
+52
+53
+54
+54
+56
+58
+61
+65
+68
+70
+74
+82
+127
+153
+161
+154
+134
+93
+44
+15
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+94
+96
+99
+103
+107
+107
+107
+106
+104
+102
+102
+102
+102
+104
+108
+108
+105
+103
+103
+103
+100
+65
+30
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+5
+9
+14
+23
+30
+36
+41
+44
+45
+44
+41
+37
+33
+28
+27
+28
+32
+41
+57
+69
+76
+79
+79
+71
+57
+41
+25
+12
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+12
+34
+74
+97
+98
+96
+90
+77
+68
+68
+76
+99
+143
+193
+200
+202
+198
+189
+176
+167
+154
+137
+113
+80
+64
+56
+53
+52
+50
+49
+48
+48
+48
+48
+49
+50
+51
+51
+52
+52
+52
+52
+52
+51
+50
+50
+50
+50
+50
+50
+50
+50
+50
+51
+49
+46
+42
+39
+38
+39
+42
+45
+46
+47
+47
+47
+49
+53
+63
+73
+81
+87
+92
+99
+103
+107
+109
+112
+115
+118
+121
+125
+128
+132
+133
+134
+134
+134
+130
+119
+104
+88
+71
+56
+50
+48
+47
+48
+50
+51
+52
+53
+53
+53
+53
+53
+52
+51
+49
+47
+45
+44
+43
+44
+46
+48
+50
+53
+54
+54
+55
+57
+59
+65
+67
+69
+70
+73
+90
+129
+152
+160
+156
+125
+77
+37
+10
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+94
+95
+99
+103
+107
+107
+107
+106
+105
+103
+102
+102
+103
+105
+108
+108
+104
+102
+102
+103
+101
+69
+33
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+3
+10
+20
+32
+44
+55
+65
+70
+74
+77
+79
+80
+79
+78
+76
+73
+69
+65
+64
+67
+73
+85
+91
+95
+97
+98
+96
+90
+82
+70
+53
+25
+12
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+14
+38
+78
+97
+98
+96
+89
+76
+67
+68
+77
+102
+149
+195
+200
+202
+197
+187
+174
+164
+150
+131
+106
+74
+61
+54
+52
+52
+50
+48
+48
+48
+48
+48
+49
+50
+50
+51
+51
+52
+52
+52
+52
+51
+50
+50
+50
+50
+50
+50
+50
+50
+51
+50
+48
+44
+40
+38
+38
+40
+43
+46
+46
+46
+47
+48
+51
+57
+68
+75
+81
+87
+90
+92
+91
+89
+87
+86
+86
+89
+93
+98
+105
+116
+123
+129
+133
+135
+135
+132
+126
+116
+100
+76
+63
+54
+49
+47
+48
+50
+51
+52
+52
+53
+53
+53
+52
+52
+50
+48
+46
+45
+44
+44
+45
+47
+49
+52
+54
+54
+55
+56
+58
+63
+67
+69
+70
+72
+79
+105
+135
+158
+161
+138
+104
+61
+23
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+94
+95
+98
+103
+107
+107
+107
+107
+105
+103
+103
+102
+104
+106
+109
+108
+103
+102
+102
+104
+102
+72
+35
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+5
+12
+23
+41
+53
+64
+73
+80
+86
+88
+90
+92
+93
+94
+94
+93
+93
+92
+90
+88
+88
+89
+92
+98
+101
+103
+105
+105
+105
+104
+101
+95
+85
+64
+43
+23
+9
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+4
+16
+42
+81
+97
+98
+96
+88
+75
+67
+68
+78
+104
+152
+196
+201
+202
+197
+185
+172
+162
+146
+125
+99
+69
+59
+54
+52
+51
+49
+48
+48
+48
+48
+49
+49
+50
+50
+51
+51
+51
+52
+51
+51
+51
+50
+50
+50
+50
+50
+50
+50
+51
+51
+50
+47
+43
+39
+38
+38
+41
+44
+46
+46
+46
+46
+49
+53
+60
+70
+75
+79
+81
+80
+75
+70
+67
+64
+62
+62
+64
+66
+70
+75
+86
+96
+106
+117
+127
+135
+137
+136
+132
+124
+103
+84
+68
+57
+50
+48
+49
+50
+51
+52
+53
+53
+53
+52
+52
+50
+49
+47
+45
+44
+44
+44
+46
+48
+51
+53
+54
+54
+55
+57
+61
+67
+70
+71
+72
+74
+87
+115
+145
+162
+152
+125
+85
+42
+11
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+93
+95
+98
+102
+107
+107
+107
+107
+106
+104
+103
+103
+105
+107
+109
+108
+103
+101
+102
+104
+103
+74
+37
+7
+2
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+4
+11
+22
+36
+53
+74
+83
+88
+90
+91
+91
+91
+91
+92
+93
+94
+95
+96
+96
+97
+99
+99
+99
+100
+101
+103
+104
+105
+105
+106
+106
+106
+105
+105
+104
+97
+79
+54
+29
+9
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+4
+19
+45
+84
+98
+98
+95
+88
+74
+67
+68
+79
+106
+155
+197
+202
+202
+196
+183
+170
+159
+142
+120
+93
+65
+57
+53
+52
+51
+49
+48
+48
+48
+48
+49
+49
+50
+50
+51
+51
+51
+51
+51
+51
+51
+50
+50
+50
+50
+50
+50
+50
+51
+51
+50
+46
+41
+38
+37
+39
+42
+45
+46
+46
+46
+47
+49
+55
+61
+69
+73
+73
+71
+65
+56
+52
+49
+47
+47
+47
+47
+48
+49
+51
+57
+65
+76
+90
+105
+123
+131
+136
+139
+139
+128
+110
+90
+71
+57
+49
+49
+49
+50
+51
+52
+52
+53
+52
+52
+51
+49
+48
+46
+45
+44
+44
+45
+47
+50
+53
+54
+54
+55
+56
+60
+66
+70
+73
+73
+73
+76
+95
+125
+157
+162
+142
+107
+66
+23
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+93
+95
+97
+101
+106
+107
+107
+108
+107
+105
+104
+105
+107
+109
+109
+106
+101
+101
+102
+105
+103
+75
+38
+8
+3
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+13
+34
+57
+77
+87
+90
+91
+92
+91
+90
+86
+84
+84
+83
+84
+87
+90
+93
+95
+98
+100
+101
+102
+103
+103
+104
+105
+105
+105
+105
+105
+105
+106
+106
+106
+105
+103
+93
+69
+28
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+4
+21
+48
+85
+98
+98
+95
+88
+74
+67
+67
+79
+107
+156
+198
+202
+201
+195
+182
+168
+157
+138
+115
+88
+62
+56
+53
+52
+51
+49
+48
+48
+48
+48
+49
+49
+50
+50
+50
+51
+51
+51
+51
+51
+51
+50
+50
+50
+50
+50
+50
+51
+51
+51
+49
+44
+40
+38
+37
+39
+43
+45
+46
+46
+46
+47
+50
+55
+61
+67
+67
+64
+57
+48
+45
+44
+44
+43
+43
+44
+44
+44
+44
+45
+45
+47
+50
+55
+66
+92
+114
+129
+139
+142
+142
+135
+118
+95
+71
+53
+50
+49
+49
+50
+52
+52
+52
+52
+52
+51
+50
+49
+47
+45
+44
+44
+45
+46
+49
+53
+54
+54
+55
+56
+59
+64
+70
+74
+76
+74
+74
+80
+101
+144
+164
+152
+128
+92
+41
+7
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+92
+95
+97
+100
+106
+107
+107
+108
+108
+108
+107
+108
+108
+109
+109
+103
+100
+100
+102
+105
+102
+73
+37
+9
+6
+7
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+4
+13
+31
+68
+82
+88
+90
+91
+88
+82
+75
+70
+65
+62
+61
+61
+62
+64
+68
+73
+79
+86
+93
+100
+102
+103
+104
+104
+104
+103
+103
+103
+102
+102
+102
+102
+103
+104
+105
+105
+104
+100
+90
+30
+10
+2
+1
+1
+3
+3
+2
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+5
+23
+51
+85
+98
+98
+95
+88
+75
+67
+67
+79
+107
+156
+198
+202
+201
+195
+181
+165
+153
+134
+109
+83
+59
+55
+52
+51
+50
+48
+48
+48
+48
+48
+49
+50
+50
+50
+50
+50
+51
+51
+51
+51
+51
+51
+50
+50
+50
+50
+51
+51
+51
+51
+49
+43
+39
+37
+37
+40
+44
+45
+45
+45
+45
+46
+50
+54
+59
+59
+57
+51
+46
+44
+43
+43
+43
+43
+43
+43
+43
+43
+44
+44
+44
+44
+44
+45
+46
+51
+64
+85
+110
+133
+143
+145
+142
+131
+108
+73
+59
+52
+49
+50
+51
+52
+52
+52
+52
+52
+51
+49
+48
+46
+45
+44
+44
+45
+47
+51
+53
+54
+55
+55
+58
+62
+69
+75
+80
+79
+76
+76
+83
+103
+158
+163
+151
+121
+75
+20
+7
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+92
+94
+96
+99
+106
+107
+107
+108
+108
+108
+109
+109
+109
+109
+108
+101
+100
+100
+102
+105
+101
+69
+36
+12
+9
+9
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+11
+29
+50
+69
+82
+87
+88
+86
+82
+74
+69
+65
+62
+60
+58
+57
+58
+59
+61
+65
+70
+77
+85
+93
+100
+101
+102
+102
+102
+103
+102
+102
+102
+102
+101
+100
+99
+99
+99
+101
+102
+103
+103
+100
+73
+34
+12
+2
+1
+2
+7
+9
+8
+5
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+5
+24
+52
+85
+98
+98
+95
+88
+75
+67
+68
+78
+106
+156
+198
+202
+201
+194
+180
+164
+151
+131
+105
+79
+58
+54
+52
+51
+50
+48
+48
+48
+48
+49
+49
+50
+50
+50
+50
+50
+50
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+48
+42
+38
+37
+37
+41
+44
+45
+45
+45
+45
+46
+49
+53
+55
+55
+51
+47
+44
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+44
+44
+44
+44
+44
+44
+46
+50
+59
+74
+97
+130
+141
+145
+142
+133
+101
+76
+61
+52
+50
+50
+51
+52
+52
+52
+52
+51
+50
+49
+47
+45
+44
+44
+45
+46
+51
+53
+54
+55
+55
+57
+61
+67
+73
+81
+83
+80
+77
+78
+85
+140
+159
+156
+136
+103
+38
+14
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+91
+94
+96
+98
+105
+107
+107
+107
+108
+109
+109
+109
+109
+108
+106
+100
+99
+100
+102
+104
+99
+65
+35
+15
+13
+12
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+20
+39
+57
+73
+84
+86
+85
+82
+78
+73
+66
+63
+60
+58
+57
+56
+56
+57
+58
+60
+64
+70
+77
+85
+94
+100
+101
+101
+102
+102
+102
+102
+101
+100
+98
+97
+96
+95
+95
+95
+96
+97
+99
+101
+103
+95
+66
+36
+11
+3
+3
+8
+15
+20
+19
+12
+5
+2
+1
+1
+1
+1
+1
+1
+1
+1
+5
+24
+52
+85
+98
+98
+95
+88
+76
+67
+68
+77
+103
+154
+198
+202
+201
+194
+180
+164
+150
+128
+103
+76
+57
+54
+52
+51
+50
+48
+48
+48
+48
+49
+49
+50
+50
+50
+50
+50
+50
+50
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+48
+41
+38
+37
+37
+41
+44
+45
+45
+45
+45
+45
+48
+50
+51
+51
+47
+45
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+44
+47
+54
+67
+101
+125
+139
+146
+145
+126
+99
+76
+59
+52
+50
+51
+51
+52
+52
+52
+52
+51
+49
+48
+45
+45
+44
+45
+46
+50
+53
+54
+55
+55
+56
+60
+65
+72
+81
+86
+84
+81
+78
+77
+113
+148
+159
+150
+127
+61
+26
+8
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+89
+93
+95
+97
+104
+106
+106
+107
+108
+109
+109
+109
+108
+106
+103
+99
+98
+100
+103
+104
+96
+60
+33
+18
+17
+13
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+8
+19
+47
+69
+79
+82
+83
+82
+79
+74
+70
+67
+63
+61
+59
+58
+57
+56
+56
+56
+58
+60
+65
+71
+78
+87
+95
+101
+101
+102
+102
+103
+102
+100
+97
+95
+93
+91
+90
+90
+91
+92
+93
+93
+95
+97
+101
+102
+93
+66
+34
+11
+5
+7
+17
+29
+36
+29
+17
+8
+3
+1
+1
+1
+1
+1
+1
+1
+5
+23
+52
+85
+98
+98
+95
+89
+76
+67
+68
+76
+100
+151
+198
+202
+202
+194
+180
+163
+149
+126
+100
+74
+56
+53
+52
+51
+50
+48
+48
+48
+49
+49
+50
+50
+50
+50
+50
+50
+50
+50
+50
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+48
+41
+38
+37
+37
+41
+43
+44
+44
+44
+44
+45
+47
+48
+49
+48
+45
+44
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+45
+48
+68
+99
+124
+141
+148
+144
+123
+97
+72
+56
+51
+51
+51
+52
+52
+52
+52
+51
+50
+48
+46
+45
+45
+45
+45
+49
+52
+54
+55
+55
+56
+59
+65
+72
+81
+88
+88
+85
+81
+76
+88
+132
+156
+161
+145
+86
+42
+15
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+88
+93
+95
+97
+102
+106
+106
+106
+106
+108
+108
+108
+107
+104
+99
+97
+97
+100
+103
+104
+93
+55
+32
+22
+20
+11
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+8
+24
+56
+77
+81
+82
+81
+78
+72
+70
+68
+66
+64
+63
+61
+59
+58
+57
+56
+56
+57
+59
+62
+67
+72
+79
+88
+96
+103
+105
+105
+104
+103
+99
+94
+90
+87
+85
+84
+84
+85
+87
+90
+92
+92
+93
+93
+95
+101
+102
+97
+76
+32
+10
+11
+15
+26
+50
+53
+40
+22
+7
+2
+1
+1
+1
+1
+1
+1
+4
+22
+50
+83
+98
+98
+96
+89
+77
+67
+67
+74
+97
+146
+198
+203
+202
+195
+180
+163
+148
+125
+99
+73
+56
+53
+52
+51
+50
+48
+48
+48
+49
+49
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+48
+41
+38
+36
+37
+41
+43
+44
+44
+44
+44
+44
+45
+47
+47
+46
+44
+44
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+43
+42
+42
+42
+42
+42
+42
+42
+42
+43
+43
+47
+67
+97
+127
+145
+149
+142
+120
+92
+65
+52
+51
+51
+51
+52
+52
+52
+51
+50
+49
+46
+45
+45
+45
+45
+48
+51
+54
+55
+55
+56
+58
+64
+71
+79
+90
+91
+89
+85
+79
+77
+115
+148
+165
+157
+113
+61
+26
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+85
+92
+94
+96
+100
+106
+106
+106
+105
+105
+106
+106
+104
+100
+96
+96
+97
+100
+103
+103
+84
+50
+32
+25
+22
+8
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+18
+46
+72
+80
+79
+75
+73
+72
+71
+69
+68
+67
+66
+65
+64
+63
+61
+59
+57
+56
+56
+59
+62
+66
+70
+78
+89
+99
+106
+107
+106
+104
+100
+95
+86
+83
+81
+80
+80
+80
+81
+83
+86
+89
+91
+92
+92
+92
+93
+94
+100
+102
+101
+96
+53
+30
+23
+26
+32
+64
+66
+58
+39
+12
+2
+1
+1
+1
+1
+1
+3
+18
+44
+79
+97
+98
+96
+91
+79
+67
+67
+72
+91
+136
+195
+202
+202
+196
+182
+164
+147
+124
+98
+71
+55
+53
+52
+51
+49
+49
+48
+49
+49
+49
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+48
+42
+38
+36
+36
+40
+42
+44
+44
+44
+44
+44
+44
+45
+45
+45
+44
+44
+44
+44
+44
+44
+44
+44
+43
+43
+43
+42
+42
+42
+42
+42
+41
+40
+40
+39
+40
+40
+41
+42
+43
+46
+63
+91
+128
+147
+148
+141
+123
+90
+59
+53
+51
+51
+52
+52
+52
+52
+51
+49
+47
+46
+45
+45
+45
+47
+51
+53
+55
+55
+56
+57
+63
+70
+77
+90
+93
+94
+92
+85
+76
+87
+123
+157
+164
+142
+92
+48
+16
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+83
+92
+94
+95
+98
+106
+106
+106
+104
+103
+103
+103
+100
+97
+96
+95
+98
+101
+103
+102
+76
+46
+32
+26
+21
+5
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+24
+52
+69
+76
+76
+74
+73
+72
+72
+73
+71
+69
+68
+67
+67
+66
+64
+61
+59
+57
+57
+58
+62
+66
+70
+80
+92
+100
+105
+107
+106
+103
+97
+91
+85
+80
+78
+76
+75
+74
+75
+77
+80
+83
+87
+91
+92
+92
+92
+93
+94
+96
+99
+101
+101
+89
+71
+51
+36
+37
+51
+65
+67
+59
+40
+9
+3
+1
+1
+1
+1
+2
+15
+39
+75
+97
+98
+97
+92
+81
+68
+67
+70
+87
+127
+191
+202
+203
+197
+183
+165
+148
+125
+98
+71
+55
+53
+52
+51
+49
+49
+48
+49
+49
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+49
+42
+38
+36
+36
+39
+42
+43
+44
+43
+43
+43
+44
+44
+45
+45
+45
+44
+44
+44
+44
+44
+44
+44
+43
+43
+42
+42
+42
+41
+41
+41
+40
+39
+38
+37
+37
+38
+39
+41
+42
+44
+51
+68
+101
+139
+146
+146
+136
+113
+72
+59
+53
+52
+52
+52
+52
+52
+51
+50
+48
+46
+45
+45
+45
+47
+50
+53
+55
+55
+56
+57
+62
+70
+77
+89
+94
+97
+95
+91
+79
+80
+108
+142
+165
+155
+115
+69
+28
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+81
+91
+94
+95
+97
+105
+106
+106
+105
+102
+101
+100
+98
+96
+95
+96
+99
+101
+102
+99
+67
+44
+32
+26
+17
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+6
+18
+52
+70
+75
+75
+73
+74
+77
+77
+76
+75
+73
+70
+69
+69
+68
+66
+64
+61
+59
+58
+59
+62
+67
+72
+78
+90
+100
+105
+107
+106
+102
+96
+89
+83
+78
+73
+71
+69
+68
+68
+70
+72
+76
+80
+84
+90
+91
+92
+92
+93
+94
+95
+96
+99
+101
+101
+93
+79
+64
+51
+50
+61
+68
+68
+60
+28
+11
+3
+1
+1
+1
+2
+11
+32
+69
+95
+97
+97
+93
+83
+68
+67
+69
+83
+117
+186
+200
+204
+198
+185
+166
+149
+126
+99
+72
+55
+53
+51
+51
+49
+49
+49
+49
+49
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+50
+43
+39
+36
+36
+38
+41
+42
+43
+43
+43
+43
+43
+44
+44
+45
+44
+44
+44
+44
+44
+44
+44
+43
+43
+42
+42
+41
+40
+40
+40
+40
+39
+38
+37
+36
+35
+35
+36
+38
+41
+42
+45
+54
+75
+124
+141
+147
+143
+131
+89
+67
+56
+52
+52
+52
+52
+52
+52
+51
+48
+47
+45
+45
+45
+46
+50
+53
+55
+56
+56
+57
+62
+69
+77
+87
+95
+98
+98
+96
+84
+79
+94
+123
+161
+161
+135
+90
+44
+12
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+79
+90
+94
+94
+95
+104
+105
+106
+105
+102
+99
+98
+97
+96
+96
+97
+100
+101
+100
+93
+59
+41
+31
+24
+12
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+6
+18
+42
+74
+75
+74
+72
+75
+80
+84
+85
+82
+76
+73
+71
+70
+69
+68
+66
+64
+61
+60
+60
+63
+67
+72
+78
+86
+99
+104
+106
+105
+103
+95
+87
+81
+75
+71
+66
+63
+62
+62
+63
+65
+68
+72
+76
+81
+88
+90
+92
+92
+93
+95
+95
+95
+96
+98
+100
+100
+98
+90
+71
+60
+60
+66
+71
+72
+51
+25
+9
+3
+1
+1
+1
+8
+26
+61
+94
+97
+97
+94
+86
+70
+67
+68
+79
+107
+179
+198
+204
+199
+187
+167
+150
+127
+100
+73
+55
+53
+51
+51
+49
+49
+49
+49
+49
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+50
+51
+51
+51
+51
+51
+51
+51
+51
+51
+50
+45
+40
+37
+36
+37
+39
+41
+42
+43
+43
+43
+43
+43
+44
+44
+44
+44
+44
+44
+44
+44
+43
+43
+42
+41
+40
+40
+40
+39
+39
+39
+38
+38
+37
+34
+33
+33
+33
+35
+40
+41
+43
+46
+55
+103
+132
+144
+147
+143
+108
+78
+61
+53
+52
+52
+52
+52
+52
+51
+49
+47
+46
+45
+45
+46
+49
+53
+55
+56
+56
+57
+61
+68
+77
+86
+94
+99
+100
+100
+90
+81
+84
+106
+153
+164
+150
+111
+64
+21
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+77
+90
+94
+94
+94
+102
+105
+106
+105
+102
+99
+97
+96
+96
+96
+98
+100
+101
+97
+86
+50
+37
+29
+20
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+16
+39
+71
+76
+72
+70
+74
+84
+92
+92
+90
+86
+77
+73
+71
+70
+70
+68
+66
+64
+63
+62
+62
+66
+70
+77
+85
+94
+104
+105
+105
+103
+96
+84
+78
+72
+67
+61
+58
+58
+59
+60
+61
+62
+64
+67
+72
+77
+85
+89
+91
+92
+93
+95
+96
+96
+95
+94
+94
+95
+95
+94
+93
+77
+69
+67
+71
+76
+73
+46
+22
+6
+2
+1
+1
+5
+19
+52
+91
+96
+97
+95
+89
+72
+67
+67
+75
+96
+170
+196
+205
+201
+190
+170
+152
+129
+102
+75
+55
+53
+51
+51
+49
+49
+49
+49
+49
+50
+50
+50
+50
+50
+50
+50
+49
+49
+50
+50
+50
+51
+51
+51
+51
+51
+51
+51
+51
+51
+51
+46
+41
+37
+36
+37
+38
+40
+41
+42
+43
+43
+43
+43
+43
+43
+44
+44
+44
+44
+44
+43
+42
+41
+40
+40
+40
+39
+39
+39
+39
+38
+38
+37
+36
+33
+32
+31
+31
+32
+37
+40
+42
+44
+46
+78
+119
+140
+147
+147
+126
+91
+68
+55
+52
+52
+52
+52
+52
+52
+49
+47
+46
+45
+45
+46
+49
+52
+55
+56
+56
+57
+61
+67
+77
+86
+93
+99
+102
+102
+96
+84
+81
+95
+138
+164
+159
+130
+86
+34
+5
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+75
+89
+93
+93
+94
+99
+103
+105
+106
+105
+100
+98
+97
+97
+97
+100
+100
+99
+92
+74
+43
+30
+22
+14
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+15
+43
+68
+75
+71
+70
+77
+87
+98
+101
+100
+95
+88
+81
+74
+73
+73
+72
+71
+67
+65
+64
+64
+66
+74
+85
+95
+103
+107
+106
+101
+95
+87
+79
+71
+65
+59
+56
+55
+56
+56
+56
+56
+55
+56
+57
+60
+64
+69
+77
+84
+88
+90
+92
+94
+97
+98
+98
+98
+97
+95
+93
+92
+91
+90
+83
+77
+74
+75
+79
+75
+54
+28
+7
+1
+1
+3
+12
+36
+84
+94
+97
+96
+92
+75
+69
+67
+71
+83
+155
+190
+204
+203
+193
+173
+156
+133
+106
+78
+56
+53
+51
+51
+50
+49
+49
+49
+49
+50
+50
+50
+50
+50
+50
+50
+49
+49
+50
+50
+50
+51
+51
+52
+52
+51
+51
+51
+51
+52
+51
+49
+44
+39
+37
+37
+38
+38
+39
+39
+41
+42
+42
+43
+43
+43
+43
+43
+43
+42
+41
+40
+40
+40
+40
+40
+40
+40
+40
+39
+39
+39
+38
+37
+36
+33
+31
+29
+29
+29
+33
+38
+41
+43
+44
+56
+96
+127
+145
+147
+140
+109
+81
+60
+53
+52
+52
+52
+52
+52
+50
+48
+47
+46
+46
+46
+49
+52
+55
+56
+56
+57
+60
+67
+76
+86
+91
+98
+102
+103
+102
+90
+83
+87
+109
+160
+161
+147
+114
+58
+12
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+73
+88
+93
+93
+93
+97
+101
+104
+106
+106
+102
+101
+100
+99
+99
+100
+100
+96
+85
+65
+35
+25
+17
+9
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+9
+37
+59
+72
+73
+70
+74
+85
+96
+104
+106
+104
+99
+93
+87
+81
+79
+77
+75
+72
+68
+67
+69
+74
+84
+93
+99
+101
+102
+102
+95
+88
+83
+77
+70
+59
+56
+53
+52
+51
+51
+50
+51
+51
+53
+54
+55
+57
+59
+63
+70
+77
+82
+86
+89
+92
+95
+97
+98
+99
+99
+99
+98
+97
+95
+93
+90
+84
+78
+76
+78
+77
+69
+51
+23
+3
+1
+2
+8
+24
+74
+91
+96
+96
+94
+79
+70
+67
+69
+77
+139
+182
+202
+204
+196
+177
+160
+137
+110
+81
+57
+53
+51
+51
+50
+49
+49
+49
+49
+50
+50
+51
+50
+50
+50
+50
+49
+49
+49
+50
+50
+51
+51
+52
+52
+52
+51
+51
+51
+52
+52
+50
+46
+41
+38
+37
+38
+38
+38
+38
+39
+40
+40
+41
+41
+42
+42
+41
+41
+40
+39
+39
+39
+40
+40
+40
+41
+41
+42
+42
+42
+42
+41
+40
+38
+34
+31
+29
+28
+28
+31
+36
+40
+42
+44
+51
+82
+116
+141
+147
+143
+120
+91
+66
+54
+53
+53
+53
+52
+52
+51
+49
+47
+46
+46
+46
+49
+52
+55
+56
+57
+57
+60
+66
+76
+85
+90
+96
+101
+104
+103
+95
+86
+84
+94
+151
+159
+154
+130
+80
+21
+7
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+72
+87
+93
+93
+92
+95
+98
+103
+106
+106
+104
+102
+101
+101
+101
+101
+99
+91
+75
+53
+27
+20
+12
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+24
+53
+68
+73
+71
+70
+80
+92
+102
+107
+108
+105
+101
+97
+91
+86
+83
+81
+77
+74
+72
+77
+82
+89
+96
+101
+101
+98
+95
+92
+85
+78
+70
+63
+57
+51
+48
+47
+45
+44
+44
+44
+46
+48
+50
+52
+53
+54
+55
+57
+63
+69
+75
+81
+84
+87
+90
+93
+95
+98
+100
+101
+101
+100
+99
+97
+96
+92
+88
+83
+80
+79
+76
+67
+45
+11
+4
+2
+5
+15
+62
+86
+95
+96
+95
+82
+72
+67
+68
+73
+122
+173
+198
+205
+199
+180
+164
+141
+115
+85
+59
+54
+52
+51
+50
+49
+49
+49
+49
+50
+51
+51
+51
+50
+50
+50
+50
+49
+50
+50
+50
+51
+51
+52
+52
+52
+51
+51
+51
+52
+52
+51
+49
+44
+39
+38
+38
+38
+38
+38
+38
+38
+39
+39
+39
+40
+39
+39
+39
+39
+39
+39
+40
+40
+41
+43
+44
+44
+45
+45
+46
+46
+45
+44
+42
+37
+32
+29
+28
+28
+29
+34
+39
+42
+43
+48
+71
+105
+136
+147
+145
+128
+101
+73
+56
+53
+53
+53
+53
+52
+51
+49
+47
+46
+46
+47
+49
+52
+55
+56
+57
+57
+60
+66
+76
+85
+89
+94
+99
+104
+104
+99
+90
+83
+86
+138
+156
+158
+142
+102
+33
+12
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+71
+87
+92
+92
+92
+93
+96
+101
+105
+106
+105
+103
+102
+102
+102
+101
+96
+83
+64
+40
+20
+14
+8
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+8
+44
+65
+73
+72
+69
+73
+87
+98
+106
+109
+108
+106
+103
+100
+95
+90
+87
+84
+82
+80
+81
+89
+95
+100
+101
+100
+96
+90
+85
+79
+72
+65
+57
+51
+46
+44
+42
+40
+38
+37
+37
+39
+41
+43
+46
+48
+50
+51
+52
+53
+56
+61
+67
+73
+78
+82
+85
+87
+91
+94
+98
+100
+101
+102
+101
+101
+100
+99
+97
+92
+84
+82
+80
+76
+66
+26
+10
+3
+4
+8
+48
+79
+93
+96
+96
+86
+74
+68
+67
+70
+107
+161
+192
+205
+202
+185
+168
+146
+120
+90
+61
+55
+52
+51
+50
+49
+49
+49
+49
+50
+51
+51
+51
+51
+50
+50
+50
+50
+50
+50
+50
+51
+51
+52
+52
+52
+52
+51
+51
+51
+52
+52
+51
+48
+42
+39
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+39
+40
+41
+42
+44
+45
+46
+47
+47
+48
+49
+49
+49
+49
+47
+41
+34
+30
+28
+28
+29
+33
+38
+41
+43
+46
+63
+96
+130
+146
+146
+134
+108
+79
+58
+53
+53
+53
+53
+53
+51
+49
+48
+47
+47
+47
+50
+53
+55
+57
+57
+58
+60
+66
+75
+85
+88
+93
+97
+103
+104
+102
+93
+85
+84
+122
+151
+160
+150
+123
+48
+18
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+70
+86
+92
+92
+91
+91
+92
+98
+104
+106
+105
+104
+103
+103
+102
+101
+88
+71
+50
+28
+13
+9
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+6
+19
+63
+72
+73
+71
+69
+76
+92
+103
+108
+110
+108
+107
+105
+102
+99
+95
+92
+91
+90
+91
+96
+98
+99
+99
+98
+93
+89
+83
+75
+65
+52
+46
+43
+42
+40
+37
+35
+35
+34
+34
+34
+35
+36
+38
+40
+44
+46
+48
+48
+49
+50
+53
+58
+65
+71
+78
+80
+82
+84
+87
+94
+98
+101
+102
+102
+101
+101
+100
+99
+98
+91
+86
+83
+81
+78
+51
+20
+7
+4
+5
+32
+69
+88
+96
+96
+89
+77
+70
+67
+68
+92
+147
+185
+204
+204
+189
+173
+152
+126
+96
+64
+56
+52
+51
+50
+49
+49
+49
+49
+50
+51
+51
+51
+51
+51
+50
+50
+50
+50
+50
+50
+51
+51
+52
+52
+52
+52
+51
+51
+51
+52
+52
+52
+50
+47
+40
+39
+39
+39
+39
+38
+38
+38
+38
+38
+38
+38
+38
+38
+39
+41
+43
+44
+46
+47
+47
+48
+48
+48
+48
+49
+51
+52
+52
+51
+46
+38
+32
+28
+28
+29
+33
+38
+41
+43
+45
+58
+89
+124
+145
+146
+138
+114
+85
+61
+54
+53
+53
+53
+53
+52
+50
+48
+47
+47
+47
+50
+53
+56
+57
+57
+58
+61
+66
+75
+85
+88
+91
+95
+101
+104
+103
+96
+87
+83
+107
+145
+159
+156
+140
+66
+27
+8
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+69
+86
+91
+91
+91
+89
+88
+92
+98
+105
+106
+105
+105
+103
+101
+89
+71
+50
+30
+14
+7
+5
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+4
+16
+42
+73
+75
+72
+68
+68
+79
+95
+104
+109
+109
+109
+108
+107
+106
+105
+103
+102
+101
+100
+100
+99
+98
+97
+93
+86
+72
+63
+55
+48
+43
+40
+38
+37
+36
+35
+35
+34
+34
+34
+34
+34
+34
+34
+35
+37
+40
+42
+44
+45
+45
+45
+45
+47
+51
+56
+66
+72
+77
+80
+81
+84
+90
+95
+99
+101
+101
+101
+101
+101
+102
+101
+97
+92
+87
+85
+76
+46
+21
+6
+6
+16
+52
+79
+94
+95
+93
+81
+72
+67
+67
+78
+124
+169
+201
+207
+195
+180
+160
+136
+105
+69
+58
+53
+51
+50
+49
+49
+49
+49
+49
+51
+51
+51
+51
+51
+51
+50
+50
+50
+50
+50
+50
+51
+52
+52
+52
+52
+52
+51
+51
+51
+52
+52
+52
+51
+46
+42
+40
+40
+40
+40
+40
+39
+39
+39
+39
+40
+41
+42
+44
+46
+46
+47
+47
+47
+48
+48
+48
+48
+48
+49
+51
+53
+53
+53
+50
+41
+34
+30
+29
+30
+33
+38
+41
+43
+45
+55
+84
+118
+144
+146
+140
+119
+91
+64
+54
+54
+53
+53
+53
+52
+50
+49
+48
+48
+48
+51
+54
+56
+57
+57
+58
+61
+67
+75
+84
+87
+89
+92
+97
+103
+103
+99
+91
+84
+93
+135
+155
+159
+153
+92
+42
+14
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+68
+85
+91
+91
+90
+88
+85
+85
+90
+100
+103
+103
+101
+97
+91
+74
+53
+33
+17
+9
+6
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+9
+27
+59
+75
+74
+70
+67
+67
+80
+95
+104
+108
+109
+109
+108
+108
+107
+106
+104
+102
+101
+100
+99
+96
+91
+82
+72
+62
+51
+46
+43
+40
+38
+37
+37
+37
+38
+38
+38
+38
+38
+38
+37
+36
+35
+35
+35
+36
+38
+40
+41
+43
+43
+43
+43
+43
+44
+46
+52
+58
+64
+71
+75
+80
+83
+89
+94
+98
+99
+100
+100
+100
+100
+101
+99
+96
+93
+89
+84
+66
+39
+15
+7
+12
+38
+67
+89
+95
+94
+85
+75
+68
+67
+72
+107
+153
+193
+207
+199
+185
+167
+143
+114
+75
+61
+54
+51
+50
+49
+49
+49
+49
+49
+50
+51
+51
+51
+51
+51
+51
+50
+50
+50
+50
+50
+51
+52
+53
+53
+52
+52
+52
+51
+51
+52
+52
+52
+52
+50
+46
+43
+42
+41
+41
+42
+42
+42
+42
+43
+43
+44
+45
+46
+47
+47
+47
+47
+48
+48
+48
+48
+49
+49
+50
+52
+54
+55
+55
+51
+42
+35
+31
+30
+31
+35
+39
+42
+43
+45
+54
+83
+117
+143
+146
+141
+121
+93
+66
+55
+54
+53
+53
+53
+52
+51
+49
+48
+48
+49
+51
+54
+57
+57
+58
+58
+61
+67
+76
+83
+85
+87
+89
+94
+102
+103
+100
+94
+84
+89
+126
+150
+161
+157
+110
+55
+21
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+67
+84
+90
+91
+90
+89
+82
+79
+81
+89
+94
+95
+91
+84
+75
+51
+33
+20
+11
+7
+4
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+17
+40
+70
+77
+72
+68
+66
+67
+80
+94
+103
+108
+109
+108
+108
+108
+107
+105
+103
+101
+99
+95
+90
+79
+70
+61
+53
+46
+41
+40
+39
+39
+40
+41
+42
+43
+44
+44
+45
+45
+44
+43
+42
+40
+38
+37
+36
+35
+37
+38
+40
+41
+42
+42
+42
+42
+42
+42
+44
+48
+52
+57
+63
+69
+74
+80
+87
+94
+98
+99
+99
+99
+99
+100
+100
+99
+96
+93
+90
+80
+56
+30
+11
+11
+27
+55
+82
+94
+94
+88
+79
+70
+66
+69
+92
+137
+181
+205
+203
+191
+174
+152
+123
+82
+65
+55
+52
+50
+49
+49
+49
+49
+49
+50
+51
+52
+52
+52
+52
+52
+51
+51
+50
+50
+50
+51
+52
+53
+53
+53
+52
+52
+51
+51
+52
+52
+52
+52
+52
+50
+47
+45
+43
+42
+43
+43
+43
+44
+44
+45
+45
+46
+46
+47
+47
+47
+47
+48
+48
+48
+49
+49
+50
+51
+54
+55
+56
+56
+51
+42
+35
+31
+31
+32
+36
+39
+42
+43
+45
+55
+83
+117
+143
+145
+141
+121
+94
+66
+55
+54
+53
+53
+53
+52
+51
+50
+49
+49
+49
+52
+55
+57
+58
+58
+58
+62
+68
+76
+82
+84
+85
+87
+91
+100
+102
+101
+96
+85
+87
+117
+144
+161
+160
+126
+69
+29
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+67
+84
+90
+90
+90
+89
+81
+74
+71
+75
+80
+80
+74
+65
+53
+28
+17
+11
+8
+6
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+7
+27
+53
+75
+77
+70
+66
+65
+66
+80
+93
+101
+106
+107
+107
+107
+106
+104
+102
+98
+94
+89
+82
+72
+58
+50
+44
+41
+40
+40
+41
+42
+43
+44
+47
+48
+49
+49
+50
+50
+50
+50
+49
+48
+45
+43
+40
+38
+36
+36
+37
+38
+39
+41
+41
+41
+41
+41
+41
+41
+42
+43
+45
+49
+57
+62
+69
+76
+85
+94
+97
+98
+99
+99
+99
+100
+100
+99
+96
+93
+89
+73
+48
+18
+12
+19
+44
+72
+92
+93
+91
+82
+72
+66
+67
+81
+119
+166
+202
+205
+195
+181
+160
+132
+90
+69
+58
+52
+50
+49
+49
+49
+49
+49
+50
+51
+52
+52
+53
+53
+53
+52
+51
+51
+51
+51
+51
+52
+53
+53
+53
+53
+52
+52
+51
+51
+52
+52
+52
+52
+52
+51
+49
+47
+45
+44
+44
+44
+45
+45
+46
+46
+46
+47
+47
+47
+48
+48
+48
+49
+49
+50
+50
+51
+54
+56
+57
+57
+57
+51
+41
+35
+32
+32
+33
+37
+40
+43
+44
+46
+58
+86
+119
+143
+145
+140
+120
+93
+66
+55
+54
+54
+53
+53
+52
+51
+50
+49
+49
+50
+53
+56
+58
+58
+58
+59
+62
+68
+77
+81
+82
+83
+84
+87
+98
+101
+101
+97
+87
+86
+109
+138
+160
+161
+139
+83
+39
+10
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+66
+83
+89
+90
+90
+89
+81
+71
+64
+62
+63
+58
+50
+39
+26
+17
+14
+10
+7
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+12
+37
+63
+78
+77
+68
+65
+64
+65
+78
+90
+98
+103
+105
+105
+103
+102
+99
+95
+86
+76
+66
+56
+48
+43
+42
+41
+41
+41
+45
+46
+48
+49
+49
+49
+50
+50
+50
+51
+51
+52
+52
+52
+52
+50
+48
+45
+42
+39
+36
+36
+37
+38
+40
+40
+41
+41
+41
+41
+41
+41
+41
+41
+42
+44
+47
+53
+60
+69
+84
+92
+96
+98
+98
+99
+99
+100
+99
+99
+96
+94
+87
+68
+32
+15
+17
+33
+59
+87
+93
+92
+85
+76
+67
+66
+73
+103
+146
+195
+205
+200
+188
+169
+143
+99
+75
+61
+53
+51
+50
+49
+49
+49
+49
+50
+51
+52
+53
+54
+54
+54
+53
+52
+51
+51
+51
+51
+52
+53
+53
+53
+53
+53
+52
+51
+51
+51
+52
+52
+53
+53
+52
+52
+50
+48
+47
+46
+46
+46
+46
+46
+46
+47
+47
+48
+48
+48
+48
+49
+50
+50
+51
+52
+53
+56
+58
+58
+58
+57
+48
+39
+34
+32
+32
+34
+38
+41
+43
+44
+47
+61
+91
+122
+143
+144
+138
+118
+91
+66
+55
+54
+54
+53
+53
+53
+51
+50
+50
+50
+51
+54
+57
+58
+58
+58
+59
+62
+69
+77
+80
+80
+81
+82
+84
+95
+100
+101
+98
+89
+86
+102
+132
+158
+162
+149
+97
+49
+14
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+66
+82
+88
+89
+89
+90
+87
+74
+60
+53
+49
+41
+35
+30
+24
+17
+14
+9
+4
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+4
+22
+50
+74
+80
+75
+67
+63
+63
+63
+71
+79
+84
+87
+88
+87
+81
+76
+70
+62
+53
+48
+45
+44
+43
+43
+44
+45
+47
+49
+49
+49
+49
+49
+49
+49
+49
+50
+50
+51
+52
+52
+53
+54
+54
+54
+54
+52
+49
+46
+41
+38
+36
+36
+37
+39
+39
+40
+40
+40
+40
+40
+40
+40
+41
+41
+42
+43
+45
+48
+60
+75
+87
+95
+98
+99
+99
+99
+100
+99
+98
+97
+95
+85
+64
+23
+20
+25
+42
+74
+92
+92
+89
+82
+70
+66
+68
+85
+119
+175
+206
+204
+195
+180
+158
+114
+86
+67
+56
+51
+50
+49
+49
+49
+48
+49
+51
+52
+53
+54
+55
+55
+55
+54
+53
+52
+52
+52
+52
+53
+54
+54
+54
+53
+53
+52
+51
+51
+51
+51
+52
+52
+53
+53
+53
+53
+52
+51
+50
+49
+49
+48
+48
+48
+48
+49
+49
+49
+50
+51
+52
+52
+53
+54
+56
+59
+59
+59
+57
+53
+43
+37
+34
+34
+34
+37
+41
+43
+45
+45
+50
+70
+101
+129
+144
+144
+134
+112
+85
+63
+55
+54
+54
+54
+54
+53
+52
+51
+51
+51
+52
+56
+58
+58
+59
+59
+59
+63
+70
+77
+78
+78
+78
+78
+80
+91
+98
+100
+98
+91
+85
+95
+124
+154
+162
+156
+114
+65
+23
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+65
+81
+87
+88
+88
+90
+88
+79
+66
+54
+49
+42
+37
+32
+27
+19
+15
+9
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+9
+33
+59
+78
+81
+74
+66
+62
+61
+61
+65
+69
+72
+72
+71
+68
+62
+58
+54
+50
+47
+45
+44
+44
+45
+46
+47
+48
+48
+49
+49
+48
+48
+48
+48
+48
+48
+48
+49
+50
+51
+52
+53
+55
+56
+57
+57
+55
+53
+50
+46
+42
+39
+37
+36
+37
+38
+38
+39
+39
+40
+40
+40
+40
+40
+41
+41
+41
+42
+43
+48
+56
+68
+82
+93
+98
+99
+99
+100
+100
+99
+98
+97
+92
+82
+39
+27
+25
+35
+59
+88
+91
+90
+85
+74
+66
+67
+76
+102
+154
+200
+204
+200
+188
+169
+127
+96
+74
+59
+52
+50
+49
+49
+49
+48
+49
+50
+52
+53
+55
+56
+56
+56
+56
+55
+53
+53
+53
+53
+53
+54
+54
+54
+54
+53
+52
+51
+51
+51
+51
+51
+52
+52
+53
+53
+53
+53
+53
+52
+52
+51
+51
+51
+51
+51
+51
+51
+52
+52
+53
+53
+54
+55
+56
+58
+59
+59
+58
+55
+49
+39
+36
+35
+35
+36
+40
+43
+44
+45
+46
+54
+80
+110
+135
+144
+143
+129
+105
+80
+61
+55
+54
+54
+54
+54
+53
+52
+52
+52
+52
+54
+57
+58
+59
+59
+59
+59
+64
+70
+77
+77
+76
+75
+76
+77
+88
+96
+99
+98
+92
+85
+92
+120
+150
+163
+159
+125
+76
+31
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+65
+80
+86
+87
+87
+89
+89
+84
+73
+59
+52
+47
+41
+36
+32
+22
+16
+8
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+15
+43
+67
+81
+82
+73
+65
+61
+60
+59
+60
+61
+61
+60
+58
+55
+51
+49
+47
+45
+45
+45
+45
+46
+47
+48
+48
+49
+49
+48
+48
+48
+48
+48
+47
+47
+47
+48
+48
+49
+51
+52
+54
+55
+57
+58
+59
+59
+57
+55
+50
+46
+43
+40
+37
+37
+37
+38
+38
+39
+39
+39
+39
+40
+40
+40
+40
+40
+41
+41
+43
+46
+54
+65
+80
+93
+97
+99
+99
+100
+99
+98
+98
+96
+92
+59
+36
+28
+32
+46
+82
+88
+90
+87
+79
+67
+66
+70
+88
+129
+191
+202
+202
+195
+179
+141
+108
+82
+64
+54
+50
+50
+49
+49
+48
+49
+50
+51
+53
+55
+57
+57
+57
+57
+57
+55
+54
+54
+54
+54
+54
+54
+54
+54
+54
+53
+52
+51
+51
+51
+51
+51
+52
+52
+53
+53
+53
+53
+53
+53
+53
+53
+53
+53
+53
+53
+53
+53
+54
+54
+55
+56
+57
+58
+59
+60
+58
+55
+50
+44
+37
+36
+36
+36
+38
+42
+44
+45
+46
+48
+63
+92
+119
+139
+144
+141
+122
+97
+74
+59
+55
+54
+54
+54
+54
+53
+52
+52
+52
+53
+56
+58
+59
+59
+59
+59
+60
+65
+71
+76
+76
+74
+74
+73
+74
+85
+94
+98
+97
+93
+85
+90
+115
+145
+163
+161
+135
+88
+39
+8
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+64
+79
+85
+86
+86
+89
+89
+87
+80
+66
+57
+53
+48
+43
+39
+27
+17
+8
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+22
+53
+74
+83
+83
+72
+65
+61
+59
+57
+56
+55
+54
+52
+50
+48
+46
+46
+45
+45
+45
+46
+47
+48
+48
+49
+49
+49
+49
+49
+49
+48
+48
+47
+47
+47
+47
+48
+48
+49
+52
+54
+55
+57
+58
+60
+61
+61
+61
+59
+54
+50
+47
+43
+40
+37
+37
+37
+38
+38
+39
+39
+39
+39
+39
+39
+39
+39
+40
+40
+41
+42
+44
+50
+62
+82
+92
+97
+99
+99
+99
+99
+98
+98
+96
+78
+49
+35
+32
+38
+72
+85
+89
+88
+83
+69
+66
+67
+78
+105
+176
+197
+204
+200
+189
+155
+122
+93
+70
+57
+51
+50
+49
+49
+48
+48
+49
+51
+53
+55
+58
+58
+59
+58
+58
+57
+56
+55
+55
+55
+55
+55
+55
+55
+55
+54
+52
+51
+51
+51
+50
+51
+51
+51
+52
+53
+53
+53
+53
+53
+54
+54
+54
+54
+54
+54
+54
+55
+55
+55
+56
+58
+59
+59
+60
+59
+56
+51
+45
+40
+36
+36
+37
+38
+41
+44
+45
+46
+48
+52
+75
+105
+128
+142
+144
+137
+113
+88
+68
+57
+55
+54
+54
+54
+54
+53
+53
+53
+53
+54
+58
+59
+60
+60
+59
+59
+60
+65
+71
+76
+76
+73
+72
+71
+72
+82
+93
+97
+97
+93
+85
+88
+111
+141
+163
+162
+143
+98
+48
+11
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+62
+78
+83
+84
+85
+87
+89
+89
+85
+76
+64
+60
+56
+52
+45
+33
+19
+9
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+5
+30
+62
+79
+85
+84
+71
+65
+61
+59
+56
+52
+51
+49
+47
+46
+46
+45
+45
+45
+45
+47
+48
+48
+49
+49
+50
+51
+51
+51
+51
+49
+49
+48
+47
+47
+47
+47
+48
+49
+50
+54
+57
+59
+60
+61
+62
+62
+63
+63
+62
+60
+55
+50
+46
+44
+40
+38
+38
+38
+38
+39
+39
+38
+38
+37
+37
+37
+38
+38
+39
+40
+41
+42
+43
+45
+63
+81
+92
+97
+99
+99
+99
+99
+98
+98
+91
+63
+44
+34
+35
+60
+80
+88
+89
+87
+73
+67
+66
+71
+85
+156
+190
+203
+203
+197
+169
+136
+105
+79
+61
+52
+50
+49
+49
+48
+48
+49
+50
+52
+54
+58
+59
+60
+60
+59
+58
+57
+57
+56
+56
+55
+55
+55
+55
+55
+54
+53
+52
+51
+51
+50
+50
+50
+50
+51
+52
+52
+53
+53
+53
+54
+54
+54
+55
+55
+55
+55
+55
+56
+57
+58
+59
+59
+59
+59
+56
+51
+45
+41
+38
+37
+37
+39
+41
+44
+46
+46
+47
+51
+59
+90
+119
+136
+144
+143
+130
+102
+79
+62
+55
+55
+54
+54
+54
+54
+54
+54
+54
+54
+56
+59
+60
+60
+60
+59
+59
+61
+66
+72
+75
+75
+72
+70
+70
+70
+80
+91
+96
+97
+94
+85
+87
+108
+136
+163
+163
+150
+108
+57
+15
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+60
+75
+81
+82
+82
+85
+88
+89
+88
+83
+72
+66
+62
+58
+52
+39
+21
+9
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+9
+43
+72
+84
+86
+85
+71
+65
+62
+59
+56
+50
+48
+47
+46
+46
+46
+46
+46
+46
+47
+49
+49
+50
+51
+51
+52
+52
+52
+52
+51
+48
+47
+47
+47
+47
+48
+50
+52
+55
+58
+60
+61
+61
+62
+62
+63
+63
+64
+64
+64
+63
+61
+57
+51
+47
+44
+42
+41
+41
+40
+39
+39
+38
+38
+37
+37
+37
+37
+38
+38
+39
+40
+41
+42
+42
+44
+55
+72
+88
+97
+98
+98
+99
+98
+98
+96
+82
+59
+41
+38
+47
+71
+84
+88
+88
+80
+70
+66
+67
+72
+120
+169
+196
+206
+204
+186
+157
+125
+95
+71
+55
+52
+50
+49
+49
+48
+48
+49
+51
+53
+57
+59
+60
+61
+61
+60
+60
+59
+58
+57
+57
+57
+57
+56
+56
+55
+54
+53
+52
+51
+50
+50
+49
+49
+49
+49
+50
+50
+51
+52
+52
+53
+53
+53
+54
+55
+55
+56
+57
+57
+58
+58
+58
+57
+53
+47
+43
+40
+39
+38
+39
+41
+43
+45
+46
+47
+48
+51
+61
+78
+112
+133
+142
+143
+139
+112
+86
+68
+57
+55
+55
+55
+55
+54
+54
+54
+55
+55
+56
+59
+61
+61
+61
+60
+60
+60
+62
+67
+73
+75
+74
+70
+69
+68
+69
+77
+89
+95
+96
+94
+85
+86
+104
+131
+162
+164
+156
+119
+69
+21
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+57
+73
+79
+80
+80
+82
+86
+88
+88
+86
+78
+73
+69
+65
+59
+45
+25
+10
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+5
+14
+52
+77
+86
+87
+85
+71
+65
+62
+60
+56
+50
+48
+46
+46
+45
+46
+46
+47
+48
+49
+50
+50
+51
+51
+52
+52
+51
+51
+49
+48
+47
+46
+47
+48
+49
+53
+55
+57
+58
+59
+60
+61
+61
+62
+62
+63
+63
+63
+63
+63
+63
+63
+60
+57
+52
+46
+44
+43
+42
+41
+40
+40
+39
+38
+37
+37
+37
+38
+38
+38
+39
+40
+41
+41
+42
+42
+46
+55
+69
+88
+97
+98
+98
+98
+98
+97
+90
+70
+50
+40
+44
+63
+78
+87
+88
+83
+73
+67
+66
+68
+98
+149
+184
+202
+206
+196
+172
+142
+110
+82
+60
+54
+51
+49
+49
+48
+48
+49
+50
+52
+56
+58
+60
+61
+62
+62
+61
+60
+60
+59
+58
+58
+58
+58
+57
+57
+55
+54
+52
+51
+50
+49
+49
+49
+48
+48
+49
+49
+50
+50
+51
+51
+52
+52
+53
+54
+54
+55
+56
+56
+56
+55
+52
+49
+46
+43
+41
+40
+40
+40
+42
+44
+45
+46
+47
+48
+51
+60
+76
+97
+127
+138
+142
+138
+129
+96
+75
+62
+56
+55
+55
+55
+55
+55
+55
+55
+56
+57
+58
+60
+62
+62
+61
+60
+60
+60
+62
+68
+73
+74
+73
+70
+68
+68
+68
+76
+88
+94
+95
+93
+84
+86
+102
+128
+161
+165
+159
+126
+79
+27
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+55
+71
+77
+78
+77
+78
+85
+88
+88
+87
+81
+77
+74
+70
+65
+48
+26
+11
+2
+1
+1
+1
+1
+1
+1
+1
+1
+2
+7
+18
+60
+80
+88
+89
+86
+72
+66
+63
+61
+58
+51
+48
+46
+45
+45
+46
+46
+47
+48
+50
+50
+51
+51
+51
+51
+51
+50
+49
+47
+46
+46
+48
+49
+51
+54
+56
+58
+59
+59
+60
+60
+60
+60
+60
+60
+60
+60
+60
+61
+61
+62
+62
+61
+59
+55
+50
+47
+45
+43
+42
+41
+40
+39
+38
+38
+38
+38
+39
+40
+40
+40
+40
+41
+41
+42
+42
+43
+46
+55
+70
+90
+96
+98
+98
+98
+98
+94
+79
+60
+43
+44
+56
+72
+85
+87
+85
+77
+69
+65
+65
+82
+127
+167
+196
+206
+203
+185
+159
+128
+96
+68
+58
+52
+50
+49
+48
+48
+48
+49
+50
+54
+57
+59
+61
+62
+63
+62
+62
+61
+60
+59
+59
+59
+59
+59
+58
+57
+55
+54
+52
+50
+49
+49
+48
+47
+47
+47
+47
+48
+48
+49
+49
+50
+51
+51
+52
+52
+53
+52
+52
+50
+49
+46
+44
+43
+41
+41
+41
+42
+43
+44
+46
+46
+47
+48
+50
+59
+75
+94
+115
+136
+140
+138
+130
+113
+81
+66
+58
+55
+55
+55
+55
+55
+55
+56
+56
+57
+59
+60
+62
+62
+62
+61
+60
+60
+60
+63
+69
+73
+74
+72
+69
+68
+68
+68
+75
+87
+93
+94
+93
+84
+85
+100
+125
+160
+166
+161
+133
+88
+33
+5
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+52
+68
+74
+75
+74
+75
+82
+87
+88
+88
+84
+81
+77
+73
+68
+48
+25
+10
+2
+1
+1
+1
+1
+1
+1
+1
+1
+3
+9
+23
+66
+83
+90
+90
+87
+73
+66
+63
+62
+60
+53
+48
+46
+46
+45
+46
+46
+47
+48
+49
+50
+50
+51
+50
+50
+49
+47
+47
+46
+47
+48
+51
+53
+56
+57
+58
+58
+58
+58
+58
+57
+56
+55
+55
+54
+54
+54
+55
+55
+56
+58
+59
+59
+59
+57
+53
+49
+46
+44
+43
+42
+41
+40
+39
+39
+39
+40
+41
+42
+42
+42
+42
+42
+42
+43
+43
+42
+43
+45
+52
+77
+90
+96
+98
+98
+98
+97
+86
+69
+48
+45
+52
+67
+81
+87
+86
+80
+72
+66
+64
+71
+104
+147
+185
+204
+207
+196
+175
+146
+113
+78
+64
+55
+51
+50
+49
+48
+48
+48
+49
+52
+55
+58
+61
+62
+63
+63
+63
+62
+62
+61
+60
+60
+60
+60
+59
+58
+57
+55
+54
+51
+50
+49
+48
+47
+46
+46
+45
+45
+46
+46
+47
+47
+48
+48
+48
+48
+48
+47
+46
+45
+43
+42
+42
+42
+41
+42
+43
+44
+45
+46
+47
+47
+48
+50
+58
+75
+94
+113
+130
+140
+138
+131
+117
+95
+68
+59
+56
+55
+55
+55
+56
+56
+56
+57
+58
+59
+61
+62
+63
+63
+62
+61
+60
+60
+60
+64
+69
+73
+73
+71
+69
+68
+68
+68
+75
+86
+92
+94
+92
+84
+84
+98
+123
+159
+167
+163
+138
+96
+40
+6
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+49
+64
+70
+71
+71
+72
+79
+85
+88
+88
+85
+82
+79
+74
+67
+45
+22
+8
+2
+1
+1
+1
+1
+1
+1
+1
+1
+3
+10
+26
+72
+86
+91
+91
+88
+74
+67
+64
+63
+61
+55
+50
+47
+46
+45
+46
+46
+47
+48
+49
+50
+49
+49
+48
+47
+46
+46
+46
+47
+50
+54
+56
+57
+58
+58
+58
+57
+55
+54
+52
+49
+48
+47
+47
+46
+46
+46
+47
+47
+48
+51
+52
+54
+56
+56
+55
+51
+48
+46
+44
+43
+42
+41
+40
+40
+40
+42
+43
+44
+44
+44
+44
+45
+45
+45
+44
+43
+43
+43
+44
+57
+78
+91
+97
+98
+98
+97
+91
+77
+54
+46
+49
+62
+77
+86
+86
+83
+75
+67
+63
+66
+84
+123
+167
+200
+208
+203
+189
+165
+133
+92
+72
+60
+53
+50
+49
+49
+48
+48
+48
+50
+53
+56
+60
+62
+63
+64
+64
+63
+63
+62
+61
+61
+61
+60
+60
+59
+58
+57
+55
+53
+51
+49
+48
+47
+45
+44
+44
+43
+42
+42
+42
+42
+42
+42
+42
+42
+41
+41
+41
+41
+41
+41
+41
+42
+43
+44
+45
+46
+47
+47
+48
+48
+50
+54
+75
+97
+115
+129
+138
+139
+132
+118
+99
+76
+59
+56
+55
+55
+56
+56
+56
+57
+58
+59
+60
+61
+63
+63
+63
+63
+63
+61
+60
+60
+61
+66
+70
+73
+73
+70
+68
+68
+68
+68
+74
+85
+91
+93
+91
+83
+84
+96
+121
+158
+168
+165
+143
+104
+47
+7
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+46
+58
+64
+65
+65
+66
+74
+81
+86
+87
+85
+81
+77
+69
+58
+35
+16
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+4
+14
+33
+76
+87
+92
+92
+90
+76
+68
+64
+63
+63
+59
+54
+49
+46
+45
+45
+45
+46
+46
+46
+46
+46
+46
+46
+46
+47
+50
+53
+55
+57
+58
+57
+57
+55
+52
+49
+47
+45
+44
+43
+43
+42
+42
+42
+43
+43
+43
+43
+43
+43
+44
+45
+46
+47
+47
+48
+48
+48
+46
+45
+43
+43
+42
+42
+42
+43
+43
+44
+44
+44
+44
+45
+46
+48
+52
+51
+49
+46
+43
+43
+44
+57
+75
+90
+97
+98
+98
+94
+83
+60
+47
+48
+58
+71
+85
+86
+85
+79
+71
+64
+63
+70
+96
+134
+178
+207
+208
+202
+187
+161
+118
+91
+71
+59
+52
+49
+49
+49
+48
+48
+48
+50
+53
+56
+59
+63
+64
+64
+64
+64
+64
+63
+63
+63
+62
+62
+61
+60
+58
+56
+54
+52
+50
+49
+47
+45
+44
+43
+42
+42
+41
+40
+40
+40
+40
+40
+40
+40
+40
+41
+42
+42
+44
+45
+46
+47
+47
+47
+47
+48
+49
+50
+54
+64
+82
+110
+124
+133
+137
+138
+128
+112
+93
+75
+60
+56
+55
+56
+56
+56
+57
+58
+59
+60
+61
+63
+64
+64
+64
+64
+64
+62
+61
+60
+60
+62
+67
+71
+73
+73
+69
+68
+68
+68
+68
+74
+84
+90
+91
+90
+83
+83
+95
+119
+157
+169
+166
+149
+113
+56
+10
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+43
+53
+58
+60
+60
+60
+66
+75
+81
+83
+82
+78
+71
+61
+48
+25
+11
+3
+1
+1
+1
+1
+1
+1
+1
+1
+2
+6
+16
+37
+79
+88
+92
+92
+91
+79
+69
+64
+63
+63
+61
+58
+54
+49
+47
+46
+46
+46
+46
+46
+46
+46
+47
+48
+51
+54
+56
+57
+57
+57
+54
+51
+49
+47
+45
+44
+43
+42
+42
+42
+42
+42
+42
+42
+42
+42
+43
+43
+43
+43
+44
+44
+45
+45
+46
+46
+46
+45
+45
+44
+43
+43
+43
+43
+43
+44
+44
+44
+45
+45
+45
+45
+46
+49
+55
+58
+57
+53
+48
+44
+43
+48
+62
+80
+94
+98
+97
+94
+84
+63
+47
+48
+56
+68
+83
+86
+85
+81
+74
+66
+62
+66
+81
+110
+155
+195
+205
+207
+198
+180
+140
+110
+86
+68
+57
+51
+50
+49
+48
+48
+48
+48
+50
+52
+55
+59
+62
+63
+64
+65
+64
+64
+64
+64
+64
+64
+63
+62
+61
+59
+56
+54
+52
+50
+48
+46
+45
+44
+43
+42
+41
+41
+41
+41
+41
+41
+42
+43
+44
+45
+46
+46
+47
+47
+47
+48
+48
+48
+48
+49
+52
+60
+73
+90
+109
+128
+133
+136
+136
+130
+109
+91
+75
+63
+57
+55
+56
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+65
+64
+64
+63
+62
+61
+61
+61
+63
+69
+72
+73
+72
+69
+68
+68
+68
+69
+74
+84
+89
+91
+89
+82
+82
+94
+118
+156
+169
+167
+152
+118
+62
+12
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+41
+48
+52
+53
+53
+51
+56
+63
+70
+73
+72
+67
+59
+48
+35
+14
+6
+2
+1
+1
+1
+1
+1
+1
+1
+1
+2
+7
+18
+39
+81
+89
+93
+93
+91
+81
+70
+65
+63
+63
+63
+61
+58
+55
+52
+49
+48
+48
+48
+49
+50
+51
+53
+54
+56
+57
+56
+55
+53
+50
+47
+46
+44
+43
+42
+42
+41
+41
+41
+41
+42
+42
+42
+42
+42
+42
+43
+43
+43
+43
+43
+44
+44
+45
+45
+45
+45
+45
+44
+44
+44
+44
+44
+44
+44
+44
+45
+45
+45
+45
+46
+47
+49
+52
+58
+65
+65
+63
+57
+49
+44
+45
+53
+67
+87
+96
+96
+94
+85
+64
+47
+48
+54
+66
+81
+86
+86
+83
+77
+69
+63
+63
+71
+91
+129
+178
+198
+207
+206
+196
+163
+132
+104
+81
+64
+54
+51
+50
+49
+48
+48
+48
+48
+50
+52
+56
+59
+61
+63
+64
+64
+64
+64
+64
+64
+64
+64
+64
+63
+62
+59
+58
+56
+54
+52
+50
+48
+47
+46
+45
+45
+44
+44
+44
+45
+45
+46
+46
+47
+47
+48
+48
+48
+48
+48
+48
+48
+49
+51
+56
+67
+83
+99
+114
+127
+136
+136
+133
+125
+112
+89
+74
+64
+57
+55
+56
+57
+57
+58
+59
+61
+62
+63
+64
+65
+65
+65
+65
+64
+64
+63
+62
+61
+61
+61
+65
+70
+72
+73
+72
+68
+68
+68
+68
+69
+73
+83
+88
+89
+88
+81
+82
+93
+118
+156
+170
+168
+155
+124
+68
+14
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+40
+43
+45
+46
+46
+42
+43
+47
+51
+53
+53
+48
+40
+30
+20
+5
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+7
+19
+42
+83
+90
+93
+93
+91
+83
+72
+65
+62
+62
+63
+63
+62
+60
+58
+54
+53
+53
+53
+53
+55
+57
+58
+58
+57
+55
+52
+49
+46
+44
+42
+42
+41
+41
+41
+41
+41
+41
+41
+41
+42
+42
+42
+42
+43
+43
+43
+43
+43
+43
+44
+44
+44
+44
+45
+45
+45
+45
+45
+44
+44
+44
+44
+45
+45
+45
+45
+46
+47
+48
+49
+53
+56
+60
+65
+73
+73
+72
+68
+59
+46
+45
+47
+56
+74
+92
+93
+92
+83
+63
+47
+47
+53
+64
+80
+86
+86
+84
+79
+72
+64
+62
+65
+77
+103
+156
+184
+202
+209
+206
+184
+156
+126
+99
+76
+59
+54
+51
+50
+49
+48
+48
+48
+48
+49
+52
+55
+57
+60
+62
+63
+64
+64
+64
+64
+64
+64
+64
+64
+63
+62
+60
+59
+57
+56
+54
+52
+51
+50
+50
+49
+49
+49
+49
+49
+50
+49
+49
+49
+49
+49
+49
+48
+49
+49
+49
+52
+55
+62
+72
+92
+109
+122
+132
+136
+137
+132
+122
+107
+90
+70
+62
+58
+56
+56
+57
+58
+59
+60
+61
+63
+64
+65
+66
+66
+66
+65
+65
+64
+64
+63
+61
+61
+61
+61
+67
+71
+72
+72
+71
+68
+68
+68
+69
+69
+73
+82
+87
+88
+87
+81
+81
+93
+117
+156
+170
+169
+157
+128
+74
+17
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+38
+39
+39
+39
+39
+31
+29
+27
+26
+24
+22
+17
+12
+7
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+3
+8
+21
+46
+84
+91
+93
+93
+91
+85
+75
+67
+61
+61
+61
+62
+62
+62
+61
+60
+60
+59
+59
+59
+59
+59
+58
+55
+50
+45
+43
+42
+42
+41
+41
+41
+41
+41
+41
+41
+41
+41
+42
+42
+42
+43
+43
+44
+44
+45
+45
+45
+45
+45
+45
+45
+45
+45
+45
+45
+45
+45
+45
+46
+46
+46
+46
+46
+46
+47
+47
+48
+50
+52
+56
+62
+68
+75
+79
+82
+83
+82
+80
+74
+52
+47
+46
+49
+57
+82
+87
+86
+78
+59
+45
+46
+52
+63
+79
+86
+86
+85
+81
+75
+67
+63
+63
+68
+81
+129
+165
+191
+206
+212
+202
+179
+151
+121
+93
+68
+59
+54
+51
+50
+49
+48
+48
+48
+48
+49
+50
+52
+55
+58
+61
+62
+63
+64
+64
+64
+64
+64
+64
+63
+62
+61
+61
+60
+59
+57
+56
+56
+55
+54
+53
+53
+52
+52
+51
+51
+50
+50
+49
+49
+49
+49
+49
+49
+50
+52
+59
+70
+84
+101
+123
+131
+135
+136
+137
+133
+119
+102
+84
+68
+59
+57
+56
+57
+57
+59
+60
+61
+62
+63
+65
+66
+67
+67
+67
+66
+65
+65
+64
+64
+62
+61
+61
+61
+62
+69
+72
+73
+72
+70
+68
+68
+68
+69
+70
+73
+81
+86
+87
+86
+80
+81
+93
+117
+156
+171
+169
+160
+132
+79
+20
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+37
+36
+34
+32
+30
+25
+22
+18
+15
+13
+8
+7
+5
+3
+3
+2
+2
+1
+1
+1
+1
+1
+2
+2
+3
+3
+5
+11
+24
+47
+85
+91
+93
+93
+92
+86
+77
+68
+61
+57
+58
+59
+61
+61
+61
+61
+60
+59
+58
+56
+49
+44
+42
+42
+42
+41
+41
+41
+41
+40
+40
+41
+41
+41
+41
+42
+43
+45
+46
+48
+50
+52
+54
+55
+56
+58
+58
+58
+58
+58
+58
+57
+56
+55
+53
+52
+51
+51
+50
+50
+50
+50
+51
+52
+53
+56
+59
+62
+66
+71
+80
+86
+92
+98
+105
+106
+103
+99
+95
+92
+73
+56
+48
+47
+49
+59
+66
+67
+63
+52
+44
+44
+51
+63
+79
+87
+87
+85
+82
+78
+70
+65
+62
+62
+65
+94
+131
+165
+191
+207
+212
+202
+184
+158
+129
+93
+74
+61
+54
+51
+49
+49
+48
+48
+48
+48
+48
+48
+49
+50
+52
+54
+56
+57
+59
+60
+61
+61
+62
+62
+61
+61
+60
+59
+58
+57
+56
+56
+55
+54
+53
+52
+52
+51
+50
+50
+49
+49
+49
+49
+49
+50
+52
+57
+64
+81
+97
+112
+125
+133
+135
+136
+136
+132
+124
+101
+83
+71
+63
+59
+57
+57
+58
+59
+60
+61
+63
+64
+65
+67
+68
+68
+68
+67
+67
+66
+65
+65
+64
+63
+62
+61
+61
+62
+65
+71
+72
+72
+72
+70
+68
+68
+69
+70
+71
+73
+80
+84
+86
+85
+80
+80
+92
+117
+156
+171
+170
+162
+137
+86
+23
+8
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+37
+35
+33
+30
+28
+24
+21
+18
+14
+12
+9
+8
+7
+6
+5
+4
+3
+3
+2
+2
+2
+2
+2
+3
+3
+4
+5
+11
+24
+47
+84
+90
+93
+93
+92
+87
+78
+69
+61
+56
+54
+55
+56
+57
+57
+55
+54
+51
+49
+47
+45
+44
+43
+43
+42
+40
+40
+40
+40
+40
+42
+43
+45
+47
+49
+53
+55
+58
+60
+62
+65
+67
+69
+70
+72
+73
+74
+75
+75
+76
+76
+75
+75
+75
+74
+73
+72
+71
+71
+70
+71
+71
+73
+74
+77
+80
+84
+89
+94
+99
+107
+112
+117
+121
+124
+125
+123
+118
+111
+105
+91
+69
+55
+48
+48
+51
+53
+52
+49
+43
+41
+42
+51
+65
+80
+87
+87
+86
+83
+79
+72
+68
+64
+61
+61
+74
+104
+138
+170
+195
+210
+208
+199
+182
+158
+121
+96
+77
+64
+56
+52
+51
+50
+49
+49
+48
+48
+48
+48
+49
+50
+50
+51
+52
+53
+55
+55
+56
+56
+56
+56
+56
+56
+55
+54
+54
+53
+52
+52
+51
+50
+50
+50
+49
+49
+49
+49
+50
+51
+52
+58
+65
+74
+86
+100
+116
+124
+130
+133
+136
+135
+130
+121
+109
+93
+76
+68
+63
+59
+58
+58
+59
+60
+61
+62
+64
+66
+67
+68
+68
+69
+68
+68
+67
+67
+66
+65
+64
+64
+63
+62
+62
+62
+64
+67
+72
+72
+72
+71
+69
+69
+69
+70
+71
+71
+73
+79
+83
+85
+84
+79
+80
+92
+117
+157
+172
+171
+163
+140
+91
+26
+9
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+37
+35
+32
+29
+27
+23
+21
+19
+17
+16
+14
+13
+12
+11
+10
+7
+6
+5
+4
+3
+3
+3
+3
+3
+3
+4
+6
+13
+26
+49
+83
+90
+93
+93
+92
+88
+80
+71
+62
+55
+52
+51
+51
+52
+52
+52
+51
+51
+50
+49
+47
+44
+41
+40
+39
+39
+40
+41
+43
+46
+49
+53
+56
+59
+61
+65
+67
+70
+72
+74
+77
+78
+80
+82
+83
+85
+86
+87
+88
+89
+90
+90
+91
+92
+92
+92
+93
+93
+93
+94
+95
+97
+99
+101
+104
+109
+113
+117
+122
+127
+133
+136
+139
+141
+143
+142
+141
+136
+129
+121
+109
+86
+66
+52
+49
+48
+47
+44
+40
+38
+38
+41
+52
+67
+81
+87
+88
+86
+84
+80
+74
+70
+66
+63
+59
+64
+82
+110
+143
+175
+202
+208
+207
+198
+183
+150
+124
+101
+82
+67
+56
+53
+52
+51
+50
+49
+49
+49
+49
+49
+49
+49
+49
+50
+50
+51
+51
+51
+51
+52
+52
+51
+51
+51
+51
+51
+50
+50
+50
+50
+49
+49
+49
+50
+51
+53
+56
+60
+66
+73
+86
+96
+106
+116
+125
+133
+135
+135
+134
+130
+120
+109
+96
+84
+73
+64
+61
+59
+59
+59
+60
+61
+62
+64
+65
+67
+68
+69
+69
+69
+69
+68
+68
+67
+66
+65
+65
+64
+63
+63
+62
+62
+64
+66
+70
+72
+72
+72
+71
+69
+69
+70
+71
+72
+72
+74
+78
+82
+83
+83
+79
+80
+92
+118
+158
+172
+171
+164
+142
+95
+29
+10
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+36
+34
+31
+28
+27
+24
+23
+22
+21
+21
+20
+20
+19
+17
+16
+14
+11
+9
+7
+5
+4
+3
+3
+4
+4
+5
+8
+15
+29
+52
+83
+90
+93
+93
+93
+90
+83
+73
+63
+55
+50
+49
+48
+48
+49
+50
+51
+51
+51
+49
+46
+41
+37
+36
+37
+39
+42
+45
+49
+54
+60
+64
+67
+70
+73
+75
+77
+79
+81
+82
+84
+86
+88
+89
+91
+93
+94
+96
+97
+99
+100
+102
+103
+105
+106
+108
+110
+111
+113
+115
+117
+120
+123
+126
+130
+135
+139
+143
+146
+150
+153
+156
+157
+159
+159
+158
+156
+153
+147
+137
+126
+105
+81
+60
+50
+48
+45
+40
+36
+35
+36
+41
+55
+70
+83
+88
+88
+87
+85
+82
+77
+72
+69
+65
+60
+60
+66
+85
+114
+148
+186
+201
+208
+208
+201
+178
+155
+130
+106
+85
+66
+59
+55
+52
+51
+50
+50
+49
+49
+49
+49
+49
+49
+49
+49
+49
+48
+48
+48
+48
+49
+49
+49
+49
+49
+49
+49
+50
+50
+51
+52
+54
+56
+59
+63
+70
+77
+85
+94
+105
+119
+127
+134
+137
+138
+136
+133
+128
+122
+113
+95
+82
+72
+66
+62
+60
+60
+59
+60
+61
+62
+64
+65
+67
+68
+70
+70
+70
+70
+70
+69
+68
+68
+67
+66
+65
+65
+64
+63
+63
+63
+64
+66
+68
+71
+72
+72
+71
+70
+69
+69
+71
+73
+73
+74
+74
+78
+81
+82
+81
+79
+80
+92
+119
+160
+172
+172
+165
+144
+100
+31
+11
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+36
+34
+31
+28
+27
+25
+25
+24
+24
+24
+24
+24
+24
+24
+23
+22
+20
+17
+13
+8
+5
+4
+4
+4
+5
+7
+10
+18
+33
+56
+83
+89
+92
+93
+93
+91
+86
+77
+65
+56
+51
+49
+48
+48
+50
+52
+52
+48
+41
+34
+32
+33
+34
+36
+38
+43
+49
+54
+60
+64
+69
+72
+74
+76
+78
+80
+82
+83
+85
+86
+89
+91
+92
+94
+96
+98
+100
+102
+103
+105
+107
+109
+111
+112
+114
+117
+119
+121
+124
+126
+131
+135
+139
+143
+147
+152
+155
+158
+161
+164
+167
+168
+169
+170
+171
+171
+169
+167
+163
+154
+141
+126
+100
+73
+52
+49
+45
+40
+36
+35
+36
+44
+58
+73
+84
+88
+88
+87
+86
+83
+79
+74
+71
+67
+62
+60
+59
+66
+84
+115
+162
+188
+204
+211
+212
+201
+184
+162
+137
+112
+84
+69
+60
+55
+53
+51
+51
+50
+50
+49
+49
+49
+48
+48
+48
+48
+48
+48
+48
+48
+48
+49
+49
+49
+50
+50
+51
+52
+53
+55
+60
+66
+74
+84
+95
+110
+121
+130
+136
+140
+141
+142
+141
+140
+137
+131
+120
+106
+92
+78
+67
+64
+62
+61
+60
+60
+60
+61
+62
+63
+66
+68
+69
+70
+71
+71
+71
+71
+70
+70
+69
+68
+68
+67
+66
+65
+65
+64
+64
+64
+64
+66
+68
+71
+72
+72
+72
+71
+70
+70
+70
+73
+74
+75
+75
+75
+77
+79
+81
+80
+78
+79
+93
+120
+161
+173
+172
+166
+146
+103
+34
+12
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+36
+33
+30
+27
+27
+25
+25
+25
+25
+25
+25
+26
+25
+25
+25
+24
+24
+24
+24
+23
+17
+12
+9
+8
+12
+20
+27
+35
+44
+58
+79
+87
+91
+91
+91
+91
+89
+84
+75
+63
+54
+53
+53
+54
+54
+51
+43
+36
+31
+31
+33
+35
+36
+37
+40
+46
+52
+58
+64
+69
+74
+77
+80
+82
+85
+88
+91
+93
+96
+99
+102
+105
+107
+110
+112
+115
+117
+119
+121
+123
+125
+127
+129
+131
+133
+136
+139
+142
+145
+149
+155
+159
+162
+165
+168
+171
+172
+174
+175
+176
+177
+178
+178
+179
+179
+179
+178
+178
+176
+173
+161
+150
+130
+102
+68
+52
+48
+42
+37
+35
+37
+47
+61
+75
+85
+89
+90
+89
+87
+84
+80
+77
+74
+71
+67
+62
+60
+59
+62
+72
+113
+148
+178
+200
+210
+212
+207
+198
+184
+164
+134
+112
+92
+75
+64
+57
+55
+53
+52
+51
+51
+50
+50
+50
+50
+50
+51
+51
+52
+53
+55
+58
+61
+65
+71
+80
+89
+98
+107
+117
+129
+135
+140
+142
+144
+145
+146
+146
+145
+143
+139
+133
+123
+111
+98
+81
+73
+68
+64
+63
+62
+61
+61
+61
+61
+62
+63
+65
+67
+69
+71
+72
+72
+72
+72
+72
+71
+71
+70
+70
+69
+68
+68
+67
+66
+65
+65
+65
+65
+65
+67
+69
+71
+72
+72
+72
+71
+71
+70
+70
+72
+76
+77
+78
+77
+76
+77
+78
+79
+79
+78
+79
+93
+121
+163
+174
+173
+167
+148
+107
+37
+14
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+37
+33
+30
+27
+26
+25
+25
+26
+26
+26
+27
+27
+28
+27
+27
+25
+24
+24
+24
+24
+23
+22
+21
+20
+22
+35
+45
+52
+57
+63
+77
+84
+89
+90
+90
+90
+89
+86
+81
+72
+63
+60
+58
+57
+54
+44
+36
+32
+32
+33
+35
+36
+37
+38
+40
+48
+55
+63
+69
+75
+81
+84
+88
+91
+94
+98
+101
+104
+107
+110
+114
+116
+119
+121
+124
+127
+129
+131
+134
+136
+139
+142
+145
+148
+152
+157
+161
+165
+168
+171
+174
+175
+176
+177
+177
+178
+179
+179
+179
+180
+180
+180
+180
+180
+180
+180
+180
+180
+180
+179
+173
+164
+150
+126
+92
+59
+51
+45
+41
+38
+39
+47
+61
+75
+86
+91
+91
+91
+89
+86
+81
+77
+75
+73
+70
+66
+62
+60
+59
+62
+80
+109
+140
+170
+195
+209
+210
+207
+201
+193
+175
+157
+139
+121
+104
+87
+78
+71
+67
+64
+62
+62
+63
+64
+66
+70
+74
+79
+85
+91
+99
+106
+112
+118
+123
+128
+131
+135
+138
+141
+143
+144
+144
+144
+143
+139
+134
+127
+120
+112
+100
+92
+85
+79
+74
+68
+65
+63
+62
+62
+61
+61
+62
+63
+64
+66
+68
+70
+71
+72
+73
+73
+73
+73
+73
+72
+72
+71
+71
+70
+69
+68
+68
+67
+67
+66
+66
+67
+67
+68
+70
+71
+72
+72
+72
+72
+71
+71
+71
+71
+74
+79
+80
+80
+79
+77
+77
+78
+78
+78
+77
+79
+94
+123
+165
+174
+173
+168
+150
+110
+39
+14
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+38
+34
+30
+27
+26
+25
+25
+26
+26
+27
+27
+27
+28
+29
+29
+27
+25
+24
+24
+24
+24
+25
+27
+31
+35
+46
+57
+66
+72
+75
+81
+85
+87
+88
+89
+89
+89
+88
+85
+79
+70
+66
+62
+56
+49
+36
+32
+31
+32
+34
+36
+37
+38
+39
+41
+50
+59
+67
+75
+81
+87
+90
+94
+98
+101
+105
+109
+112
+115
+118
+121
+124
+126
+129
+131
+135
+137
+140
+143
+146
+150
+154
+158
+163
+167
+172
+175
+178
+179
+181
+181
+181
+181
+181
+181
+181
+181
+181
+181
+181
+181
+181
+181
+181
+181
+181
+181
+181
+181
+181
+179
+174
+165
+148
+118
+75
+59
+49
+43
+41
+41
+48
+60
+74
+85
+92
+93
+92
+90
+87
+82
+78
+76
+74
+72
+69
+65
+62
+59
+58
+64
+80
+103
+131
+162
+191
+202
+207
+207
+205
+196
+187
+175
+163
+149
+132
+122
+114
+108
+104
+101
+101
+103
+104
+107
+112
+116
+120
+124
+128
+133
+136
+139
+141
+143
+144
+144
+144
+142
+140
+135
+130
+126
+121
+116
+108
+102
+96
+90
+84
+76
+71
+68
+66
+64
+63
+62
+62
+62
+62
+63
+64
+65
+67
+69
+71
+72
+73
+74
+74
+74
+74
+74
+74
+74
+73
+72
+72
+71
+71
+70
+69
+69
+68
+68
+68
+68
+69
+69
+70
+71
+72
+72
+72
+72
+72
+71
+71
+71
+72
+77
+82
+84
+84
+82
+77
+77
+77
+77
+77
+77
+78
+95
+125
+166
+175
+174
+168
+151
+113
+41
+15
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+40
+36
+32
+28
+26
+25
+25
+25
+26
+26
+26
+26
+27
+29
+30
+29
+26
+24
+23
+23
+23
+24
+28
+34
+39
+47
+59
+71
+81
+85
+86
+86
+87
+87
+88
+88
+88
+87
+86
+83
+76
+69
+62
+53
+42
+32
+31
+31
+32
+35
+37
+38
+39
+40
+43
+54
+64
+72
+79
+85
+91
+95
+99
+103
+107
+112
+115
+118
+121
+124
+128
+131
+133
+136
+139
+143
+146
+149
+152
+155
+161
+166
+171
+175
+178
+182
+183
+183
+183
+183
+182
+182
+182
+181
+181
+181
+181
+182
+182
+182
+182
+182
+182
+182
+182
+181
+181
+181
+181
+181
+181
+180
+176
+165
+145
+98
+72
+55
+47
+44
+44
+49
+59
+73
+85
+93
+94
+94
+92
+89
+84
+80
+77
+75
+73
+71
+69
+65
+61
+58
+59
+63
+75
+94
+120
+158
+181
+195
+203
+205
+204
+201
+197
+191
+184
+173
+165
+158
+153
+148
+145
+145
+145
+147
+148
+150
+151
+152
+151
+151
+149
+146
+144
+140
+137
+133
+130
+126
+121
+116
+108
+102
+96
+89
+83
+76
+72
+69
+67
+65
+64
+64
+63
+63
+63
+63
+63
+64
+64
+65
+67
+69
+70
+72
+73
+75
+75
+76
+76
+76
+75
+75
+75
+75
+74
+74
+73
+72
+72
+72
+71
+70
+70
+70
+70
+70
+70
+71
+71
+72
+72
+72
+72
+72
+72
+72
+71
+71
+72
+73
+81
+86
+88
+87
+86
+78
+77
+76
+76
+76
+76
+78
+96
+127
+168
+176
+174
+169
+152
+115
+43
+16
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+45
+42
+36
+30
+26
+24
+24
+24
+24
+25
+24
+24
+26
+28
+29
+29
+26
+24
+23
+23
+24
+24
+23
+23
+24
+32
+48
+64
+77
+85
+89
+89
+89
+88
+88
+87
+86
+86
+85
+83
+77
+69
+59
+48
+36
+31
+31
+31
+33
+36
+39
+40
+41
+42
+44
+57
+67
+76
+83
+89
+95
+100
+105
+109
+113
+118
+122
+125
+128
+132
+136
+139
+142
+145
+148
+153
+157
+160
+165
+169
+177
+181
+184
+186
+186
+185
+184
+184
+183
+182
+181
+181
+181
+181
+181
+182
+182
+183
+183
+184
+185
+185
+184
+184
+183
+182
+181
+181
+181
+181
+182
+182
+181
+178
+168
+127
+91
+66
+51
+46
+46
+49
+58
+71
+84
+93
+95
+95
+94
+91
+86
+82
+79
+76
+73
+72
+71
+68
+65
+60
+59
+59
+62
+68
+81
+112
+141
+167
+188
+199
+203
+201
+199
+197
+194
+190
+187
+183
+180
+176
+173
+170
+167
+165
+162
+159
+157
+154
+151
+148
+142
+135
+127
+119
+110
+98
+90
+83
+78
+73
+69
+68
+66
+65
+65
+64
+64
+64
+64
+63
+63
+63
+63
+63
+64
+65
+66
+68
+69
+71
+73
+74
+75
+76
+77
+77
+77
+77
+77
+77
+76
+76
+75
+75
+75
+74
+73
+73
+73
+72
+72
+72
+72
+72
+72
+72
+72
+72
+72
+72
+72
+72
+72
+72
+72
+72
+72
+72
+73
+75
+86
+90
+92
+92
+90
+80
+77
+76
+76
+76
+76
+78
+97
+129
+170
+176
+174
+169
+152
+117
+45
+17
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+26
+33
+36
+37
+36
+34
+32
+30
+30
+30
+32
+32
+32
+30
+29
+23
+22
+22
+22
+23
+26
+28
+28
+28
+26
+25
+27
+33
+44
+59
+77
+83
+87
+89
+89
+88
+87
+86
+84
+82
+77
+69
+59
+48
+37
+32
+32
+33
+36
+41
+42
+42
+42
+44
+49
+65
+76
+85
+92
+98
+106
+111
+116
+120
+125
+130
+134
+137
+141
+144
+149
+153
+156
+160
+163
+169
+173
+179
+184
+189
+191
+190
+190
+188
+187
+183
+181
+180
+180
+180
+180
+181
+182
+184
+186
+189
+191
+194
+196
+198
+199
+199
+199
+198
+196
+192
+188
+184
+182
+181
+181
+181
+182
+182
+181
+166
+131
+95
+66
+50
+47
+48
+54
+65
+80
+93
+96
+97
+97
+94
+89
+85
+81
+78
+75
+72
+72
+71
+69
+66
+61
+60
+59
+60
+61
+68
+84
+105
+128
+151
+175
+185
+191
+192
+192
+189
+186
+183
+179
+176
+171
+167
+163
+158
+152
+141
+131
+120
+108
+97
+84
+78
+73
+70
+67
+66
+65
+65
+64
+64
+64
+64
+64
+64
+65
+65
+65
+65
+66
+66
+67
+69
+70
+71
+73
+74
+75
+76
+77
+77
+78
+79
+79
+79
+79
+79
+78
+78
+77
+77
+76
+76
+75
+75
+75
+74
+74
+74
+74
+74
+73
+73
+73
+73
+73
+72
+72
+72
+72
+72
+72
+72
+72
+72
+72
+72
+73
+74
+77
+81
+92
+97
+99
+98
+96
+84
+78
+76
+75
+75
+75
+78
+99
+132
+172
+177
+175
+169
+153
+119
+47
+18
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+16
+18
+19
+20
+21
+21
+21
+21
+22
+22
+22
+22
+22
+22
+21
+21
+21
+23
+25
+29
+34
+36
+36
+36
+35
+30
+29
+29
+33
+37
+46
+53
+61
+70
+79
+86
+87
+86
+85
+83
+78
+72
+63
+52
+41
+37
+38
+41
+44
+45
+43
+42
+43
+47
+56
+73
+83
+91
+98
+104
+112
+117
+121
+126
+130
+136
+140
+144
+148
+151
+156
+160
+163
+168
+172
+179
+184
+188
+191
+192
+192
+189
+186
+183
+180
+179
+179
+179
+180
+182
+185
+188
+190
+193
+196
+200
+203
+205
+207
+209
+210
+211
+211
+210
+209
+206
+202
+197
+192
+186
+182
+181
+182
+182
+182
+177
+157
+126
+92
+62
+49
+49
+52
+60
+74
+90
+96
+99
+99
+98
+92
+87
+83
+79
+76
+73
+72
+72
+71
+69
+65
+63
+61
+59
+59
+61
+67
+76
+89
+104
+125
+138
+149
+158
+164
+166
+166
+163
+159
+154
+145
+136
+127
+117
+107
+96
+89
+83
+79
+75
+71
+70
+68
+68
+67
+67
+68
+69
+69
+70
+71
+72
+72
+73
+74
+74
+75
+75
+76
+77
+77
+78
+78
+79
+79
+80
+80
+80
+80
+81
+80
+80
+80
+80
+79
+79
+78
+78
+77
+77
+76
+76
+75
+75
+75
+75
+74
+74
+74
+74
+74
+73
+73
+73
+73
+73
+73
+73
+73
+73
+73
+72
+72
+72
+73
+73
+75
+78
+81
+86
+97
+103
+104
+104
+101
+87
+80
+76
+75
+74
+75
+78
+100
+134
+173
+178
+175
+170
+154
+120
+48
+18
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+19
+19
+19
+19
+19
+20
+20
+20
+20
+20
+20
+20
+21
+22
+23
+25
+27
+30
+34
+37
+41
+42
+43
+42
+42
+38
+35
+33
+32
+31
+34
+37
+42
+49
+57
+65
+72
+78
+82
+82
+80
+76
+70
+63
+53
+50
+51
+52
+51
+47
+43
+42
+46
+53
+66
+81
+89
+97
+104
+110
+117
+122
+127
+132
+136
+143
+147
+151
+155
+159
+164
+167
+172
+178
+183
+189
+192
+193
+194
+192
+187
+182
+179
+178
+176
+178
+180
+183
+185
+188
+191
+194
+197
+200
+203
+207
+210
+212
+214
+215
+217
+217
+217
+217
+216
+215
+212
+208
+203
+197
+188
+184
+182
+182
+182
+181
+173
+153
+122
+86
+56
+51
+50
+55
+65
+85
+93
+98
+100
+100
+96
+90
+85
+81
+77
+74
+73
+72
+71
+70
+68
+66
+64
+61
+59
+58
+60
+63
+68
+75
+87
+97
+106
+115
+122
+127
+127
+125
+121
+116
+107
+99
+92
+86
+80
+74
+72
+70
+70
+70
+71
+72
+73
+74
+75
+76
+77
+77
+78
+79
+79
+80
+80
+81
+81
+81
+82
+82
+82
+82
+83
+83
+83
+83
+83
+82
+82
+82
+82
+82
+81
+81
+80
+80
+79
+78
+78
+78
+77
+77
+76
+76
+76
+75
+75
+75
+75
+75
+74
+74
+74
+74
+73
+73
+73
+73
+73
+73
+73
+73
+73
+73
+73
+73
+74
+75
+78
+82
+87
+92
+103
+108
+110
+110
+107
+91
+82
+77
+75
+74
+74
+78
+101
+136
+175
+179
+175
+170
+154
+121
+49
+19
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+29
+28
+28
+27
+26
+26
+25
+25
+25
+25
+25
+26
+27
+28
+30
+33
+37
+40
+42
+45
+46
+47
+47
+47
+47
+46
+43
+40
+38
+35
+34
+34
+33
+34
+37
+42
+51
+62
+70
+73
+75
+76
+74
+70
+64
+61
+59
+57
+52
+46
+42
+45
+52
+63
+76
+89
+96
+103
+110
+116
+123
+129
+134
+139
+144
+150
+154
+159
+163
+167
+172
+177
+183
+189
+193
+196
+196
+194
+191
+186
+179
+175
+174
+175
+177
+181
+184
+188
+191
+193
+196
+199
+202
+205
+209
+213
+215
+216
+218
+219
+219
+220
+220
+220
+220
+220
+219
+216
+213
+209
+199
+190
+185
+183
+182
+182
+181
+171
+151
+118
+72
+58
+51
+52
+57
+76
+88
+96
+101
+102
+100
+95
+89
+83
+78
+75
+74
+73
+72
+71
+70
+69
+67
+64
+61
+59
+59
+59
+60
+61
+64
+68
+73
+78
+84
+88
+88
+86
+84
+80
+74
+71
+70
+69
+69
+70
+71
+72
+73
+75
+77
+79
+81
+82
+83
+84
+85
+85
+85
+85
+85
+85
+85
+85
+85
+85
+85
+85
+85
+85
+85
+85
+84
+84
+84
+83
+83
+82
+82
+81
+81
+80
+80
+79
+79
+78
+78
+77
+77
+77
+76
+76
+76
+76
+75
+75
+75
+75
+75
+75
+74
+74
+74
+74
+73
+73
+73
+73
+73
+73
+74
+74
+74
+75
+76
+78
+82
+87
+93
+98
+109
+114
+116
+116
+113
+96
+84
+78
+75
+74
+74
+78
+103
+139
+176
+179
+175
+170
+154
+122
+50
+19
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+38
+38
+38
+37
+37
+36
+36
+35
+35
+35
+35
+36
+37
+39
+40
+43
+45
+46
+47
+48
+50
+50
+50
+50
+50
+49
+48
+46
+44
+42
+39
+37
+35
+34
+34
+34
+35
+37
+42
+48
+59
+65
+66
+65
+63
+58
+52
+46
+42
+40
+42
+51
+64
+76
+86
+96
+103
+110
+117
+123
+130
+136
+141
+147
+152
+158
+163
+167
+171
+175
+182
+188
+194
+198
+199
+198
+195
+189
+182
+173
+172
+172
+174
+177
+183
+189
+190
+192
+193
+194
+198
+201
+205
+210
+213
+217
+219
+220
+220
+221
+221
+221
+221
+221
+221
+221
+222
+221
+219
+216
+210
+202
+193
+185
+183
+183
+182
+181
+172
+153
+101
+72
+56
+50
+51
+63
+80
+92
+99
+103
+103
+100
+94
+87
+80
+76
+74
+73
+72
+71
+71
+71
+70
+68
+65
+61
+59
+59
+59
+60
+60
+61
+62
+63
+64
+65
+65
+65
+65
+65
+65
+66
+67
+69
+71
+74
+77
+79
+81
+83
+84
+85
+85
+86
+86
+86
+86
+86
+86
+86
+86
+86
+86
+86
+86
+85
+85
+85
+85
+85
+85
+85
+84
+84
+84
+83
+82
+82
+81
+80
+80
+79
+79
+78
+78
+78
+77
+77
+77
+77
+76
+76
+76
+76
+76
+76
+76
+76
+76
+75
+75
+75
+75
+75
+75
+75
+75
+75
+75
+75
+75
+76
+77
+78
+79
+83
+88
+94
+100
+105
+114
+120
+122
+122
+120
+101
+87
+79
+75
+73
+74
+78
+104
+141
+177
+180
+176
+170
+155
+122
+50
+19
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+51
+51
+50
+50
+50
+49
+49
+49
+49
+49
+49
+49
+50
+51
+52
+54
+55
+56
+57
+58
+60
+60
+60
+60
+60
+59
+57
+56
+54
+52
+50
+48
+46
+44
+42
+39
+38
+37
+37
+37
+38
+39
+39
+39
+39
+39
+39
+40
+42
+46
+61
+72
+81
+89
+95
+106
+113
+120
+126
+131
+139
+145
+150
+155
+161
+167
+171
+176
+180
+186
+195
+200
+201
+201
+199
+190
+177
+170
+167
+168
+172
+179
+184
+188
+190
+191
+191
+192
+193
+196
+203
+209
+213
+216
+218
+219
+219
+219
+218
+216
+213
+213
+213
+214
+216
+219
+221
+222
+223
+223
+219
+215
+207
+198
+188
+183
+183
+183
+181
+177
+147
+110
+79
+58
+50
+51
+62
+77
+91
+100
+104
+104
+102
+97
+90
+80
+76
+74
+72
+72
+71
+71
+71
+70
+69
+67
+64
+63
+61
+61
+61
+60
+60
+60
+61
+61
+62
+63
+64
+65
+68
+71
+73
+75
+76
+77
+76
+75
+73
+70
+67
+66
+66
+67
+68
+69
+71
+74
+77
+79
+81
+81
+82
+82
+83
+83
+83
+83
+83
+83
+82
+82
+82
+82
+81
+81
+80
+80
+80
+79
+79
+79
+78
+78
+78
+78
+78
+78
+78
+79
+79
+80
+80
+80
+80
+80
+80
+80
+80
+80
+80
+80
+80
+80
+80
+80
+79
+80
+80
+80
+81
+82
+83
+84
+87
+92
+97
+103
+109
+113
+121
+127
+129
+130
+128
+110
+93
+82
+76
+73
+74
+79
+106
+144
+178
+180
+176
+170
+155
+123
+51
+20
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+60
+60
+60
+60
+59
+59
+59
+59
+58
+58
+59
+59
+59
+60
+61
+62
+63
+64
+65
+65
+66
+67
+67
+67
+66
+65
+64
+63
+61
+60
+58
+56
+55
+53
+51
+49
+48
+46
+45
+43
+43
+43
+43
+43
+44
+46
+48
+52
+58
+65
+76
+83
+90
+97
+104
+114
+121
+127
+132
+138
+146
+152
+157
+162
+168
+174
+179
+184
+190
+197
+201
+202
+201
+196
+186
+171
+168
+167
+168
+173
+183
+186
+188
+189
+190
+189
+189
+191
+194
+200
+207
+211
+214
+216
+217
+215
+212
+208
+203
+199
+196
+194
+195
+196
+198
+203
+209
+215
+219
+222
+222
+220
+216
+208
+199
+187
+184
+183
+182
+181
+169
+141
+109
+80
+58
+50
+54
+63
+76
+92
+102
+103
+103
+101
+97
+88
+82
+77
+74
+72
+71
+71
+71
+70
+70
+69
+68
+66
+65
+64
+62
+61
+61
+61
+61
+62
+63
+65
+67
+70
+73
+74
+74
+73
+70
+65
+61
+57
+54
+52
+50
+49
+48
+47
+47
+49
+50
+52
+54
+56
+62
+66
+71
+74
+77
+79
+80
+81
+81
+81
+81
+81
+81
+81
+81
+80
+80
+80
+80
+79
+79
+79
+80
+80
+81
+82
+82
+83
+84
+85
+86
+86
+86
+87
+87
+87
+87
+88
+88
+87
+87
+87
+87
+86
+86
+86
+86
+86
+86
+86
+87
+88
+89
+91
+95
+99
+105
+110
+115
+118
+124
+131
+134
+135
+134
+117
+98
+84
+77
+73
+74
+79
+108
+145
+179
+180
+176
+170
+155
+123
+51
+20
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+70
+70
+69
+69
+69
+69
+68
+68
+68
+68
+68
+68
+69
+69
+70
+71
+71
+72
+72
+73
+73
+73
+73
+73
+73
+72
+71
+70
+69
+67
+65
+64
+63
+61
+60
+58
+57
+56
+55
+53
+52
+52
+52
+53
+55
+58
+62
+66
+72
+78
+86
+92
+99
+106
+113
+122
+128
+134
+139
+145
+153
+159
+164
+170
+174
+181
+187
+193
+198
+203
+203
+200
+191
+181
+171
+163
+165
+170
+176
+182
+188
+189
+189
+188
+186
+186
+187
+191
+196
+202
+209
+211
+213
+213
+211
+206
+200
+195
+190
+186
+184
+184
+185
+186
+189
+194
+198
+204
+210
+216
+222
+223
+221
+217
+209
+196
+188
+185
+183
+183
+179
+163
+138
+107
+77
+55
+52
+54
+63
+77
+95
+100
+102
+102
+100
+95
+89
+84
+79
+75
+72
+72
+71
+71
+70
+70
+69
+68
+67
+66
+64
+63
+62
+62
+63
+65
+67
+69
+71
+73
+74
+72
+69
+65
+61
+57
+55
+53
+53
+52
+52
+53
+53
+52
+51
+49
+47
+45
+44
+44
+47
+50
+54
+57
+61
+67
+70
+74
+76
+78
+79
+80
+80
+80
+80
+80
+80
+80
+80
+81
+81
+82
+83
+84
+86
+88
+89
+90
+91
+92
+93
+94
+94
+94
+95
+95
+95
+95
+95
+95
+95
+95
+94
+94
+94
+93
+93
+93
+93
+93
+94
+95
+97
+99
+102
+106
+111
+115
+119
+122
+127
+134
+138
+140
+139
+125
+103
+88
+78
+74
+74
+80
+109
+147
+180
+181
+176
+170
+154
+123
+51
+20
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+79
+79
+79
+79
+79
+78
+78
+78
+78
+78
+78
+78
+78
+78
+79
+79
+79
+80
+80
+80
+81
+81
+80
+80
+80
+79
+78
+77
+76
+75
+73
+72
+71
+70
+69
+68
+67
+66
+65
+64
+64
+64
+65
+66
+68
+72
+75
+80
+84
+89
+95
+102
+109
+115
+122
+129
+135
+141
+146
+152
+160
+166
+171
+177
+181
+189
+195
+201
+205
+205
+200
+190
+177
+165
+160
+163
+170
+178
+185
+189
+189
+188
+186
+184
+183
+183
+186
+191
+198
+204
+208
+210
+210
+208
+203
+195
+189
+184
+180
+178
+178
+180
+181
+183
+186
+189
+192
+195
+200
+207
+218
+222
+223
+222
+218
+206
+195
+188
+185
+184
+183
+178
+162
+137
+105
+69
+57
+51
+53
+61
+83
+94
+99
+101
+101
+99
+95
+91
+86
+81
+76
+74
+73
+72
+71
+71
+70
+70
+69
+68
+66
+66
+66
+66
+67
+70
+72
+74
+74
+74
+71
+66
+61
+57
+54
+53
+54
+55
+57
+59
+62
+64
+66
+67
+66
+62
+58
+53
+48
+44
+41
+40
+40
+42
+45
+51
+56
+61
+65
+69
+72
+74
+76
+77
+78
+79
+80
+80
+81
+82
+83
+85
+87
+89
+91
+94
+95
+97
+98
+99
+100
+101
+101
+102
+102
+103
+103
+103
+103
+103
+102
+102
+102
+102
+101
+101
+101
+100
+101
+101
+101
+102
+104
+106
+109
+113
+116
+120
+123
+125
+129
+137
+142
+144
+144
+133
+110
+92
+79
+74
+74
+80
+110
+149
+180
+181
+176
+169
+154
+123
+50
+19
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+89
+89
+88
+88
+88
+88
+88
+87
+87
+87
+87
+87
+87
+87
+87
+88
+88
+88
+88
+88
+88
+88
+88
+87
+87
+86
+85
+84
+83
+82
+81
+80
+79
+78
+77
+76
+76
+75
+75
+75
+75
+75
+76
+78
+80
+83
+86
+90
+94
+99
+107
+113
+119
+124
+129
+137
+142
+148
+153
+159
+167
+173
+178
+183
+188
+198
+204
+206
+206
+204
+188
+168
+159
+157
+159
+171
+182
+188
+190
+189
+187
+183
+181
+180
+180
+181
+185
+192
+198
+204
+206
+206
+205
+201
+196
+187
+182
+178
+176
+176
+177
+179
+181
+183
+186
+189
+192
+195
+198
+200
+209
+217
+222
+224
+223
+216
+205
+195
+187
+184
+184
+183
+177
+163
+137
+93
+70
+55
+49
+51
+64
+82
+94
+99
+99
+98
+96
+94
+92
+88
+83
+80
+76
+74
+73
+72
+71
+71
+71
+70
+70
+71
+72
+73
+75
+76
+76
+75
+74
+71
+62
+56
+53
+52
+52
+53
+53
+55
+56
+59
+63
+67
+72
+76
+80
+82
+80
+75
+68
+59
+48
+42
+39
+37
+37
+38
+39
+42
+45
+50
+57
+62
+66
+70
+73
+76
+78
+80
+81
+82
+84
+87
+89
+92
+95
+98
+99
+101
+102
+103
+104
+105
+106
+107
+108
+108
+109
+109
+109
+109
+109
+109
+108
+108
+108
+108
+107
+107
+107
+108
+108
+109
+110
+112
+114
+117
+119
+122
+125
+128
+131
+139
+145
+149
+149
+141
+117
+97
+81
+75
+75
+81
+111
+150
+181
+181
+176
+170
+154
+122
+50
+19
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+101
+101
+101
+101
+101
+101
+100
+100
+100
+100
+100
+99
+99
+99
+99
+99
+99
+99
+99
+99
+98
+98
+98
+97
+97
+96
+95
+94
+93
+92
+91
+90
+90
+89
+88
+88
+87
+87
+87
+87
+88
+89
+90
+92
+94
+98
+101
+105
+109
+113
+119
+124
+129
+134
+140
+147
+152
+157
+163
+169
+177
+182
+187
+193
+200
+207
+208
+206
+198
+182
+154
+153
+155
+161
+176
+189
+190
+190
+188
+183
+178
+178
+179
+179
+179
+181
+186
+192
+199
+202
+203
+203
+200
+195
+187
+178
+174
+172
+172
+174
+178
+182
+187
+192
+195
+198
+199
+199
+200
+201
+204
+209
+216
+222
+224
+223
+217
+207
+197
+187
+184
+184
+183
+179
+170
+135
+104
+78
+59
+49
+50
+59
+74
+88
+96
+95
+94
+94
+92
+91
+89
+87
+85
+83
+81
+79
+78
+78
+77
+77
+77
+78
+78
+78
+78
+77
+75
+71
+65
+57
+52
+51
+51
+52
+52
+52
+53
+53
+53
+53
+57
+63
+71
+78
+85
+91
+92
+91
+87
+81
+71
+63
+56
+49
+44
+39
+38
+38
+38
+39
+40
+42
+45
+49
+53
+60
+66
+71
+75
+79
+83
+86
+89
+92
+95
+99
+100
+102
+103
+104
+106
+107
+108
+109
+110
+111
+112
+112
+112
+113
+113
+113
+113
+113
+113
+112
+112
+113
+113
+113
+114
+115
+115
+116
+118
+120
+121
+124
+127
+130
+133
+141
+148
+153
+154
+149
+128
+105
+85
+76
+75
+82
+113
+152
+182
+182
+176
+170
+154
+121
+48
+19
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+111
+111
+111
+110
+110
+110
+110
+110
+109
+109
+109
+109
+108
+108
+108
+108
+107
+107
+107
+107
+106
+106
+105
+105
+104
+103
+103
+102
+101
+100
+99
+98
+98
+97
+96
+96
+96
+96
+96
+97
+98
+99
+100
+102
+104
+108
+111
+114
+118
+122
+128
+133
+138
+143
+147
+154
+159
+164
+170
+176
+183
+188
+194
+201
+207
+208
+206
+193
+176
+157
+150
+154
+165
+178
+187
+190
+189
+186
+181
+178
+177
+177
+177
+178
+178
+180
+187
+193
+198
+201
+202
+201
+196
+189
+180
+173
+171
+171
+174
+178
+188
+196
+202
+207
+211
+213
+213
+212
+210
+207
+206
+209
+213
+218
+223
+225
+222
+215
+206
+195
+186
+185
+184
+183
+179
+160
+133
+105
+80
+61
+49
+52
+59
+71
+84
+92
+92
+91
+90
+88
+88
+87
+86
+85
+83
+82
+81
+81
+80
+80
+80
+80
+79
+79
+78
+74
+69
+63
+57
+52
+51
+51
+51
+52
+52
+52
+52
+53
+53
+53
+56
+61
+68
+77
+87
+96
+100
+100
+98
+93
+84
+76
+68
+61
+54
+48
+45
+42
+41
+39
+40
+41
+43
+46
+49
+55
+61
+66
+71
+76
+81
+85
+89
+92
+95
+99
+101
+102
+104
+105
+107
+108
+110
+111
+112
+113
+113
+114
+114
+114
+114
+114
+114
+114
+114
+114
+114
+114
+114
+115
+115
+116
+117
+118
+119
+121
+122
+125
+129
+132
+136
+142
+150
+156
+158
+155
+136
+112
+89
+77
+76
+82
+114
+153
+182
+182
+176
+170
+153
+119
+47
+18
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+120
+120
+120
+120
+120
+120
+119
+119
+119
+119
+118
+118
+118
+117
+117
+116
+116
+116
+115
+115
+114
+114
+113
+112
+112
+111
+110
+109
+108
+108
+107
+106
+105
+105
+105
+104
+104
+105
+105
+106
+107
+108
+110
+112
+114
+117
+121
+124
+128
+132
+137
+141
+146
+150
+155
+161
+166
+171
+177
+182
+189
+196
+202
+207
+209
+206
+191
+173
+157
+147
+153
+166
+178
+187
+191
+189
+185
+180
+177
+176
+176
+176
+177
+178
+178
+181
+188
+194
+198
+200
+200
+197
+191
+183
+175
+171
+171
+173
+179
+187
+200
+208
+214
+219
+222
+223
+223
+221
+220
+217
+212
+211
+213
+216
+221
+225
+224
+220
+214
+204
+191
+187
+185
+184
+183
+175
+157
+133
+106
+81
+58
+52
+52
+58
+69
+82
+87
+87
+86
+85
+84
+84
+84
+84
+84
+83
+82
+82
+81
+81
+81
+80
+78
+77
+74
+67
+61
+56
+52
+50
+50
+50
+51
+51
+51
+51
+51
+52
+53
+53
+55
+60
+67
+77
+87
+100
+105
+107
+106
+103
+94
+86
+78
+70
+63
+56
+52
+48
+46
+44
+43
+43
+43
+45
+48
+54
+59
+64
+69
+74
+80
+85
+89
+92
+96
+99
+102
+104
+106
+107
+110
+111
+113
+114
+115
+116
+117
+117
+117
+117
+117
+117
+116
+116
+116
+116
+116
+116
+116
+116
+117
+118
+118
+119
+120
+123
+124
+127
+131
+135
+139
+144
+152
+159
+162
+159
+145
+120
+94
+78
+77
+83
+115
+153
+182
+182
+177
+170
+153
+118
+46
+17
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+130
+130
+130
+129
+129
+129
+129
+129
+128
+128
+127
+127
+127
+126
+126
+125
+125
+124
+123
+123
+122
+121
+121
+120
+119
+118
+117
+117
+116
+115
+114
+114
+113
+113
+113
+113
+113
+113
+114
+114
+116
+117
+119
+121
+123
+127
+130
+133
+137
+140
+145
+149
+153
+157
+162
+168
+173
+178
+184
+188
+196
+203
+208
+210
+208
+194
+169
+153
+145
+149
+164
+180
+188
+190
+189
+184
+179
+176
+175
+175
+176
+177
+177
+178
+179
+182
+188
+194
+197
+198
+197
+193
+186
+178
+171
+170
+172
+178
+187
+199
+212
+219
+224
+226
+228
+228
+228
+228
+227
+225
+220
+216
+215
+216
+219
+224
+225
+224
+220
+212
+198
+190
+187
+185
+185
+183
+174
+157
+134
+107
+76
+60
+53
+52
+55
+69
+77
+81
+82
+81
+79
+79
+79
+80
+80
+81
+81
+81
+81
+80
+79
+77
+75
+71
+67
+58
+53
+51
+49
+49
+50
+50
+49
+49
+48
+49
+50
+52
+53
+53
+55
+59
+67
+77
+88
+102
+109
+113
+113
+111
+102
+94
+86
+78
+71
+63
+58
+55
+52
+50
+48
+47
+47
+48
+50
+55
+60
+65
+69
+74
+80
+85
+89
+93
+97
+101
+103
+106
+108
+110
+113
+115
+116
+118
+119
+120
+121
+121
+121
+121
+120
+120
+120
+119
+119
+118
+118
+118
+118
+118
+119
+120
+120
+121
+123
+126
+127
+130
+133
+138
+143
+147
+154
+161
+165
+164
+152
+128
+100
+80
+78
+84
+115
+154
+183
+182
+177
+170
+152
+116
+44
+17
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+139
+139
+139
+139
+139
+139
+138
+138
+138
+137
+137
+136
+136
+135
+135
+134
+133
+132
+132
+131
+130
+129
+128
+128
+127
+126
+125
+124
+123
+123
+122
+122
+121
+121
+121
+121
+121
+121
+122
+123
+125
+126
+128
+130
+132
+136
+139
+142
+145
+149
+153
+157
+161
+165
+168
+174
+180
+185
+190
+194
+205
+210
+211
+209
+204
+164
+147
+142
+146
+158
+185
+190
+191
+189
+185
+177
+175
+175
+175
+175
+176
+178
+179
+180
+181
+183
+188
+193
+196
+196
+195
+190
+182
+174
+169
+170
+174
+184
+197
+210
+222
+226
+228
+229
+229
+230
+230
+229
+229
+229
+228
+223
+220
+218
+219
+223
+225
+225
+224
+219
+206
+196
+189
+186
+185
+185
+183
+175
+159
+136
+101
+78
+62
+53
+50
+55
+62
+70
+75
+75
+73
+71
+70
+70
+72
+75
+77
+78
+78
+78
+75
+72
+67
+62
+56
+50
+49
+48
+48
+49
+49
+48
+47
+46
+46
+46
+49
+51
+52
+53
+55
+59
+67
+78
+90
+105
+113
+118
+119
+117
+109
+102
+94
+86
+78
+69
+64
+60
+57
+55
+54
+54
+55
+56
+57
+60
+63
+67
+71
+75
+81
+86
+90
+94
+98
+103
+105
+108
+111
+113
+116
+118
+120
+121
+123
+124
+125
+125
+125
+125
+125
+125
+124
+124
+123
+123
+122
+122
+122
+122
+122
+123
+124
+125
+126
+129
+131
+134
+137
+142
+147
+150
+156
+163
+167
+167
+160
+136
+106
+82
+80
+85
+116
+155
+183
+182
+177
+170
+152
+114
+43
+16
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+152
+152
+152
+152
+151
+151
+151
+151
+150
+150
+149
+149
+148
+147
+147
+145
+145
+144
+143
+142
+141
+140
+139
+138
+137
+136
+135
+134
+133
+133
+132
+132
+131
+131
+131
+131
+132
+132
+133
+134
+136
+138
+140
+142
+144
+147
+150
+153
+156
+159
+163
+167
+170
+173
+177
+184
+188
+193
+198
+206
+212
+212
+208
+194
+162
+138
+138
+148
+165
+186
+191
+190
+187
+182
+176
+174
+174
+175
+176
+179
+182
+183
+183
+183
+183
+184
+188
+192
+194
+195
+193
+185
+176
+170
+169
+171
+182
+197
+211
+223
+229
+229
+229
+230
+230
+230
+230
+230
+230
+230
+229
+228
+226
+223
+221
+223
+225
+226
+226
+224
+216
+206
+196
+189
+186
+186
+186
+184
+179
+168
+141
+116
+92
+72
+57
+49
+50
+53
+57
+64
+68
+67
+65
+62
+60
+57
+58
+59
+60
+60
+59
+58
+55
+52
+49
+47
+47
+47
+47
+47
+46
+44
+43
+43
+43
+45
+48
+51
+53
+53
+55
+61
+70
+81
+93
+109
+117
+123
+125
+124
+117
+109
+101
+93
+85
+76
+70
+66
+63
+62
+61
+62
+63
+64
+66
+69
+71
+73
+76
+79
+84
+89
+94
+98
+102
+106
+109
+112
+114
+117
+120
+122
+123
+125
+126
+127
+128
+128
+129
+129
+130
+130
+130
+130
+129
+129
+129
+129
+129
+129
+130
+130
+131
+132
+134
+137
+139
+142
+144
+149
+154
+156
+160
+165
+170
+170
+166
+146
+116
+86
+82
+88
+118
+155
+183
+182
+177
+169
+150
+111
+40
+15
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+161
+161
+161
+161
+161
+161
+160
+160
+160
+159
+159
+158
+157
+156
+156
+154
+153
+152
+151
+150
+149
+148
+147
+146
+144
+143
+142
+141
+141
+140
+139
+139
+139
+139
+139
+139
+139
+140
+141
+142
+144
+146
+148
+150
+152
+156
+158
+161
+164
+166
+170
+173
+176
+180
+184
+190
+194
+199
+206
+212
+213
+209
+191
+165
+141
+136
+148
+165
+181
+190
+190
+186
+181
+177
+175
+174
+175
+178
+182
+186
+187
+187
+185
+184
+183
+184
+188
+191
+193
+193
+191
+181
+173
+169
+168
+174
+190
+206
+219
+226
+229
+229
+229
+229
+229
+229
+229
+229
+229
+230
+229
+229
+228
+226
+224
+224
+225
+226
+226
+225
+220
+212
+203
+194
+188
+186
+186
+186
+184
+180
+163
+144
+122
+100
+79
+60
+54
+52
+53
+56
+59
+60
+60
+59
+58
+55
+53
+52
+50
+49
+48
+48
+47
+46
+45
+45
+46
+46
+46
+45
+43
+42
+41
+41
+42
+46
+49
+51
+53
+54
+56
+63
+73
+85
+97
+113
+121
+127
+130
+129
+121
+113
+105
+96
+87
+78
+73
+69
+67
+66
+66
+67
+68
+70
+71
+73
+74
+76
+79
+82
+88
+93
+97
+101
+105
+109
+112
+114
+117
+120
+122
+124
+126
+127
+128
+130
+130
+131
+131
+131
+132
+132
+132
+132
+132
+133
+133
+134
+134
+135
+135
+137
+138
+139
+140
+143
+146
+149
+151
+155
+160
+162
+164
+168
+172
+172
+170
+152
+124
+91
+85
+90
+119
+156
+183
+182
+177
+169
+149
+108
+38
+14
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+171
+171
+171
+171
+170
+170
+170
+170
+169
+169
+168
+167
+166
+166
+165
+163
+162
+161
+160
+158
+157
+156
+154
+153
+152
+151
+150
+149
+148
+148
+147
+147
+146
+146
+146
+147
+147
+148
+149
+150
+152
+154
+156
+158
+161
+164
+166
+169
+171
+173
+177
+180
+183
+186
+191
+195
+200
+206
+212
+214
+211
+193
+167
+144
+133
+144
+164
+180
+189
+190
+186
+181
+177
+175
+174
+175
+179
+185
+190
+193
+193
+192
+188
+185
+184
+184
+188
+190
+192
+192
+189
+178
+171
+168
+168
+178
+198
+213
+224
+228
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+228
+226
+225
+226
+226
+226
+226
+223
+218
+209
+200
+192
+187
+187
+187
+186
+185
+178
+165
+148
+128
+107
+82
+68
+59
+54
+53
+54
+56
+56
+57
+56
+54
+52
+49
+47
+46
+44
+43
+43
+42
+42
+43
+43
+43
+43
+42
+41
+41
+41
+41
+43
+47
+50
+52
+53
+54
+58
+67
+77
+89
+102
+117
+127
+133
+135
+134
+125
+116
+107
+98
+89
+80
+75
+72
+70
+70
+70
+71
+72
+74
+75
+76
+77
+79
+82
+86
+92
+97
+101
+104
+107
+112
+115
+117
+120
+123
+125
+127
+129
+130
+132
+133
+133
+134
+134
+134
+135
+135
+135
+135
+135
+136
+137
+138
+138
+139
+141
+142
+143
+145
+147
+150
+153
+155
+158
+161
+166
+167
+169
+171
+174
+174
+172
+158
+132
+96
+87
+92
+121
+157
+183
+182
+177
+169
+147
+105
+36
+13
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+180
+180
+180
+180
+180
+180
+180
+179
+179
+178
+177
+177
+176
+175
+174
+172
+171
+169
+168
+167
+165
+163
+162
+161
+159
+158
+157
+156
+155
+155
+154
+154
+154
+154
+154
+154
+155
+155
+157
+158
+160
+162
+164
+166
+168
+171
+174
+176
+178
+180
+184
+186
+189
+193
+196
+201
+207
+212
+215
+214
+201
+169
+145
+133
+136
+161
+180
+189
+190
+188
+180
+177
+175
+174
+175
+179
+186
+193
+199
+200
+200
+197
+191
+185
+183
+184
+187
+190
+191
+191
+186
+175
+169
+167
+168
+184
+205
+219
+227
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+228
+227
+227
+227
+227
+227
+225
+221
+215
+207
+198
+189
+188
+187
+187
+187
+186
+180
+169
+155
+136
+109
+91
+75
+64
+57
+54
+53
+54
+54
+54
+54
+52
+50
+48
+46
+44
+42
+41
+40
+40
+40
+41
+41
+41
+41
+40
+41
+41
+42
+45
+49
+52
+53
+54
+55
+61
+72
+83
+94
+106
+123
+133
+139
+141
+138
+129
+118
+108
+98
+89
+80
+76
+74
+73
+73
+73
+74
+75
+76
+77
+78
+80
+83
+86
+91
+96
+100
+104
+107
+110
+115
+118
+121
+123
+126
+129
+131
+132
+134
+135
+136
+137
+137
+138
+138
+138
+138
+138
+138
+139
+140
+140
+141
+142
+144
+145
+147
+149
+150
+152
+156
+159
+161
+164
+167
+171
+173
+174
+175
+176
+176
+175
+163
+140
+102
+91
+95
+123
+158
+183
+182
+177
+168
+146
+101
+33
+12
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+190
+190
+190
+190
+190
+189
+189
+189
+188
+188
+187
+186
+185
+184
+183
+181
+180
+178
+177
+175
+173
+171
+169
+168
+166
+164
+163
+162
+161
+161
+160
+160
+160
+160
+160
+160
+161
+162
+163
+165
+167
+170
+172
+174
+176
+179
+181
+183
+185
+187
+189
+192
+195
+199
+201
+208
+214
+216
+215
+213
+174
+142
+131
+135
+149
+184
+189
+190
+188
+182
+176
+174
+173
+174
+177
+187
+196
+203
+207
+208
+207
+201
+193
+185
+183
+183
+187
+189
+190
+189
+184
+173
+167
+167
+169
+191
+212
+223
+228
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+228
+228
+228
+227
+227
+226
+224
+219
+213
+204
+192
+189
+187
+187
+187
+188
+187
+183
+175
+163
+140
+121
+102
+85
+70
+59
+53
+51
+51
+52
+52
+52
+51
+50
+48
+45
+43
+42
+41
+40
+40
+40
+40
+40
+40
+41
+41
+43
+45
+48
+51
+53
+54
+55
+56
+66
+78
+89
+100
+112
+130
+141
+146
+146
+143
+131
+119
+108
+97
+88
+80
+77
+76
+75
+75
+76
+76
+77
+77
+78
+80
+83
+87
+91
+96
+101
+104
+107
+111
+114
+118
+121
+124
+127
+129
+132
+134
+135
+137
+138
+139
+140
+140
+141
+141
+142
+142
+143
+143
+144
+145
+145
+146
+147
+148
+150
+151
+153
+155
+157
+160
+163
+166
+169
+172
+176
+178
+178
+178
+178
+178
+177
+168
+146
+108
+94
+99
+126
+160
+184
+182
+177
+167
+144
+97
+30
+11
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+202
+202
+202
+202
+202
+202
+202
+202
+201
+201
+200
+199
+198
+196
+195
+193
+191
+189
+188
+186
+184
+182
+180
+179
+177
+176
+175
+174
+173
+172
+172
+171
+171
+171
+171
+172
+173
+174
+175
+177
+179
+181
+183
+185
+186
+189
+190
+192
+193
+195
+197
+200
+203
+206
+210
+217
+217
+216
+208
+185
+133
+129
+136
+154
+183
+191
+190
+186
+181
+175
+172
+172
+175
+181
+190
+202
+208
+212
+215
+215
+214
+205
+194
+185
+182
+183
+185
+187
+188
+188
+181
+171
+166
+166
+170
+199
+217
+226
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+228
+228
+228
+227
+225
+223
+219
+213
+201
+193
+189
+188
+188
+188
+188
+188
+187
+183
+172
+158
+143
+126
+108
+87
+75
+64
+57
+53
+53
+52
+52
+51
+51
+50
+48
+47
+46
+44
+43
+43
+43
+43
+43
+45
+46
+48
+50
+51
+53
+54
+55
+57
+61
+77
+89
+99
+109
+122
+143
+153
+156
+154
+147
+131
+117
+104
+93
+85
+79
+77
+76
+76
+77
+77
+78
+78
+80
+82
+87
+91
+95
+98
+102
+106
+109
+112
+116
+119
+124
+127
+129
+132
+134
+137
+138
+140
+141
+142
+143
+143
+144
+145
+146
+147
+148
+149
+150
+151
+153
+154
+155
+156
+157
+159
+160
+161
+163
+164
+167
+169
+171
+173
+176
+181
+182
+182
+182
+181
+180
+179
+173
+154
+117
+100
+104
+130
+162
+184
+181
+177
+166
+140
+91
+26
+9
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+212
+212
+212
+212
+212
+212
+212
+212
+211
+211
+210
+209
+207
+206
+205
+202
+200
+198
+196
+194
+191
+188
+186
+184
+182
+180
+179
+178
+177
+177
+177
+176
+176
+176
+177
+177
+178
+179
+181
+182
+185
+187
+189
+190
+192
+194
+196
+198
+199
+201
+204
+207
+209
+212
+215
+218
+218
+209
+189
+149
+128
+134
+153
+175
+189
+190
+187
+181
+176
+171
+171
+175
+182
+190
+199
+208
+212
+215
+216
+217
+215
+206
+195
+186
+182
+182
+184
+186
+187
+186
+180
+169
+165
+166
+171
+203
+220
+227
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+227
+226
+224
+221
+217
+207
+199
+193
+189
+188
+188
+188
+189
+189
+188
+184
+176
+166
+154
+139
+118
+104
+90
+78
+68
+59
+56
+54
+53
+52
+51
+50
+50
+49
+48
+47
+47
+47
+47
+48
+48
+49
+50
+52
+53
+54
+54
+56
+62
+71
+87
+97
+106
+118
+133
+156
+162
+163
+158
+147
+127
+112
+100
+90
+83
+78
+77
+77
+77
+78
+79
+80
+83
+85
+88
+93
+96
+99
+102
+106
+110
+113
+117
+120
+124
+128
+131
+134
+136
+138
+140
+142
+143
+144
+145
+146
+147
+148
+149
+151
+152
+154
+155
+156
+158
+159
+160
+162
+163
+164
+165
+167
+168
+169
+170
+172
+174
+175
+176
+178
+182
+184
+184
+184
+183
+182
+181
+175
+159
+123
+105
+109
+134
+164
+184
+181
+176
+164
+137
+86
+24
+8
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+221
+221
+221
+222
+222
+222
+222
+222
+221
+221
+220
+218
+217
+215
+214
+211
+209
+207
+205
+203
+200
+197
+195
+192
+190
+187
+186
+184
+183
+183
+182
+182
+182
+182
+182
+183
+185
+186
+188
+190
+193
+195
+197
+199
+200
+202
+204
+205
+207
+208
+211
+213
+215
+216
+218
+219
+214
+192
+162
+132
+130
+150
+171
+187
+191
+188
+182
+176
+171
+169
+173
+181
+190
+199
+206
+212
+215
+216
+217
+217
+216
+207
+196
+186
+182
+182
+184
+185
+186
+185
+179
+168
+164
+165
+172
+206
+221
+228
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+228
+226
+224
+223
+220
+213
+205
+198
+192
+189
+188
+188
+189
+190
+190
+190
+187
+182
+174
+164
+147
+133
+119
+105
+92
+77
+70
+64
+59
+56
+53
+52
+51
+51
+50
+50
+50
+50
+50
+50
+51
+51
+52
+53
+54
+55
+57
+62
+71
+83
+97
+105
+116
+130
+148
+168
+171
+168
+159
+144
+121
+106
+95
+86
+81
+78
+78
+78
+79
+81
+83
+86
+88
+91
+94
+98
+101
+104
+107
+110
+115
+119
+122
+126
+129
+133
+135
+138
+140
+142
+144
+145
+146
+148
+149
+151
+152
+153
+155
+157
+159
+160
+162
+163
+165
+166
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+184
+185
+186
+186
+185
+183
+182
+178
+162
+129
+110
+114
+137
+166
+184
+181
+176
+163
+133
+81
+21
+7
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+231
+231
+231
+231
+232
+232
+232
+232
+231
+231
+230
+229
+227
+225
+223
+220
+218
+215
+213
+210
+207
+205
+203
+200
+198
+195
+193
+192
+190
+189
+189
+188
+188
+188
+189
+191
+192
+194
+197
+199
+202
+204
+205
+207
+208
+210
+211
+212
+213
+214
+216
+217
+218
+219
+219
+217
+201
+169
+138
+127
+143
+170
+185
+190
+189
+184
+176
+171
+168
+170
+179
+189
+198
+205
+210
+214
+216
+217
+218
+218
+216
+208
+197
+187
+182
+181
+183
+184
+184
+184
+178
+168
+163
+165
+172
+208
+222
+228
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+230
+230
+230
+230
+229
+228
+226
+225
+223
+222
+217
+211
+204
+197
+191
+188
+188
+189
+189
+190
+192
+192
+190
+188
+183
+171
+160
+147
+134
+120
+103
+91
+81
+73
+66
+60
+57
+55
+53
+52
+52
+52
+51
+52
+52
+52
+53
+54
+54
+55
+58
+64
+73
+83
+94
+105
+114
+128
+145
+165
+179
+178
+170
+157
+138
+114
+100
+89
+83
+79
+78
+79
+81
+83
+85
+89
+92
+95
+97
+100
+103
+106
+109
+112
+116
+121
+124
+128
+131
+134
+137
+140
+142
+144
+145
+148
+149
+151
+152
+154
+156
+158
+160
+162
+164
+166
+168
+169
+171
+172
+174
+175
+175
+176
+177
+178
+179
+179
+180
+181
+182
+182
+183
+183
+183
+185
+186
+187
+187
+186
+185
+184
+180
+166
+135
+115
+119
+141
+168
+183
+181
+176
+161
+129
+75
+18
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+240
+241
+241
+241
+242
+242
+241
+241
+241
+241
+241
+240
+239
+237
+235
+231
+227
+223
+219
+215
+212
+209
+207
+206
+204
+202
+200
+199
+198
+197
+196
+196
+196
+197
+197
+199
+201
+203
+205
+207
+209
+210
+211
+212
+213
+214
+214
+215
+216
+217
+218
+219
+219
+220
+219
+213
+173
+142
+127
+130
+170
+186
+191
+189
+186
+179
+170
+167
+168
+173
+189
+196
+203
+208
+212
+216
+217
+218
+218
+218
+216
+209
+198
+187
+181
+181
+182
+183
+183
+183
+178
+167
+163
+164
+171
+208
+222
+228
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+230
+230
+230
+230
+230
+229
+227
+225
+224
+223
+221
+216
+209
+202
+195
+190
+188
+188
+188
+189
+191
+193
+194
+194
+193
+188
+181
+171
+161
+148
+131
+118
+106
+95
+85
+74
+68
+63
+59
+56
+54
+54
+53
+54
+54
+55
+55
+55
+56
+57
+66
+77
+87
+97
+104
+114
+127
+144
+163
+182
+187
+182
+169
+151
+129
+105
+93
+85
+80
+79
+80
+82
+85
+88
+91
+95
+98
+100
+102
+105
+108
+111
+115
+118
+122
+127
+130
+134
+137
+139
+142
+144
+146
+148
+150
+152
+154
+155
+157
+160
+163
+165
+168
+170
+172
+174
+176
+177
+178
+179
+180
+181
+182
+182
+183
+183
+184
+184
+184
+185
+185
+185
+186
+186
+186
+187
+187
+188
+188
+187
+186
+185
+181
+169
+141
+121
+124
+145
+170
+183
+181
+176
+159
+125
+70
+16
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+252
+251
+249
+246
+244
+241
+240
+239
+239
+240
+241
+241
+242
+243
+243
+242
+241
+240
+237
+233
+226
+221
+216
+212
+210
+207
+206
+205
+204
+204
+203
+203
+203
+204
+204
+206
+208
+210
+212
+214
+215
+215
+216
+216
+217
+217
+218
+219
+220
+221
+221
+221
+221
+219
+214
+162
+133
+125
+136
+166
+192
+191
+189
+185
+181
+166
+164
+166
+172
+185
+195
+201
+207
+212
+216
+218
+219
+219
+219
+219
+217
+209
+199
+189
+182
+181
+181
+182
+182
+182
+178
+168
+163
+163
+168
+206
+222
+228
+229
+229
+228
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+230
+230
+230
+230
+230
+230
+229
+227
+226
+224
+223
+222
+220
+216
+210
+202
+194
+191
+189
+188
+188
+189
+191
+193
+195
+197
+197
+195
+191
+185
+177
+163
+152
+140
+128
+117
+104
+95
+87
+81
+75
+69
+66
+64
+62
+61
+61
+62
+65
+70
+78
+90
+97
+103
+110
+118
+135
+153
+172
+187
+196
+192
+177
+157
+134
+112
+91
+84
+82
+81
+82
+87
+91
+95
+98
+100
+103
+105
+107
+110
+113
+117
+120
+124
+128
+131
+135
+138
+141
+143
+146
+148
+150
+152
+154
+157
+160
+162
+165
+168
+171
+174
+176
+178
+180
+182
+183
+185
+186
+186
+187
+187
+187
+187
+187
+187
+187
+187
+187
+187
+187
+187
+187
+187
+187
+188
+188
+188
+188
+189
+188
+187
+186
+183
+172
+147
+127
+131
+150
+172
+183
+180
+175
+155
+118
+62
+13
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+180
+181
+182
+185
+190
+194
+199
+200
+200
+198
+196
+198
+201
+205
+211
+220
+227
+233
+236
+235
+233
+230
+226
+221
+217
+213
+210
+209
+208
+207
+207
+207
+207
+208
+209
+213
+215
+216
+216
+216
+215
+215
+215
+215
+215
+217
+218
+219
+219
+216
+203
+192
+178
+161
+143
+124
+124
+141
+165
+186
+192
+189
+186
+181
+173
+162
+162
+168
+177
+188
+198
+205
+211
+215
+218
+219
+219
+219
+219
+219
+217
+211
+201
+191
+184
+180
+181
+181
+181
+181
+178
+169
+163
+161
+165
+200
+220
+227
+228
+228
+228
+228
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+229
+230
+230
+230
+230
+230
+230
+230
+229
+227
+226
+224
+223
+222
+222
+219
+214
+208
+199
+194
+191
+189
+188
+188
+190
+191
+194
+196
+198
+199
+198
+195
+190
+180
+170
+160
+149
+139
+125
+115
+107
+99
+92
+85
+81
+78
+76
+76
+78
+81
+85
+90
+96
+102
+107
+114
+125
+138
+158
+175
+189
+198
+200
+187
+165
+140
+117
+99
+86
+84
+83
+85
+89
+94
+98
+100
+103
+105
+108
+110
+113
+116
+119
+124
+128
+131
+135
+138
+142
+144
+147
+149
+151
+154
+157
+159
+162
+164
+168
+171
+174
+177
+179
+182
+184
+186
+187
+188
+188
+189
+189
+189
+189
+189
+189
+189
+189
+189
+188
+188
+188
+188
+188
+188
+188
+188
+188
+188
+188
+189
+189
+189
+189
+188
+187
+184
+174
+150
+132
+136
+154
+175
+183
+180
+174
+151
+112
+56
+10
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+148
+162
+177
+189
+197
+202
+206
+207
+207
+205
+204
+204
+204
+204
+204
+208
+214
+220
+226
+232
+235
+234
+232
+228
+224
+219
+216
+213
+212
+211
+210
+211
+212
+214
+216
+219
+218
+217
+212
+202
+197
+198
+201
+203
+203
+198
+187
+175
+160
+145
+132
+128
+125
+121
+115
+121
+140
+164
+184
+193
+190
+186
+182
+176
+164
+159
+162
+170
+180
+190
+202
+209
+214
+217
+219
+219
+219
+219
+219
+219
+218
+212
+204
+194
+186
+181
+180
+180
+181
+180
+178
+170
+163
+160
+162
+193
+216
+226
+228
+228
+228
+228
+228
+229
+229
+229
+229
+230
+230
+230
+230
+230
+230
+230
+230
+230
+230
+230
+230
+230
+229
+227
+226
+224
+223
+223
+222
+221
+218
+212
+203
+197
+193
+190
+189
+188
+189
+190
+192
+194
+198
+200
+201
+201
+198
+192
+185
+176
+167
+157
+144
+134
+126
+118
+111
+103
+99
+97
+95
+95
+96
+99
+102
+105
+108
+114
+122
+133
+146
+160
+179
+192
+201
+203
+198
+173
+146
+122
+103
+90
+85
+86
+88
+92
+97
+101
+104
+106
+108
+110
+114
+117
+120
+124
+127
+132
+136
+139
+142
+145
+148
+151
+153
+155
+158
+161
+164
+167
+170
+173
+177
+180
+183
+185
+187
+189
+189
+190
+191
+191
+192
+192
+192
+192
+192
+191
+191
+191
+191
+191
+190
+190
+190
+190
+190
+189
+189
+189
+189
+189
+189
+189
+189
+189
+189
+188
+188
+185
+176
+153
+137
+140
+158
+177
+183
+180
+173
+147
+105
+49
+9
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+152
+178
+200
+216
+224
+226
+226
+226
+226
+226
+226
+225
+222
+217
+211
+207
+206
+209
+214
+223
+232
+234
+234
+232
+230
+225
+222
+219
+216
+215
+215
+216
+218
+220
+222
+217
+205
+194
+182
+165
+154
+155
+156
+157
+153
+140
+123
+105
+86
+71
+71
+80
+94
+108
+119
+141
+168
+185
+194
+193
+186
+184
+178
+169
+157
+157
+163
+172
+183
+193
+206
+213
+216
+218
+219
+219
+219
+219
+219
+219
+219
+214
+207
+197
+189
+182
+180
+180
+180
+180
+178
+171
+164
+160
+160
+184
+211
+224
+228
+228
+228
+228
+228
+228
+228
+229
+229
+230
+230
+230
+230
+230
+230
+230
+230
+230
+230
+230
+230
+230
+228
+227
+225
+224
+223
+223
+223
+222
+220
+215
+207
+200
+195
+192
+190
+189
+188
+189
+190
+193
+197
+200
+203
+204
+204
+200
+195
+188
+181
+172
+160
+151
+143
+136
+129
+122
+118
+116
+114
+113
+113
+114
+115
+118
+121
+131
+143
+156
+170
+182
+197
+204
+206
+201
+188
+151
+124
+105
+92
+87
+88
+91
+95
+100
+104
+108
+110
+112
+114
+117
+121
+125
+128
+132
+136
+141
+144
+147
+149
+152
+155
+157
+160
+163
+166
+170
+173
+177
+180
+183
+186
+188
+190
+192
+193
+193
+194
+194
+194
+194
+195
+195
+195
+195
+195
+194
+194
+194
+194
+194
+193
+193
+192
+192
+192
+192
+191
+191
+191
+191
+191
+190
+190
+190
+190
+189
+188
+186
+177
+156
+141
+145
+162
+179
+183
+180
+171
+143
+98
+43
+7
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+186
+210
+221
+226
+227
+227
+226
+226
+225
+225
+225
+225
+225
+225
+224
+217
+210
+207
+207
+210
+225
+231
+234
+234
+234
+230
+228
+225
+222
+220
+221
+223
+224
+224
+222
+202
+160
+129
+109
+98
+83
+72
+62
+50
+36
+23
+23
+28
+39
+54
+80
+99
+114
+128
+143
+177
+190
+195
+193
+189
+184
+181
+172
+161
+153
+154
+162
+173
+184
+196
+210
+215
+217
+218
+218
+219
+219
+219
+219
+219
+219
+217
+210
+202
+192
+184
+181
+180
+179
+179
+178
+172
+165
+160
+158
+174
+205
+222
+228
+228
+228
+228
+227
+227
+228
+228
+229
+229
+230
+230
+230
+230
+230
+230
+230
+230
+230
+230
+230
+229
+228
+226
+225
+224
+223
+223
+223
+223
+221
+218
+209
+203
+198
+194
+191
+189
+189
+189
+190
+192
+197
+200
+203
+205
+206
+205
+201
+196
+190
+184
+174
+166
+159
+152
+145
+139
+134
+131
+127
+125
+123
+123
+126
+132
+141
+159
+171
+181
+190
+199
+208
+210
+205
+192
+165
+123
+103
+92
+88
+88
+93
+98
+103
+107
+109
+112
+114
+117
+120
+124
+129
+133
+137
+141
+145
+149
+151
+154
+156
+159
+163
+166
+169
+173
+176
+181
+184
+187
+190
+192
+194
+195
+195
+196
+196
+197
+198
+198
+199
+199
+199
+199
+199
+199
+199
+199
+199
+199
+198
+198
+197
+197
+196
+196
+196
+195
+195
+194
+193
+193
+192
+192
+191
+191
+190
+189
+189
+187
+178
+159
+145
+150
+165
+180
+183
+179
+170
+138
+91
+37
+5
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+197
+216
+224
+226
+226
+224
+223
+223
+223
+224
+224
+224
+224
+225
+225
+224
+218
+212
+207
+207
+211
+220
+228
+233
+234
+233
+232
+229
+227
+227
+230
+230
+218
+184
+115
+59
+41
+27
+18
+11
+8
+5
+4
+6
+10
+28
+49
+73
+97
+118
+135
+141
+152
+166
+185
+196
+196
+193
+189
+184
+182
+174
+162
+152
+150
+152
+160
+172
+186
+201
+214
+216
+217
+217
+217
+218
+219
+219
+219
+220
+220
+219
+215
+208
+199
+188
+183
+180
+179
+179
+178
+174
+167
+161
+158
+162
+190
+212
+226
+228
+228
+227
+227
+227
+227
+227
+228
+228
+229
+229
+229
+229
+230
+230
+230
+230
+229
+229
+229
+228
+226
+225
+224
+224
+224
+223
+223
+223
+222
+218
+210
+203
+198
+194
+191
+189
+189
+189
+190
+193
+198
+201
+204
+207
+209
+209
+207
+204
+199
+192
+183
+176
+169
+163
+157
+149
+145
+143
+141
+141
+146
+153
+162
+171
+180
+188
+194
+200
+206
+211
+211
+204
+182
+151
+117
+95
+92
+92
+94
+99
+107
+111
+114
+116
+118
+122
+125
+129
+133
+138
+143
+147
+151
+154
+157
+160
+163
+166
+169
+173
+178
+181
+185
+188
+191
+194
+196
+197
+198
+199
+200
+200
+201
+202
+203
+204
+204
+204
+205
+205
+205
+206
+206
+206
+206
+206
+206
+205
+205
+204
+204
+203
+202
+202
+201
+200
+200
+199
+198
+197
+196
+195
+194
+193
+192
+190
+189
+187
+179
+161
+151
+156
+170
+182
+183
+179
+166
+130
+80
+29
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+205
+219
+225
+226
+225
+223
+223
+223
+223
+224
+224
+224
+224
+224
+225
+225
+222
+216
+210
+207
+211
+219
+227
+232
+234
+234
+233
+232
+231
+231
+226
+189
+138
+87
+47
+24
+17
+12
+8
+6
+4
+5
+13
+27
+50
+83
+103
+120
+133
+141
+152
+162
+175
+186
+194
+197
+194
+189
+185
+183
+181
+167
+156
+149
+148
+150
+158
+172
+188
+205
+216
+216
+216
+216
+216
+217
+219
+219
+219
+220
+220
+220
+218
+214
+206
+193
+186
+182
+179
+179
+177
+175
+169
+163
+158
+159
+177
+200
+220
+227
+228
+227
+227
+227
+227
+227
+227
+227
+227
+228
+228
+228
+228
+228
+228
+228
+228
+227
+227
+226
+225
+225
+224
+224
+224
+224
+224
+223
+220
+216
+207
+201
+196
+193
+190
+189
+190
+191
+194
+197
+202
+206
+209
+211
+212
+212
+210
+207
+204
+198
+190
+184
+178
+173
+168
+164
+163
+163
+164
+167
+172
+177
+183
+188
+192
+199
+204
+209
+211
+212
+199
+171
+142
+116
+101
+94
+95
+98
+103
+108
+114
+116
+119
+122
+125
+131
+135
+140
+144
+148
+154
+157
+161
+164
+168
+173
+176
+180
+184
+187
+191
+193
+196
+197
+199
+200
+201
+202
+203
+203
+204
+205
+205
+205
+206
+206
+206
+207
+207
+207
+207
+207
+208
+208
+208
+208
+208
+208
+207
+207
+207
+207
+206
+205
+205
+204
+203
+202
+201
+200
+199
+197
+196
+195
+193
+191
+190
+187
+180
+162
+154
+160
+172
+183
+183
+178
+162
+123
+72
+24
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+207
+220
+225
+226
+225
+222
+222
+223
+224
+225
+224
+224
+224
+224
+225
+225
+223
+217
+211
+209
+211
+219
+227
+233
+234
+234
+234
+233
+230
+222
+171
+117
+70
+34
+16
+8
+6
+5
+4
+3
+6
+19
+39
+65
+92
+120
+134
+145
+153
+159
+171
+181
+190
+196
+197
+195
+190
+186
+184
+183
+176
+160
+151
+147
+147
+149
+157
+172
+191
+209
+217
+216
+215
+213
+213
+216
+218
+219
+220
+220
+220
+221
+220
+217
+212
+200
+191
+185
+180
+179
+177
+176
+172
+166
+159
+157
+166
+187
+210
+225
+228
+227
+227
+227
+227
+226
+226
+226
+226
+227
+227
+227
+227
+227
+227
+227
+226
+226
+226
+225
+225
+224
+224
+224
+224
+224
+223
+221
+217
+211
+203
+197
+194
+191
+191
+192
+194
+197
+200
+204
+208
+210
+212
+214
+214
+213
+211
+209
+206
+202
+197
+192
+188
+184
+181
+180
+179
+180
+182
+184
+189
+192
+195
+199
+203
+207
+210
+211
+206
+194
+161
+134
+114
+101
+97
+99
+104
+108
+113
+117
+121
+124
+128
+132
+136
+143
+148
+152
+156
+160
+165
+170
+174
+178
+182
+186
+190
+192
+195
+197
+199
+200
+201
+202
+203
+204
+204
+204
+205
+205
+206
+206
+206
+207
+207
+207
+207
+207
+207
+208
+208
+208
+208
+208
+209
+209
+209
+209
+209
+209
+209
+209
+209
+208
+208
+207
+206
+205
+204
+204
+202
+200
+199
+197
+194
+191
+190
+188
+180
+164
+158
+164
+175
+183
+183
+177
+158
+115
+64
+19
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+206
+220
+225
+225
+225
+222
+221
+222
+224
+225
+224
+224
+224
+224
+225
+224
+222
+217
+212
+210
+214
+222
+229
+233
+235
+234
+233
+227
+210
+180
+95
+48
+22
+11
+6
+4
+4
+4
+4
+5
+18
+45
+75
+104
+126
+143
+151
+159
+166
+175
+187
+194
+198
+198
+196
+193
+187
+185
+184
+183
+170
+155
+148
+147
+147
+148
+156
+173
+194
+213
+216
+215
+212
+211
+211
+215
+217
+219
+219
+220
+220
+221
+221
+220
+217
+207
+197
+189
+183
+179
+177
+176
+173
+169
+161
+157
+159
+173
+195
+218
+226
+227
+227
+227
+227
+226
+226
+226
+226
+226
+226
+226
+226
+226
+226
+225
+225
+225
+225
+225
+224
+224
+224
+224
+224
+223
+221
+217
+211
+205
+197
+193
+191
+190
+191
+195
+199
+202
+206
+209
+212
+213
+214
+215
+214
+213
+211
+209
+206
+204
+201
+198
+196
+194
+193
+192
+192
+193
+194
+196
+199
+201
+203
+206
+209
+211
+208
+199
+183
+159
+121
+106
+100
+100
+102
+108
+114
+118
+122
+125
+130
+134
+139
+145
+150
+157
+161
+166
+170
+174
+179
+183
+187
+191
+194
+198
+200
+201
+202
+203
+203
+203
+203
+204
+204
+204
+204
+204
+204
+204
+204
+204
+205
+205
+205
+206
+206
+207
+207
+207
+208
+208
+208
+208
+209
+209
+209
+209
+210
+210
+210
+210
+210
+210
+210
+209
+209
+208
+207
+206
+205
+203
+201
+199
+196
+192
+191
+188
+180
+165
+161
+168
+177
+184
+182
+176
+152
+106
+55
+15
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+205
+219
+225
+225
+225
+222
+221
+221
+222
+224
+225
+225
+225
+225
+225
+222
+218
+215
+213
+212
+219
+228
+233
+235
+235
+234
+230
+207
+161
+88
+28
+15
+7
+4
+3
+3
+3
+3
+5
+10
+44
+81
+110
+130
+144
+157
+166
+174
+183
+191
+198
+199
+199
+197
+194
+188
+185
+184
+184
+183
+162
+151
+147
+147
+147
+148
+156
+174
+197
+214
+216
+213
+210
+207
+208
+213
+216
+217
+219
+220
+220
+221
+221
+221
+221
+215
+205
+195
+187
+180
+177
+176
+174
+171
+165
+157
+156
+161
+176
+203
+224
+226
+227
+227
+227
+226
+226
+226
+226
+226
+226
+225
+225
+225
+225
+225
+225
+225
+225
+225
+224
+224
+224
+224
+224
+222
+216
+209
+202
+196
+190
+188
+188
+190
+192
+197
+200
+204
+207
+210
+212
+213
+214
+214
+213
+212
+210
+208
+205
+203
+201
+200
+199
+198
+197
+197
+198
+199
+201
+203
+206
+208
+210
+211
+212
+208
+193
+166
+136
+111
+102
+102
+104
+108
+114
+119
+122
+125
+128
+133
+140
+146
+152
+158
+163
+170
+176
+181
+187
+191
+196
+199
+200
+201
+202
+202
+203
+203
+204
+204
+204
+203
+203
+202
+202
+201
+201
+201
+200
+200
+199
+199
+199
+200
+201
+202
+203
+204
+205
+206
+207
+207
+208
+208
+208
+209
+209
+209
+210
+210
+210
+210
+211
+211
+211
+211
+211
+210
+209
+209
+207
+206
+204
+201
+198
+193
+192
+188
+180
+166
+164
+172
+180
+184
+182
+175
+145
+97
+47
+11
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+198
+216
+224
+225
+226
+222
+221
+221
+221
+221
+221
+221
+221
+220
+219
+217
+217
+217
+220
+225
+232
+234
+234
+234
+232
+216
+166
+106
+52
+21
+8
+4
+3
+2
+2
+3
+3
+5
+15
+39
+91
+117
+137
+152
+166
+180
+187
+193
+197
+199
+200
+199
+197
+193
+191
+186
+185
+185
+184
+180
+155
+149
+147
+147
+147
+148
+155
+176
+200
+216
+216
+210
+205
+202
+203
+208
+211
+214
+216
+218
+219
+220
+221
+221
+222
+220
+215
+207
+197
+187
+179
+177
+175
+173
+171
+161
+157
+156
+160
+171
+205
+219
+225
+227
+227
+226
+226
+226
+226
+226
+226
+225
+225
+225
+225
+225
+225
+225
+224
+224
+224
+223
+222
+220
+216
+207
+200
+194
+190
+187
+186
+186
+187
+189
+191
+195
+197
+199
+201
+202
+204
+204
+204
+204
+204
+203
+203
+202
+202
+202
+201
+201
+201
+201
+202
+204
+206
+207
+208
+208
+209
+209
+207
+201
+186
+149
+125
+111
+105
+104
+106
+111
+116
+121
+125
+132
+137
+144
+150
+157
+165
+171
+177
+182
+188
+194
+197
+199
+200
+201
+201
+202
+202
+202
+201
+199
+198
+196
+194
+192
+188
+184
+181
+177
+174
+171
+170
+169
+168
+168
+168
+169
+171
+173
+176
+180
+184
+187
+191
+195
+200
+202
+205
+206
+208
+209
+209
+209
+210
+210
+210
+210
+211
+212
+212
+212
+212
+212
+211
+211
+210
+208
+207
+204
+200
+194
+192
+188
+180
+168
+167
+176
+182
+184
+182
+171
+134
+84
+36
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+189
+211
+221
+224
+226
+224
+223
+222
+221
+221
+221
+221
+221
+221
+221
+221
+223
+226
+228
+230
+233
+232
+227
+215
+191
+127
+80
+45
+21
+9
+4
+2
+2
+2
+2
+2
+4
+14
+36
+73
+117
+139
+157
+171
+182
+191
+194
+197
+199
+200
+199
+197
+195
+193
+190
+186
+186
+186
+183
+176
+152
+150
+149
+149
+148
+149
+156
+178
+203
+216
+215
+208
+202
+198
+198
+202
+206
+209
+211
+214
+216
+218
+220
+220
+221
+221
+219
+214
+207
+196
+184
+179
+176
+174
+172
+166
+160
+157
+157
+160
+178
+201
+215
+223
+226
+226
+226
+225
+225
+225
+225
+225
+225
+225
+224
+224
+224
+223
+223
+222
+219
+216
+212
+208
+202
+196
+192
+189
+187
+186
+186
+186
+188
+189
+191
+193
+195
+196
+198
+199
+200
+201
+201
+202
+202
+202
+202
+203
+203
+203
+204
+205
+206
+206
+207
+207
+207
+207
+207
+206
+200
+187
+171
+153
+136
+120
+114
+111
+112
+116
+121
+126
+130
+134
+139
+146
+152
+159
+166
+174
+183
+188
+191
+194
+196
+199
+200
+200
+199
+198
+196
+192
+188
+184
+179
+172
+167
+162
+158
+154
+151
+149
+147
+145
+143
+141
+140
+139
+139
+139
+141
+142
+144
+146
+149
+154
+158
+163
+169
+175
+184
+189
+195
+199
+203
+206
+208
+209
+210
+210
+210
+210
+211
+211
+212
+213
+213
+212
+212
+212
+211
+210
+208
+206
+201
+195
+193
+187
+179
+169
+170
+179
+183
+184
+181
+168
+124
+73
+29
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+175
+202
+215
+221
+225
+224
+224
+223
+223
+222
+222
+222
+223
+223
+224
+225
+226
+228
+229
+228
+222
+205
+181
+149
+111
+56
+30
+14
+6
+3
+2
+1
+2
+2
+2
+3
+8
+30
+64
+104
+141
+160
+174
+185
+192
+196
+198
+199
+200
+199
+198
+196
+194
+192
+190
+186
+187
+187
+183
+173
+152
+152
+152
+151
+149
+149
+157
+180
+205
+216
+214
+205
+198
+194
+192
+195
+199
+202
+205
+208
+212
+215
+217
+218
+220
+221
+220
+218
+214
+206
+193
+185
+180
+176
+173
+170
+164
+159
+156
+155
+162
+178
+196
+211
+221
+225
+225
+225
+225
+224
+224
+223
+223
+222
+221
+220
+219
+218
+216
+214
+210
+207
+203
+199
+195
+191
+189
+188
+187
+186
+187
+188
+189
+191
+192
+195
+196
+198
+199
+200
+202
+202
+203
+204
+205
+206
+206
+206
+207
+207
+208
+208
+208
+208
+207
+205
+202
+197
+189
+180
+164
+151
+138
+126
+117
+113
+115
+117
+120
+125
+132
+138
+144
+150
+157
+167
+173
+179
+184
+189
+194
+196
+197
+198
+197
+193
+190
+185
+180
+175
+168
+163
+158
+154
+149
+144
+140
+137
+134
+132
+130
+129
+128
+128
+127
+126
+125
+125
+125
+125
+125
+126
+127
+129
+131
+134
+138
+142
+148
+154
+164
+172
+180
+188
+194
+201
+204
+207
+209
+210
+210
+210
+211
+211
+212
+213
+213
+213
+213
+213
+212
+211
+210
+207
+202
+195
+193
+187
+179
+171
+173
+181
+184
+184
+180
+163
+113
+63
+23
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+157
+188
+204
+212
+220
+222
+223
+223
+223
+223
+223
+223
+224
+224
+224
+223
+221
+217
+210
+199
+176
+145
+108
+69
+34
+11
+6
+3
+1
+1
+1
+1
+1
+1
+1
+4
+19
+54
+95
+131
+161
+177
+187
+194
+197
+198
+199
+200
+199
+199
+197
+195
+194
+193
+190
+188
+188
+188
+183
+170
+154
+155
+155
+154
+150
+149
+158
+183
+207
+216
+213
+203
+195
+190
+186
+187
+191
+193
+196
+200
+204
+209
+212
+215
+217
+220
+220
+220
+219
+215
+204
+194
+186
+180
+175
+172
+168
+163
+158
+155
+153
+160
+173
+190
+207
+220
+222
+223
+224
+223
+222
+221
+220
+219
+218
+216
+214
+212
+210
+207
+203
+200
+197
+195
+193
+191
+191
+190
+190
+191
+192
+193
+195
+197
+198
+201
+202
+203
+205
+206
+207
+207
+208
+208
+209
+209
+210
+210
+209
+209
+207
+206
+203
+200
+196
+188
+181
+171
+159
+145
+129
+122
+118
+116
+117
+120
+124
+129
+134
+139
+148
+154
+162
+170
+178
+187
+191
+195
+196
+197
+195
+193
+190
+186
+181
+173
+166
+159
+152
+145
+138
+133
+130
+127
+125
+124
+123
+123
+122
+122
+121
+121
+121
+121
+121
+121
+121
+121
+121
+120
+119
+119
+119
+119
+120
+122
+124
+127
+130
+135
+145
+154
+163
+173
+182
+192
+198
+203
+206
+209
+209
+210
+210
+211
+212
+213
+213
+214
+214
+214
+213
+212
+211
+208
+202
+196
+193
+186
+178
+173
+175
+183
+185
+183
+179
+155
+102
+53
+17
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+138
+167
+185
+197
+209
+215
+218
+220
+220
+221
+221
+221
+221
+220
+218
+212
+202
+183
+157
+123
+72
+42
+22
+10
+3
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+8
+40
+83
+125
+154
+179
+190
+195
+197
+197
+199
+199
+199
+199
+198
+197
+196
+195
+194
+191
+189
+190
+189
+183
+168
+157
+158
+159
+157
+151
+150
+160
+185
+209
+215
+211
+201
+192
+186
+180
+179
+181
+182
+185
+189
+194
+200
+204
+208
+212
+217
+218
+220
+220
+219
+215
+206
+196
+187
+179
+174
+172
+168
+163
+156
+153
+152
+154
+162
+179
+206
+215
+221
+224
+223
+223
+221
+220
+219
+217
+214
+212
+210
+208
+206
+202
+200
+198
+196
+195
+195
+195
+197
+199
+201
+205
+207
+209
+211
+212
+213
+214
+214
+214
+214
+213
+213
+213
+212
+211
+210
+210
+209
+207
+205
+201
+195
+186
+176
+163
+146
+135
+127
+122
+119
+117
+117
+118
+120
+124
+133
+140
+148
+157
+165
+176
+183
+189
+193
+195
+197
+197
+197
+196
+193
+184
+174
+163
+152
+142
+133
+128
+126
+124
+123
+122
+122
+122
+121
+121
+121
+122
+122
+122
+123
+123
+123
+123
+123
+123
+123
+122
+122
+121
+121
+120
+119
+118
+118
+117
+117
+117
+118
+120
+122
+128
+136
+145
+156
+166
+180
+189
+196
+202
+206
+209
+209
+210
+211
+212
+213
+213
+214
+214
+214
+214
+213
+212
+209
+203
+197
+193
+186
+178
+174
+179
+185
+185
+182
+177
+146
+89
+43
+12
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+114
+131
+144
+154
+166
+173
+177
+180
+180
+178
+172
+165
+154
+139
+121
+92
+70
+50
+34
+21
+10
+6
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+23
+78
+122
+155
+176
+193
+195
+196
+197
+197
+199
+199
+199
+199
+198
+198
+198
+197
+195
+192
+191
+192
+191
+184
+169
+163
+164
+164
+160
+151
+150
+164
+188
+210
+215
+209
+198
+189
+182
+173
+169
+167
+166
+167
+170
+175
+181
+187
+193
+199
+207
+211
+215
+218
+219
+219
+216
+211
+203
+193
+181
+176
+173
+170
+167
+158
+154
+151
+150
+150
+158
+174
+191
+206
+217
+220
+221
+221
+220
+219
+218
+216
+215
+214
+213
+212
+211
+211
+212
+213
+214
+214
+215
+215
+216
+216
+216
+215
+215
+215
+214
+213
+213
+212
+210
+208
+205
+202
+198
+193
+185
+177
+169
+161
+153
+141
+135
+130
+127
+125
+124
+124
+125
+126
+128
+133
+138
+144
+149
+154
+159
+165
+171
+178
+185
+191
+194
+197
+197
+196
+188
+177
+164
+151
+139
+129
+125
+123
+122
+121
+121
+121
+121
+121
+122
+124
+126
+128
+130
+132
+136
+138
+141
+143
+146
+148
+148
+148
+148
+146
+144
+141
+139
+135
+132
+127
+124
+122
+120
+118
+116
+115
+115
+115
+115
+117
+121
+127
+135
+145
+161
+172
+183
+192
+200
+205
+207
+209
+210
+211
+212
+213
+214
+214
+215
+214
+214
+213
+210
+203
+197
+193
+185
+178
+176
+182
+186
+185
+181
+174
+130
+72
+31
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+102
+110
+115
+119
+123
+125
+122
+120
+115
+109
+100
+94
+86
+77
+67
+54
+44
+34
+25
+17
+9
+5
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+7
+48
+105
+144
+170
+186
+195
+195
+196
+196
+197
+199
+199
+199
+199
+199
+200
+200
+198
+196
+193
+193
+194
+192
+186
+172
+168
+168
+167
+161
+150
+150
+166
+191
+211
+214
+208
+197
+188
+180
+170
+163
+159
+156
+155
+156
+158
+163
+169
+175
+182
+192
+199
+205
+211
+215
+218
+217
+215
+211
+206
+195
+186
+179
+174
+171
+166
+161
+157
+153
+150
+150
+155
+160
+167
+179
+194
+203
+210
+214
+215
+216
+216
+215
+215
+214
+214
+213
+213
+213
+213
+213
+213
+213
+212
+212
+210
+208
+205
+202
+198
+192
+187
+183
+178
+173
+167
+163
+158
+154
+150
+146
+143
+140
+137
+134
+131
+130
+128
+128
+127
+128
+130
+132
+136
+140
+146
+153
+161
+169
+177
+187
+191
+195
+197
+198
+194
+186
+175
+164
+153
+142
+136
+131
+127
+124
+122
+121
+121
+122
+123
+126
+129
+134
+139
+144
+152
+157
+162
+167
+171
+175
+178
+179
+180
+181
+182
+182
+181
+180
+179
+176
+173
+169
+164
+159
+151
+145
+138
+131
+125
+120
+117
+114
+113
+113
+113
+115
+119
+124
+133
+147
+159
+171
+182
+192
+201
+204
+207
+208
+210
+212
+213
+214
+215
+215
+215
+214
+213
+210
+203
+198
+191
+184
+178
+178
+185
+186
+184
+179
+170
+115
+59
+23
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+94
+97
+98
+97
+95
+92
+88
+84
+80
+75
+69
+65
+61
+56
+51
+47
+42
+35
+28
+21
+12
+6
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+5
+13
+76
+130
+162
+180
+192
+195
+195
+195
+196
+197
+199
+199
+199
+199
+200
+201
+201
+199
+197
+194
+195
+195
+194
+189
+177
+172
+172
+169
+161
+150
+150
+169
+193
+211
+214
+208
+196
+187
+178
+168
+159
+154
+148
+145
+144
+144
+147
+151
+157
+163
+174
+181
+190
+198
+205
+213
+215
+216
+215
+213
+206
+198
+190
+182
+176
+171
+168
+164
+159
+155
+151
+149
+148
+149
+154
+165
+171
+178
+183
+187
+193
+195
+197
+198
+199
+200
+199
+199
+198
+196
+194
+192
+190
+187
+184
+180
+176
+172
+169
+165
+160
+157
+153
+150
+146
+142
+140
+137
+135
+133
+132
+131
+130
+130
+130
+131
+132
+133
+135
+137
+142
+148
+154
+161
+167
+176
+182
+187
+192
+196
+197
+193
+187
+179
+171
+161
+152
+144
+135
+128
+123
+121
+120
+120
+121
+124
+128
+132
+138
+144
+152
+159
+165
+171
+176
+182
+186
+190
+193
+196
+198
+199
+200
+200
+201
+201
+201
+200
+200
+199
+197
+195
+192
+188
+184
+177
+169
+161
+152
+142
+131
+124
+118
+114
+112
+111
+111
+113
+117
+123
+135
+147
+159
+172
+184
+195
+200
+204
+207
+209
+211
+213
+214
+215
+215
+215
+215
+213
+209
+203
+198
+190
+183
+179
+180
+187
+186
+183
+176
+163
+99
+47
+17
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+89
+89
+89
+87
+83
+75
+71
+68
+66
+65
+64
+64
+63
+62
+61
+58
+54
+47
+39
+30
+16
+8
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+8
+22
+104
+151
+175
+187
+195
+195
+194
+194
+195
+198
+200
+199
+199
+200
+201
+203
+202
+200
+197
+196
+197
+197
+196
+191
+181
+176
+175
+169
+160
+149
+150
+172
+195
+212
+214
+208
+196
+186
+178
+168
+157
+151
+144
+138
+135
+132
+133
+136
+139
+144
+153
+161
+169
+179
+189
+201
+208
+212
+214
+214
+213
+209
+203
+195
+186
+178
+174
+170
+167
+163
+157
+153
+150
+147
+145
+145
+146
+148
+151
+156
+163
+167
+170
+172
+173
+174
+174
+173
+171
+169
+166
+163
+160
+156
+152
+147
+144
+141
+139
+137
+135
+134
+133
+133
+132
+132
+132
+132
+132
+133
+133
+134
+135
+136
+137
+141
+144
+148
+153
+159
+167
+174
+182
+189
+196
+201
+201
+199
+195
+191
+181
+170
+158
+145
+133
+124
+120
+118
+118
+118
+120
+122
+125
+129
+134
+142
+149
+158
+166
+174
+184
+191
+196
+199
+202
+205
+206
+207
+207
+208
+208
+209
+209
+209
+209
+209
+209
+209
+209
+209
+208
+207
+206
+204
+202
+197
+191
+184
+175
+164
+149
+137
+127
+119
+114
+110
+109
+110
+112
+115
+125
+135
+148
+161
+174
+188
+196
+201
+205
+207
+210
+212
+214
+215
+215
+215
+215
+213
+209
+203
+197
+188
+182
+180
+182
+188
+186
+182
+173
+154
+82
+36
+12
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+85
+86
+86
+85
+83
+74
+70
+67
+65
+65
+69
+73
+77
+80
+82
+78
+72
+64
+54
+41
+22
+11
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+12
+36
+129
+164
+182
+190
+196
+194
+192
+193
+195
+198
+200
+199
+199
+200
+202
+204
+203
+200
+198
+198
+199
+199
+197
+193
+185
+179
+176
+168
+158
+149
+150
+174
+197
+212
+213
+208
+196
+187
+178
+168
+157
+150
+142
+135
+131
+126
+124
+124
+125
+127
+132
+138
+146
+155
+165
+182
+194
+204
+212
+214
+215
+214
+213
+210
+204
+190
+181
+175
+171
+168
+166
+163
+160
+157
+152
+147
+145
+143
+142
+142
+141
+142
+142
+142
+142
+142
+142
+141
+141
+140
+139
+138
+137
+136
+136
+136
+135
+135
+135
+134
+134
+134
+134
+134
+134
+135
+135
+136
+137
+138
+141
+144
+147
+151
+155
+163
+171
+179
+187
+195
+203
+207
+210
+212
+211
+201
+185
+169
+153
+140
+128
+123
+119
+116
+115
+115
+115
+116
+117
+119
+125
+133
+143
+155
+167
+182
+191
+197
+201
+204
+206
+207
+208
+208
+209
+209
+209
+209
+209
+210
+210
+210
+210
+210
+210
+210
+210
+210
+210
+210
+210
+210
+210
+210
+210
+208
+206
+201
+195
+186
+171
+157
+142
+129
+119
+111
+108
+108
+108
+110
+116
+126
+137
+150
+164
+181
+190
+198
+202
+206
+209
+212
+214
+215
+215
+215
+215
+213
+208
+203
+195
+187
+182
+182
+184
+189
+185
+180
+168
+142
+66
+26
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+83
+84
+85
+85
+84
+77
+73
+71
+71
+74
+94
+102
+106
+106
+105
+95
+86
+74
+60
+45
+25
+12
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+4
+19
+55
+150
+175
+187
+192
+196
+193
+191
+192
+194
+198
+198
+198
+199
+201
+204
+205
+203
+201
+201
+201
+202
+202
+199
+194
+187
+178
+173
+164
+155
+148
+150
+176
+198
+212
+213
+209
+200
+190
+180
+172
+160
+152
+144
+137
+131
+126
+122
+120
+119
+118
+119
+120
+122
+126
+131
+143
+155
+170
+184
+199
+210
+213
+214
+214
+214
+212
+206
+198
+188
+179
+172
+169
+166
+165
+163
+160
+158
+156
+153
+151
+149
+147
+146
+145
+144
+143
+142
+142
+141
+140
+140
+140
+140
+140
+140
+140
+140
+141
+142
+143
+143
+144
+145
+147
+149
+152
+154
+157
+161
+167
+175
+182
+189
+195
+201
+208
+211
+213
+214
+213
+199
+180
+162
+146
+136
+129
+124
+121
+118
+116
+114
+113
+113
+113
+114
+117
+124
+134
+146
+161
+180
+190
+197
+202
+205
+207
+207
+208
+208
+209
+209
+209
+209
+209
+210
+210
+210
+210
+210
+210
+210
+210
+210
+210
+210
+210
+210
+210
+210
+211
+211
+211
+211
+211
+211
+211
+210
+210
+208
+204
+194
+182
+167
+150
+134
+117
+110
+107
+106
+106
+109
+116
+126
+138
+151
+170
+183
+192
+199
+204
+208
+211
+213
+215
+216
+216
+215
+212
+207
+202
+192
+185
+183
+183
+187
+189
+184
+177
+159
+121
+45
+16
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+83
+85
+86
+87
+86
+82
+79
+78
+81
+91
+112
+116
+117
+116
+111
+99
+87
+72
+57
+40
+23
+11
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+5
+23
+64
+157
+177
+187
+192
+196
+193
+191
+191
+192
+195
+196
+197
+200
+203
+206
+206
+204
+203
+203
+204
+204
+202
+198
+191
+182
+172
+167
+160
+153
+148
+150
+175
+197
+211
+213
+210
+203
+196
+188
+179
+167
+158
+150
+143
+137
+130
+126
+123
+121
+119
+118
+118
+118
+119
+121
+125
+130
+138
+149
+163
+183
+195
+205
+211
+214
+214
+212
+209
+205
+200
+191
+184
+177
+172
+168
+164
+162
+160
+159
+157
+155
+153
+152
+151
+150
+149
+149
+149
+149
+148
+148
+148
+148
+148
+148
+149
+149
+150
+151
+153
+156
+159
+163
+168
+173
+180
+185
+190
+195
+199
+203
+205
+207
+208
+206
+188
+171
+159
+152
+149
+144
+139
+133
+128
+123
+119
+115
+112
+111
+111
+111
+113
+119
+128
+139
+157
+169
+179
+187
+193
+200
+203
+205
+207
+208
+208
+209
+209
+209
+210
+210
+211
+211
+211
+212
+212
+212
+213
+213
+213
+213
+213
+213
+213
+212
+212
+212
+212
+211
+211
+211
+211
+211
+211
+211
+211
+211
+210
+210
+208
+203
+195
+182
+167
+149
+126
+115
+108
+105
+104
+106
+111
+119
+130
+142
+163
+177
+188
+196
+202
+207
+211
+213
+215
+216
+216
+215
+211
+206
+201
+190
+185
+183
+185
+189
+188
+182
+172
+148
+101
+31
+11
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+83
+86
+89
+90
+90
+87
+85
+85
+91
+107
+124
+126
+126
+122
+114
+99
+83
+66
+50
+35
+18
+9
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+5
+24
+68
+158
+177
+187
+192
+196
+194
+192
+191
+191
+193
+196
+198
+202
+206
+207
+207
+205
+205
+206
+206
+204
+199
+191
+181
+170
+164
+161
+156
+151
+147
+149
+173
+194
+209
+211
+210
+206
+201
+195
+189
+178
+170
+162
+155
+148
+139
+134
+130
+126
+123
+120
+118
+117
+117
+117
+117
+119
+122
+127
+135
+150
+163
+177
+190
+201
+209
+212
+213
+213
+211
+205
+200
+195
+190
+185
+178
+174
+171
+169
+166
+164
+162
+161
+160
+159
+158
+157
+157
+156
+157
+157
+158
+159
+161
+162
+166
+169
+172
+175
+178
+183
+186
+190
+193
+197
+201
+204
+205
+202
+193
+173
+167
+165
+164
+163
+153
+142
+135
+129
+126
+123
+120
+116
+113
+110
+109
+107
+108
+112
+118
+131
+142
+154
+164
+175
+188
+195
+201
+204
+206
+208
+208
+209
+209
+210
+210
+211
+211
+212
+213
+213
+214
+214
+214
+215
+215
+215
+215
+215
+216
+216
+216
+215
+215
+215
+215
+214
+214
+213
+213
+212
+212
+212
+211
+211
+211
+211
+211
+211
+210
+208
+203
+194
+181
+164
+137
+121
+111
+105
+103
+104
+108
+114
+123
+135
+155
+171
+184
+194
+201
+207
+210
+213
+215
+216
+216
+215
+210
+205
+199
+188
+185
+184
+186
+190
+186
+180
+165
+135
+82
+20
+7
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+83
+89
+93
+95
+96
+93
+92
+94
+103
+122
+132
+133
+131
+124
+113
+93
+74
+56
+41
+28
+14
+6
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+5
+23
+66
+156
+175
+185
+191
+196
+196
+193
+192
+192
+194
+197
+201
+205
+208
+208
+208
+208
+208
+207
+206
+199
+188
+175
+163
+154
+154
+155
+154
+150
+146
+147
+168
+190
+206
+209
+209
+208
+205
+202
+199
+191
+185
+178
+171
+165
+154
+148
+142
+137
+132
+126
+123
+120
+118
+117
+116
+116
+116
+117
+118
+123
+132
+144
+159
+174
+191
+200
+206
+210
+212
+213
+213
+211
+208
+203
+197
+192
+188
+184
+182
+178
+177
+175
+174
+173
+172
+171
+171
+172
+172
+174
+176
+178
+180
+183
+187
+192
+196
+200
+204
+207
+206
+203
+199
+194
+189
+186
+183
+176
+162
+132
+125
+122
+122
+122
+124
+124
+123
+121
+117
+113
+109
+106
+103
+103
+108
+114
+122
+133
+145
+165
+180
+191
+199
+203
+206
+207
+208
+208
+209
+210
+210
+211
+211
+212
+213
+214
+214
+215
+216
+216
+217
+217
+217
+217
+218
+218
+218
+218
+218
+218
+218
+217
+217
+217
+217
+217
+216
+216
+215
+214
+214
+213
+212
+212
+211
+211
+211
+211
+210
+210
+208
+203
+193
+177
+149
+129
+115
+106
+102
+102
+105
+110
+118
+128
+149
+166
+181
+192
+200
+206
+210
+213
+215
+216
+217
+214
+209
+203
+196
+186
+185
+185
+188
+191
+184
+177
+156
+119
+62
+12
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+84
+93
+99
+102
+102
+99
+98
+105
+117
+134
+139
+138
+132
+121
+107
+80
+60
+44
+31
+18
+10
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+4
+20
+58
+150
+171
+182
+189
+197
+198
+197
+195
+195
+196
+202
+206
+209
+210
+210
+210
+210
+209
+207
+203
+185
+165
+149
+138
+132
+144
+150
+151
+149
+145
+145
+162
+184
+203
+207
+208
+208
+207
+206
+206
+203
+201
+197
+192
+186
+176
+168
+160
+153
+146
+138
+132
+128
+124
+120
+117
+116
+115
+115
+115
+115
+116
+118
+123
+132
+152
+169
+184
+197
+206
+212
+214
+214
+214
+214
+214
+213
+211
+208
+204
+200
+198
+196
+195
+195
+197
+198
+200
+201
+202
+205
+207
+209
+210
+211
+212
+213
+213
+212
+212
+208
+198
+181
+160
+138
+117
+110
+108
+111
+119
+129
+136
+138
+138
+133
+126
+118
+109
+100
+96
+93
+94
+95
+99
+106
+127
+149
+169
+186
+197
+203
+205
+207
+207
+208
+208
+209
+209
+210
+211
+212
+213
+214
+215
+216
+217
+217
+217
+218
+218
+218
+218
+218
+218
+218
+218
+218
+218
+218
+218
+218
+218
+218
+218
+218
+218
+218
+218
+218
+217
+217
+216
+215
+214
+213
+212
+211
+211
+211
+211
+210
+210
+207
+201
+189
+162
+139
+121
+108
+102
+100
+103
+107
+113
+122
+143
+163
+179
+191
+199
+206
+211
+214
+215
+216
+217
+213
+207
+201
+193
+186
+185
+187
+189
+191
+182
+173
+145
+101
+43
+7
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+85
+99
+106
+109
+109
+108
+110
+120
+133
+143
+144
+138
+128
+111
+87
+55
+42
+29
+19
+10
+4
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+14
+43
+133
+160
+173
+181
+192
+199
+200
+201
+202
+204
+209
+210
+211
+211
+211
+211
+209
+205
+194
+176
+141
+120
+108
+103
+103
+128
+142
+148
+148
+144
+142
+150
+172
+193
+201
+204
+206
+207
+207
+207
+207
+207
+207
+207
+206
+202
+197
+190
+183
+175
+165
+157
+150
+143
+136
+130
+125
+121
+119
+116
+115
+114
+114
+114
+114
+117
+120
+127
+136
+149
+167
+180
+192
+201
+208
+213
+216
+218
+220
+221
+221
+220
+219
+218
+217
+215
+215
+215
+215
+215
+214
+213
+212
+209
+205
+193
+175
+156
+137
+122
+106
+105
+108
+116
+129
+144
+148
+149
+149
+145
+137
+124
+111
+99
+92
+90
+89
+89
+90
+93
+102
+118
+139
+162
+183
+197
+202
+205
+206
+207
+208
+208
+209
+209
+210
+211
+213
+214
+215
+216
+217
+217
+217
+218
+218
+218
+218
+218
+218
+218
+219
+219
+219
+219
+219
+219
+219
+219
+219
+219
+219
+219
+219
+219
+219
+219
+219
+219
+218
+218
+218
+218
+217
+216
+215
+214
+212
+212
+211
+211
+210
+210
+210
+207
+200
+176
+151
+130
+113
+102
+99
+101
+104
+108
+116
+139
+160
+177
+190
+199
+207
+211
+214
+216
+217
+216
+211
+205
+197
+190
+186
+186
+189
+190
+189
+178
+163
+124
+73
+23
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+86
+102
+110
+113
+114
+115
+121
+131
+141
+147
+145
+134
+116
+94
+72
+53
+39
+25
+15
+8
+3
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+9
+29
+114
+148
+163
+169
+177
+196
+202
+204
+206
+209
+211
+212
+212
+212
+211
+209
+202
+187
+166
+140
+116
+105
+98
+95
+95
+110
+132
+142
+145
+144
+140
+142
+159
+179
+191
+196
+201
+204
+205
+205
+207
+207
+208
+208
+208
+207
+205
+202
+198
+192
+183
+176
+169
+161
+154
+145
+140
+135
+130
+127
+122
+119
+117
+115
+114
+114
+115
+117
+119
+123
+129
+135
+142
+150
+159
+169
+176
+183
+188
+193
+196
+199
+200
+202
+202
+201
+198
+192
+184
+174
+160
+152
+144
+137
+130
+125
+124
+127
+131
+136
+142
+144
+145
+146
+149
+149
+141
+131
+120
+109
+101
+97
+93
+90
+89
+89
+94
+102
+114
+131
+158
+172
+184
+193
+200
+204
+206
+207
+208
+208
+209
+210
+212
+213
+214
+215
+216
+216
+217
+217
+218
+218
+218
+218
+218
+219
+219
+219
+220
+221
+222
+222
+223
+223
+224
+224
+224
+224
+224
+224
+223
+222
+221
+221
+220
+220
+219
+219
+219
+219
+219
+218
+218
+218
+217
+215
+214
+213
+212
+211
+210
+210
+210
+208
+205
+185
+160
+137
+118
+104
+99
+101
+102
+106
+113
+137
+159
+177
+191
+200
+208
+212
+215
+216
+217
+215
+209
+202
+195
+188
+186
+187
+190
+190
+185
+174
+150
+104
+53
+14
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+87
+105
+114
+117
+118
+122
+131
+141
+147
+150
+143
+126
+106
+87
+71
+57
+44
+30
+17
+9
+3
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+5
+16
+89
+134
+152
+156
+160
+180
+196
+203
+207
+210
+211
+212
+212
+211
+209
+198
+182
+160
+138
+121
+106
+99
+95
+92
+91
+98
+117
+133
+143
+144
+138
+137
+147
+162
+176
+182
+189
+194
+197
+198
+202
+204
+206
+207
+208
+208
+209
+208
+206
+203
+196
+191
+184
+176
+169
+159
+153
+147
+142
+139
+134
+130
+126
+123
+120
+117
+116
+114
+114
+113
+114
+116
+119
+123
+128
+134
+139
+143
+146
+149
+151
+153
+154
+154
+152
+149
+146
+143
+138
+132
+127
+127
+128
+128
+127
+129
+133
+139
+146
+152
+157
+157
+154
+148
+139
+125
+115
+107
+98
+91
+87
+87
+88
+91
+96
+107
+122
+138
+155
+171
+190
+198
+202
+205
+206
+207
+208
+209
+210
+211
+213
+214
+215
+216
+216
+217
+217
+218
+218
+218
+218
+218
+219
+220
+220
+221
+222
+223
+224
+225
+227
+227
+228
+229
+229
+230
+229
+229
+229
+229
+228
+227
+226
+225
+224
+223
+222
+221
+220
+219
+219
+219
+219
+219
+218
+217
+216
+214
+212
+211
+210
+210
+210
+209
+207
+192
+168
+144
+122
+106
+99
+100
+101
+104
+110
+137
+160
+179
+192
+201
+209
+213
+215
+216
+216
+213
+206
+199
+192
+187
+187
+189
+191
+189
+181
+169
+133
+83
+36
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+88
+109
+118
+121
+122
+130
+141
+148
+151
+151
+138
+118
+102
+90
+83
+73
+60
+45
+31
+18
+7
+3
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+7
+59
+115
+140
+146
+145
+157
+180
+194
+202
+207
+209
+209
+208
+205
+199
+178
+155
+135
+120
+114
+108
+104
+101
+98
+93
+93
+104
+122
+138
+143
+137
+133
+135
+143
+156
+163
+170
+176
+180
+182
+189
+193
+196
+200
+203
+205
+207
+209
+209
+208
+205
+201
+196
+190
+182
+173
+166
+159
+153
+149
+145
+142
+138
+135
+131
+126
+123
+120
+118
+117
+115
+114
+114
+114
+114
+114
+114
+115
+115
+115
+114
+114
+114
+113
+112
+111
+111
+112
+113
+115
+123
+132
+140
+148
+153
+159
+161
+163
+163
+162
+156
+149
+140
+129
+114
+96
+90
+87
+86
+86
+88
+91
+96
+105
+117
+140
+160
+177
+192
+200
+205
+206
+207
+208
+208
+209
+210
+212
+213
+214
+216
+217
+217
+217
+217
+218
+218
+218
+218
+219
+219
+220
+221
+222
+223
+225
+226
+227
+229
+230
+231
+232
+232
+233
+233
+233
+233
+233
+233
+233
+232
+231
+231
+230
+228
+227
+225
+224
+222
+221
+220
+219
+219
+219
+219
+218
+217
+215
+213
+212
+211
+210
+210
+210
+209
+197
+175
+150
+127
+107
+99
+99
+100
+103
+109
+138
+162
+180
+194
+203
+210
+214
+216
+216
+216
+211
+203
+196
+190
+187
+187
+190
+191
+187
+177
+160
+112
+62
+22
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+90
+112
+121
+124
+126
+138
+148
+153
+153
+150
+130
+113
+106
+105
+106
+105
+89
+76
+60
+39
+16
+6
+2
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+25
+92
+127
+139
+137
+132
+149
+172
+192
+198
+204
+204
+200
+192
+178
+148
+130
+122
+118
+116
+117
+121
+121
+114
+100
+93
+95
+109
+126
+139
+140
+132
+128
+128
+133
+140
+144
+148
+153
+154
+160
+167
+174
+181
+189
+196
+202
+206
+209
+210
+211
+210
+208
+203
+196
+187
+178
+169
+161
+155
+151
+149
+147
+146
+144
+141
+138
+135
+132
+130
+126
+123
+120
+118
+116
+115
+114
+114
+113
+113
+114
+115
+117
+121
+126
+135
+141
+145
+148
+151
+155
+159
+161
+163
+165
+166
+166
+165
+163
+159
+143
+124
+108
+96
+89
+86
+85
+85
+86
+87
+95
+102
+116
+133
+154
+184
+195
+202
+205
+206
+207
+207
+208
+209
+210
+213
+215
+216
+217
+217
+217
+217
+218
+218
+218
+218
+218
+219
+220
+221
+222
+223
+224
+225
+226
+228
+229
+230
+230
+231
+232
+233
+233
+234
+234
+234
+234
+234
+234
+233
+233
+233
+232
+232
+231
+230
+229
+228
+226
+224
+221
+220
+220
+219
+219
+219
+218
+217
+215
+212
+211
+210
+210
+210
+209
+201
+180
+156
+131
+109
+99
+99
+100
+103
+109
+141
+165
+183
+196
+204
+212
+215
+216
+216
+216
+208
+200
+193
+189
+187
+188
+192
+190
+184
+173
+146
+89
+42
+11
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+93
+116
+126
+128
+131
+145
+153
+156
+154
+146
+124
+120
+121
+124
+125
+119
+110
+103
+92
+73
+49
+27
+12
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+4
+38
+90
+133
+139
+119
+117
+124
+137
+152
+159
+162
+159
+151
+136
+126
+124
+123
+125
+134
+147
+150
+152
+150
+144
+114
+100
+98
+108
+132
+140
+137
+130
+122
+121
+119
+118
+118
+118
+117
+117
+119
+122
+127
+134
+149
+164
+180
+194
+204
+211
+214
+216
+216
+213
+208
+202
+193
+183
+172
+161
+156
+152
+150
+149
+148
+147
+146
+145
+145
+144
+144
+143
+143
+143
+143
+143
+143
+144
+144
+145
+147
+149
+151
+153
+155
+155
+157
+159
+163
+167
+170
+173
+174
+174
+170
+165
+155
+142
+125
+105
+97
+91
+88
+86
+85
+87
+89
+94
+103
+118
+139
+161
+182
+197
+204
+206
+207
+207
+208
+209
+210
+212
+214
+216
+217
+217
+217
+217
+217
+218
+218
+218
+218
+219
+220
+221
+222
+223
+224
+224
+225
+226
+226
+227
+228
+229
+230
+231
+232
+232
+233
+233
+233
+233
+233
+232
+232
+232
+232
+232
+232
+232
+232
+231
+231
+230
+229
+229
+228
+225
+223
+221
+220
+220
+219
+219
+218
+216
+214
+211
+210
+210
+210
+210
+204
+186
+161
+135
+112
+100
+99
+99
+103
+112
+148
+171
+187
+199
+207
+213
+216
+217
+216
+214
+203
+195
+191
+188
+188
+191
+192
+185
+175
+166
+115
+58
+22
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+93
+118
+129
+131
+133
+148
+155
+157
+153
+142
+128
+129
+132
+136
+137
+131
+123
+115
+105
+91
+72
+52
+32
+15
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+14
+51
+97
+135
+130
+117
+113
+117
+126
+138
+140
+138
+134
+129
+126
+126
+130
+137
+144
+150
+152
+154
+154
+154
+142
+122
+106
+101
+112
+137
+138
+132
+124
+120
+117
+114
+113
+112
+112
+110
+110
+110
+110
+111
+114
+122
+134
+149
+166
+188
+200
+207
+212
+214
+213
+211
+207
+201
+194
+179
+171
+164
+158
+154
+152
+150
+149
+148
+148
+147
+147
+146
+146
+146
+146
+147
+147
+148
+149
+150
+152
+154
+157
+159
+163
+166
+169
+172
+174
+176
+177
+177
+175
+171
+161
+149
+137
+124
+112
+99
+93
+89
+87
+86
+88
+93
+100
+110
+124
+152
+173
+188
+198
+204
+206
+207
+208
+208
+210
+212
+214
+215
+216
+217
+217
+217
+217
+217
+218
+218
+218
+219
+220
+221
+222
+222
+223
+223
+224
+224
+225
+225
+225
+226
+227
+228
+229
+229
+230
+230
+230
+230
+229
+229
+229
+229
+228
+228
+229
+229
+229
+230
+230
+230
+230
+230
+230
+229
+228
+227
+225
+223
+221
+220
+220
+219
+219
+217
+214
+212
+211
+210
+210
+210
+205
+188
+164
+137
+113
+100
+99
+99
+104
+117
+155
+176
+191
+202
+209
+214
+216
+216
+215
+210
+199
+193
+189
+188
+189
+192
+192
+182
+168
+153
+85
+38
+12
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+93
+120
+131
+133
+135
+149
+156
+158
+153
+141
+133
+136
+140
+144
+144
+141
+135
+128
+118
+105
+85
+70
+52
+32
+12
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+22
+56
+105
+134
+125
+115
+110
+112
+120
+126
+128
+129
+128
+128
+132
+137
+143
+148
+150
+152
+154
+156
+157
+155
+142
+123
+106
+101
+122
+134
+135
+129
+121
+117
+114
+112
+111
+110
+108
+106
+105
+103
+102
+100
+101
+105
+112
+122
+145
+167
+184
+198
+207
+213
+214
+213
+211
+207
+197
+188
+179
+171
+165
+160
+157
+156
+154
+153
+152
+151
+151
+151
+151
+151
+152
+153
+154
+155
+158
+160
+163
+165
+168
+171
+174
+177
+179
+180
+181
+179
+176
+172
+165
+151
+139
+127
+115
+104
+94
+90
+88
+88
+89
+95
+103
+116
+132
+152
+180
+194
+201
+205
+206
+207
+208
+210
+211
+213
+215
+216
+217
+217
+217
+217
+217
+217
+218
+218
+219
+220
+220
+221
+222
+223
+223
+223
+223
+223
+223
+223
+223
+224
+225
+226
+227
+228
+228
+228
+228
+228
+228
+227
+227
+227
+227
+227
+227
+227
+227
+227
+228
+228
+229
+229
+229
+229
+229
+228
+228
+226
+225
+223
+221
+220
+220
+219
+218
+215
+212
+211
+210
+210
+210
+206
+189
+165
+138
+114
+101
+99
+100
+107
+123
+163
+182
+195
+204
+211
+216
+216
+216
+213
+207
+195
+191
+189
+189
+190
+193
+188
+177
+159
+132
+58
+23
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+93
+121
+132
+135
+137
+149
+156
+158
+153
+141
+137
+142
+147
+149
+150
+149
+145
+139
+130
+117
+95
+81
+67
+50
+27
+4
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+4
+20
+58
+117
+128
+123
+114
+109
+108
+117
+123
+128
+130
+131
+137
+142
+145
+147
+149
+151
+153
+155
+157
+158
+156
+142
+121
+100
+103
+124
+135
+136
+126
+119
+116
+113
+112
+110
+109
+108
+106
+104
+102
+97
+94
+91
+89
+88
+101
+125
+149
+171
+189
+207
+212
+213
+214
+214
+209
+203
+195
+187
+178
+170
+166
+164
+161
+160
+158
+157
+156
+156
+156
+156
+157
+158
+160
+162
+166
+168
+171
+173
+176
+179
+180
+182
+183
+183
+182
+179
+174
+167
+158
+143
+132
+120
+109
+99
+90
+89
+89
+90
+94
+105
+119
+137
+158
+180
+199
+204
+206
+207
+207
+209
+210
+212
+214
+216
+217
+217
+217
+217
+217
+217
+217
+218
+218
+219
+220
+221
+221
+222
+222
+222
+222
+222
+221
+221
+221
+221
+222
+223
+224
+226
+226
+227
+227
+227
+227
+227
+227
+227
+227
+226
+226
+226
+226
+226
+226
+226
+226
+226
+227
+228
+228
+229
+229
+228
+228
+227
+226
+224
+222
+220
+220
+219
+218
+215
+212
+211
+210
+210
+210
+206
+190
+165
+138
+115
+101
+99
+101
+110
+133
+171
+187
+199
+207
+212
+216
+216
+215
+210
+202
+192
+190
+189
+190
+191
+192
+181
+169
+146
+106
+34
+12
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+91
+121
+133
+137
+138
+149
+156
+157
+153
+142
+141
+148
+152
+154
+154
+153
+152
+148
+141
+129
+104
+88
+75
+63
+50
+11
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+7
+65
+114
+131
+128
+117
+106
+107
+115
+125
+132
+137
+140
+142
+144
+145
+146
+148
+150
+154
+157
+159
+158
+155
+142
+111
+93
+107
+127
+140
+137
+123
+120
+117
+114
+113
+113
+112
+112
+110
+108
+100
+95
+90
+85
+81
+77
+85
+105
+130
+157
+191
+205
+211
+213
+215
+213
+211
+207
+201
+192
+182
+176
+171
+169
+167
+164
+163
+162
+161
+161
+161
+162
+163
+165
+167
+169
+171
+174
+177
+179
+183
+185
+186
+187
+186
+183
+178
+172
+163
+153
+138
+125
+112
+101
+94
+90
+90
+92
+96
+102
+119
+140
+162
+183
+200
+205
+206
+207
+208
+209
+211
+214
+216
+217
+217
+217
+217
+217
+217
+217
+217
+218
+219
+219
+220
+221
+221
+221
+222
+221
+221
+220
+219
+219
+219
+220
+221
+222
+223
+225
+226
+226
+227
+227
+227
+227
+227
+227
+227
+227
+227
+227
+226
+226
+226
+226
+226
+226
+226
+226
+226
+227
+227
+228
+228
+228
+227
+226
+225
+223
+221
+220
+220
+218
+215
+212
+211
+210
+210
+210
+206
+189
+165
+138
+115
+101
+100
+103
+116
+144
+179
+193
+203
+209
+215
+216
+216
+213
+207
+197
+190
+189
+189
+191
+193
+191
+174
+157
+129
+74
+16
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+87
+118
+133
+137
+139
+148
+156
+157
+153
+146
+146
+152
+155
+155
+155
+154
+154
+153
+152
+150
+127
+101
+82
+68
+61
+35
+12
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+4
+34
+81
+121
+133
+127
+115
+111
+113
+118
+127
+134
+138
+139
+139
+139
+141
+145
+151
+157
+160
+160
+159
+156
+149
+99
+91
+100
+119
+141
+139
+130
+125
+122
+120
+122
+125
+127
+129
+129
+124
+117
+106
+93
+82
+74
+69
+67
+73
+91
+137
+167
+190
+204
+212
+215
+213
+213
+211
+207
+198
+189
+182
+176
+172
+169
+167
+165
+164
+163
+164
+165
+166
+169
+171
+176
+179
+182
+184
+186
+188
+188
+188
+188
+187
+182
+176
+169
+159
+148
+131
+118
+107
+98
+93
+91
+93
+97
+105
+118
+147
+170
+189
+202
+206
+207
+207
+209
+210
+212
+216
+216
+217
+217
+217
+217
+217
+217
+217
+217
+218
+219
+219
+220
+220
+220
+220
+220
+219
+218
+217
+218
+218
+219
+219
+220
+222
+223
+225
+225
+226
+226
+226
+227
+227
+227
+227
+227
+227
+227
+227
+227
+227
+227
+227
+227
+226
+226
+226
+226
+226
+226
+226
+227
+227
+227
+227
+226
+225
+224
+222
+221
+220
+218
+215
+212
+211
+210
+210
+210
+206
+187
+161
+135
+114
+101
+102
+109
+128
+162
+189
+199
+207
+213
+216
+216
+215
+208
+200
+192
+189
+189
+190
+192
+192
+182
+165
+136
+94
+37
+5
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+84
+113
+130
+137
+140
+147
+155
+157
+154
+148
+149
+154
+155
+155
+154
+154
+154
+154
+155
+154
+146
+120
+93
+71
+62
+47
+21
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+10
+28
+56
+94
+119
+122
+123
+123
+123
+124
+126
+128
+128
+128
+130
+136
+142
+148
+155
+161
+161
+160
+159
+156
+132
+102
+91
+97
+114
+139
+137
+134
+130
+127
+128
+130
+132
+133
+133
+132
+131
+126
+117
+103
+81
+71
+64
+62
+63
+83
+114
+146
+177
+202
+213
+213
+213
+212
+210
+206
+202
+195
+188
+181
+176
+173
+171
+169
+168
+168
+168
+170
+172
+174
+179
+181
+184
+186
+188
+189
+189
+190
+189
+187
+182
+175
+167
+157
+145
+127
+114
+104
+97
+93
+93
+97
+105
+119
+138
+168
+187
+199
+205
+207
+208
+209
+211
+213
+215
+216
+217
+217
+217
+217
+217
+217
+217
+217
+218
+219
+219
+219
+220
+220
+219
+218
+217
+217
+217
+217
+217
+218
+219
+220
+222
+224
+225
+226
+226
+226
+226
+227
+227
+227
+227
+227
+227
+227
+227
+227
+227
+227
+227
+227
+227
+227
+227
+226
+226
+226
+226
+226
+226
+227
+227
+226
+226
+225
+224
+222
+222
+220
+218
+215
+211
+211
+210
+210
+210
+204
+184
+158
+132
+112
+102
+103
+118
+142
+175
+195
+203
+210
+215
+216
+216
+211
+204
+196
+191
+190
+190
+191
+192
+191
+169
+152
+113
+64
+19
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+82
+107
+126
+137
+140
+147
+155
+157
+154
+149
+152
+155
+155
+155
+154
+154
+154
+155
+157
+158
+156
+138
+108
+77
+60
+52
+33
+14
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+5
+18
+42
+70
+94
+109
+118
+123
+128
+130
+131
+131
+132
+134
+139
+144
+149
+154
+160
+161
+162
+161
+159
+150
+123
+100
+87
+92
+117
+132
+137
+137
+134
+133
+133
+134
+135
+135
+136
+136
+136
+132
+124
+103
+84
+69
+58
+52
+54
+71
+98
+133
+171
+204
+210
+213
+213
+212
+210
+208
+203
+198
+191
+183
+179
+176
+174
+172
+170
+171
+171
+173
+176
+180
+184
+186
+188
+190
+190
+191
+190
+190
+188
+181
+174
+165
+154
+142
+123
+111
+102
+96
+93
+95
+103
+116
+134
+156
+184
+198
+204
+207
+208
+209
+211
+213
+215
+216
+217
+217
+217
+217
+217
+217
+217
+217
+218
+218
+219
+219
+219
+219
+218
+217
+216
+216
+216
+216
+217
+218
+219
+221
+223
+225
+225
+226
+226
+226
+226
+226
+226
+226
+226
+226
+226
+226
+226
+227
+227
+227
+227
+227
+227
+227
+227
+227
+227
+226
+226
+226
+226
+226
+226
+226
+226
+226
+225
+224
+223
+222
+220
+217
+214
+211
+211
+210
+210
+209
+201
+179
+154
+129
+109
+104
+107
+129
+159
+185
+199
+207
+213
+216
+216
+214
+207
+199
+193
+190
+190
+191
+192
+190
+184
+160
+133
+87
+39
+9
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+81
+102
+121
+135
+141
+147
+154
+157
+155
+151
+154
+155
+155
+154
+153
+153
+154
+156
+159
+161
+161
+153
+125
+89
+58
+51
+42
+22
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+19
+48
+70
+87
+101
+117
+125
+130
+135
+139
+143
+147
+150
+153
+155
+159
+161
+162
+162
+160
+158
+145
+120
+94
+80
+89
+113
+129
+138
+140
+137
+137
+136
+136
+136
+136
+137
+139
+139
+139
+128
+106
+83
+64
+51
+43
+44
+58
+85
+124
+180
+199
+210
+214
+214
+212
+210
+208
+205
+200
+191
+186
+181
+178
+175
+173
+172
+173
+174
+177
+182
+185
+188
+191
+191
+191
+191
+191
+190
+188
+181
+173
+163
+152
+139
+120
+109
+100
+96
+94
+100
+111
+128
+149
+172
+196
+204
+207
+208
+209
+210
+213
+215
+216
+217
+217
+217
+217
+217
+217
+217
+217
+218
+218
+218
+219
+218
+218
+217
+216
+215
+215
+215
+215
+216
+218
+219
+221
+223
+225
+226
+226
+226
+226
+226
+226
+226
+226
+226
+225
+225
+225
+225
+226
+226
+226
+226
+226
+227
+227
+227
+227
+227
+227
+227
+226
+226
+226
+226
+226
+226
+226
+225
+225
+223
+223
+222
+219
+216
+213
+211
+210
+210
+210
+209
+197
+173
+148
+126
+108
+106
+115
+144
+175
+193
+203
+211
+215
+216
+216
+211
+201
+195
+191
+190
+190
+192
+191
+186
+173
+151
+107
+59
+20
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+80
+96
+115
+132
+142
+147
+154
+157
+155
+152
+155
+156
+155
+153
+153
+153
+154
+158
+162
+165
+166
+162
+143
+108
+57
+43
+43
+26
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+7
+18
+39
+72
+91
+109
+124
+138
+151
+155
+157
+157
+157
+159
+160
+162
+162
+162
+160
+157
+144
+120
+82
+72
+79
+103
+128
+141
+142
+140
+139
+137
+136
+136
+138
+139
+141
+142
+142
+133
+110
+82
+54
+41
+37
+37
+44
+65
+133
+177
+202
+213
+215
+214
+211
+210
+208
+206
+199
+192
+187
+182
+178
+175
+174
+175
+176
+178
+183
+187
+190
+191
+192
+192
+192
+191
+190
+187
+180
+172
+162
+150
+136
+117
+106
+99
+96
+96
+105
+122
+142
+164
+186
+205
+207
+208
+209
+210
+212
+214
+216
+216
+217
+217
+217
+217
+217
+217
+217
+217
+218
+218
+218
+218
+217
+216
+215
+215
+214
+214
+215
+215
+217
+220
+223
+225
+226
+226
+226
+226
+226
+226
+225
+225
+224
+224
+224
+224
+224
+224
+224
+224
+225
+225
+225
+226
+226
+226
+227
+227
+227
+227
+227
+226
+226
+226
+225
+225
+225
+225
+225
+224
+223
+223
+222
+219
+215
+212
+210
+210
+210
+210
+209
+192
+167
+142
+120
+108
+108
+131
+162
+188
+198
+208
+214
+216
+216
+215
+205
+196
+192
+190
+190
+192
+192
+190
+181
+161
+135
+77
+33
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+81
+91
+109
+129
+143
+149
+155
+157
+156
+154
+155
+155
+154
+153
+153
+153
+155
+161
+168
+174
+175
+171
+161
+135
+85
+37
+39
+29
+14
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+3
+7
+15
+29
+48
+72
+106
+127
+141
+151
+155
+157
+159
+160
+161
+162
+161
+160
+158
+150
+130
+77
+67
+66
+80
+113
+141
+142
+143
+142
+140
+138
+139
+140
+142
+144
+145
+143
+135
+117
+85
+44
+36
+32
+30
+31
+52
+103
+156
+197
+215
+216
+214
+212
+210
+209
+206
+202
+196
+191
+185
+180
+177
+176
+177
+178
+184
+187
+190
+192
+192
+193
+192
+192
+190
+187
+180
+171
+160
+147
+133
+114
+104
+98
+97
+100
+117
+137
+158
+180
+199
+207
+208
+209
+210
+211
+214
+216
+216
+217
+217
+217
+217
+217
+217
+217
+217
+217
+218
+217
+217
+216
+215
+214
+214
+213
+214
+214
+216
+219
+222
+225
+226
+226
+226
+226
+226
+225
+224
+224
+223
+223
+223
+223
+223
+223
+223
+222
+222
+222
+222
+222
+223
+223
+224
+225
+226
+227
+227
+227
+227
+227
+226
+225
+225
+225
+225
+225
+224
+224
+223
+223
+220
+217
+213
+211
+210
+210
+210
+208
+205
+181
+159
+133
+113
+109
+118
+159
+184
+198
+203
+214
+216
+216
+214
+210
+196
+192
+191
+191
+191
+192
+190
+179
+164
+151
+89
+38
+11
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+81
+89
+107
+128
+144
+150
+155
+157
+157
+155
+156
+155
+154
+153
+153
+153
+155
+162
+169
+177
+179
+177
+169
+148
+110
+34
+27
+22
+15
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+5
+10
+18
+31
+59
+85
+108
+127
+140
+149
+153
+156
+158
+160
+161
+160
+159
+156
+149
+113
+79
+62
+59
+71
+115
+135
+143
+144
+143
+142
+142
+143
+144
+146
+147
+146
+140
+128
+107
+63
+41
+30
+27
+26
+33
+55
+98
+149
+196
+216
+216
+215
+213
+210
+207
+204
+200
+195
+189
+183
+180
+178
+178
+179
+184
+188
+191
+192
+193
+193
+193
+192
+190
+187
+179
+170
+159
+145
+130
+111
+102
+98
+99
+106
+126
+147
+169
+189
+203
+208
+209
+210
+211
+213
+215
+216
+216
+217
+217
+217
+217
+217
+217
+217
+217
+217
+217
+217
+216
+215
+214
+213
+213
+213
+214
+216
+219
+222
+225
+226
+226
+226
+226
+225
+224
+223
+223
+223
+223
+223
+223
+223
+222
+222
+221
+221
+220
+220
+220
+221
+221
+222
+223
+224
+225
+226
+227
+227
+227
+227
+226
+225
+225
+224
+224
+224
+224
+223
+223
+222
+219
+215
+212
+210
+210
+210
+209
+206
+199
+175
+145
+124
+113
+112
+146
+177
+193
+202
+209
+215
+216
+215
+211
+202
+193
+191
+191
+191
+192
+191
+183
+170
+151
+127
+52
+19
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+81
+87
+106
+129
+145
+151
+156
+157
+157
+155
+156
+155
+154
+153
+153
+154
+155
+161
+169
+179
+182
+180
+175
+160
+129
+38
+22
+17
+14
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+5
+10
+25
+46
+68
+91
+112
+129
+138
+145
+150
+154
+157
+158
+159
+158
+157
+139
+105
+74
+51
+45
+76
+112
+133
+144
+145
+145
+145
+146
+147
+149
+150
+149
+145
+136
+122
+81
+49
+31
+23
+22
+25
+32
+57
+97
+152
+205
+213
+216
+215
+212
+210
+206
+203
+199
+194
+187
+183
+181
+181
+181
+184
+189
+191
+192
+193
+193
+193
+192
+190
+187
+179
+169
+157
+144
+128
+109
+101
+99
+102
+111
+135
+157
+178
+195
+206
+209
+209
+210
+212
+214
+216
+216
+216
+216
+216
+216
+217
+217
+217
+217
+217
+217
+217
+216
+215
+214
+213
+212
+213
+213
+216
+219
+222
+224
+226
+226
+226
+225
+224
+223
+222
+222
+223
+223
+223
+223
+223
+222
+221
+220
+220
+220
+220
+220
+220
+220
+220
+221
+222
+223
+225
+226
+227
+227
+227
+226
+225
+225
+224
+224
+224
+224
+223
+223
+222
+220
+217
+213
+211
+210
+210
+209
+208
+203
+194
+161
+133
+119
+117
+126
+171
+190
+200
+206
+213
+216
+216
+212
+205
+196
+191
+191
+191
+191
+192
+187
+173
+158
+134
+91
+25
+8
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+81
+86
+106
+130
+146
+152
+156
+158
+157
+155
+156
+154
+154
+154
+154
+154
+155
+160
+167
+178
+183
+182
+180
+169
+144
+49
+22
+13
+10
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+6
+16
+32
+52
+75
+99
+114
+126
+135
+142
+149
+153
+155
+157
+158
+154
+132
+97
+60
+34
+39
+77
+111
+136
+145
+147
+148
+149
+150
+152
+153
+152
+149
+142
+131
+98
+61
+35
+20
+17
+20
+22
+31
+54
+98
+177
+203
+214
+217
+215
+212
+209
+206
+203
+199
+192
+187
+184
+183
+183
+184
+189
+191
+193
+193
+193
+193
+192
+190
+187
+179
+169
+156
+142
+126
+108
+101
+100
+106
+117
+143
+165
+185
+200
+208
+209
+210
+211
+213
+215
+216
+216
+216
+216
+216
+216
+216
+217
+217
+217
+217
+216
+216
+215
+214
+212
+212
+212
+213
+214
+218
+221
+224
+225
+226
+225
+224
+223
+222
+221
+221
+222
+223
+223
+223
+223
+222
+221
+220
+220
+220
+220
+220
+220
+220
+220
+220
+221
+221
+223
+225
+226
+227
+227
+227
+226
+225
+224
+224
+224
+223
+223
+223
+222
+221
+218
+214
+212
+210
+210
+209
+209
+206
+199
+184
+143
+125
+119
+126
+149
+189
+198
+205
+210
+215
+216
+213
+206
+198
+192
+191
+191
+191
+191
+190
+178
+162
+142
+108
+52
+8
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+82
+87
+108
+132
+147
+153
+157
+158
+157
+156
+156
+155
+155
+155
+155
+155
+155
+157
+162
+173
+181
+182
+181
+174
+159
+69
+25
+8
+5
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+7
+16
+31
+58
+78
+94
+108
+120
+133
+142
+149
+154
+156
+156
+151
+126
+86
+35
+18
+34
+73
+116
+143
+147
+149
+151
+152
+154
+156
+155
+153
+148
+140
+114
+78
+44
+19
+12
+13
+18
+23
+31
+48
+130
+182
+208
+217
+216
+215
+212
+209
+205
+201
+196
+191
+187
+186
+186
+187
+190
+191
+193
+193
+193
+193
+192
+190
+187
+178
+168
+155
+140
+124
+106
+101
+102
+110
+124
+150
+172
+191
+204
+209
+210
+211
+212
+214
+215
+216
+216
+216
+216
+216
+216
+216
+216
+216
+216
+216
+216
+215
+214
+213
+212
+212
+212
+213
+216
+220
+223
+225
+226
+226
+224
+223
+221
+221
+220
+221
+222
+223
+224
+224
+223
+221
+220
+220
+220
+220
+220
+220
+220
+220
+220
+220
+221
+222
+223
+225
+226
+227
+227
+227
+226
+225
+224
+223
+223
+223
+222
+222
+221
+220
+216
+212
+210
+210
+209
+209
+208
+204
+192
+167
+125
+121
+125
+143
+179
+199
+204
+209
+214
+216
+215
+208
+200
+193
+191
+191
+191
+191
+190
+185
+164
+152
+118
+70
+19
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+83
+90
+113
+136
+147
+154
+157
+158
+157
+156
+156
+155
+156
+157
+157
+155
+155
+155
+157
+162
+178
+182
+182
+178
+165
+86
+31
+8
+3
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+4
+12
+23
+38
+54
+72
+95
+114
+130
+143
+151
+155
+154
+148
+124
+71
+14
+10
+22
+54
+106
+142
+147
+151
+153
+155
+156
+155
+153
+151
+147
+126
+99
+64
+32
+11
+7
+9
+14
+21
+28
+56
+122
+175
+208
+217
+216
+215
+213
+210
+206
+201
+198
+194
+191
+190
+190
+191
+192
+193
+193
+193
+193
+192
+190
+187
+178
+167
+153
+138
+121
+105
+102
+105
+115
+131
+158
+179
+196
+206
+210
+211
+211
+213
+214
+215
+216
+216
+216
+216
+216
+216
+216
+216
+216
+216
+216
+215
+214
+213
+212
+211
+212
+213
+215
+218
+222
+224
+225
+225
+224
+222
+220
+219
+219
+220
+222
+223
+224
+224
+224
+222
+221
+220
+220
+220
+220
+220
+220
+220
+220
+220
+220
+221
+222
+224
+226
+226
+227
+227
+226
+225
+223
+223
+222
+222
+222
+221
+221
+220
+216
+212
+210
+209
+209
+209
+208
+205
+191
+167
+134
+125
+127
+150
+179
+198
+205
+211
+214
+215
+215
+208
+198
+193
+192
+191
+191
+191
+189
+181
+167
+153
+119
+69
+23
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+84
+95
+117
+139
+148
+155
+158
+158
+157
+156
+156
+156
+157
+158
+159
+157
+156
+155
+155
+158
+172
+180
+182
+179
+171
+98
+37
+10
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+4
+8
+14
+23
+36
+60
+83
+106
+127
+141
+151
+153
+150
+134
+97
+22
+9
+9
+23
+52
+108
+133
+145
+151
+154
+155
+154
+152
+150
+146
+129
+103
+71
+38
+13
+6
+6
+9
+13
+22
+40
+79
+136
+187
+212
+216
+216
+215
+213
+210
+204
+201
+198
+195
+193
+193
+193
+193
+194
+194
+194
+193
+192
+190
+187
+178
+166
+153
+137
+120
+105
+103
+108
+119
+135
+162
+183
+198
+208
+210
+211
+212
+213
+214
+215
+216
+216
+216
+216
+216
+216
+216
+216
+216
+216
+216
+215
+214
+213
+211
+211
+212
+213
+215
+219
+223
+224
+224
+224
+223
+220
+219
+218
+219
+220
+223
+224
+224
+224
+224
+222
+221
+221
+220
+220
+220
+220
+220
+220
+220
+220
+221
+222
+224
+225
+226
+226
+226
+226
+225
+223
+222
+222
+221
+221
+221
+221
+219
+216
+212
+210
+209
+209
+208
+208
+206
+193
+169
+146
+132
+129
+151
+174
+194
+204
+210
+213
+215
+214
+211
+199
+194
+192
+192
+191
+191
+188
+180
+169
+159
+128
+76
+35
+8
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+85
+99
+122
+142
+149
+157
+159
+159
+157
+156
+156
+157
+158
+159
+159
+159
+157
+155
+155
+156
+166
+177
+182
+180
+174
+106
+42
+12
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+4
+8
+14
+30
+51
+77
+103
+127
+144
+148
+148
+137
+109
+28
+10
+3
+7
+19
+61
+97
+124
+141
+149
+152
+152
+150
+146
+142
+127
+105
+75
+42
+14
+6
+5
+6
+8
+13
+27
+52
+98
+151
+199
+214
+216
+215
+214
+213
+208
+204
+201
+199
+197
+195
+195
+195
+194
+194
+194
+194
+193
+190
+187
+177
+166
+152
+136
+119
+105
+104
+110
+122
+138
+165
+185
+200
+208
+211
+211
+212
+213
+214
+215
+216
+216
+216
+216
+216
+216
+216
+216
+216
+216
+215
+214
+213
+212
+211
+211
+212
+213
+216
+219
+223
+223
+223
+223
+221
+218
+217
+217
+218
+220
+224
+224
+224
+224
+224
+223
+222
+222
+221
+220
+220
+220
+220
+220
+221
+222
+223
+224
+225
+226
+226
+226
+225
+224
+223
+221
+221
+221
+221
+221
+220
+218
+215
+212
+210
+208
+208
+208
+208
+206
+194
+172
+152
+138
+133
+148
+174
+192
+203
+208
+213
+214
+213
+210
+203
+194
+192
+192
+192
+192
+189
+181
+171
+158
+141
+86
+40
+13
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+87
+104
+126
+144
+150
+158
+159
+159
+157
+156
+156
+157
+159
+160
+160
+159
+159
+157
+155
+155
+161
+174
+181
+181
+175
+111
+46
+14
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+3
+10
+24
+45
+71
+100
+126
+135
+137
+129
+107
+31
+10
+2
+2
+3
+20
+54
+87
+116
+136
+143
+145
+144
+141
+137
+122
+104
+75
+44
+14
+5
+5
+4
+5
+6
+17
+34
+65
+112
+175
+210
+214
+216
+215
+214
+212
+207
+205
+202
+200
+197
+197
+196
+195
+195
+194
+194
+193
+191
+187
+178
+166
+151
+135
+117
+106
+106
+112
+124
+141
+167
+187
+200
+209
+211
+212
+212
+213
+214
+215
+215
+216
+216
+216
+216
+216
+216
+216
+216
+216
+215
+214
+213
+212
+211
+211
+212
+213
+216
+219
+222
+222
+222
+221
+219
+216
+216
+216
+217
+220
+224
+225
+225
+225
+225
+224
+223
+223
+222
+222
+221
+221
+221
+222
+222
+224
+225
+225
+226
+226
+226
+225
+224
+222
+221
+220
+220
+220
+220
+219
+217
+214
+211
+209
+208
+208
+208
+207
+204
+198
+174
+152
+142
+140
+144
+174
+193
+203
+209
+212
+214
+213
+210
+204
+196
+192
+192
+192
+191
+190
+182
+171
+159
+140
+109
+41
+14
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+87
+110
+131
+147
+151
+158
+160
+159
+157
+156
+156
+158
+159
+160
+160
+160
+159
+158
+156
+155
+158
+171
+179
+181
+177
+115
+48
+14
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+5
+14
+30
+54
+94
+107
+111
+105
+92
+29
+10
+2
+1
+1
+3
+13
+37
+71
+108
+126
+133
+134
+132
+129
+116
+98
+73
+43
+13
+4
+4
+4
+4
+4
+7
+21
+45
+81
+134
+201
+211
+215
+216
+215
+214
+211
+207
+204
+203
+199
+198
+198
+197
+196
+195
+194
+193
+191
+187
+178
+166
+151
+134
+117
+107
+108
+114
+126
+143
+169
+187
+201
+209
+211
+212
+213
+213
+214
+215
+215
+216
+216
+216
+216
+216
+216
+216
+216
+216
+215
+214
+213
+212
+211
+211
+212
+213
+216
+219
+221
+221
+221
+220
+218
+215
+215
+215
+216
+220
+224
+225
+225
+225
+225
+225
+225
+224
+224
+224
+224
+224
+224
+225
+225
+225
+226
+226
+226
+226
+225
+223
+222
+221
+220
+220
+220
+219
+217
+216
+212
+210
+208
+208
+208
+208
+207
+205
+196
+178
+149
+144
+142
+148
+168
+197
+205
+209
+212
+214
+214
+210
+203
+196
+192
+192
+192
+191
+189
+184
+171
+162
+144
+111
+58
+9
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+89
+118
+138
+149
+152
+159
+161
+159
+157
+157
+157
+158
+159
+160
+160
+160
+160
+159
+157
+155
+157
+169
+178
+181
+177
+117
+48
+14
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+2
+4
+7
+24
+36
+39
+37
+30
+10
+4
+2
+1
+1
+1
+2
+6
+16
+39
+80
+97
+106
+108
+106
+95
+80
+55
+29
+7
+2
+2
+3
+3
+3
+4
+7
+21
+47
+88
+169
+200
+213
+216
+216
+215
+214
+210
+207
+205
+203
+201
+199
+198
+197
+195
+194
+193
+191
+188
+178
+166
+151
+134
+117
+108
+109
+116
+127
+143
+168
+186
+200
+209
+211
+212
+213
+213
+214
+214
+215
+215
+215
+216
+216
+216
+216
+216
+216
+216
+215
+214
+213
+211
+211
+211
+211
+213
+215
+218
+220
+220
+219
+218
+216
+214
+213
+213
+215
+219
+224
+225
+225
+225
+225
+225
+225
+225
+225
+225
+225
+225
+225
+225
+225
+225
+226
+225
+225
+224
+222
+220
+220
+219
+218
+217
+215
+214
+212
+210
+208
+208
+208
+208
+207
+205
+198
+183
+166
+152
+147
+148
+161
+180
+199
+209
+211
+213
+213
+213
+208
+200
+195
+192
+192
+192
+191
+186
+180
+172
+160
+136
+94
+48
+11
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+91
+124
+143
+151
+153
+160
+161
+159
+157
+157
+157
+158
+159
+160
+160
+160
+160
+159
+157
+155
+157
+169
+178
+181
+177
+114
+46
+13
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+3
+8
+12
+13
+12
+10
+4
+2
+1
+1
+1
+1
+1
+3
+6
+14
+37
+59
+74
+81
+82
+74
+61
+41
+20
+5
+2
+2
+2
+3
+3
+3
+5
+13
+30
+61
+133
+182
+206
+214
+216
+216
+215
+213
+210
+206
+204
+202
+201
+200
+199
+196
+195
+193
+191
+188
+179
+167
+152
+135
+118
+109
+110
+117
+128
+143
+166
+184
+198
+208
+211
+212
+213
+213
+214
+214
+215
+215
+215
+215
+216
+216
+216
+216
+216
+216
+215
+214
+213
+212
+211
+211
+211
+212
+214
+217
+218
+218
+218
+217
+215
+212
+212
+212
+213
+216
+223
+224
+225
+225
+225
+225
+225
+225
+225
+225
+225
+225
+225
+225
+225
+224
+224
+222
+221
+220
+218
+217
+216
+215
+214
+213
+212
+210
+210
+209
+208
+208
+207
+205
+203
+190
+176
+165
+157
+152
+155
+168
+184
+199
+208
+211
+212
+213
+212
+208
+199
+195
+193
+192
+192
+189
+185
+179
+172
+163
+133
+90
+50
+19
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+94
+129
+147
+153
+154
+160
+161
+160
+158
+157
+157
+158
+159
+159
+160
+160
+160
+159
+157
+156
+157
+169
+178
+181
+176
+108
+43
+12
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+2
+3
+2
+2
+1
+1
+1
+1
+1
+1
+1
+1
+2
+4
+13
+28
+41
+51
+56
+51
+41
+27
+13
+4
+1
+1
+1
+2
+3
+3
+4
+7
+18
+39
+101
+158
+194
+212
+215
+216
+216
+215
+212
+209
+206
+204
+203
+201
+200
+197
+195
+194
+192
+188
+180
+168
+153
+136
+119
+110
+111
+117
+127
+141
+163
+181
+196
+206
+211
+212
+213
+213
+214
+214
+215
+215
+215
+215
+215
+216
+216
+216
+216
+216
+215
+214
+213
+212
+211
+211
+211
+212
+213
+215
+217
+217
+217
+216
+215
+212
+211
+211
+211
+213
+220
+223
+224
+225
+225
+225
+225
+225
+224
+224
+224
+224
+223
+223
+222
+221
+220
+218
+217
+216
+215
+214
+213
+212
+212
+210
+210
+209
+208
+208
+207
+205
+201
+195
+187
+174
+165
+159
+157
+159
+174
+189
+201
+208
+211
+212
+212
+210
+206
+201
+195
+193
+192
+191
+189
+184
+179
+171
+159
+139
+89
+48
+21
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+98
+133
+150
+155
+156
+161
+161
+160
+158
+157
+157
+158
+158
+159
+160
+160
+160
+159
+157
+156
+157
+170
+179
+181
+174
+100
+38
+10
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+3
+7
+16
+24
+30
+28
+23
+15
+8
+3
+1
+1
+1
+1
+2
+2
+3
+4
+9
+22
+72
+128
+175
+206
+214
+215
+216
+216
+215
+212
+208
+207
+205
+203
+201
+198
+196
+194
+192
+189
+181
+170
+155
+138
+120
+111
+112
+117
+127
+139
+160
+177
+192
+204
+210
+212
+213
+213
+214
+214
+214
+214
+215
+215
+215
+215
+216
+216
+216
+216
+215
+214
+213
+212
+211
+211
+211
+211
+212
+214
+216
+216
+216
+215
+214
+211
+210
+209
+209
+210
+216
+221
+223
+224
+225
+225
+224
+224
+223
+223
+222
+222
+221
+220
+219
+217
+216
+215
+214
+213
+212
+211
+211
+210
+210
+209
+208
+208
+207
+206
+202
+197
+190
+181
+171
+163
+161
+162
+166
+175
+195
+205
+210
+212
+212
+212
+209
+205
+200
+195
+193
+192
+191
+188
+185
+178
+171
+157
+134
+99
+42
+17
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+102
+136
+151
+156
+157
+161
+161
+160
+158
+157
+157
+157
+158
+159
+159
+159
+159
+159
+157
+156
+158
+172
+180
+180
+171
+87
+32
+8
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+3
+5
+8
+9
+7
+5
+3
+2
+1
+1
+1
+1
+1
+2
+2
+3
+4
+7
+44
+98
+154
+197
+212
+215
+216
+216
+216
+216
+211
+209
+207
+205
+202
+200
+196
+194
+192
+190
+182
+171
+157
+140
+122
+113
+113
+117
+125
+137
+156
+172
+188
+200
+208
+211
+213
+213
+214
+214
+214
+214
+214
+215
+215
+215
+215
+215
+215
+215
+215
+215
+214
+213
+212
+211
+211
+211
+212
+213
+214
+215
+215
+214
+214
+211
+209
+208
+208
+208
+210
+216
+220
+223
+224
+224
+224
+223
+222
+222
+220
+219
+218
+217
+216
+214
+213
+212
+212
+211
+211
+210
+210
+209
+209
+208
+207
+206
+204
+200
+190
+181
+174
+168
+164
+163
+164
+172
+184
+200
+210
+211
+212
+212
+212
+209
+203
+198
+195
+193
+192
+190
+187
+183
+179
+172
+159
+130
+91
+45
+9
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+108
+137
+152
+157
+158
+162
+162
+161
+159
+157
+157
+157
+158
+158
+159
+159
+159
+158
+157
+156
+160
+175
+181
+177
+162
+65
+22
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+2
+3
+5
+19
+58
+113
+168
+206
+214
+215
+216
+217
+217
+215
+212
+210
+208
+205
+201
+198
+195
+193
+191
+184
+174
+160
+144
+126
+114
+114
+117
+124
+133
+149
+164
+180
+193
+203
+209
+211
+213
+213
+214
+214
+214
+214
+214
+214
+215
+215
+215
+215
+215
+215
+215
+214
+214
+213
+212
+211
+211
+211
+212
+213
+213
+213
+213
+213
+211
+209
+208
+206
+206
+205
+207
+211
+215
+218
+221
+222
+221
+221
+220
+219
+218
+217
+215
+214
+213
+212
+211
+211
+210
+210
+209
+208
+207
+206
+202
+197
+192
+185
+179
+173
+170
+169
+168
+167
+176
+189
+200
+207
+211
+212
+212
+211
+209
+206
+199
+196
+194
+193
+192
+188
+184
+180
+176
+170
+145
+105
+63
+28
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+111
+138
+152
+158
+159
+162
+162
+161
+159
+158
+157
+158
+158
+158
+159
+159
+159
+158
+157
+157
+164
+178
+182
+173
+146
+47
+15
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+2
+3
+12
+38
+83
+138
+194
+212
+214
+215
+216
+217
+216
+214
+212
+210
+206
+202
+198
+196
+193
+192
+185
+176
+163
+148
+130
+116
+115
+117
+123
+131
+144
+157
+172
+186
+197
+205
+209
+212
+213
+213
+214
+214
+214
+214
+214
+214
+215
+215
+215
+215
+215
+215
+215
+214
+213
+212
+212
+211
+211
+212
+212
+212
+212
+212
+212
+211
+209
+208
+206
+205
+204
+204
+205
+207
+209
+212
+214
+216
+216
+217
+216
+215
+215
+214
+213
+211
+210
+209
+208
+207
+205
+203
+200
+197
+194
+188
+184
+181
+178
+175
+172
+172
+174
+179
+185
+196
+203
+208
+210
+211
+211
+209
+207
+204
+200
+196
+194
+192
+189
+187
+183
+180
+173
+161
+140
+92
+54
+27
+10
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+115
+139
+152
+159
+160
+163
+163
+161
+160
+158
+158
+158
+158
+158
+158
+159
+158
+158
+157
+157
+169
+180
+181
+165
+124
+31
+10
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+6
+23
+57
+107
+171
+208
+212
+214
+215
+217
+217
+216
+214
+211
+208
+203
+199
+196
+194
+192
+186
+178
+166
+152
+134
+118
+116
+118
+122
+128
+139
+151
+164
+178
+190
+200
+206
+209
+212
+213
+213
+214
+214
+214
+214
+214
+214
+214
+215
+215
+215
+215
+215
+214
+214
+213
+212
+212
+212
+212
+212
+212
+212
+212
+212
+211
+209
+208
+207
+205
+203
+203
+202
+203
+203
+205
+206
+207
+208
+209
+209
+208
+208
+207
+206
+205
+204
+202
+200
+199
+196
+193
+191
+188
+185
+181
+179
+177
+176
+176
+178
+181
+187
+193
+200
+207
+210
+211
+211
+210
+208
+205
+202
+199
+196
+193
+190
+188
+185
+182
+178
+169
+152
+127
+93
+45
+22
+8
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+118
+139
+152
+159
+161
+163
+163
+162
+160
+158
+158
+158
+158
+158
+158
+159
+158
+158
+157
+159
+175
+181
+178
+154
+96
+17
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+12
+36
+77
+139
+200
+209
+213
+214
+216
+217
+216
+215
+213
+209
+204
+200
+197
+195
+193
+188
+180
+170
+156
+139
+121
+118
+118
+121
+126
+135
+144
+156
+168
+181
+194
+200
+205
+209
+212
+213
+213
+213
+213
+214
+214
+214
+214
+214
+214
+215
+215
+215
+215
+214
+214
+213
+213
+212
+212
+212
+212
+212
+212
+211
+211
+210
+209
+207
+206
+204
+203
+202
+201
+200
+200
+200
+200
+200
+200
+200
+200
+200
+199
+198
+197
+195
+194
+192
+190
+187
+185
+183
+182
+181
+179
+179
+179
+181
+183
+189
+195
+201
+206
+210
+212
+211
+210
+209
+207
+204
+200
+197
+195
+193
+189
+186
+184
+180
+177
+165
+145
+116
+81
+45
+13
+5
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+120
+140
+152
+159
+161
+164
+164
+163
+161
+158
+158
+158
+158
+158
+158
+159
+158
+157
+158
+161
+181
+182
+173
+138
+64
+8
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+5
+19
+49
+102
+187
+204
+212
+214
+214
+216
+216
+215
+213
+211
+205
+201
+198
+196
+194
+189
+182
+173
+161
+145
+124
+120
+119
+121
+125
+132
+138
+147
+158
+171
+185
+193
+200
+205
+209
+212
+213
+213
+213
+213
+213
+213
+214
+214
+214
+214
+214
+214
+214
+214
+214
+214
+213
+213
+212
+212
+212
+212
+211
+211
+211
+210
+209
+208
+207
+204
+203
+202
+201
+200
+198
+198
+197
+196
+195
+194
+194
+193
+192
+191
+190
+189
+188
+187
+186
+184
+184
+183
+182
+181
+182
+184
+187
+192
+198
+205
+209
+211
+211
+212
+211
+209
+207
+205
+202
+199
+196
+193
+190
+187
+184
+182
+180
+175
+167
+138
+101
+63
+31
+10
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+123
+140
+152
+159
+162
+164
+164
+164
+162
+160
+158
+158
+158
+158
+159
+159
+158
+158
+161
+170
+183
+181
+152
+100
+29
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+9
+25
+59
+145
+188
+207
+213
+214
+215
+215
+215
+214
+211
+207
+203
+200
+197
+195
+191
+186
+178
+167
+154
+132
+124
+121
+121
+124
+129
+133
+138
+146
+156
+170
+180
+188
+195
+201
+207
+210
+211
+212
+213
+213
+213
+213
+213
+213
+213
+214
+214
+214
+214
+214
+214
+214
+213
+213
+213
+212
+212
+212
+211
+211
+210
+210
+209
+208
+207
+205
+204
+202
+200
+199
+198
+197
+196
+195
+194
+193
+192
+192
+191
+190
+189
+188
+187
+187
+186
+187
+188
+191
+194
+199
+203
+207
+209
+210
+211
+211
+211
+210
+208
+206
+204
+202
+199
+197
+193
+190
+186
+184
+182
+179
+174
+164
+145
+114
+65
+34
+14
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+124
+139
+151
+159
+162
+165
+165
+164
+163
+161
+159
+159
+159
+159
+159
+159
+158
+159
+164
+177
+181
+171
+124
+64
+12
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+5
+15
+36
+103
+165
+198
+211
+213
+214
+215
+215
+214
+212
+208
+205
+201
+199
+196
+192
+188
+181
+173
+162
+141
+129
+124
+122
+124
+128
+131
+134
+139
+146
+158
+167
+176
+184
+192
+200
+204
+207
+210
+211
+212
+212
+212
+212
+213
+213
+213
+213
+213
+214
+214
+214
+214
+213
+213
+213
+213
+213
+212
+212
+212
+211
+211
+210
+210
+209
+208
+206
+205
+204
+202
+201
+200
+198
+197
+196
+195
+195
+194
+194
+193
+194
+194
+195
+195
+197
+199
+201
+203
+205
+207
+209
+209
+210
+210
+210
+209
+208
+206
+205
+202
+200
+197
+194
+190
+186
+184
+182
+180
+177
+168
+150
+124
+93
+60
+26
+13
+5
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+125
+139
+150
+158
+162
+165
+165
+165
+164
+162
+160
+159
+159
+160
+160
+158
+158
+162
+170
+180
+179
+148
+91
+35
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+7
+18
+68
+134
+180
+207
+213
+214
+214
+214
+214
+213
+209
+206
+203
+200
+197
+194
+190
+185
+178
+169
+150
+137
+128
+124
+124
+127
+129
+132
+135
+139
+148
+156
+164
+172
+180
+190
+196
+201
+205
+208
+210
+211
+212
+212
+212
+212
+212
+212
+212
+213
+213
+213
+213
+213
+213
+213
+213
+213
+213
+213
+212
+212
+212
+212
+211
+210
+210
+209
+208
+207
+206
+205
+204
+203
+203
+202
+201
+201
+201
+201
+201
+202
+202
+203
+204
+206
+207
+208
+209
+210
+210
+210
+209
+209
+209
+207
+206
+204
+203
+200
+197
+194
+191
+187
+184
+181
+179
+176
+170
+161
+135
+107
+77
+48
+25
+7
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+126
+139
+149
+157
+162
+165
+165
+165
+164
+163
+161
+161
+161
+161
+160
+158
+160
+167
+175
+181
+170
+115
+57
+14
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+7
+39
+98
+155
+197
+211
+213
+214
+214
+214
+213
+210
+207
+204
+201
+199
+195
+192
+188
+182
+175
+160
+146
+135
+128
+126
+126
+129
+131
+133
+135
+140
+146
+152
+160
+167
+178
+185
+191
+197
+201
+206
+208
+210
+211
+211
+211
+211
+212
+212
+212
+212
+212
+213
+213
+213
+213
+213
+213
+213
+213
+213
+213
+212
+212
+212
+212
+211
+211
+211
+211
+210
+209
+209
+209
+208
+208
+208
+208
+208
+208
+208
+209
+209
+209
+210
+210
+210
+210
+210
+210
+209
+209
+208
+207
+206
+204
+202
+200
+198
+195
+190
+187
+184
+181
+179
+176
+172
+163
+149
+128
+89
+59
+34
+16
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+127
+138
+148
+156
+161
+164
+165
+165
+165
+164
+163
+163
+162
+161
+159
+159
+163
+172
+179
+178
+149
+72
+25
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+3
+14
+61
+122
+177
+208
+213
+213
+214
+214
+214
+211
+209
+206
+203
+200
+196
+194
+190
+185
+180
+168
+156
+144
+134
+128
+128
+129
+130
+132
+133
+135
+138
+143
+148
+154
+164
+171
+179
+185
+192
+199
+203
+206
+208
+210
+210
+211
+211
+211
+211
+211
+211
+211
+212
+212
+212
+212
+212
+213
+213
+213
+213
+212
+212
+212
+212
+212
+212
+212
+212
+212
+212
+212
+211
+211
+211
+211
+211
+211
+211
+211
+211
+210
+210
+210
+210
+210
+209
+209
+208
+207
+206
+206
+204
+203
+201
+198
+194
+191
+187
+182
+180
+178
+177
+175
+169
+157
+136
+109
+76
+39
+18
+7
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+127
+138
+147
+155
+160
+163
+164
+165
+165
+164
+164
+163
+161
+159
+159
+161
+170
+174
+172
+160
+76
+28
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+7
+24
+70
+130
+191
+211
+213
+213
+214
+214
+212
+210
+208
+205
+202
+199
+196
+193
+189
+185
+178
+169
+158
+148
+138
+132
+131
+131
+132
+133
+135
+135
+137
+139
+142
+148
+154
+160
+167
+173
+182
+188
+193
+198
+202
+206
+208
+209
+209
+210
+210
+210
+210
+210
+210
+210
+211
+211
+211
+211
+211
+212
+212
+212
+212
+212
+212
+212
+212
+212
+212
+211
+211
+211
+211
+211
+211
+211
+210
+210
+210
+209
+209
+209
+208
+207
+207
+207
+206
+206
+204
+203
+200
+197
+194
+189
+185
+182
+179
+177
+176
+174
+171
+166
+156
+128
+100
+70
+42
+23
+5
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+128
+138
+147
+153
+158
+163
+164
+164
+165
+164
+164
+162
+161
+160
+161
+167
+173
+171
+154
+111
+39
+15
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+13
+43
+89
+153
+204
+211
+213
+213
+213
+213
+211
+209
+207
+204
+201
+198
+195
+192
+188
+183
+176
+168
+159
+150
+140
+137
+135
+134
+134
+135
+136
+137
+138
+140
+143
+146
+150
+154
+160
+167
+173
+179
+184
+190
+196
+200
+203
+205
+207
+208
+209
+209
+209
+209
+209
+209
+209
+209
+210
+210
+210
+210
+210
+210
+210
+210
+210
+210
+210
+210
+210
+210
+210
+210
+209
+209
+209
+209
+209
+208
+208
+208
+207
+207
+206
+205
+204
+202
+200
+197
+194
+190
+187
+183
+179
+177
+175
+174
+172
+169
+162
+150
+133
+111
+77
+51
+31
+18
+8
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+128
+139
+147
+152
+157
+161
+163
+164
+164
+164
+162
+161
+160
+161
+162
+170
+171
+156
+123
+73
+23
+10
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+6
+23
+56
+111
+185
+204
+212
+213
+213
+213
+212
+210
+208
+206
+203
+200
+197
+194
+191
+186
+182
+177
+170
+162
+152
+146
+143
+140
+138
+137
+138
+138
+139
+139
+141
+143
+145
+148
+151
+156
+161
+165
+170
+176
+183
+188
+192
+196
+199
+202
+204
+206
+207
+207
+208
+208
+208
+208
+208
+208
+208
+209
+209
+209
+209
+209
+209
+209
+209
+209
+209
+209
+208
+208
+208
+208
+207
+207
+207
+206
+206
+205
+204
+203
+200
+198
+196
+193
+190
+186
+183
+180
+177
+175
+173
+171
+169
+166
+161
+147
+131
+111
+89
+65
+36
+20
+11
+5
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+129
+140
+147
+152
+155
+160
+162
+163
+164
+163
+161
+160
+161
+162
+164
+171
+162
+132
+91
+49
+19
+9
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+10
+31
+69
+153
+190
+207
+212
+213
+213
+213
+211
+210
+208
+205
+202
+199
+197
+194
+190
+187
+183
+178
+173
+164
+158
+153
+149
+145
+142
+141
+141
+140
+141
+141
+142
+143
+145
+146
+149
+152
+155
+159
+163
+169
+174
+178
+183
+187
+193
+196
+199
+201
+203
+204
+205
+206
+206
+207
+207
+207
+207
+207
+207
+207
+207
+207
+207
+207
+207
+207
+207
+206
+206
+206
+205
+205
+204
+203
+202
+200
+199
+197
+195
+191
+188
+185
+182
+179
+176
+173
+172
+170
+169
+166
+163
+157
+148
+136
+111
+88
+66
+45
+28
+9
+5
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+130
+141
+147
+151
+154
+159
+162
+163
+162
+160
+160
+161
+161
+163
+167
+169
+144
+107
+70
+44
+23
+11
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+12
+32
+108
+166
+198
+211
+213
+213
+213
+212
+211
+209
+207
+204
+201
+199
+196
+192
+190
+187
+185
+182
+175
+170
+166
+162
+158
+153
+150
+147
+145
+143
+142
+142
+143
+144
+145
+146
+149
+150
+152
+154
+158
+161
+165
+169
+172
+178
+182
+186
+190
+193
+197
+199
+201
+203
+204
+204
+205
+205
+205
+205
+205
+205
+205
+204
+204
+204
+204
+203
+203
+202
+201
+200
+199
+197
+196
+193
+190
+188
+185
+182
+178
+175
+173
+171
+169
+168
+167
+166
+165
+163
+157
+147
+132
+114
+91
+61
+41
+26
+15
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+131
+142
+148
+151
+153
+159
+160
+159
+159
+160
+161
+159
+159
+162
+170
+155
+117
+90
+70
+52
+25
+12
+5
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+10
+48
+109
+163
+200
+211
+212
+213
+213
+212
+211
+209
+207
+204
+202
+199
+196
+193
+191
+190
+188
+185
+182
+179
+177
+175
+172
+169
+166
+163
+159
+154
+151
+148
+146
+146
+146
+148
+149
+150
+152
+154
+155
+157
+158
+160
+162
+165
+167
+169
+172
+175
+178
+181
+184
+186
+189
+191
+192
+194
+194
+195
+195
+195
+195
+194
+194
+192
+191
+190
+188
+186
+184
+182
+180
+178
+175
+173
+171
+169
+167
+166
+165
+164
+164
+163
+161
+158
+153
+144
+131
+107
+87
+68
+49
+31
+13
+9
+5
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+131
+143
+149
+151
+153
+158
+158
+159
+160
+161
+159
+157
+161
+167
+168
+131
+108
+95
+83
+65
+32
+16
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+24
+68
+121
+170
+203
+211
+212
+212
+212
+212
+210
+209
+206
+204
+202
+198
+196
+194
+192
+191
+190
+188
+186
+184
+183
+181
+180
+178
+176
+174
+171
+168
+164
+161
+157
+152
+151
+150
+150
+151
+153
+154
+155
+156
+158
+160
+161
+162
+164
+165
+167
+168
+169
+170
+172
+173
+174
+175
+177
+177
+178
+179
+179
+180
+180
+179
+179
+178
+177
+176
+174
+173
+171
+170
+168
+166
+165
+164
+163
+163
+162
+161
+159
+156
+152
+141
+129
+115
+100
+83
+60
+45
+32
+20
+10
+5
+3
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+133
+144
+149
+151
+153
+157
+158
+159
+160
+160
+156
+156
+164
+168
+158
+120
+113
+110
+105
+92
+52
+27
+11
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+9
+35
+79
+130
+180
+207
+210
+212
+212
+212
+211
+210
+208
+206
+204
+201
+199
+196
+194
+193
+192
+191
+191
+190
+188
+188
+187
+186
+186
+185
+183
+181
+178
+176
+172
+167
+163
+160
+157
+155
+155
+155
+155
+156
+157
+158
+159
+160
+161
+162
+163
+163
+164
+164
+165
+165
+166
+166
+166
+167
+167
+167
+168
+168
+167
+167
+167
+166
+166
+165
+164
+163
+163
+162
+161
+160
+159
+159
+158
+157
+153
+148
+142
+134
+123
+105
+90
+73
+57
+43
+27
+19
+12
+6
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+134
+145
+149
+151
+153
+157
+159
+161
+161
+157
+154
+160
+168
+166
+144
+121
+127
+130
+130
+123
+84
+49
+23
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+12
+41
+85
+143
+194
+206
+211
+212
+212
+212
+211
+210
+208
+207
+204
+202
+199
+197
+195
+194
+193
+193
+193
+192
+192
+192
+192
+191
+191
+191
+190
+189
+188
+186
+183
+179
+175
+171
+166
+162
+161
+159
+159
+158
+159
+159
+160
+161
+161
+162
+162
+163
+163
+163
+163
+163
+162
+162
+162
+162
+161
+161
+161
+160
+160
+159
+159
+159
+158
+158
+158
+157
+157
+157
+156
+155
+154
+151
+148
+138
+128
+116
+102
+86
+65
+49
+35
+24
+15
+7
+5
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+136
+146
+150
+151
+153
+157
+163
+163
+159
+153
+154
+169
+172
+160
+131
+135
+145
+150
+150
+148
+127
+82
+43
+15
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+13
+42
+92
+166
+195
+208
+211
+212
+212
+212
+211
+210
+209
+207
+204
+202
+200
+197
+195
+195
+194
+194
+194
+195
+195
+195
+195
+195
+195
+195
+194
+194
+193
+193
+192
+191
+189
+186
+181
+177
+172
+168
+165
+162
+161
+161
+161
+162
+162
+163
+163
+163
+163
+163
+163
+163
+162
+162
+162
+161
+161
+160
+160
+159
+159
+158
+158
+158
+157
+156
+156
+155
+154
+153
+151
+147
+141
+133
+114
+99
+83
+66
+49
+29
+18
+11
+6
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+137
+146
+150
+151
+154
+162
+164
+161
+156
+155
+168
+177
+163
+144
+135
+153
+155
+155
+153
+151
+146
+127
+86
+41
+10
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+10
+30
+96
+151
+187
+207
+211
+211
+212
+212
+211
+210
+209
+208
+206
+204
+202
+199
+197
+196
+195
+195
+195
+196
+196
+196
+196
+196
+196
+197
+197
+197
+197
+197
+197
+197
+196
+195
+193
+192
+190
+187
+184
+181
+179
+176
+174
+172
+171
+171
+170
+170
+170
+169
+169
+169
+168
+167
+167
+166
+166
+165
+164
+163
+163
+162
+161
+160
+159
+157
+156
+154
+150
+144
+134
+120
+102
+77
+60
+44
+30
+18
+8
+4
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+138
+146
+150
+153
+158
+167
+164
+160
+158
+162
+179
+179
+159
+140
+144
+157
+157
+156
+153
+150
+147
+139
+110
+69
+22
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+4
+12
+49
+97
+145
+185
+206
+211
+211
+212
+212
+212
+210
+209
+208
+207
+205
+203
+201
+199
+198
+197
+196
+196
+196
+196
+196
+196
+197
+197
+197
+198
+198
+198
+198
+198
+198
+198
+197
+197
+196
+196
+194
+193
+191
+190
+189
+187
+185
+184
+183
+183
+182
+181
+181
+180
+180
+179
+178
+178
+177
+177
+175
+174
+172
+170
+169
+165
+162
+159
+156
+152
+144
+132
+115
+96
+76
+52
+37
+24
+14
+7
+3
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+139
+147
+150
+154
+162
+169
+163
+161
+164
+174
+184
+174
+154
+140
+151
+160
+160
+157
+153
+149
+146
+143
+125
+91
+38
+5
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+20
+53
+97
+143
+183
+207
+210
+211
+212
+212
+211
+211
+210
+209
+208
+206
+205
+203
+201
+200
+199
+199
+198
+198
+197
+197
+197
+198
+198
+198
+199
+199
+199
+199
+199
+199
+199
+199
+199
+200
+199
+199
+198
+198
+198
+197
+196
+195
+194
+193
+192
+191
+191
+190
+189
+188
+187
+186
+185
+184
+181
+179
+177
+174
+171
+167
+162
+157
+150
+141
+123
+105
+86
+67
+50
+31
+20
+11
+5
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+141
+147
+151
+156
+166
+170
+163
+164
+171
+185
+186
+166
+149
+142
+156
+163
+162
+157
+152
+147
+145
+143
+134
+107
+54
+9
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+5
+21
+51
+92
+141
+189
+202
+209
+211
+211
+212
+211
+211
+210
+210
+209
+207
+206
+205
+204
+203
+202
+201
+200
+200
+199
+199
+199
+199
+200
+200
+200
+201
+201
+201
+200
+200
+201
+201
+201
+201
+201
+202
+202
+202
+202
+202
+202
+201
+201
+200
+199
+198
+197
+196
+194
+193
+191
+189
+186
+182
+179
+176
+172
+167
+159
+151
+142
+131
+116
+91
+72
+54
+39
+26
+15
+9
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+143
+148
+152
+158
+170
+169
+164
+168
+177
+188
+186
+157
+145
+147
+159
+164
+163
+157
+151
+145
+143
+142
+137
+117
+70
+13
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+5
+19
+44
+82
+147
+184
+203
+210
+210
+211
+212
+211
+211
+211
+210
+210
+209
+208
+207
+206
+205
+204
+203
+202
+202
+202
+202
+202
+202
+203
+203
+203
+203
+202
+202
+202
+202
+202
+201
+201
+202
+202
+203
+203
+204
+204
+204
+204
+204
+204
+203
+201
+200
+198
+195
+193
+190
+187
+184
+179
+175
+169
+162
+154
+137
+123
+107
+90
+73
+52
+37
+25
+15
+8
+5
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+144
+148
+155
+163
+173
+166
+165
+173
+184
+189
+181
+150
+141
+147
+160
+161
+155
+149
+144
+143
+143
+142
+138
+122
+83
+19
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+10
+26
+68
+110
+150
+183
+204
+210
+211
+212
+212
+212
+212
+212
+211
+211
+211
+211
+211
+210
+210
+210
+209
+209
+208
+208
+208
+207
+207
+207
+206
+206
+205
+204
+203
+203
+202
+202
+202
+202
+203
+203
+203
+204
+204
+205
+205
+203
+201
+198
+195
+191
+185
+180
+172
+164
+154
+140
+128
+115
+102
+88
+71
+58
+44
+32
+23
+14
+10
+6
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+144
+149
+157
+166
+173
+164
+165
+176
+187
+190
+173
+147
+141
+146
+155
+151
+147
+144
+143
+142
+141
+140
+137
+123
+88
+21
+7
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+9
+32
+60
+93
+127
+159
+189
+200
+206
+209
+211
+211
+212
+212
+212
+212
+212
+211
+211
+211
+211
+211
+211
+210
+210
+210
+209
+209
+208
+208
+207
+206
+205
+205
+204
+203
+202
+202
+202
+202
+203
+203
+202
+202
+201
+198
+191
+185
+178
+170
+161
+148
+138
+127
+116
+105
+89
+78
+67
+56
+45
+35
+26
+19
+13
+8
+5
+3
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+146
+150
+159
+167
+170
+162
+167
+179
+189
+189
+164
+144
+139
+143
+146
+144
+142
+142
+141
+141
+139
+139
+136
+123
+90
+23
+8
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+11
+27
+48
+74
+104
+140
+161
+177
+189
+198
+204
+206
+208
+209
+209
+210
+210
+210
+210
+210
+210
+210
+210
+210
+209
+209
+209
+208
+208
+207
+206
+205
+204
+203
+202
+201
+201
+201
+201
+200
+199
+196
+192
+186
+178
+164
+154
+143
+131
+119
+103
+91
+80
+70
+60
+48
+39
+31
+24
+19
+13
+8
+6
+4
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+147
+151
+159
+166
+166
+160
+170
+181
+190
+188
+156
+141
+138
+139
+139
+140
+141
+141
+140
+139
+138
+137
+135
+122
+90
+23
+8
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+7
+18
+33
+52
+83
+106
+128
+147
+163
+176
+183
+188
+192
+195
+197
+199
+200
+201
+201
+202
+202
+202
+203
+203
+203
+203
+203
+203
+203
+202
+201
+201
+200
+199
+197
+196
+195
+193
+190
+184
+177
+168
+157
+144
+126
+112
+99
+86
+74
+59
+49
+40
+32
+25
+19
+14
+9
+6
+5
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+147
+152
+160
+165
+162
+159
+174
+184
+189
+184
+148
+139
+136
+136
+137
+141
+141
+140
+139
+137
+137
+136
+133
+120
+87
+22
+7
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+3
+8
+17
+34
+50
+66
+81
+96
+115
+128
+139
+149
+157
+165
+169
+172
+175
+178
+180
+182
+184
+186
+188
+189
+190
+191
+192
+192
+192
+192
+191
+190
+189
+187
+184
+179
+174
+166
+153
+140
+126
+112
+98
+80
+67
+55
+43
+33
+24
+18
+12
+8
+5
+4
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+147
+152
+157
+159
+155
+159
+180
+187
+183
+172
+142
+137
+136
+138
+141
+141
+141
+140
+138
+137
+136
+136
+132
+115
+77
+17
+6
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+6
+11
+18
+24
+31
+37
+41
+45
+50
+54
+60
+64
+67
+71
+74
+78
+81
+85
+89
+93
+100
+104
+108
+112
+115
+119
+121
+122
+122
+121
+117
+112
+106
+99
+91
+79
+70
+60
+50
+41
+30
+23
+17
+11
+6
+4
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+145
+151
+154
+154
+152
+168
+183
+184
+176
+163
+141
+139
+139
+141
+142
+142
+141
+140
+140
+138
+137
+136
+130
+110
+67
+13
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+4
+6
+9
+11
+14
+15
+17
+18
+20
+22
+23
+25
+26
+28
+30
+31
+33
+35
+38
+41
+44
+47
+50
+53
+56
+58
+60
+61
+61
+59
+56
+53
+49
+45
+38
+33
+27
+22
+17
+11
+8
+6
+4
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+142
+148
+150
+150
+153
+177
+183
+178
+167
+154
+141
+141
+142
+143
+142
+142
+142
+142
+142
+141
+139
+137
+128
+103
+55
+9
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+3
+3
+4
+4
+4
+4
+5
+5
+6
+6
+7
+8
+8
+9
+10
+11
+12
+14
+15
+17
+18
+20
+21
+22
+23
+23
+23
+22
+20
+19
+17
+14
+11
+9
+7
+5
+3
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+138
+144
+147
+150
+158
+182
+179
+169
+157
+148
+143
+144
+143
+143
+143
+143
+145
+145
+145
+143
+141
+137
+123
+93
+43
+6
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+2
+2
+2
+2
+3
+3
+3
+3
+4
+4
+4
+5
+5
+5
+5
+4
+4
+3
+2
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+138
+142
+145
+153
+171
+181
+171
+159
+150
+145
+145
+144
+143
+143
+143
+146
+148
+149
+148
+146
+143
+138
+117
+81
+31
+4
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+139
+143
+151
+162
+175
+168
+157
+150
+146
+145
+145
+143
+144
+146
+150
+156
+157
+155
+153
+149
+145
+136
+104
+62
+18
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+142
+148
+158
+167
+170
+157
+150
+147
+146
+145
+143
+144
+148
+153
+157
+159
+158
+156
+153
+150
+146
+130
+92
+47
+12
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+145
+153
+161
+165
+159
+149
+147
+146
+145
+144
+143
+149
+154
+158
+160
+160
+159
+157
+154
+152
+146
+120
+78
+35
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+148
+157
+160
+158
+148
+145
+145
+145
+145
+144
+146
+155
+158
+159
+159
+159
+158
+157
+155
+153
+143
+108
+64
+24
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+148
+157
+154
+147
+143
+144
+145
+145
+145
+144
+155
+158
+157
+156
+155
+157
+157
+157
+156
+153
+139
+93
+49
+15
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+148
+148
+143
+138
+143
+144
+145
+144
+145
+148
+159
+153
+151
+150
+151
+153
+155
+156
+155
+151
+118
+68
+30
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+143
+139
+137
+138
+143
+144
+145
+145
+147
+153
+155
+151
+149
+149
+150
+151
+152
+152
+149
+141
+92
+47
+18
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+138
+134
+135
+138
+143
+145
+145
+145
+148
+154
+152
+150
+149
+149
+149
+149
+149
+147
+138
+121
+65
+29
+10
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+134
+131
+134
+138
+143
+145
+145
+145
+148
+153
+151
+150
+149
+149
+148
+147
+145
+138
+123
+94
+40
+16
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+130
+130
+134
+139
+143
+145
+144
+145
+148
+151
+150
+150
+149
+149
+148
+146
+140
+126
+101
+64
+19
+7
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+128
+130
+134
+139
+144
+145
+144
+146
+149
+150
+151
+150
+150
+149
+148
+144
+129
+101
+67
+31
+6
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+128
+130
+134
+139
+144
+145
+144
+146
+149
+150
+151
+151
+150
+148
+147
+141
+115
+81
+46
+17
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+128
+130
+134
+139
+144
+145
+144
+146
+148
+150
+151
+150
+149
+148
+146
+135
+99
+61
+29
+8
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+128
+130
+134
+139
+145
+145
+144
+146
+148
+150
+151
+150
+148
+147
+145
+126
+82
+44
+16
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+128
+130
+134
+140
+145
+145
+145
+146
+148
+150
+150
+149
+148
+146
+143
+112
+64
+28
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+128
+130
+134
+139
+145
+145
+145
+146
+147
+149
+149
+148
+146
+143
+137
+87
+39
+13
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+128
+129
+133
+139
+145
+145
+145
+146
+147
+149
+148
+146
+144
+140
+129
+62
+25
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+128
+129
+133
+139
+145
+146
+146
+147
+148
+148
+147
+145
+143
+134
+112
+39
+14
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+128
+128
+132
+138
+145
+146
+147
+147
+148
+147
+145
+144
+140
+124
+88
+21
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+127
+128
+131
+137
+145
+146
+147
+147
+147
+145
+143
+142
+135
+111
+58
+7
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+127
+127
+130
+136
+143
+146
+146
+145
+144
+142
+142
+139
+118
+78
+22
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+127
+127
+130
+134
+139
+144
+143
+142
+142
+142
+141
+130
+93
+46
+9
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+127
+127
+130
+133
+137
+140
+140
+141
+141
+141
+137
+108
+64
+22
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+128
+128
+129
+132
+135
+138
+139
+140
+140
+139
+123
+76
+35
+7
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+128
+128
+129
+132
+135
+136
+139
+140
+139
+136
+94
+39
+11
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+129
+130
+131
+132
+134
+138
+139
+138
+129
+107
+29
+9
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+130
+131
+132
+133
+136
+139
+138
+127
+101
+52
+10
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+132
+133
+134
+136
+138
+137
+126
+97
+59
+18
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+135
+135
+136
+137
+137
+125
+97
+57
+20
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+137
+137
+137
+137
+134
+94
+44
+16
+3
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+136
+134
+125
+104
+66
+18
+6
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+105
+88
+67
+45
+22
+6
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+55
+41
+26
+13
+4
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+13
+7
+4
+2
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
diff --git a/tools/h52jpeg/testfiles/h52jpegtst.h5 b/tools/h52jpeg/testfiles/h52jpegtst.h5
new file mode 100644
index 0000000..39bded7
--- /dev/null
+++ b/tools/h52jpeg/testfiles/h52jpegtst.h5
Binary files differ
diff --git a/tools/testfiles/h5copytst.h5 b/tools/h5copy/testfiles/h5copytst.h5
index f407f82..f407f82 100644
--- a/tools/testfiles/h5copytst.h5
+++ b/tools/h5copy/testfiles/h5copytst.h5
Binary files differ
diff --git a/tools/testfiles/h5copytst.out.ls b/tools/h5copy/testfiles/h5copytst.out.ls
index 9cad76f..9cad76f 100644
--- a/tools/testfiles/h5copytst.out.ls
+++ b/tools/h5copy/testfiles/h5copytst.out.ls
diff --git a/tools/h5copy/testh5copy.sh b/tools/h5copy/testh5copy.sh
index ad4efe3..0acc4df 100644
--- a/tools/h5copy/testh5copy.sh
+++ b/tools/h5copy/testh5copy.sh
@@ -31,7 +31,7 @@ nerrors=0
verbose=yes
SRCFILE=h5copytst.h5
-INDIR=$srcdir/../testfiles
+INDIR=$srcdir/testfiles
OUTDIR=../testfiles
CMP='cmp -s'
DIFF='diff -c'
diff --git a/tools/testfiles/h5diff_10.txt b/tools/h5diff/testfiles/h5diff_10.txt
index 6a6dbae..887ee9e 100644
--- a/tools/testfiles/h5diff_10.txt
+++ b/tools/h5diff/testfiles/h5diff_10.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -h'
-#############################
usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
file1 File name of the first HDF5 file
file2 File name of the second HDF5 file
diff --git a/tools/testfiles/h5diff_100.txt b/tools/h5diff/testfiles/h5diff_100.txt
index 82b42ce..32ff7ab 100644
--- a/tools/testfiles/h5diff_100.txt
+++ b/tools/h5diff/testfiles/h5diff_100.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -v h5diff_hyper1.h5 h5diff_hyper2.h5'
-#############################
file1 file2
---------------------------------------
diff --git a/tools/testfiles/h5diff_101.txt b/tools/h5diff/testfiles/h5diff_101.txt
index 7affe59..03875b7 100644
--- a/tools/testfiles/h5diff_101.txt
+++ b/tools/h5diff/testfiles/h5diff_101.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -v h5diff_basic1.h5 h5diff_basic1.h5 g1/d1 g1/d2'
-#############################
dataset: </g1/d1> and </g1/d2>
size: [3x2] [3x2]
position d1 d2 difference
diff --git a/tools/testfiles/h5diff_102.txt b/tools/h5diff/testfiles/h5diff_102.txt
index dba340b..3d91a36 100644
--- a/tools/testfiles/h5diff_102.txt
+++ b/tools/h5diff/testfiles/h5diff_102.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -v h5diff_basic1.h5 h5diff_basic1.h5 g1/fp1 g1/fp2'
-#############################
dataset: </g1/fp1> and </g1/fp2>
size: [3x2] [3x2]
position fp1 fp2 difference
diff --git a/tools/h5diff/testfiles/h5diff_11.txt b/tools/h5diff/testfiles/h5diff_11.txt
new file mode 100644
index 0000000..e2e33fb
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_11.txt
@@ -0,0 +1,2 @@
+dataset: </g1/dset1> and </g1/dset1>
+5 differences found
diff --git a/tools/h5diff/testfiles/h5diff_12.txt b/tools/h5diff/testfiles/h5diff_12.txt
new file mode 100644
index 0000000..6b4c747
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_12.txt
@@ -0,0 +1,2 @@
+dataset: </g1/dset1> and </g1/dset2>
+5 differences found
diff --git a/tools/testfiles/h5diff_13.txt b/tools/h5diff/testfiles/h5diff_13.txt
index 834f809..36676e9 100644
--- a/tools/testfiles/h5diff_13.txt
+++ b/tools/h5diff/testfiles/h5diff_13.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -r h5diff_basic1.h5 h5diff_basic2.h5'
-#############################
dataset: </g1/dset1> and </g1/dset1>
size: [3x2] [3x2]
position dset1 dset1 difference
diff --git a/tools/testfiles/h5diff_14.txt b/tools/h5diff/testfiles/h5diff_14.txt
index d0f75b5..3fac3af 100644
--- a/tools/testfiles/h5diff_14.txt
+++ b/tools/h5diff/testfiles/h5diff_14.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -r h5diff_basic1.h5 h5diff_basic2.h5 g1/dset1 g1/dset2'
-#############################
dataset: </g1/dset1> and </g1/dset2>
size: [3x2] [3x2]
position dset1 dset2 difference
diff --git a/tools/testfiles/h5diff_15.txt b/tools/h5diff/testfiles/h5diff_15.txt
index 529ffc5..386c6e1 100644
--- a/tools/testfiles/h5diff_15.txt
+++ b/tools/h5diff/testfiles/h5diff_15.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff --report --delta=5 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
dataset: </g1/dset3> and </g1/dset4>
size: [3x2] [3x2]
position dset3 dset4 difference
diff --git a/tools/testfiles/h5diff_16_1.txt b/tools/h5diff/testfiles/h5diff_16_1.txt
index 738a0f7..6155ebf 100644
--- a/tools/testfiles/h5diff_16_1.txt
+++ b/tools/h5diff/testfiles/h5diff_16_1.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -v -p 0.02 h5diff_basic1.h5 h5diff_basic1.h5 g1/dset5 g1/dset6'
-#############################
dataset: </g1/dset5> and </g1/dset6>
size: [3x2] [3x2]
position dset5 dset6 difference relative
diff --git a/tools/testfiles/h5diff_16_2.txt b/tools/h5diff/testfiles/h5diff_16_2.txt
index 421bf70..43127bb 100644
--- a/tools/testfiles/h5diff_16_2.txt
+++ b/tools/h5diff/testfiles/h5diff_16_2.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff --verbose --relative=0.02 h5diff_basic1.h5 h5diff_basic1.h5 g1/dset7 g1/dset8'
-#############################
dataset: </g1/dset7> and </g1/dset8>
size: [3x2] [3x2]
position dset7 dset8 difference relative
diff --git a/tools/testfiles/h5diff_16_3.txt b/tools/h5diff/testfiles/h5diff_16_3.txt
index 0721799..6da24cf 100644
--- a/tools/testfiles/h5diff_16_3.txt
+++ b/tools/h5diff/testfiles/h5diff_16_3.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -v -p 0.02 h5diff_basic1.h5 h5diff_basic1.h5 g1/dset9 g1/dset10'
-#############################
dataset: </g1/dset9> and </g1/dset10>
size: [3x2] [3x2]
position dset9 dset10 difference relative
diff --git a/tools/testfiles/h5diff_17.txt b/tools/h5diff/testfiles/h5diff_17.txt
index 1d93779..e92e0be 100644
--- a/tools/testfiles/h5diff_17.txt
+++ b/tools/h5diff/testfiles/h5diff_17.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -v h5diff_basic1.h5 h5diff_basic2.h5'
-#############################
file1 file2
---------------------------------------
diff --git a/tools/h5diff/testfiles/h5diff_18.txt b/tools/h5diff/testfiles/h5diff_18.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_18.txt
diff --git a/tools/testfiles/h5diff_20.txt b/tools/h5diff/testfiles/h5diff_20.txt
index ebdcd9a..e383972 100644
--- a/tools/testfiles/h5diff_20.txt
+++ b/tools/h5diff/testfiles/h5diff_20.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -v h5diff_types.h5 h5diff_types.h5 dset g1'
-#############################
Comparison not possible: </dset> is of type H5G_DATASET and </g1> is of type H5G_GROUP
--------------------------------
Some objects are not comparable
diff --git a/tools/testfiles/h5diff_21.txt b/tools/h5diff/testfiles/h5diff_21.txt
index 647b58d..d5b0443 100644
--- a/tools/testfiles/h5diff_21.txt
+++ b/tools/h5diff/testfiles/h5diff_21.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -v h5diff_types.h5 h5diff_types.h5 dset l1'
-#############################
Comparison not possible: </dset> is of type H5G_DATASET and </l1> is of type H5G_LINK
--------------------------------
Some objects are not comparable
diff --git a/tools/testfiles/h5diff_22.txt b/tools/h5diff/testfiles/h5diff_22.txt
index b664837..d8714a0 100644
--- a/tools/testfiles/h5diff_22.txt
+++ b/tools/h5diff/testfiles/h5diff_22.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -v h5diff_types.h5 h5diff_types.h5 dset t1'
-#############################
Comparison not possible: </dset> is of type H5G_DATASET and </t1> is of type H5G_TYPE
--------------------------------
Some objects are not comparable
diff --git a/tools/h5diff/testfiles/h5diff_23.txt b/tools/h5diff/testfiles/h5diff_23.txt
new file mode 100644
index 0000000..1342765
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_23.txt
@@ -0,0 +1,2 @@
+group : </g1> and </g1>
+0 differences found
diff --git a/tools/h5diff/testfiles/h5diff_24.txt b/tools/h5diff/testfiles/h5diff_24.txt
new file mode 100644
index 0000000..cc4f0d0
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_24.txt
@@ -0,0 +1,2 @@
+datatype: </t1> and </t1>
+0 differences found
diff --git a/tools/h5diff/testfiles/h5diff_25.txt b/tools/h5diff/testfiles/h5diff_25.txt
new file mode 100644
index 0000000..288c4da
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_25.txt
@@ -0,0 +1,2 @@
+link : </l1> and </l1>
+0 differences found
diff --git a/tools/h5diff/testfiles/h5diff_26.txt b/tools/h5diff/testfiles/h5diff_26.txt
new file mode 100644
index 0000000..916cf63
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_26.txt
@@ -0,0 +1,2 @@
+group : </g1> and </g2>
+1 differences found
diff --git a/tools/h5diff/testfiles/h5diff_27.txt b/tools/h5diff/testfiles/h5diff_27.txt
new file mode 100644
index 0000000..335119a
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_27.txt
@@ -0,0 +1,2 @@
+datatype: </t1> and </t2>
+1 differences found
diff --git a/tools/h5diff/testfiles/h5diff_28.txt b/tools/h5diff/testfiles/h5diff_28.txt
new file mode 100644
index 0000000..5845fa9
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_28.txt
@@ -0,0 +1,2 @@
+link : </l1> and </l2>
+1 differences found
diff --git a/tools/testfiles/h5diff_50.txt b/tools/h5diff/testfiles/h5diff_50.txt
index d25dc1d..65b563c 100644
--- a/tools/testfiles/h5diff_50.txt
+++ b/tools/h5diff/testfiles/h5diff_50.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -v h5diff_dtypes.h5 h5diff_dtypes.h5 dset0a dset0b'
-#############################
dataset: </dset0a> and </dset0b>
Warning: different storage datatype
</dset0a> has file datatype H5T_STD_I16LE
diff --git a/tools/testfiles/h5diff_51.txt b/tools/h5diff/testfiles/h5diff_51.txt
index cf20b90..e6402cc 100644
--- a/tools/testfiles/h5diff_51.txt
+++ b/tools/h5diff/testfiles/h5diff_51.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -v h5diff_dtypes.h5 h5diff_dtypes.h5 dset1a dset1b'
-#############################
dataset: </dset1a> and </dset1b>
size: [3x2] [3x2]
position dset1a dset1b difference
diff --git a/tools/testfiles/h5diff_52.txt b/tools/h5diff/testfiles/h5diff_52.txt
index 86e9463..88febb9 100644
--- a/tools/testfiles/h5diff_52.txt
+++ b/tools/h5diff/testfiles/h5diff_52.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -v h5diff_dtypes.h5 h5diff_dtypes.h5 dset2a dset2b'
-#############################
dataset: </dset2a> and </dset2b>
size: [3x2] [3x2]
position dset2a dset2b difference
diff --git a/tools/testfiles/h5diff_53.txt b/tools/h5diff/testfiles/h5diff_53.txt
index 2763fb3..554d71a 100644
--- a/tools/testfiles/h5diff_53.txt
+++ b/tools/h5diff/testfiles/h5diff_53.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -v h5diff_dtypes.h5 h5diff_dtypes.h5 dset3a dset4b'
-#############################
dataset: </dset3a> and </dset4b>
size: [3x2] [3x2]
position dset3a dset4b difference
diff --git a/tools/testfiles/h5diff_54.txt b/tools/h5diff/testfiles/h5diff_54.txt
index 4c139de..1e8adfd 100644
--- a/tools/testfiles/h5diff_54.txt
+++ b/tools/h5diff/testfiles/h5diff_54.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -v h5diff_dtypes.h5 h5diff_dtypes.h5 dset4a dset4b'
-#############################
dataset: </dset4a> and </dset4b>
size: [3x2] [3x2]
position dset4a dset4b difference
diff --git a/tools/testfiles/h5diff_55.txt b/tools/h5diff/testfiles/h5diff_55.txt
index 2a1d496..f895955 100644
--- a/tools/testfiles/h5diff_55.txt
+++ b/tools/h5diff/testfiles/h5diff_55.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -v h5diff_dtypes.h5 h5diff_dtypes.h5 dset5a dset5b'
-#############################
dataset: </dset5a> and </dset5b>
size: [3x2] [3x2]
position dset5a dset5b difference
diff --git a/tools/testfiles/h5diff_56.txt b/tools/h5diff/testfiles/h5diff_56.txt
index 245d1a0..402db43 100644
--- a/tools/testfiles/h5diff_56.txt
+++ b/tools/h5diff/testfiles/h5diff_56.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -v h5diff_dtypes.h5 h5diff_dtypes.h5 dset6a dset6b'
-#############################
dataset: </dset6a> and </dset6b>
size: [3x2] [3x2]
position dset6a dset6b difference
diff --git a/tools/testfiles/h5diff_57.txt b/tools/h5diff/testfiles/h5diff_57.txt
index 2b22995..590d355 100644
--- a/tools/testfiles/h5diff_57.txt
+++ b/tools/h5diff/testfiles/h5diff_57.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -v h5diff_dtypes.h5 h5diff_dtypes.h5 dset7a dset7b'
-#############################
dataset: </dset7a> and </dset7b>
Warning: different storage datatype
</dset7a> has file datatype H5T_STD_I8LE
diff --git a/tools/testfiles/h5diff_58.txt b/tools/h5diff/testfiles/h5diff_58.txt
index b582c88..1ea2493 100644
--- a/tools/testfiles/h5diff_58.txt
+++ b/tools/h5diff/testfiles/h5diff_58.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -v h5diff_dset1.h5 h5diff_dset2.h5 refreg'
-#############################
dataset: </refreg> and </refreg>
Referenced dataset 10272 10272
------------------------------------------------------------
diff --git a/tools/testfiles/h5diff_600.txt b/tools/h5diff/testfiles/h5diff_600.txt
index 56cc052..82b69d9 100644
--- a/tools/testfiles/h5diff_600.txt
+++ b/tools/h5diff/testfiles/h5diff_600.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff h5diff_basic1.h5'
-#############################
usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
file1 File name of the first HDF5 file
file2 File name of the second HDF5 file
diff --git a/tools/testfiles/h5diff_603.txt b/tools/h5diff/testfiles/h5diff_603.txt
index 352e75e..9ddf674 100644
--- a/tools/testfiles/h5diff_603.txt
+++ b/tools/h5diff/testfiles/h5diff_603.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -d -4 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
<-d -4> is not a valid option
usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
file1 File name of the first HDF5 file
diff --git a/tools/testfiles/h5diff_604.txt b/tools/h5diff/testfiles/h5diff_604.txt
index dde3f37..763999d 100644
--- a/tools/testfiles/h5diff_604.txt
+++ b/tools/h5diff/testfiles/h5diff_604.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -d 0 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
<-d 0> is not a valid option
usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
file1 File name of the first HDF5 file
diff --git a/tools/testfiles/h5diff_605.txt b/tools/h5diff/testfiles/h5diff_605.txt
index 8047b46..e00bf5b 100644
--- a/tools/testfiles/h5diff_605.txt
+++ b/tools/h5diff/testfiles/h5diff_605.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -d u h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
<-d u> is not a valid option
usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
file1 File name of the first HDF5 file
diff --git a/tools/testfiles/h5diff_606.txt b/tools/h5diff/testfiles/h5diff_606.txt
index d1d83a1..3d77495 100644
--- a/tools/testfiles/h5diff_606.txt
+++ b/tools/h5diff/testfiles/h5diff_606.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -d 0x1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
<-d 0x1> is not a valid option
usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
file1 File name of the first HDF5 file
diff --git a/tools/h5diff/testfiles/h5diff_607.txt b/tools/h5diff/testfiles/h5diff_607.txt
new file mode 100644
index 0000000..554f2ed
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_607.txt
@@ -0,0 +1,2 @@
+dataset: </g1/dset3> and </g1/dset4>
+6 differences found
diff --git a/tools/h5diff/testfiles/h5diff_608.txt b/tools/h5diff/testfiles/h5diff_608.txt
new file mode 100644
index 0000000..554f2ed
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_608.txt
@@ -0,0 +1,2 @@
+dataset: </g1/dset3> and </g1/dset4>
+6 differences found
diff --git a/tools/h5diff/testfiles/h5diff_609.txt b/tools/h5diff/testfiles/h5diff_609.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_609.txt
diff --git a/tools/h5diff/testfiles/h5diff_610.txt b/tools/h5diff/testfiles/h5diff_610.txt
new file mode 100644
index 0000000..554f2ed
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_610.txt
@@ -0,0 +1,2 @@
+dataset: </g1/dset3> and </g1/dset4>
+6 differences found
diff --git a/tools/testfiles/h5diff_612.txt b/tools/h5diff/testfiles/h5diff_612.txt
index 2aa4804..8f665b8 100644
--- a/tools/testfiles/h5diff_612.txt
+++ b/tools/h5diff/testfiles/h5diff_612.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -p -4 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
<-p -4> is not a valid option
usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
file1 File name of the first HDF5 file
diff --git a/tools/testfiles/h5diff_613.txt b/tools/h5diff/testfiles/h5diff_613.txt
index dff7f7c..f3f16fd 100644
--- a/tools/testfiles/h5diff_613.txt
+++ b/tools/h5diff/testfiles/h5diff_613.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -p 0 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
<-p 0> is not a valid option
usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
file1 File name of the first HDF5 file
diff --git a/tools/testfiles/h5diff_614.txt b/tools/h5diff/testfiles/h5diff_614.txt
index 6090f4a..c78fc8c 100644
--- a/tools/testfiles/h5diff_614.txt
+++ b/tools/h5diff/testfiles/h5diff_614.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -p u h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
<-p u> is not a valid option
usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
file1 File name of the first HDF5 file
diff --git a/tools/testfiles/h5diff_615.txt b/tools/h5diff/testfiles/h5diff_615.txt
index fe7f9a4..d25b847 100644
--- a/tools/testfiles/h5diff_615.txt
+++ b/tools/h5diff/testfiles/h5diff_615.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -p 0x1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
<-p 0x1> is not a valid option
usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
file1 File name of the first HDF5 file
diff --git a/tools/h5diff/testfiles/h5diff_616.txt b/tools/h5diff/testfiles/h5diff_616.txt
new file mode 100644
index 0000000..47a1364
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_616.txt
@@ -0,0 +1,2 @@
+dataset: </g1/dset3> and </g1/dset4>
+2 differences found
diff --git a/tools/h5diff/testfiles/h5diff_617.txt b/tools/h5diff/testfiles/h5diff_617.txt
new file mode 100644
index 0000000..47a1364
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_617.txt
@@ -0,0 +1,2 @@
+dataset: </g1/dset3> and </g1/dset4>
+2 differences found
diff --git a/tools/h5diff/testfiles/h5diff_618.txt b/tools/h5diff/testfiles/h5diff_618.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_618.txt
diff --git a/tools/h5diff/testfiles/h5diff_619.txt b/tools/h5diff/testfiles/h5diff_619.txt
new file mode 100644
index 0000000..554f2ed
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_619.txt
@@ -0,0 +1,2 @@
+dataset: </g1/dset3> and </g1/dset4>
+6 differences found
diff --git a/tools/testfiles/h5diff_621.txt b/tools/h5diff/testfiles/h5diff_621.txt
index e27b486..21dac0b 100644
--- a/tools/testfiles/h5diff_621.txt
+++ b/tools/h5diff/testfiles/h5diff_621.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -n -4 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
<-n -4> is not a valid option
usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
file1 File name of the first HDF5 file
diff --git a/tools/testfiles/h5diff_622.txt b/tools/h5diff/testfiles/h5diff_622.txt
index 4b6c1a1..c46356a 100644
--- a/tools/testfiles/h5diff_622.txt
+++ b/tools/h5diff/testfiles/h5diff_622.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -n 0 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
<-n 0> is not a valid option
usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
file1 File name of the first HDF5 file
diff --git a/tools/testfiles/h5diff_623.txt b/tools/h5diff/testfiles/h5diff_623.txt
index f4edf37..7ae15e8 100644
--- a/tools/testfiles/h5diff_623.txt
+++ b/tools/h5diff/testfiles/h5diff_623.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -n u h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
<-n u> is not a valid option
usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
file1 File name of the first HDF5 file
diff --git a/tools/testfiles/h5diff_624.txt b/tools/h5diff/testfiles/h5diff_624.txt
index babc43f..caf4e62 100644
--- a/tools/testfiles/h5diff_624.txt
+++ b/tools/h5diff/testfiles/h5diff_624.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -n 0x1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
<-n 0x1> is not a valid option
usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
file1 File name of the first HDF5 file
diff --git a/tools/h5diff/testfiles/h5diff_625.txt b/tools/h5diff/testfiles/h5diff_625.txt
new file mode 100644
index 0000000..47a1364
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_625.txt
@@ -0,0 +1,2 @@
+dataset: </g1/dset3> and </g1/dset4>
+2 differences found
diff --git a/tools/h5diff/testfiles/h5diff_626.txt b/tools/h5diff/testfiles/h5diff_626.txt
new file mode 100644
index 0000000..be392ae
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_626.txt
@@ -0,0 +1,2 @@
+dataset: </g1/dset3> and </g1/dset4>
+3 differences found
diff --git a/tools/h5diff/testfiles/h5diff_627.txt b/tools/h5diff/testfiles/h5diff_627.txt
new file mode 100644
index 0000000..554f2ed
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_627.txt
@@ -0,0 +1,2 @@
+dataset: </g1/dset3> and </g1/dset4>
+6 differences found
diff --git a/tools/h5diff/testfiles/h5diff_628.txt b/tools/h5diff/testfiles/h5diff_628.txt
new file mode 100644
index 0000000..74decda
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_628.txt
@@ -0,0 +1,2 @@
+dataset: </g1/dset3> and </g1/dset4>
+1 differences found
diff --git a/tools/h5diff/testfiles/h5diff_629.txt b/tools/h5diff/testfiles/h5diff_629.txt
new file mode 100644
index 0000000..4e67f57
--- /dev/null
+++ b/tools/h5diff/testfiles/h5diff_629.txt
@@ -0,0 +1 @@
+h5diff: <file1.h6>: unable to open file
diff --git a/tools/testfiles/h5diff_70.txt b/tools/h5diff/testfiles/h5diff_70.txt
index bc9efbe..7871f8c 100644
--- a/tools/testfiles/h5diff_70.txt
+++ b/tools/h5diff/testfiles/h5diff_70.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -v h5diff_attr1.h5 h5diff_attr2.h5'
-#############################
file1 file2
---------------------------------------
diff --git a/tools/testfiles/h5diff_80.txt b/tools/h5diff/testfiles/h5diff_80.txt
index 9c0bd33..127ddb2 100644
--- a/tools/testfiles/h5diff_80.txt
+++ b/tools/h5diff/testfiles/h5diff_80.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -v h5diff_dset1.h5 h5diff_dset2.h5'
-#############################
file1 file2
---------------------------------------
diff --git a/tools/testfiles/h5diff_90.txt b/tools/h5diff/testfiles/h5diff_90.txt
index 4df38c0..7007d88 100644
--- a/tools/testfiles/h5diff_90.txt
+++ b/tools/h5diff/testfiles/h5diff_90.txt
@@ -1,6 +1,3 @@
-#############################
-Expected output for 'h5diff -v h5diff_basic2.h5 h5diff_basic2.h5'
-#############################
file1 file2
---------------------------------------
diff --git a/tools/testfiles/h5diff_attr1.h5 b/tools/h5diff/testfiles/h5diff_attr1.h5
index c44066b..c44066b 100644
--- a/tools/testfiles/h5diff_attr1.h5
+++ b/tools/h5diff/testfiles/h5diff_attr1.h5
Binary files differ
diff --git a/tools/testfiles/h5diff_attr2.h5 b/tools/h5diff/testfiles/h5diff_attr2.h5
index 5de3303..5de3303 100644
--- a/tools/testfiles/h5diff_attr2.h5
+++ b/tools/h5diff/testfiles/h5diff_attr2.h5
Binary files differ
diff --git a/tools/testfiles/h5diff_basic1.h5 b/tools/h5diff/testfiles/h5diff_basic1.h5
index 389e2b3..389e2b3 100644
--- a/tools/testfiles/h5diff_basic1.h5
+++ b/tools/h5diff/testfiles/h5diff_basic1.h5
Binary files differ
diff --git a/tools/testfiles/h5diff_basic2.h5 b/tools/h5diff/testfiles/h5diff_basic2.h5
index ad45cc0..ad45cc0 100644
--- a/tools/testfiles/h5diff_basic2.h5
+++ b/tools/h5diff/testfiles/h5diff_basic2.h5
Binary files differ
diff --git a/tools/testfiles/h5diff_dset1.h5 b/tools/h5diff/testfiles/h5diff_dset1.h5
index ab6b96f..ab6b96f 100644
--- a/tools/testfiles/h5diff_dset1.h5
+++ b/tools/h5diff/testfiles/h5diff_dset1.h5
Binary files differ
diff --git a/tools/testfiles/h5diff_dset2.h5 b/tools/h5diff/testfiles/h5diff_dset2.h5
index 3db0c8e..3db0c8e 100644
--- a/tools/testfiles/h5diff_dset2.h5
+++ b/tools/h5diff/testfiles/h5diff_dset2.h5
Binary files differ
diff --git a/tools/testfiles/h5diff_dtypes.h5 b/tools/h5diff/testfiles/h5diff_dtypes.h5
index 7c3cd9d..7c3cd9d 100644
--- a/tools/testfiles/h5diff_dtypes.h5
+++ b/tools/h5diff/testfiles/h5diff_dtypes.h5
Binary files differ
diff --git a/tools/testfiles/h5diff_empty.h5 b/tools/h5diff/testfiles/h5diff_empty.h5
index 3f0d1df..3f0d1df 100644
--- a/tools/testfiles/h5diff_empty.h5
+++ b/tools/h5diff/testfiles/h5diff_empty.h5
Binary files differ
diff --git a/tools/testfiles/h5diff_hyper1.h5 b/tools/h5diff/testfiles/h5diff_hyper1.h5
index ceeff80..ceeff80 100644
--- a/tools/testfiles/h5diff_hyper1.h5
+++ b/tools/h5diff/testfiles/h5diff_hyper1.h5
Binary files differ
diff --git a/tools/testfiles/h5diff_hyper2.h5 b/tools/h5diff/testfiles/h5diff_hyper2.h5
index 05a2eb1..05a2eb1 100644
--- a/tools/testfiles/h5diff_hyper2.h5
+++ b/tools/h5diff/testfiles/h5diff_hyper2.h5
Binary files differ
diff --git a/tools/testfiles/h5diff_types.h5 b/tools/h5diff/testfiles/h5diff_types.h5
index c835069..c835069 100644
--- a/tools/testfiles/h5diff_types.h5
+++ b/tools/h5diff/testfiles/h5diff_types.h5
Binary files differ
diff --git a/tools/h5diff/testh5diff.sh b/tools/h5diff/testh5diff.sh
index 6685a66..a2a9ecc 100755
--- a/tools/h5diff/testh5diff.sh
+++ b/tools/h5diff/testh5diff.sh
@@ -29,16 +29,29 @@
## test file names
###############################################################################
-FILE1=h5diff_basic1.h5
-FILE2=h5diff_basic2.h5
-FILE3=h5diff_types.h5
-FILE4=h5diff_dtypes.h5
-FILE5=h5diff_attr1.h5
-FILE6=h5diff_attr2.h5
-FILE7=h5diff_dset1.h5
-FILE8=h5diff_dset2.h5
-FILE9=h5diff_hyper1.h5
-FILE10=h5diff_hyper2.h5
+INDIR=$srcdir/testfiles
+
+SRCFILE1=h5diff_basic1.h5
+SRCFILE2=h5diff_basic2.h5
+SRCFILE3=h5diff_types.h5
+SRCFILE4=h5diff_dtypes.h5
+SRCFILE5=h5diff_attr1.h5
+SRCFILE6=h5diff_attr2.h5
+SRCFILE7=h5diff_dset1.h5
+SRCFILE8=h5diff_dset2.h5
+SRCFILE9=h5diff_hyper1.h5
+SRCFILE10=h5diff_hyper2.h5
+
+FILE1="$INDIR/$SRCFILE1"
+FILE2="$INDIR/$SRCFILE2"
+FILE3="$INDIR/$SRCFILE3"
+FILE4="$INDIR/$SRCFILE4"
+FILE5="$INDIR/$SRCFILE5"
+FILE6="$INDIR/$SRCFILE6"
+FILE7="$INDIR/$SRCFILE7"
+FILE8="$INDIR/$SRCFILE8"
+FILE9="$INDIR/$SRCFILE9"
+FILE10="$INDIR/$SRCFILE10"
H5DIFF=h5diff # The tool name
@@ -56,7 +69,7 @@ if test -z "$srcdir"; then
srcdir=.
fi
-test -d ../testfiles || mkdir ../testfiles
+test -d ./testfiles || mkdir ./testfiles
# Parse option
# -p run ph5diff tests
@@ -171,9 +184,9 @@ STDERR_FILTER() {
# that throws the shell script off.
#
TOOLTEST() {
- expect="$srcdir/../testfiles/$1"
- actual="../testfiles/`basename $1 .txt`.out"
- actual_err="../testfiles/`basename $1 .txt`.err"
+ expect="$srcdir/testfiles/$1"
+ actual="./testfiles/`basename $1 .txt`.out"
+ actual_err="./testfiles/`basename $1 .txt`.err"
actual_sav=${actual}-sav
actual_err_sav=${actual_err}-sav
shift
@@ -186,12 +199,12 @@ TOOLTEST() {
# Run test.
# Tflops interprets "$@" as "" when no parameter is given (e.g., the
# case of missing file name). Changed it to use $@ till Tflops fixes it.
- TESTING $H5DIFF $@
+ #TESTING $H5DIFF $@
(
- echo "#############################"
- echo "Expected output for '$H5DIFF $@'"
- echo "#############################"
- cd $srcdir/../testfiles
+ #echo "#############################"
+ #echo "Expected output for '$H5DIFF $@'"
+ #echo "#############################"
+ #cd $srcdir/testfiles
if [ "`uname -s`" = "TFLOPS O/S" ]; then
eval $RUNCMD $H5DIFF_BIN $@
else
@@ -258,9 +271,11 @@ SKIP() {
##############################################################################
-##############################################################################
-### T H E T E S T S ###
-##############################################################################
+# The tests
+# To avoid the printing of the complete full path of the test file, that hides
+# all the other parameters for long paths, the printing of the command line
+# is done first in
+# TESTING with the name only of the test file $TOOL, not its full path $TESTFILE
##############################################################################
# ############################################################################
@@ -269,36 +284,47 @@ SKIP() {
# 1.0
+TESTING $H5DIFF -h
TOOLTEST h5diff_10.txt -h
# 1.1 normal mode
+TESTING $H5DIFF $SRCFILE1 $SRCFILE2
TOOLTEST h5diff_11.txt $FILE1 $FILE2
# 1.2 normal mode with objects
+TESTING $H5DIFF $SRCFILE1 $SRCFILE2 g1/dset1 g1/dset2
TOOLTEST h5diff_12.txt $FILE1 $FILE2 g1/dset1 g1/dset2
# 1.3 report mode
+TESTING $H5DIFF -r $SRCFILE1 $SRCFILE2
TOOLTEST h5diff_13.txt -r $FILE1 $FILE2
# 1.4 report mode with objects
+TESTING $H5DIFF -r $SRCFILE1 $SRCFILE2 g1/dset1 g1/dset2
TOOLTEST h5diff_14.txt -r $FILE1 $FILE2 g1/dset1 g1/dset2
# 1.5 with -d
+TESTING $H5DIFF --report --delta=5 $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_15.txt --report --delta=5 $FILE1 $FILE2 g1/dset3 g1/dset4
# 1.6.1 with -p (int)
+TESTING $H5DIFF -v -p 0.02 $SRCFILE1 $SRCFILE1 g1/dset5 g1/dset6
TOOLTEST h5diff_16_1.txt -v -p 0.02 $FILE1 $FILE1 g1/dset5 g1/dset6
# 1.6.2 with -p (unsigned long_long)
+TESTING $H5DIFF --verbose --relative=0.02 $SRCFILE1 $SRCFILE1 g1/dset7 g1/dset8
TOOLTEST h5diff_16_2.txt --verbose --relative=0.02 $FILE1 $FILE1 g1/dset7 g1/dset8
# 1.6.3 with -p (double)
+TESTING $H5DIFF -v -p 0.02 $SRCFILE1 $SRCFILE1 g1/dset9 g1/dset10
TOOLTEST h5diff_16_3.txt -v -p 0.02 $FILE1 $FILE1 g1/dset9 g1/dset10
# 1.7 verbose mode
+TESTING $H5DIFF -v $SRCFILE1 $SRCFILE2
TOOLTEST h5diff_17.txt -v $FILE1 $FILE2
# 1.8 quiet mode
+TESTING $H5DIFF -q $SRCFILE1 $SRCFILE2
TOOLTEST h5diff_18.txt -q $FILE1 $FILE2
# ##############################################################################
@@ -306,12 +332,15 @@ TOOLTEST h5diff_18.txt -q $FILE1 $FILE2
# ##############################################################################
# 2.0
+TESTING $H5DIFF -v $SRCFILE3 $SRCFILE3 dset g1
TOOLTEST h5diff_20.txt -v $FILE3 $FILE3 dset g1
# 2.1
+TESTING $H5DIFF -v $SRCFILE3 $SRCFILE3 dset l1
TOOLTEST h5diff_21.txt -v $FILE3 $FILE3 dset l1
# 2.2
+TESTING $H5DIFF -v $SRCFILE3 $SRCFILE3 dset t1
TOOLTEST h5diff_22.txt -v $FILE3 $FILE3 dset t1
# ##############################################################################
@@ -319,21 +348,27 @@ TOOLTEST h5diff_22.txt -v $FILE3 $FILE3 dset t1
# ##############################################################################
# 2.3
+TESTING $H5DIFF -v $SRCFILE3 $SRCFILE3 g1 g1
TOOLTEST h5diff_23.txt -v $FILE3 $FILE3 g1 g1
# 2.4
+TESTING $H5DIFF -v $SRCFILE3 $SRCFILE3 t1 t1
TOOLTEST h5diff_24.txt -v $FILE3 $FILE3 t1 t1
# 2.5
+TESTING $H5DIFF -v $SRCFILE3 $SRCFILE3 l1 l1
TOOLTEST h5diff_25.txt -v $FILE3 $FILE3 l1 l1
# 2.6
+TESTING $H5DIFF -v $SRCFILE3 $SRCFILE3 g1 g2
TOOLTEST h5diff_26.txt -v $FILE3 $FILE3 g1 g2
# 2.7
+TESTING $H5DIFF -v $SRCFILE3 $SRCFILE3 t1 t2
TOOLTEST h5diff_27.txt -v $FILE3 $FILE3 t1 t2
# 2.8
+TESTING $H5DIFF -v $SRCFILE3 $SRCFILE3 l1 l2
TOOLTEST h5diff_28.txt -v $FILE3 $FILE3 l1 l2
@@ -343,30 +378,39 @@ TOOLTEST h5diff_28.txt -v $FILE3 $FILE3 l1 l2
# ##############################################################################
# 5.0
+TESTING $H5DIFF -v $SRCFILE4 $SRCFILE4 dset0a dset0b
TOOLTEST h5diff_50.txt -v $FILE4 $FILE4 dset0a dset0b
# 5.1
+TESTING $H5DIFF -v $SRCFILE4 $SRCFILE4 dset1a dset1b
TOOLTEST h5diff_51.txt -v $FILE4 $FILE4 dset1a dset1b
# 5.2
+TESTING $H5DIFF -v $SRCFILE4 $SRCFILE4 dset2a dset2b
TOOLTEST h5diff_52.txt -v $FILE4 $FILE4 dset2a dset2b
# 5.3
+TESTING $H5DIFF -v $SRCFILE4 $SRCFILE4 dset3a dset4b
TOOLTEST h5diff_53.txt -v $FILE4 $FILE4 dset3a dset4b
# 5.4
+TESTING $H5DIFF -v $SRCFILE4 $SRCFILE4 dset4a dset4b
TOOLTEST h5diff_54.txt -v $FILE4 $FILE4 dset4a dset4b
# 5.5
+TESTING $H5DIFF -v $SRCFILE4 $SRCFILE4 dset5a dset5b
TOOLTEST h5diff_55.txt -v $FILE4 $FILE4 dset5a dset5b
# 5.6
+TESTING $H5DIFF -v $SRCFILE4 $SRCFILE4 dset6a dset6b
TOOLTEST h5diff_56.txt -v $FILE4 $FILE4 dset6a dset6b
# 5.7
+TESTING $H5DIFF -v $SRCFILE4 $SRCFILE4 dset7a dset7b
TOOLTEST h5diff_57.txt -v $FILE4 $FILE4 dset7a dset7b
# 5.8 (region reference)
+TESTING $H5DIFF -v $SRCFILE7 $SRCFILE8 refreg
TOOLTEST h5diff_58.txt -v $FILE7 $FILE8 refreg
# ##############################################################################
@@ -375,40 +419,45 @@ TOOLTEST h5diff_58.txt -v $FILE7 $FILE8 refreg
# 6.0: Check if the command line number of arguments is less than 3
+TESTING $H5DIFF $SRCFILE1
TOOLTEST h5diff_600.txt $FILE1
-# 6.1: Check for invalid options
-#TOOLTEST h5diff_601.txt -x $FILE1 $FILE2
# ##############################################################################
# # -d
# ##############################################################################
-# 6.2: no value
-TOOLTEST h5diff_602.txt -d $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.3: negative value
+TESTING $H5DIFF -d -4 $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_603.txt -d -4 $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.4: zero
+TESTING $H5DIFF -d 0 $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_604.txt -d 0 $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.5: non number
+TESTING $H5DIFF -d u $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_605.txt -d u $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.6: hexadecimal
+TESTING $H5DIFF -d 0x1 $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_606.txt -d 0x1 $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.7: string
+TESTING $H5DIFF -d "1" $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_607.txt -d "1" $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.8: repeated option
+TESTING $H5DIFF -d 1 -d 2 $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_608.txt -d 1 -d 2 $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.9: number larger than biggest difference
+TESTING $H5DIFF -d 200 $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_609.txt -d 200 $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.10: number smaller than smallest difference
+TESTING $H5DIFF -d 1 $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_610.txt -d 1 $FILE1 $FILE2 g1/dset3 g1/dset4
@@ -417,31 +466,36 @@ TOOLTEST h5diff_610.txt -d 1 $FILE1 $FILE2 g1/dset3 g1/dset4
# ##############################################################################
-# 6.11: no value
-TOOLTEST h5diff_611.txt -r -p $FILE1 $FILE2 g1/dset3 g1/dset4
-
# 6.12: negative value
+TESTING $H5DIFF -p -4 $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_612.txt -p -4 $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.13: zero
+TESTING $H5DIFF -p 0 $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_613.txt -p 0 $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.14: non number
+TESTING $H5DIFF -p u $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_614.txt -p u $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.15: hexadecimal
+TESTING $H5DIFF -p 0x1 $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_615.txt -p 0x1 $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.16: string
+TESTING $H5DIFF -p "0.21" $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_616.txt -p "0.21" $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.17: repeated option
+TESTING $H5DIFF -p 0.21 -p 0.22 $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_617.txt -p 0.21 -p 0.22 $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.18: number larger than biggest difference
+TESTING $H5DIFF -p 2 $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_618.txt -p 2 $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.19: number smaller than smallest difference
+TESTING $H5DIFF -p 0.005 $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_619.txt -p 0.005 $FILE1 $FILE2 g1/dset3 g1/dset4
@@ -450,55 +504,67 @@ TOOLTEST h5diff_619.txt -p 0.005 $FILE1 $FILE2 g1/dset3 g1/dset4
# # -n
# ##############################################################################
-
-# 6.20: no value
-TOOLTEST h5diff_620.txt -n $FILE1 $FILE2 g1/dset3 g1/dset4
-
# 6.21: negative value
+TESTING $H5DIFF -n -4 $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_621.txt -n -4 $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.22: zero
+TESTING $H5DIFF -n 0 $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_622.txt -n 0 $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.23: non number
+TESTING $H5DIFF -n u $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_623.txt -n u $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.24: hexadecimal
+TESTING $H5DIFF -n 0x1 $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_624.txt -n 0x1 $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.25: string
+TESTING $H5DIFF -n "2" $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_625.txt -n "2" $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.26: repeated option
+TESTING $H5DIFF -n 2 -n 3 $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_626.txt -n 2 -n 3 $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.27: number larger than biggest difference
+TESTING $H5DIFF --count=200 $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_627.txt --count=200 $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.28: number smaller than smallest difference
+TESTING $H5DIFF -n 1 $SRCFILE1 $SRCFILE2 g1/dset3 g1/dset4
TOOLTEST h5diff_628.txt -n 1 $FILE1 $FILE2 g1/dset3 g1/dset4
# 6.29 non valid files
+TESTING $H5DIFF file1.h6 file2.h6
TOOLTEST h5diff_629.txt file1.h6 file2.h6
# ##############################################################################
# 7. attributes
# ##############################################################################
+TESTING $H5DIFF -v $SRCFILE5 $SRCFILE6
TOOLTEST h5diff_70.txt -v $FILE5 $FILE6
# ##############################################################################
# 8. all dataset datatypes
# ##############################################################################
+TESTING $H5DIFF -v $SRCFILE7 $SRCFILE8
TOOLTEST h5diff_80.txt -v $FILE7 $FILE8
# 9. compare a file with itself
+TESTING $H5DIFF -v $SRCFILE2 $SRCFILE2
TOOLTEST h5diff_90.txt -v $FILE2 $FILE2
# 10. read by hyperslab, print indexes
+TESTING $H5DIFF -v $SRCFILE9 $SRCFILE10
TOOLTEST h5diff_100.txt -v $FILE9 $FILE10
# 11. floating point comparison
-TOOLTEST h5diff_101.txt -v $FILE1 $FILE1 g1/d1 g1/d2
+TESTING $H5DIFF -v $SRCFILE1 $SRCFILE1 g1/d1 g1/d2
+TOOLTEST h5diff_101.txt -v $FILE1 $FILE1 g1/d1 g1/d2
+
+TESTING $H5DIFF -v $SRCFILE1 $SRCFILE1 g1/fp1 g1/fp2
TOOLTEST h5diff_102.txt -v $FILE1 $FILE1 g1/fp1 g1/fp2
# ##############################################################################
diff --git a/tools/h5repack/h5repack.sh.in b/tools/h5repack/h5repack.sh.in
index 77be575..334b384 100755
--- a/tools/h5repack/h5repack.sh.in
+++ b/tools/h5repack/h5repack.sh.in
@@ -33,10 +33,10 @@ H5REPACK_BIN=`pwd`/$H5REPACK # The path of the tool binary
H5DIFF=../h5diff/h5diff # The h5diff tool name
H5DIFF_BIN=`pwd`/$H5DIFF # The path of the h5diff tool binary
-H5DETECTSZIP=testh5repack_detect_szip # The tool name
-H5DETECTSZIP_BIN=`pwd`/$H5DETECTSZIP # The path of the tool binary
+H5DETECTSZIP=testh5repack_detect_szip
+H5DETECTSZIP_BIN=`pwd`/$H5DETECTSZIP
-INFO_FILE=../testfiles/info.h5repack
+INFO_FILE=testfiles/h5repack.info
FILE0=h5repack_fill.h5
FILE1=h5repack_objs.h5
@@ -62,7 +62,7 @@ if test -z "$srcdir"; then
srcdir=.
fi
-test -d ../testfiles || mkdir ../testfiles
+
# Print a line-line message left justified in a field of 70 characters
# beginning with the word "Testing".
@@ -116,7 +116,7 @@ TOOLTEST()
# case of missing file name). Changed it to use $@ till Tflops fixes it.
TESTING $H5REPACK $@
- infile=$srcdir/../testfiles/$1
+ infile=$srcdir/testfiles/$1
path=`pwd`
outfile=$path/out.$1
shift
@@ -144,7 +144,7 @@ TOOLTEST0()
# case of missing file name). Changed it to use $@ till Tflops fixes it.
TESTING $H5REPACK $@
- infile=$srcdir/../testfiles/$1
+ infile=$srcdir/testfiles/$1
path=`pwd`
outfile=$path/out.$1
shift
diff --git a/tools/testfiles/info.h5repack b/tools/h5repack/testfiles/h5repack.info
index 216948d..216948d 100644
--- a/tools/testfiles/info.h5repack
+++ b/tools/h5repack/testfiles/h5repack.info
diff --git a/tools/testfiles/h5repack_attr.h5 b/tools/h5repack/testfiles/h5repack_attr.h5
index 70ad02d..70ad02d 100644
--- a/tools/testfiles/h5repack_attr.h5
+++ b/tools/h5repack/testfiles/h5repack_attr.h5
Binary files differ
diff --git a/tools/testfiles/h5repack_deflate.h5 b/tools/h5repack/testfiles/h5repack_deflate.h5
index 3a4b86d..3a4b86d 100644
--- a/tools/testfiles/h5repack_deflate.h5
+++ b/tools/h5repack/testfiles/h5repack_deflate.h5
Binary files differ
diff --git a/tools/testfiles/h5repack_early.h5 b/tools/h5repack/testfiles/h5repack_early.h5
index 9b92890..9b92890 100644
--- a/tools/testfiles/h5repack_early.h5
+++ b/tools/h5repack/testfiles/h5repack_early.h5
Binary files differ
diff --git a/tools/testfiles/h5repack_ext.bin b/tools/h5repack/testfiles/h5repack_ext.bin
index f858094..f858094 100644
--- a/tools/testfiles/h5repack_ext.bin
+++ b/tools/h5repack/testfiles/h5repack_ext.bin
Binary files differ
diff --git a/tools/testfiles/h5repack_ext.h5 b/tools/h5repack/testfiles/h5repack_ext.h5
index 1fe88c9..1fe88c9 100644
--- a/tools/testfiles/h5repack_ext.h5
+++ b/tools/h5repack/testfiles/h5repack_ext.h5
Binary files differ
diff --git a/tools/testfiles/h5repack_fill.h5 b/tools/h5repack/testfiles/h5repack_fill.h5
index 21516cb..21516cb 100644
--- a/tools/testfiles/h5repack_fill.h5
+++ b/tools/h5repack/testfiles/h5repack_fill.h5
Binary files differ
diff --git a/tools/testfiles/h5repack_filters.h5 b/tools/h5repack/testfiles/h5repack_filters.h5
index 042b8db..042b8db 100644
--- a/tools/testfiles/h5repack_filters.h5
+++ b/tools/h5repack/testfiles/h5repack_filters.h5
Binary files differ
diff --git a/tools/testfiles/h5repack_fletcher.h5 b/tools/h5repack/testfiles/h5repack_fletcher.h5
index 2f137b0..2f137b0 100644
--- a/tools/testfiles/h5repack_fletcher.h5
+++ b/tools/h5repack/testfiles/h5repack_fletcher.h5
Binary files differ
diff --git a/tools/testfiles/h5repack_hlink.h5 b/tools/h5repack/testfiles/h5repack_hlink.h5
index 3d22728..3d22728 100644
--- a/tools/testfiles/h5repack_hlink.h5
+++ b/tools/h5repack/testfiles/h5repack_hlink.h5
Binary files differ
diff --git a/tools/testfiles/h5repack_layout.h5 b/tools/h5repack/testfiles/h5repack_layout.h5
index 5772a31..5772a31 100644
--- a/tools/testfiles/h5repack_layout.h5
+++ b/tools/h5repack/testfiles/h5repack_layout.h5
Binary files differ
diff --git a/tools/testfiles/h5repack_nbit.h5 b/tools/h5repack/testfiles/h5repack_nbit.h5
index 3ada112..3ada112 100644
--- a/tools/testfiles/h5repack_nbit.h5
+++ b/tools/h5repack/testfiles/h5repack_nbit.h5
Binary files differ
diff --git a/tools/testfiles/h5repack_objs.h5 b/tools/h5repack/testfiles/h5repack_objs.h5
index 199adc5..199adc5 100644
--- a/tools/testfiles/h5repack_objs.h5
+++ b/tools/h5repack/testfiles/h5repack_objs.h5
Binary files differ
diff --git a/tools/testfiles/h5repack_shuffle.h5 b/tools/h5repack/testfiles/h5repack_shuffle.h5
index d13cca7..d13cca7 100644
--- a/tools/testfiles/h5repack_shuffle.h5
+++ b/tools/h5repack/testfiles/h5repack_shuffle.h5
Binary files differ
diff --git a/tools/testfiles/h5repack_soffset.h5 b/tools/h5repack/testfiles/h5repack_soffset.h5
index 89ee99a..89ee99a 100644
--- a/tools/testfiles/h5repack_soffset.h5
+++ b/tools/h5repack/testfiles/h5repack_soffset.h5
Binary files differ
diff --git a/tools/testfiles/h5repack_szip.h5 b/tools/h5repack/testfiles/h5repack_szip.h5
index b16d169..b16d169 100644
--- a/tools/testfiles/h5repack_szip.h5
+++ b/tools/h5repack/testfiles/h5repack_szip.h5
Binary files differ
diff --git a/tools/testfiles/h5diff_11.txt b/tools/testfiles/h5diff_11.txt
deleted file mode 100644
index 988afe8..0000000
--- a/tools/testfiles/h5diff_11.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-#############################
-Expected output for 'h5diff h5diff_basic1.h5 h5diff_basic2.h5'
-#############################
-dataset: </g1/dset1> and </g1/dset1>
-5 differences found
diff --git a/tools/testfiles/h5diff_12.txt b/tools/testfiles/h5diff_12.txt
deleted file mode 100644
index 666a91b..0000000
--- a/tools/testfiles/h5diff_12.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-#############################
-Expected output for 'h5diff h5diff_basic1.h5 h5diff_basic2.h5 g1/dset1 g1/dset2'
-#############################
-dataset: </g1/dset1> and </g1/dset2>
-5 differences found
diff --git a/tools/testfiles/h5diff_18.txt b/tools/testfiles/h5diff_18.txt
deleted file mode 100644
index 24c2e32..0000000
--- a/tools/testfiles/h5diff_18.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-#############################
-Expected output for 'h5diff -q h5diff_basic1.h5 h5diff_basic2.h5'
-#############################
diff --git a/tools/testfiles/h5diff_23.txt b/tools/testfiles/h5diff_23.txt
deleted file mode 100644
index 74c858a..0000000
--- a/tools/testfiles/h5diff_23.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-#############################
-Expected output for 'h5diff -v h5diff_types.h5 h5diff_types.h5 g1 g1'
-#############################
-group : </g1> and </g1>
-0 differences found
diff --git a/tools/testfiles/h5diff_24.txt b/tools/testfiles/h5diff_24.txt
deleted file mode 100644
index 75f2e6f..0000000
--- a/tools/testfiles/h5diff_24.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-#############################
-Expected output for 'h5diff -v h5diff_types.h5 h5diff_types.h5 t1 t1'
-#############################
-datatype: </t1> and </t1>
-0 differences found
diff --git a/tools/testfiles/h5diff_25.txt b/tools/testfiles/h5diff_25.txt
deleted file mode 100644
index 8801c31..0000000
--- a/tools/testfiles/h5diff_25.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-#############################
-Expected output for 'h5diff -v h5diff_types.h5 h5diff_types.h5 l1 l1'
-#############################
-link : </l1> and </l1>
-0 differences found
diff --git a/tools/testfiles/h5diff_26.txt b/tools/testfiles/h5diff_26.txt
deleted file mode 100644
index 24e1190..0000000
--- a/tools/testfiles/h5diff_26.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-#############################
-Expected output for 'h5diff -v h5diff_types.h5 h5diff_types.h5 g1 g2'
-#############################
-group : </g1> and </g2>
-1 differences found
diff --git a/tools/testfiles/h5diff_27.txt b/tools/testfiles/h5diff_27.txt
deleted file mode 100644
index f62e0e3..0000000
--- a/tools/testfiles/h5diff_27.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-#############################
-Expected output for 'h5diff -v h5diff_types.h5 h5diff_types.h5 t1 t2'
-#############################
-datatype: </t1> and </t2>
-1 differences found
diff --git a/tools/testfiles/h5diff_28.txt b/tools/testfiles/h5diff_28.txt
deleted file mode 100644
index 4222159..0000000
--- a/tools/testfiles/h5diff_28.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-#############################
-Expected output for 'h5diff -v h5diff_types.h5 h5diff_types.h5 l1 l2'
-#############################
-link : </l1> and </l2>
-1 differences found
diff --git a/tools/testfiles/h5diff_602.txt b/tools/testfiles/h5diff_602.txt
deleted file mode 100644
index cc522bd..0000000
--- a/tools/testfiles/h5diff_602.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-#############################
-Expected output for 'h5diff -d h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
-<-d h5diff_basic1.h5> is not a valid option
-usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
- file1 File name of the first HDF5 file
- file2 File name of the second HDF5 file
- [obj1] Name of an HDF5 object, in absolute path
- [obj2] Name of an HDF5 object, in absolute path
- OPTIONS
- -h, --help Print a usage message and exit
- -V, --version Print version number and exit
- -r, --report Report mode. Print differences
- -v, --verbose Verbose mode. Print differences, list of objects
- -q, --quiet Quiet mode. Do not do output
- -n C, --count=C Print differences up to C number
- -d D, --delta=D Print difference when greater than limit D
- -p R, --relative=R Print difference when greater than relative limit R
-
- C - is a positive integer
- D - is a positive number. Compare criteria is |a - b| > D
- R - is a positive number. Compare criteria is |(b-a)/a| > R
-
- Modes of output:
-
- Default mode: print the number of differences found and where they occured
- -r Report mode: print the above plus the differences
- -v Verbose mode: print the above plus a list of objects and warnings
- -q Quiet mode: do not print output
-
- Return exit code:
-
- 1 if differences found, 0 if no differences, -1 if error
-
- Examples of use:
-
- 1) h5diff file1 file2 /g1/dset1 /g1/dset2
-
- Compares object '/g1/dset1' in file1 with '/g1/dset2' in file2
-
- 2) h5diff file1 file2 /g1/dset1
-
- Compares object '/g1/dset1' in both files
-
- 3) h5diff file1 file2
-
- Compares all objects in both files
-
- Note) file1 and file2 can be the same file. Use
-
- h5diff file1 file1 /g1/dset1 /g1/dset2
-
- to compare '/g1/dset1' and '/g1/dset2' in the same file
-
- If no objects [obj1[obj2]] are specified, h5diff only compares objects
- with the same absolute path in both files. The compare criteria is:
- 1) datasets: numerical array differences 2) groups: name string difference
- 3) datatypes: the return value of H5Tequal 2) links: name string difference
- of the linked value
diff --git a/tools/testfiles/h5diff_607.txt b/tools/testfiles/h5diff_607.txt
deleted file mode 100644
index 1a7c257..0000000
--- a/tools/testfiles/h5diff_607.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-#############################
-Expected output for 'h5diff -d 1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
-dataset: </g1/dset3> and </g1/dset4>
-6 differences found
diff --git a/tools/testfiles/h5diff_608.txt b/tools/testfiles/h5diff_608.txt
deleted file mode 100644
index 49b490e..0000000
--- a/tools/testfiles/h5diff_608.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-#############################
-Expected output for 'h5diff -d 1 -d 2 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
-dataset: </g1/dset3> and </g1/dset4>
-6 differences found
diff --git a/tools/testfiles/h5diff_609.txt b/tools/testfiles/h5diff_609.txt
deleted file mode 100644
index 9a317f0..0000000
--- a/tools/testfiles/h5diff_609.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-#############################
-Expected output for 'h5diff -d 200 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
diff --git a/tools/testfiles/h5diff_610.txt b/tools/testfiles/h5diff_610.txt
deleted file mode 100644
index 1a7c257..0000000
--- a/tools/testfiles/h5diff_610.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-#############################
-Expected output for 'h5diff -d 1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
-dataset: </g1/dset3> and </g1/dset4>
-6 differences found
diff --git a/tools/testfiles/h5diff_611.txt b/tools/testfiles/h5diff_611.txt
deleted file mode 100644
index 0b148a0..0000000
--- a/tools/testfiles/h5diff_611.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-#############################
-Expected output for 'h5diff -r -p h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
-<-p h5diff_basic1.h5> is not a valid option
-usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
- file1 File name of the first HDF5 file
- file2 File name of the second HDF5 file
- [obj1] Name of an HDF5 object, in absolute path
- [obj2] Name of an HDF5 object, in absolute path
- OPTIONS
- -h, --help Print a usage message and exit
- -V, --version Print version number and exit
- -r, --report Report mode. Print differences
- -v, --verbose Verbose mode. Print differences, list of objects
- -q, --quiet Quiet mode. Do not do output
- -n C, --count=C Print differences up to C number
- -d D, --delta=D Print difference when greater than limit D
- -p R, --relative=R Print difference when greater than relative limit R
-
- C - is a positive integer
- D - is a positive number. Compare criteria is |a - b| > D
- R - is a positive number. Compare criteria is |(b-a)/a| > R
-
- Modes of output:
-
- Default mode: print the number of differences found and where they occured
- -r Report mode: print the above plus the differences
- -v Verbose mode: print the above plus a list of objects and warnings
- -q Quiet mode: do not print output
-
- Return exit code:
-
- 1 if differences found, 0 if no differences, -1 if error
-
- Examples of use:
-
- 1) h5diff file1 file2 /g1/dset1 /g1/dset2
-
- Compares object '/g1/dset1' in file1 with '/g1/dset2' in file2
-
- 2) h5diff file1 file2 /g1/dset1
-
- Compares object '/g1/dset1' in both files
-
- 3) h5diff file1 file2
-
- Compares all objects in both files
-
- Note) file1 and file2 can be the same file. Use
-
- h5diff file1 file1 /g1/dset1 /g1/dset2
-
- to compare '/g1/dset1' and '/g1/dset2' in the same file
-
- If no objects [obj1[obj2]] are specified, h5diff only compares objects
- with the same absolute path in both files. The compare criteria is:
- 1) datasets: numerical array differences 2) groups: name string difference
- 3) datatypes: the return value of H5Tequal 2) links: name string difference
- of the linked value
diff --git a/tools/testfiles/h5diff_616.txt b/tools/testfiles/h5diff_616.txt
deleted file mode 100644
index 164aa15..0000000
--- a/tools/testfiles/h5diff_616.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-#############################
-Expected output for 'h5diff -p 0.21 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
-dataset: </g1/dset3> and </g1/dset4>
-2 differences found
diff --git a/tools/testfiles/h5diff_617.txt b/tools/testfiles/h5diff_617.txt
deleted file mode 100644
index 3f0f078..0000000
--- a/tools/testfiles/h5diff_617.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-#############################
-Expected output for 'h5diff -p 0.21 -p 0.22 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
-dataset: </g1/dset3> and </g1/dset4>
-2 differences found
diff --git a/tools/testfiles/h5diff_618.txt b/tools/testfiles/h5diff_618.txt
deleted file mode 100644
index a1bb5a6..0000000
--- a/tools/testfiles/h5diff_618.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-#############################
-Expected output for 'h5diff -p 2 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
diff --git a/tools/testfiles/h5diff_619.txt b/tools/testfiles/h5diff_619.txt
deleted file mode 100644
index f676315..0000000
--- a/tools/testfiles/h5diff_619.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-#############################
-Expected output for 'h5diff -p 0.005 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
-dataset: </g1/dset3> and </g1/dset4>
-6 differences found
diff --git a/tools/testfiles/h5diff_620.txt b/tools/testfiles/h5diff_620.txt
deleted file mode 100644
index 9221c76..0000000
--- a/tools/testfiles/h5diff_620.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-#############################
-Expected output for 'h5diff -n h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
-<-n h5diff_basic1.h5> is not a valid option
-usage: h5diff [OPTIONS] file1 file2 [obj1[obj2]]
- file1 File name of the first HDF5 file
- file2 File name of the second HDF5 file
- [obj1] Name of an HDF5 object, in absolute path
- [obj2] Name of an HDF5 object, in absolute path
- OPTIONS
- -h, --help Print a usage message and exit
- -V, --version Print version number and exit
- -r, --report Report mode. Print differences
- -v, --verbose Verbose mode. Print differences, list of objects
- -q, --quiet Quiet mode. Do not do output
- -n C, --count=C Print differences up to C number
- -d D, --delta=D Print difference when greater than limit D
- -p R, --relative=R Print difference when greater than relative limit R
-
- C - is a positive integer
- D - is a positive number. Compare criteria is |a - b| > D
- R - is a positive number. Compare criteria is |(b-a)/a| > R
-
- Modes of output:
-
- Default mode: print the number of differences found and where they occured
- -r Report mode: print the above plus the differences
- -v Verbose mode: print the above plus a list of objects and warnings
- -q Quiet mode: do not print output
-
- Return exit code:
-
- 1 if differences found, 0 if no differences, -1 if error
-
- Examples of use:
-
- 1) h5diff file1 file2 /g1/dset1 /g1/dset2
-
- Compares object '/g1/dset1' in file1 with '/g1/dset2' in file2
-
- 2) h5diff file1 file2 /g1/dset1
-
- Compares object '/g1/dset1' in both files
-
- 3) h5diff file1 file2
-
- Compares all objects in both files
-
- Note) file1 and file2 can be the same file. Use
-
- h5diff file1 file1 /g1/dset1 /g1/dset2
-
- to compare '/g1/dset1' and '/g1/dset2' in the same file
-
- If no objects [obj1[obj2]] are specified, h5diff only compares objects
- with the same absolute path in both files. The compare criteria is:
- 1) datasets: numerical array differences 2) groups: name string difference
- 3) datatypes: the return value of H5Tequal 2) links: name string difference
- of the linked value
diff --git a/tools/testfiles/h5diff_625.txt b/tools/testfiles/h5diff_625.txt
deleted file mode 100644
index 2da804c..0000000
--- a/tools/testfiles/h5diff_625.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-#############################
-Expected output for 'h5diff -n 2 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
-dataset: </g1/dset3> and </g1/dset4>
-2 differences found
diff --git a/tools/testfiles/h5diff_626.txt b/tools/testfiles/h5diff_626.txt
deleted file mode 100644
index 2a5fd2f..0000000
--- a/tools/testfiles/h5diff_626.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-#############################
-Expected output for 'h5diff -n 2 -n 3 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
-dataset: </g1/dset3> and </g1/dset4>
-3 differences found
diff --git a/tools/testfiles/h5diff_627.txt b/tools/testfiles/h5diff_627.txt
deleted file mode 100644
index 95ad39a..0000000
--- a/tools/testfiles/h5diff_627.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-#############################
-Expected output for 'h5diff --count=200 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
-dataset: </g1/dset3> and </g1/dset4>
-6 differences found
diff --git a/tools/testfiles/h5diff_628.txt b/tools/testfiles/h5diff_628.txt
deleted file mode 100644
index d6fa229..0000000
--- a/tools/testfiles/h5diff_628.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-#############################
-Expected output for 'h5diff -n 1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4'
-#############################
-dataset: </g1/dset3> and </g1/dset4>
-1 differences found
diff --git a/tools/testfiles/h5diff_629.txt b/tools/testfiles/h5diff_629.txt
deleted file mode 100644
index 9f7632f..0000000
--- a/tools/testfiles/h5diff_629.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-#############################
-Expected output for 'h5diff file1.h6 file2.h6'
-#############################
-h5diff: <file1.h6>: unable to open file
diff --git a/windows/misc/typegen/h5fort_type_defines/h5fort_type_defines.vfproj b/windows/misc/typegen/h5fort_type_defines/h5fort_type_defines.vfproj
index 8fe1005..22a4d18 100644
--- a/windows/misc/typegen/h5fort_type_defines/h5fort_type_defines.vfproj
+++ b/windows/misc/typegen/h5fort_type_defines/h5fort_type_defines.vfproj
@@ -7,39 +7,39 @@
<Configuration Name="Debug|Win32" OutputDirectory="..\..\..\..\fortran\src\$(ProjectName)\$(ConfigurationName)" IntermediateDirectory="$(OutDir)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.exe;$(TargetPath)" MustRebuild="true">
<Tool Name="VFMidlTool" SuppressStartupBanner="true" TypeLibraryName="$(OUTDIR)/H5fortran_detect.tlb"/>
<Tool Name="VFPreBuildEventTool"/>
- <Tool Name="VFPostBuildEventTool" CommandLine="$(TargetPath) &gt;$(TargetDir)..\..\H5fort_type_defines.h" Description="Generating H5fort_type_defines.h"/>
<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" WarnArgMismatch="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" AssemblerListingLocation="$(INTDIR)/" Traceback="true" BoundsCheck="true" RuntimeLibrary="rtMultiThreadedDebug" CompileOnly="true"/>
+ <Tool Name="VFPostBuildEventTool" CommandLine="if not exist &quot;$(TargetDir)..\..\H5fort_type_defines.h&quot; &quot;$(TargetPath)&quot; &gt; &quot;$(TargetDir)..\..\H5fort_type_defines.h&quot;" Description="Generating H5fort_type_defines.h"/>
<Tool Name="VFCustomBuildTool"/>
<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalYes" SuppressStartupBanner="true" GenerateDebugInformation="true" ProgramDatabaseFile="$(OUTDIR)/H5fortran_detect.pdb" SubSystem="subSystemConsole" AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
- <Tool Name="VFPreLinkEventTool"/>
- <Tool Name="VFResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/></Configuration>
+ <Tool Name="VFResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/>
+ <Tool Name="VFPreLinkEventTool"/></Configuration>
<Configuration Name="Release|Win32" OutputDirectory="..\..\..\..\fortran\src\$(ProjectName)\$(ConfigurationName)" IntermediateDirectory="$(OutDir)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.exe;$(TargetPath)" MustRebuild="true">
<Tool Name="VFMidlTool" SuppressStartupBanner="true" TypeLibraryName="$(OUTDIR)/H5fortran_detect.tlb"/>
<Tool Name="VFPreBuildEventTool"/>
- <Tool Name="VFPostBuildEventTool" CommandLine="$(TargetPath) &gt;$(TargetDir)..\..\H5fort_type_defines.h" Description="Generating H5fort_type_defines.h"/>
<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" AssemblerListingLocation="$(INTDIR)/" RuntimeLibrary="static /threads" CompileOnly="true"/>
+ <Tool Name="VFPostBuildEventTool" CommandLine="if not exist &quot;$(TargetDir)..\..\H5fort_type_defines.h&quot; &quot;$(TargetPath)&quot; &gt; &quot;$(TargetDir)..\..\H5fort_type_defines.h&quot;" Description="Generating H5fort_type_defines.h"/>
<Tool Name="VFCustomBuildTool"/>
<Tool Name="VFLinkerTool" SwitchesHaveChanged="true" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" ProgramDatabaseFile="$(OUTDIR)/H5fortran_detect.pdb" SubSystem="subSystemConsole" AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
- <Tool Name="VFPreLinkEventTool"/>
- <Tool Name="VFResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/></Configuration>
+ <Tool Name="VFResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/>
+ <Tool Name="VFPreLinkEventTool"/></Configuration>
<Configuration Name="Debug|x64" OutputDirectory="..\..\..\..\fortran\src\$(ProjectName)\$(ConfigurationName)" IntermediateDirectory="$(OutDir)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.exe;$(TargetPath)" MustRebuild="true">
<Tool Name="VFMidlTool" SuppressStartupBanner="true" TypeLibraryName="$(OUTDIR)/H5fortran_detect.tlb"/>
<Tool Name="VFPreBuildEventTool"/>
+ <Tool Name="VFPostBuildEventTool" CommandLine="if not exist &quot;$(TargetDir)..\..\H5fort_type_defines.h&quot; &quot;$(TargetPath)&quot; &gt; &quot;$(TargetDir)..\..\H5fort_type_defines.h&quot;" Description="Generating H5fort_type_defines.h"/>
<Tool Name="VFFortranCompilerTool" SwitchesHaveChanged="true" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" WarnArgMismatch="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" AssemblerListingLocation="$(INTDIR)/" Traceback="true" BoundsCheck="true" RuntimeLibrary="rtMultiThreadedDebug" CompileOnly="true"/>
- <Tool Name="VFPostBuildEventTool" CommandLine="$(TargetPath) &gt;$(TargetDir)..\..\H5fort_type_defines.h" Description="Generating H5fort_type_defines.h"/>
<Tool Name="VFCustomBuildTool"/>
<Tool Name="VFLinkerTool" SwitchesHaveChanged="true" LinkIncremental="linkIncrementalYes" SuppressStartupBanner="true" GenerateDebugInformation="true" ProgramDatabaseFile="$(OUTDIR)/H5fortran_detect.pdb" SubSystem="subSystemConsole" AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
- <Tool Name="VFResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/>
- <Tool Name="VFPreLinkEventTool"/></Configuration>
+ <Tool Name="VFPreLinkEventTool"/>
+ <Tool Name="VFResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/></Configuration>
<Configuration Name="Release|x64" OutputDirectory="..\..\..\..\fortran\src\$(ProjectName)\$(ConfigurationName)" IntermediateDirectory="$(OutDir)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.exe;$(TargetPath)" MustRebuild="true">
<Tool Name="VFMidlTool" SwitchesHaveChanged="true" SuppressStartupBanner="true" TypeLibraryName="$(OUTDIR)/H5fortran_detect.tlb"/>
<Tool Name="VFPreBuildEventTool"/>
+ <Tool Name="VFPostBuildEventTool" CommandLine="if not exist &quot;$(TargetDir)..\..\H5fort_type_defines.h&quot; &quot;$(TargetPath)&quot; &gt; &quot;$(TargetDir)..\..\H5fort_type_defines.h&quot;" Description="Generating H5fort_type_defines.h"/>
<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" AssemblerListingLocation="$(INTDIR)/" RuntimeLibrary="static /threads" CompileOnly="true"/>
- <Tool Name="VFPostBuildEventTool" CommandLine="$(TargetPath) &gt;$(TargetDir)..\..\H5fort_type_defines.h" Description="Generating H5fort_type_defines.h"/>
<Tool Name="VFCustomBuildTool"/>
<Tool Name="VFLinkerTool" SwitchesHaveChanged="true" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" ProgramDatabaseFile="$(OUTDIR)/H5fortran_detect.pdb" SubSystem="subSystemConsole" AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
- <Tool Name="VFResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/>
- <Tool Name="VFPreLinkEventTool"/></Configuration></Configurations>
+ <Tool Name="VFPreLinkEventTool"/>
+ <Tool Name="VFResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/></Configuration></Configurations>
<Files>
<Filter Name="Source Files" Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;f90;for;f;fpp">
<File RelativePath="..\..\..\..\fortran\src\H5fortran_detect.f90"/></Filter>
diff --git a/windows/misc/typegen/h5fortran_detect/h5fortran_detect.vfproj b/windows/misc/typegen/h5fortran_detect/h5fortran_detect.vfproj
index 72f97f5..a6082b7 100644
--- a/windows/misc/typegen/h5fortran_detect/h5fortran_detect.vfproj
+++ b/windows/misc/typegen/h5fortran_detect/h5fortran_detect.vfproj
@@ -7,39 +7,39 @@
<Configuration Name="Release|Win32" OutputDirectory="..\..\..\..\fortran\src\$(ProjectName)\$(ConfigurationName)" IntermediateDirectory="$(OutDir)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.exe;$(TargetPath)" MustRebuild="true">
<Tool Name="VFMidlTool" SuppressStartupBanner="true" TypeLibraryName="$(OUTDIR)/h5fortran_detect.tlb"/>
<Tool Name="VFPreBuildEventTool"/>
- <Tool Name="VFPostBuildEventTool" CommandLine="$(TargetPath) &gt;$(TargetDir)..\..\H5fortran_detect.f90" Description="Generating H5fortran_detect.f90"/>
<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" AssemblerListingLocation="$(INTDIR)/" RuntimeLibrary="static /threads" CompileOnly="true"/>
+ <Tool Name="VFPostBuildEventTool" CommandLine="if not exist &quot;$(TargetDir)..\..\H5fortran_detect.f90&quot; &quot;$(TargetPath)&quot; &gt; &quot;$(TargetDir)..\..\H5fortran_detect.f90&quot;" Description="Generating H5fortran_detect.f90"/>
<Tool Name="VFCustomBuildTool"/>
<Tool Name="VFLinkerTool" SwitchesHaveChanged="true" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" ProgramDatabaseFile="$(OUTDIR)/h5fortran_detect.pdb" SubSystem="subSystemConsole" AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
- <Tool Name="VFPreLinkEventTool"/>
- <Tool Name="VFResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/></Configuration>
+ <Tool Name="VFResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/>
+ <Tool Name="VFPreLinkEventTool"/></Configuration>
<Configuration Name="Debug|Win32" OutputDirectory="..\..\..\..\fortran\src\$(ProjectName)\$(ConfigurationName)" IntermediateDirectory="$(OutDir)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.exe;$(TargetPath)" MustRebuild="true">
<Tool Name="VFMidlTool" SuppressStartupBanner="true" TypeLibraryName="$(OUTDIR)/h5fortran_detect.tlb"/>
<Tool Name="VFPreBuildEventTool"/>
- <Tool Name="VFPostBuildEventTool" CommandLine="$(TargetPath) &gt;$(TargetDir)..\..\H5fortran_detect.f90" Description="Generating H5fortran_detect.f90"/>
<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" WarnArgMismatch="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" AssemblerListingLocation="$(INTDIR)/" Traceback="true" BoundsCheck="true" RuntimeLibrary="rtMultiThreadedDebug" CompileOnly="true"/>
+ <Tool Name="VFPostBuildEventTool" CommandLine="if not exist &quot;$(TargetDir)..\..\H5fortran_detect.f90&quot; &quot;$(TargetPath)&quot; &gt; &quot;$(TargetDir)..\..\H5fortran_detect.f90&quot;" Description="Generating H5fortran_detect.f90"/>
<Tool Name="VFCustomBuildTool"/>
<Tool Name="VFLinkerTool" LinkIncremental="linkIncrementalYes" SuppressStartupBanner="true" GenerateDebugInformation="true" ProgramDatabaseFile="$(OUTDIR)/h5fortran_detect.pdb" SubSystem="subSystemConsole" AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
- <Tool Name="VFPreLinkEventTool"/>
- <Tool Name="VFResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/></Configuration>
+ <Tool Name="VFResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/>
+ <Tool Name="VFPreLinkEventTool"/></Configuration>
<Configuration Name="Release|x64" OutputDirectory="..\..\..\..\fortran\src\$(ProjectName)\$(ConfigurationName)" IntermediateDirectory="$(OutDir)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.exe;$(TargetPath)" MustRebuild="true">
<Tool Name="VFMidlTool" SwitchesHaveChanged="true" SuppressStartupBanner="true" TypeLibraryName="$(OUTDIR)/h5fortran_detect.tlb"/>
<Tool Name="VFPreBuildEventTool"/>
+ <Tool Name="VFPostBuildEventTool" CommandLine="if not exist &quot;$(TargetDir)..\..\H5fortran_detect.f90&quot; &quot;$(TargetPath)&quot; &gt; &quot;$(TargetDir)..\..\H5fortran_detect.f90&quot;" Description="Generating H5fortran_detect.f90"/>
<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" AssemblerListingLocation="$(INTDIR)/" RuntimeLibrary="static /threads" CompileOnly="true"/>
- <Tool Name="VFPostBuildEventTool" CommandLine="$(TargetPath) &gt;$(TargetDir)..\..\H5fortran_detect.f90" Description="Generating H5fortran_detect.f90"/>
<Tool Name="VFCustomBuildTool"/>
<Tool Name="VFLinkerTool" SwitchesHaveChanged="true" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" ProgramDatabaseFile="$(OUTDIR)/h5fortran_detect.pdb" SubSystem="subSystemConsole" AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
- <Tool Name="VFResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/>
- <Tool Name="VFPreLinkEventTool"/></Configuration>
+ <Tool Name="VFPreLinkEventTool"/>
+ <Tool Name="VFResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/></Configuration>
<Configuration Name="Debug|x64" OutputDirectory="..\..\..\..\fortran\src\$(ProjectName)\$(ConfigurationName)" IntermediateDirectory="$(OutDir)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.exe;$(TargetPath)" MustRebuild="true">
<Tool Name="VFMidlTool" SwitchesHaveChanged="true" SuppressStartupBanner="true" TypeLibraryName="$(OUTDIR)/h5fortran_detect.tlb"/>
<Tool Name="VFPreBuildEventTool"/>
+ <Tool Name="VFPostBuildEventTool" CommandLine="if not exist &quot;$(TargetDir)..\..\H5fortran_detect.f90&quot; &quot;$(TargetPath)&quot; &gt; &quot;$(TargetDir)..\..\H5fortran_detect.f90&quot;" Description="Generating H5fortran_detect.f90"/>
<Tool Name="VFFortranCompilerTool" SwitchesHaveChanged="true" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" WarnArgMismatch="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" AssemblerListingLocation="$(INTDIR)/" Traceback="true" BoundsCheck="true" RuntimeLibrary="rtMultiThreadedDebug" CompileOnly="true"/>
- <Tool Name="VFPostBuildEventTool" CommandLine="$(TargetPath) &gt;$(TargetDir)..\..\H5fortran_detect.f90" Description="Generating H5fortran_detect.f90"/>
<Tool Name="VFCustomBuildTool"/>
<Tool Name="VFLinkerTool" SwitchesHaveChanged="true" LinkIncremental="linkIncrementalYes" SuppressStartupBanner="true" GenerateDebugInformation="true" ProgramDatabaseFile="$(OUTDIR)/h5fortran_detect.pdb" SubSystem="subSystemConsole" AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
- <Tool Name="VFResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/>
- <Tool Name="VFPreLinkEventTool"/></Configuration></Configurations>
+ <Tool Name="VFPreLinkEventTool"/>
+ <Tool Name="VFResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/></Configuration></Configurations>
<Files>
<Filter Name="Source Files" Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;f90;for;f;fpp">
<File RelativePath="..\..\..\..\fortran\src\H5test_kind.f90"/></Filter>
diff --git a/windows/misc/typegen/h5match_types/h5match_types.vcproj b/windows/misc/typegen/h5match_types/h5match_types.vcproj
index 0b751ca..c95b4ae 100644
--- a/windows/misc/typegen/h5match_types/h5match_types.vcproj
+++ b/windows/misc/typegen/h5match_types/h5match_types.vcproj
@@ -106,7 +106,7 @@
<Tool
Name="VCPostBuildEventTool"
Description="Generating H5f90i_gen.h and H5fortran_types.f90"
- CommandLine="cd $(TargetDir)..\.. &amp;&amp; $(TargetPath)"
+ CommandLine="if not exist &quot;$(TargetDir)..\..\H5f90i_gen.h&quot; (cd &quot;$(TargetDir)..\..&quot; &amp;&amp; &quot;$(TargetPath)&quot;)"
/>
</Configuration>
<Configuration
@@ -199,7 +199,7 @@
<Tool
Name="VCPostBuildEventTool"
Description="Generating H5f90i_gen.h and H5fortran_types.f90"
- CommandLine="cd $(TargetDir)..\.. &amp;&amp; $(TargetPath)"
+ CommandLine="if not exist &quot;$(TargetDir)..\..\H5f90i_gen.h&quot; (cd &quot;$(TargetDir)..\..&quot; &amp;&amp; &quot;$(TargetPath)&quot;)"
/>
</Configuration>
<Configuration
@@ -290,7 +290,7 @@
<Tool
Name="VCPostBuildEventTool"
Description="Generating H5f90i_gen.h and H5fortran_types.f90"
- CommandLine="cd $(TargetDir)..\.. &amp;&amp; $(TargetPath)"
+ CommandLine="if not exist &quot;$(TargetDir)..\..\H5f90i_gen.h&quot; (cd &quot;$(TargetDir)..\..&quot; &amp;&amp; &quot;$(TargetPath)&quot;)"
/>
</Configuration>
<Configuration
@@ -382,7 +382,7 @@
<Tool
Name="VCPostBuildEventTool"
Description="Generating H5f90i_gen.h and H5fortran_types.f90"
- CommandLine="cd $(TargetDir)..\.. &amp;&amp; $(TargetPath)"
+ CommandLine="if not exist &quot;$(TargetDir)..\..\H5f90i_gen.h&quot; (cd &quot;$(TargetDir)..\..&quot; &amp;&amp; &quot;$(TargetPath)&quot;)"
/>
</Configuration>
</Configurations>
diff --git a/windows/misc/typegen/h5tinit/h5tinit.vcproj b/windows/misc/typegen/h5tinit/h5tinit.vcproj
index 0075e16..de79a1c 100644
--- a/windows/misc/typegen/h5tinit/h5tinit.vcproj
+++ b/windows/misc/typegen/h5tinit/h5tinit.vcproj
@@ -105,7 +105,7 @@
<Tool
Name="VCPostBuildEventTool"
Description="Generating H5tinit.c"
- CommandLine="$(TargetPath) &gt;$(TargetDir)..\..\H5tinit.c"
+ CommandLine="if not exist &quot;$(TargetDir)..\..\H5tinit.c&quot; &quot;$(TargetPath)&quot; &gt; &quot;$(TargetDir)..\..\H5tinit.c&quot;"
/>
</Configuration>
<Configuration
@@ -197,7 +197,7 @@
<Tool
Name="VCPostBuildEventTool"
Description="Generating H5tinit.c"
- CommandLine="$(TargetPath) &gt;$(TargetDir)..\..\H5tinit.c"
+ CommandLine="if not exist &quot;$(TargetDir)..\..\H5tinit.c&quot; &quot;$(TargetPath)&quot; &gt; &quot;$(TargetDir)..\..\H5tinit.c&quot;"
/>
</Configuration>
<Configuration
@@ -288,7 +288,7 @@
<Tool
Name="VCPostBuildEventTool"
Description="Generating H5tinit.c"
- CommandLine="$(TargetPath) &gt;$(TargetDir)..\..\H5tinit.c"
+ CommandLine="if not exist &quot;$(TargetDir)..\..\H5tinit.c&quot; &quot;$(TargetPath)&quot; &gt; &quot;$(TargetDir)..\..\H5tinit.c&quot;"
/>
</Configuration>
<Configuration
@@ -380,7 +380,7 @@
<Tool
Name="VCPostBuildEventTool"
Description="Generating H5tinit.c"
- CommandLine="$(TargetPath) &gt;$(TargetDir)..\..\H5tinit.c"
+ CommandLine="if not exist &quot;$(TargetDir)..\..\H5tinit.c&quot; &quot;$(TargetPath)&quot; &gt; &quot;$(TargetDir)..\..\H5tinit.c&quot;"
/>
</Configuration>
</Configurations>
diff --git a/windows/proj/hdf5_fortrandll/hdf5_fortrandll.vfproj b/windows/proj/hdf5_fortrandll/hdf5_fortrandll.vfproj
index 4fa96c2..243a9fe 100644
--- a/windows/proj/hdf5_fortrandll/hdf5_fortrandll.vfproj
+++ b/windows/proj/hdf5_fortrandll/hdf5_fortrandll.vfproj
@@ -7,39 +7,39 @@
<Configuration Name="Debug|Win32" OutputDirectory="..\..\..\proj\$(ProjectName)\$(ConfigurationName)" IntermediateDirectory="$(OutDir)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.exe;$(TargetPath)" ConfigurationType="typeDynamicLibrary" Command="$(TargetPath)">
<Tool Name="VFMidlTool" PreprocessorDefinitions="_DEBUG" MkTypLibCompatible="true" SuppressStartupBanner="true" TargetEnvironment="midlTargetWin32" TypeLibraryName="$(OUTDIR)/hdf5_fortrandll.tlb"/>
<Tool Name="VFPreBuildEventTool"/>
- <Tool Name="VFPostBuildEventTool"/>
<Tool Name="VFFortranCompilerTool" AdditionalOptions="/dll" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="Debug/" PreprocessorDefinitions="HDF5F90_WINDOWS,BUILD_HDF5_DLL" FPS4Symbols="true" WarnArgMismatch="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" AssemblerListingLocation="$(INTDIR)/" BoundsCheck="true" RuntimeLibrary="rtMultiThreadedDebugDLL" CompileOnly="true"/>
+ <Tool Name="VFPostBuildEventTool"/>
<Tool Name="VFCustomBuildTool"/>
- <Tool Name="VFLinkerTool" OutputFile="$(OutDir)\hdf5_fortranddll.dll " LinkIncremental="linkIncrementalYes" SuppressStartupBanner="true" GenerateDebugInformation="true" SubSystem="subSystemWindows" ImportLibrary="$(TargetDir)$(TargetName).lib" LinkDLL="true" AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
- <Tool Name="VFPreLinkEventTool"/>
- <Tool Name="VFResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/></Configuration>
+ <Tool Name="VFLinkerTool" SwitchesHaveChanged="true" OutputFile="$(OutDir)\hdf5_fortranddll.dll" LinkIncremental="linkIncrementalYes" SuppressStartupBanner="true" GenerateDebugInformation="true" SubSystem="subSystemWindows" ImportLibrary="$(TargetDir)$(TargetName).lib" LinkDLL="true" AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
+ <Tool Name="VFResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/>
+ <Tool Name="VFPreLinkEventTool"/></Configuration>
<Configuration Name="Release|Win32" OutputDirectory="..\..\..\proj\$(ProjectName)\$(ConfigurationName)" IntermediateDirectory="$(OutDir)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.exe;$(TargetPath)" ConfigurationType="typeDynamicLibrary" MustRebuild="true" Command="$(TargetPath)">
<Tool Name="VFMidlTool" SwitchesHaveChanged="true" PreprocessorDefinitions="NDEBUG" MkTypLibCompatible="true" SuppressStartupBanner="true" TargetEnvironment="midlTargetWin32" TypeLibraryName="$(OUTDIR)/hdf5_fortrandll.tlb"/>
<Tool Name="VFPreBuildEventTool"/>
- <Tool Name="VFPostBuildEventTool"/>
<Tool Name="VFFortranCompilerTool" SwitchesHaveChanged="true" AdditionalOptions="/dll" SuppressStartupBanner="true" AdditionalIncludeDirectories="Release/" PreprocessorDefinitions="HDF5F90_WINDOWS,BUILD_HDF5_DLL" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" AssemblerListingLocation="$(INTDIR)/" RuntimeLibrary="rtMultiThreadedDLL" CompileOnly="true"/>
+ <Tool Name="VFPostBuildEventTool"/>
<Tool Name="VFCustomBuildTool"/>
<Tool Name="VFLinkerTool" SwitchesHaveChanged="true" MustRebuild="true" OutputFile="$(OutDir)\hdf5_fortrandll.dll" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" SubSystem="subSystemWindows" ImportLibrary="$(TargetDir)$(TargetName).lib" LinkDLL="true" AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
- <Tool Name="VFPreLinkEventTool"/>
- <Tool Name="VFResourceCompilerTool" SwitchesHaveChanged="true" PreprocessorDefinitions="NDEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/></Configuration>
+ <Tool Name="VFResourceCompilerTool" SwitchesHaveChanged="true" PreprocessorDefinitions="NDEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/>
+ <Tool Name="VFPreLinkEventTool"/></Configuration>
<Configuration Name="Debug|x64" OutputDirectory="..\..\..\proj\$(ProjectName)\$(ConfigurationName)" IntermediateDirectory="$(OutDir)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.exe;$(TargetPath)" ConfigurationType="typeDynamicLibrary" MustRebuild="true" Command="$(TargetPath)">
<Tool Name="VFMidlTool" SwitchesHaveChanged="true" PreprocessorDefinitions="_DEBUG" MkTypLibCompatible="true" SuppressStartupBanner="true" TypeLibraryName="$(OUTDIR)/hdf5_fortrandll.tlb"/>
<Tool Name="VFPreBuildEventTool"/>
- <Tool Name="VFFortranCompilerTool" SwitchesHaveChanged="true" AdditionalOptions="/dll" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="Debug/" PreprocessorDefinitions="HDF5F90_WINDOWS,BUILD_HDF5_DLL" FPS4Symbols="true" WarnArgMismatch="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" AssemblerListingLocation="$(INTDIR)/" BoundsCheck="true" RuntimeLibrary="rtMultiThreadedDebugDLL" CompileOnly="true"/>
<Tool Name="VFPostBuildEventTool"/>
+ <Tool Name="VFFortranCompilerTool" SwitchesHaveChanged="true" AdditionalOptions="/dll" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="Debug/" PreprocessorDefinitions="HDF5F90_WINDOWS,BUILD_HDF5_DLL" FPS4Symbols="true" WarnArgMismatch="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" AssemblerListingLocation="$(INTDIR)/" BoundsCheck="true" RuntimeLibrary="rtMultiThreadedDebugDLL" CompileOnly="true"/>
<Tool Name="VFCustomBuildTool"/>
- <Tool Name="VFLinkerTool" SwitchesHaveChanged="true" MustRebuild="true" OutputFile="$(OutDir)\hdf5_fortranddll.dll " LinkIncremental="linkIncrementalYes" SuppressStartupBanner="true" GenerateDebugInformation="true" SubSystem="subSystemWindows" ImportLibrary="$(TargetDir)$(TargetName).lib" LinkDLL="true" AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
- <Tool Name="VFResourceCompilerTool" SwitchesHaveChanged="true" PreprocessorDefinitions="_DEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/>
- <Tool Name="VFPreLinkEventTool"/></Configuration>
+ <Tool Name="VFLinkerTool" SwitchesHaveChanged="true" MustRebuild="true" OutputFile="$(OutDir)\hdf5_fortranddll.dll" LinkIncremental="linkIncrementalYes" SuppressStartupBanner="true" GenerateDebugInformation="true" SubSystem="subSystemWindows" ImportLibrary="$(TargetDir)$(TargetName).lib" LinkDLL="true" AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
+ <Tool Name="VFPreLinkEventTool"/>
+ <Tool Name="VFResourceCompilerTool" SwitchesHaveChanged="true" PreprocessorDefinitions="_DEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/></Configuration>
<Configuration Name="Release|x64" OutputDirectory="..\..\..\proj\$(ProjectName)\$(ConfigurationName)" IntermediateDirectory="$(OutDir)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.exe;$(TargetPath)" ConfigurationType="typeDynamicLibrary" MustRebuild="true" Command="$(TargetPath)">
<Tool Name="VFMidlTool" SwitchesHaveChanged="true" PreprocessorDefinitions="NDEBUG" MkTypLibCompatible="true" SuppressStartupBanner="true" TypeLibraryName="$(OUTDIR)/hdf5_fortrandll.tlb"/>
<Tool Name="VFPreBuildEventTool"/>
- <Tool Name="VFFortranCompilerTool" SwitchesHaveChanged="true" AdditionalOptions="/dll" SuppressStartupBanner="true" AdditionalIncludeDirectories="Release/" PreprocessorDefinitions="HDF5F90_WINDOWS,BUILD_HDF5_DLL" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" AssemblerListingLocation="$(INTDIR)/" RuntimeLibrary="rtMultiThreadedDLL" CompileOnly="true"/>
<Tool Name="VFPostBuildEventTool"/>
+ <Tool Name="VFFortranCompilerTool" SwitchesHaveChanged="true" AdditionalOptions="/dll" SuppressStartupBanner="true" AdditionalIncludeDirectories="Release/" PreprocessorDefinitions="HDF5F90_WINDOWS,BUILD_HDF5_DLL" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" AssemblerListingLocation="$(INTDIR)/" RuntimeLibrary="rtMultiThreadedDLL" CompileOnly="true"/>
<Tool Name="VFCustomBuildTool"/>
<Tool Name="VFLinkerTool" SwitchesHaveChanged="true" MustRebuild="true" OutputFile="$(OutDir)\hdf5_fortrandll.dll" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" SubSystem="subSystemWindows" ImportLibrary="$(TargetDir)$(TargetName).lib" LinkDLL="true" AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib"/>
- <Tool Name="VFResourceCompilerTool" SwitchesHaveChanged="true" PreprocessorDefinitions="NDEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/>
- <Tool Name="VFPreLinkEventTool"/></Configuration></Configurations>
+ <Tool Name="VFPreLinkEventTool"/>
+ <Tool Name="VFResourceCompilerTool" SwitchesHaveChanged="true" PreprocessorDefinitions="NDEBUG" Culture="rcEnglishUS" ResourceOutputFileName="$(INTDIR)/$(InputName).res"/></Configuration></Configurations>
<Files>
<Filter Name="Source Files" Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;f90;for;f;fpp">
<File RelativePath="..\..\..\fortran\src\H5_ff.f90"/>
diff --git a/windows/tools/h5copy/testh5copy.bat b/windows/tools/h5copy/testh5copy.bat
index 7b3d034..120b03a 100644
--- a/windows/tools/h5copy/testh5copy.bat
+++ b/windows/tools/h5copy/testh5copy.bat
@@ -45,7 +45,7 @@ set /a nerrors=0
set verbose=yes
set srcfile=h5copytst.h5
-set indir=%CD%\..\testfiles
+set indir=%CD%\testfiles
set outdir=%CD%\..\testfiles
if not exist %outdir% mkdir %outdir%
diff --git a/windows/tools/h5diff/testh5diff.bat b/windows/tools/h5diff/testh5diff.bat
index d3c407a..2ae5b10 100644
--- a/windows/tools/h5diff/testh5diff.bat
+++ b/windows/tools/h5diff/testh5diff.bat
@@ -26,16 +26,29 @@ rem ############################################################################
rem test file names
rem ############################################################################
-set file1=h5diff_basic1.h5
-set file2=h5diff_basic2.h5
-set file3=h5diff_types.h5
-set file4=h5diff_dtypes.h5
-set file5=h5diff_attr1.h5
-set file6=h5diff_attr2.h5
-set file7=h5diff_dset1.h5
-set file8=h5diff_dset2.h5
-set file9=h5diff_hyper1.h5
-set file10=h5diff_hyper2.h5
+set indir=%CD%\testfiles
+
+set srcfile1=h5diff_basic1.h5
+set srcfile2=h5diff_basic2.h5
+set srcfile3=h5diff_types.h5
+set srcfile4=h5diff_dtypes.h5
+set srcfile5=h5diff_attr1.h5
+set srcfile6=h5diff_attr2.h5
+set srcfile7=h5diff_dset1.h5
+set srcfile8=h5diff_dset2.h5
+set srcfile9=h5diff_hyper1.h5
+set srcfile10=h5diff_hyper2.h5
+
+set file1=%indir%\h5diff_basic1.h5
+set file2=%indir%\h5diff_basic2.h5
+set file3=%indir%\h5diff_types.h5
+set file4=%indir%\h5diff_dtypes.h5
+set file5=%indir%\h5diff_attr1.h5
+set file6=%indir%\h5diff_attr2.h5
+set file7=%indir%\h5diff_dset1.h5
+set file8=%indir%\h5diff_dset2.h5
+set file9=%indir%\h5diff_hyper1.h5
+set file10=%indir%\h5diff_hyper2.h5
rem The tool name
@@ -48,7 +61,7 @@ set verbose=yes
rem default to run h5diff tests
set pmode=
-if not exist ..\testfiles mkdir ..\testfiles
+if not exist .\testfiles mkdir .\testfiles
rem Parse options
rem On Windows, we don't parse, because we only want to worry about
@@ -59,21 +72,30 @@ goto main
rem Print a line-line message left justified in a field of 70 characters
rem beginning with the word "Testing".
+rem On Windows, simply set up the test_msg variable, so it can be printed later
+rem with the :results function. This is because Windows doesn't support
+rem printing without a linefeed. --SJW 6/20/08
rem
:testing
set test_msg=Testing
for %%a in (%*) do (
- if %%a neq PASSED (
- if %%a neq *FAILED* (
set test_msg=!test_msg! %%~nxa
- ) )
)
set test_msg=%test_msg%
- echo.%test_msg:~0,69% %1
+ set test_msg=%test_msg:~0,69%
exit /b
+rem Print the testing results. Simply echo the contents of test_msg (set up
+rem above), along with the passed parameter, generall PASSED, FAILED, or -SKIP-
+:results
+ echo.%test_msg% %*
+
+ exit /b
+
+
+
rem Function STDOUT_FILTER isn't technically needed on Windows, because this
rem script will never run on platforms that require it. However, include empty
rem interface for consistency. --SJW 8/22/07
@@ -98,9 +120,9 @@ rem `.out'. The actual output is not removed if HDF5_NOCLEANUP has a
rem non-zero value.
rem
:tooltest
- set expect=%CD%\..\testfiles\%1
- set actual=%CD%\..\testfiles\%~n1.out
- set actual_err=%CD%\..\testfiles\~n1.err
+ set expect=%CD%\testfiles\%1
+ set actual=%CD%\testfiles\%~n1.out
+ set actual_err=%CD%\testfiles\~n1.err
set actual_sav=%actual%-sav
set actual_err_sav=%actual_err%-sav
@@ -121,11 +143,11 @@ rem
rem Run test.
(
- echo.#############################
- rem Remove quotes here, because Linux 'echo' command strips them
- echo.Expected output for 'h5diff %params:"=%'
- echo.#############################
- pushd ..\testfiles
+ rem echo.#############################
+ rem rem Remove quotes here, because Linux 'echo' command strips them
+ rem echo.Expected output for 'h5diff %params:"=%'
+ rem echo.#############################
+ pushd testfiles
%h5diff_bin% %params%
popd
) > %actual% 2> %actual_err%
@@ -138,14 +160,14 @@ rem
if not exist %expect% (
rem Create the expect file if it doesn't yet exist.
- call :testing CREATED %h5diff% %params%
+ call :results CREATED
copy /y %actual% %expect% > nul
) else (
fc /w %expect% %actual% > nul
if !errorlevel! equ 0 (
- call :testing PASSED %h5diff% %params%
+ call :results PASSED
) else (
- call :testing *FAILED* %h5diff% %params%
+ call :results *FAILED*
echo. Expected result ^(%expect%^) differs from actual result ^(%actual%^)
set /a nerrors=!nerrors!+1
if "yes"=="%verbose%" fc /w %actual% %expect%
@@ -169,9 +191,11 @@ rem Print a "SKIP" message
:main
rem ############################################################################
-rem ############################################################################
-rem # T H E T E S T S ###
-rem ############################################################################
+rem The tests
+rem To avoid the printing of the complete full path of the test file, that hides
+rem all the other parameters for long paths, the printing of the command line
+rem is done first in
+rem TESTING with the name only of the test file $TOOL, not its full path $TESTFILErem ############################################################################
rem ############################################################################
rem ############################################################################
@@ -180,36 +204,47 @@ rem ############################################################################
rem 1.0
+ call :testing %h5diff% -h
call :tooltest h5diff_10.txt -h
rem 1.1 normal mode
+ call :testing %h5diff% %srcfile1% %srcfile2%
call :tooltest h5diff_11.txt %file1% %file2%
rem 1.2 normal mode with objects
+ call :testing %h5diff% %srcfile1% %srcfile2% g1/dset1 g1/dset2
call :tooltest h5diff_12.txt %file1% %file2% g1/dset1 g1/dset2
rem 1.3 report mode
+ call :testing %h5diff% -r %srcfile1% %srcfile2%
call :tooltest h5diff_13.txt -r %file1% %file2%
rem 1.4 report mode with objects
+ call :testing %h5diff% -r %srcfile1% %srcfile2% g1/dset1 g1/dset2
call :tooltest h5diff_14.txt -r %file1% %file2% g1/dset1 g1/dset2
rem 1.5 with -d
+ call :testing %h5diff% --report --delta=5 %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_15.txt --report --delta=5 %file1% %file2% g1/dset3 g1/dset4
rem 1.6.1 with -p (int)
+ call :testing %h5diff% -v -p 0.02 %srcfile1% %srcfile1% g1/dset5 g1/dset6
call :tooltest h5diff_16_1.txt -v -p 0.02 %file1% %file1% g1/dset5 g1/dset6
rem 1.6.2 with -p (unsigned long_long)
+ call :testing %h5diff% --verbose --relative=0.02 %srcfile1% %srcfile1% g1/dset7 g1/dset8
call :tooltest h5diff_16_2.txt --verbose --relative=0.02 %file1% %file1% g1/dset7 g1/dset8
rem 1.6.3 with -p (double)
+ call :testing %h5diff% -v -p 0.02 %srcfile1% %srcfile1% g1/dset9 g1/dset10
call :tooltest h5diff_16_3.txt -v -p 0.02 %file1% %file1% g1/dset9 g1/dset10
rem 1.7 verbose mode
+ call :testing %h5diff% -v %srcfile1% %srcfile2%
call :tooltest h5diff_17.txt -v %file1% %file2%
rem 1.8 quiet mode
+ call :testing %h5diff% -q %srcfile1% %srcfile2%
call :tooltest h5diff_18.txt -q %file1% %file2%
rem ##############################################################################
@@ -217,12 +252,15 @@ rem ############################################################################
rem ##############################################################################
rem 2.0
+ call :testing %h5diff% -v %srcfile3% %srcfile3% dset g1
call :tooltest h5diff_20.txt -v %file3% %file3% dset g1
rem 2.1
+ call :testing %h5diff% -v %srcfile3% %srcfile3% dset l1
call :tooltest h5diff_21.txt -v %file3% %file3% dset l1
rem 2.2
+ call :testing %h5diff% -v %srcfile3% %srcfile3% dset t1
call :tooltest h5diff_22.txt -v %file3% %file3% dset t1
rem ##############################################################################
@@ -230,21 +268,27 @@ rem ############################################################################
rem ##############################################################################
rem 2.3
+ call :testing %h5diff% -v %srcfile3% %srcfile3% g1 g1
call :tooltest h5diff_23.txt -v %file3% %file3% g1 g1
rem 2.4
+ call :testing %h5diff% -v %srcfile3% %srcfile3% t1 t1
call :tooltest h5diff_24.txt -v %file3% %file3% t1 t1
rem 2.5
+ call :testing %h5diff% -v %srcfile3% %srcfile3% l1 l1
call :tooltest h5diff_25.txt -v %file3% %file3% l1 l1
rem 2.6
+ call :testing %h5diff% -v %srcfile3% %srcfile3% g1 g2
call :tooltest h5diff_26.txt -v %file3% %file3% g1 g2
rem 2.7
+ call :testing %h5diff% -v %srcfile3% %srcfile3% t1 t2
call :tooltest h5diff_27.txt -v %file3% %file3% t1 t2
rem 2.8
+ call :testing %h5diff% -v %srcfile3% %srcfile3% l1 l2
call :tooltest h5diff_28.txt -v %file3% %file3% l1 l2
@@ -254,30 +298,39 @@ rem ############################################################################
rem ##############################################################################
rem 5.0
+ call :testing %h5diff% -v %srcfile4% %srcfile4% dset0a dset0b
call :tooltest h5diff_50.txt -v %file4% %file4% dset0a dset0b
rem 5.1
+ call :testing %h5diff% -v %srcfile4% %srcfile4% dset1a dset1b
call :tooltest h5diff_51.txt -v %file4% %file4% dset1a dset1b
rem 5.2
+ call :testing %h5diff% -v %srcfile4% %srcfile4% dset2a dset2b
call :tooltest h5diff_52.txt -v %file4% %file4% dset2a dset2b
rem 5.3
+ call :testing %h5diff% -v %srcfile4% %srcfile4% dset3a dset4b
call :tooltest h5diff_53.txt -v %file4% %file4% dset3a dset4b
rem 5.4
+ call :testing %h5diff% -v %srcfile4% %srcfile4% dset4a dset4b
call :tooltest h5diff_54.txt -v %file4% %file4% dset4a dset4b
rem 5.5
+ call :testing %h5diff% -v %srcfile4% %srcfile4% dset5a dset5b
call :tooltest h5diff_55.txt -v %file4% %file4% dset5a dset5b
rem 5.6
+ call :testing %h5diff% -v %srcfile4% %srcfile4% dset6a dset6b
call :tooltest h5diff_56.txt -v %file4% %file4% dset6a dset6b
rem 5.7
+ call :testing %h5diff% -v %srcfile4% %srcfile4% dset7a dset7b
call :tooltest h5diff_57.txt -v %file4% %file4% dset7a dset7b
rem 5.8 (region reference)
+ call :testing %h5diff% -v %srcfile7% %srcfile8% refreg
call :tooltest h5diff_58.txt -v %file7% %file8% refreg
rem ##############################################################################
@@ -286,45 +339,45 @@ rem ############################################################################
rem 6.0: Check if the command line number of arguments is less than 3
+ call :testing %h5diff% %srcfile1%
call :tooltest h5diff_600.txt %file1%
- rem 6.1: Check for invalid options
- rem Comment this test on Windows out for now. The reason is that currently no
- rem expected output exists. This means that one will be created for the first
- rem testrun, but then never deleted. The expected output has an absolute path
- rem in it, so it will fail for subsequent tests that use a different path.
- rem -- SJW 11/17/07
- rem call :tooltest h5diff_601.txt -x %file1% %file2%
rem ##############################################################################
rem # -d
rem ##############################################################################
- rem 6.2: no value
- call :tooltest h5diff_602.txt -d %file1% %file2% g1/dset3 g1/dset4
rem 6.3: negative value
+ call :testing %h5diff% -d -4 %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_603.txt -d -4 %file1% %file2% g1/dset3 g1/dset4
rem 6.4: zero
+ call :testing %h5diff% -d 0 %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_604.txt -d 0 %file1% %file2% g1/dset3 g1/dset4
rem 6.5: non number
+ call :testing %h5diff% -d u %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_605.txt -d u %file1% %file2% g1/dset3 g1/dset4
rem 6.6: hexadecimal
+ call :testing %h5diff% -d 0x1 %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_606.txt -d 0x1 %file1% %file2% g1/dset3 g1/dset4
rem 6.7: string
+ call :testing %h5diff% -d "1" %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_607.txt -d "1" %file1% %file2% g1/dset3 g1/dset4
rem 6.8: repeated option
+ call :testing %h5diff% -d 1 -d 2 %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_608.txt -d 1 -d 2 %file1% %file2% g1/dset3 g1/dset4
rem 6.9: number larger than biggest difference
+ call :testing %h5diff% -d 200 %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_609.txt -d 200 %file1% %file2% g1/dset3 g1/dset4
rem 6.10: number smaller than smallest difference
+ call :testing %h5diff% -d 1 %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_610.txt -d 1 %file1% %file2% g1/dset3 g1/dset4
@@ -333,31 +386,37 @@ rem ############################################################################
rem ##############################################################################
- rem 6.11: no value
- call :tooltest h5diff_611.txt -r -p %file1% %file2% g1/dset3 g1/dset4
rem 6.12: negative value
+ call :testing %h5diff% -p -4 %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_612.txt -p -4 %file1% %file2% g1/dset3 g1/dset4
rem 6.13: zero
+ call :testing %h5diff% -p 0 %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_613.txt -p 0 %file1% %file2% g1/dset3 g1/dset4
rem 6.14: non number
+ call :testing %h5diff% -p u %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_614.txt -p u %file1% %file2% g1/dset3 g1/dset4
rem 6.15: hexadecimal
+ call :testing %h5diff% -p 0x1 %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_615.txt -p 0x1 %file1% %file2% g1/dset3 g1/dset4
rem 6.16: string
+ call :testing %h5diff% -p "0.21" %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_616.txt -p "0.21" %file1% %file2% g1/dset3 g1/dset4
rem 6.17: repeated option
+ call :testing %h5diff% -p 0.21 -p 0.22 %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_617.txt -p 0.21 -p 0.22 %file1% %file2% g1/dset3 g1/dset4
rem 6.18: number larger than biggest difference
+ call :testing %h5diff% -p 2 %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_618.txt -p 2 %file1% %file2% g1/dset3 g1/dset4
rem 6.19: number smaller than smallest difference
+ call :testing %h5diff% -p 0.005 %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_619.txt -p 0.005 %file1% %file2% g1/dset3 g1/dset4
@@ -367,57 +426,73 @@ rem ############################################################################
rem ##############################################################################
- rem 6.20: no value
- call :tooltest h5diff_620.txt -n %file1% %file2% g1/dset3 g1/dset4
rem 6.21: negative value
+ call :testing %h5diff% -n -4 %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_621.txt -n -4 %file1% %file2% g1/dset3 g1/dset4
rem 6.22: zero
+ call :testing %h5diff% -n 0 %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_622.txt -n 0 %file1% %file2% g1/dset3 g1/dset4
rem 6.23: non number
+ call :testing %h5diff% -n u %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_623.txt -n u %file1% %file2% g1/dset3 g1/dset4
rem 6.24: hexadecimal
+ call :testing %h5diff% -n 0x1 %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_624.txt -n 0x1 %file1% %file2% g1/dset3 g1/dset4
rem 6.25: string
+ call :testing %h5diff% -n "2" %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_625.txt -n "2" %file1% %file2% g1/dset3 g1/dset4
rem 6.26: repeated option
+ call :testing %h5diff% -n 2 -n 3 %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_626.txt -n 2 -n 3 %file1% %file2% g1/dset3 g1/dset4
rem 6.27: number larger than biggest difference
+ call :testing %h5diff% --count=200 %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_627.txt --count=200 %file1% %file2% g1/dset3 g1/dset4
rem 6.28: number smaller than smallest difference
+ call :testing %h5diff% -n 1 %srcfile1% %srcfile2% g1/dset3 g1/dset4
call :tooltest h5diff_628.txt -n 1 %file1% %file2% g1/dset3 g1/dset4
rem 6.29 non valid files
+ call :testing %h5diff% file1.h6 file2.h6
call :tooltest h5diff_629.txt file1.h6 file2.h6
rem ##############################################################################
rem 7. attributes
rem ##############################################################################
+ call :testing %h5diff% -v %srcfile5% %srcfile6%
call :tooltest h5diff_70.txt -v %file5% %file6%
rem ##############################################################################
rem 8. all dataset datatypes
rem ##############################################################################
+ call :testing %h5diff% -v %srcfile7% %srcfile8%
call :tooltest h5diff_80.txt -v %file7% %file8%
rem 9. compare a file with itself
+ call :testing %h5diff% -v %srcfile2% %srcfile2%
call :tooltest h5diff_90.txt -v %file2% %file2%
rem 10. read by hyperslab, print indexes
+ call :testing %h5diff% -v %srcfile9% %srcfile10%
call :tooltest h5diff_100.txt -v %file9% %file10%
rem 11. floating point comparison
rem Not tested on Windows due to difference in formatting of scientific
rem notation --SJW 8/23/07
+ call :testing h5diff_101.txt -v %srcfile1% %srcfile1% g1/d1 g1/d2
rem call :tooltest h5diff_101.txt -v %file1% %file1% g1/d1 g1/d2
+ call :results -SKIP-
+ rem
+ call :testing %h5diff% -v %srcfile1% %srcfile1% g1/fp1 g1/fp2
rem call :tooltest h5diff_102.txt -v %file1% %file1% g1/fp1 g1/fp2
+ call :results -SKIP-
rem ##############################################################################
rem # END
diff --git a/windows/tools/h5repack/h5repack.bat b/windows/tools/h5repack/h5repack.bat
index 7454f7f..a91dcb9 100644
--- a/windows/tools/h5repack/h5repack.bat
+++ b/windows/tools/h5repack/h5repack.bat
@@ -42,13 +42,11 @@ set h5diff=..\h5diff%2\%1\h5diff%2
rem The path of the h5diff tool binary
set h5diff_bin=%CD%\%h5diff%
-rem The tool name
set h5detectszip=testh5repack_detect_szip%2
-rem The path of the tool binary
set h5detectszip_bin=%CD%\..\testfiles\%h5detectszip%\%1\%h5detectszip%
-set info_file=..\testfiles\info.h5repack
+set info_file=testfiles\h5repack.info
set file0=h5repack_fill.h5
set file1=h5repack_objs.h5
@@ -68,7 +66,6 @@ set file13=h5repack_soffset.h5
set nerrors=0
set verbose=yes
-if not exist ..\testfiles mkdir ..\testfiles
goto main
@@ -133,7 +130,7 @@ rem
:tooltest
rem Run test.
- set infile=%CD%\..\testfiles\%1
+ set infile=%CD%\testfiles\%1
rem Linux uses a $path variable here, but it is unneccessary, and will
rem corrupt our Windows PATH if we use it. --SJW 8/28/07
rem set path=%CD%
@@ -167,7 +164,7 @@ rem
:tooltest0
rem Run test.
- set infile=%CD%\..\testfiles\%1
+ set infile=%CD%\testfiles\%1
rem Linux uses a $path variable here, but it is unneccessary, and will
rem corrupt our Windows PATH if we use it. --SJW 8/28/07
rem set path=%CD%
diff --git a/windows_vnet/proj/all/all.sln b/windows_vnet/proj/all/all.sln
index 1666237..2996cfd 100644
--- a/windows_vnet/proj/all/all.sln
+++ b/windows_vnet/proj/all/all.sln
@@ -2256,9 +2256,7 @@ Global
{159841AE-42DA-4931-B81F-BF9BD580DDF6}.AlphaRel.ActiveCfg = Release|Win32
{159841AE-42DA-4931-B81F-BF9BD580DDF6}.AlphaRel.Build.0 = Release|Win32
{159841AE-42DA-4931-B81F-BF9BD580DDF6}.Debug.ActiveCfg = Debug|Win32
- {159841AE-42DA-4931-B81F-BF9BD580DDF6}.Debug.Build.0 = Debug|Win32
{159841AE-42DA-4931-B81F-BF9BD580DDF6}.Release.ActiveCfg = Release|Win32
- {159841AE-42DA-4931-B81F-BF9BD580DDF6}.Release.Build.0 = Release|Win32
{20276CCF-2478-4FAA-98A9-A485038E00F6}.AlphaDbg.ActiveCfg = AlphaDbg|Win32
{20276CCF-2478-4FAA-98A9-A485038E00F6}.AlphaDbg.Build.0 = AlphaDbg|Win32
{20276CCF-2478-4FAA-98A9-A485038E00F6}.AlphaRel.ActiveCfg = AlphaRel|Win32