00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101010101010101010101010101010101010101010101010101010101010111111111111111112121212121212121212121212121212121212121212121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242434343444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444445454545454545454545454545454545454646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474757575757575757575757575757575757575757575858586868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686869696969696961061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061061161161161161161161161161161161161161161161161161161161161161161161161161161161261261261261261261261261261261261261261261261261261261261261261261261261261261261261261261261361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361361461461461461461461461461461461461461461461461461461461461461461461461461461461461461461561561561561561561561561561561561561561561561561561561561561561561561561561661661661661661661661661661671771881881881881881881881881881881881881881881881881881881881881881881881981981981981982082082182192192192192192192292292292292292292292292292292292292292292292292292292292292292292292292292292292292292292292292292292292292292292292392410241024102410241024102410241024102410241024102410241024102410241024102410241024102510251025102510251025102510251025102510251025102510251025102510251025102510251026102610261026102610261026102610261026102610261026102610261026102610261026102610261027102710271027102710271027102710271027102710271027102710271027102710271027102710271027102710271027102710271027102710271027102710271027102710271027102710271027102710271027102710271027102710271027102710271027102710271027102710271027102810281028102810281028102810281028102810281028102810281028102810281028102810291029102910291029103010311031103111311131113111311131113111311131113111311131113111311131113111311131113111311131113111311131113111321132113211321132113211321132113211321132113211321132113211321132113211321133113311331133113311331133113311331133113311331133113311331133113411341135113511351136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611361136113611371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113711371137113811381138113811381138113811381138113811381138113811381138113811381138113811381138113811381138113811381138113811381138113811381138113811381138113811381138113811381138113911391140114011401140114011401140114011401140114111411141114111411141114111411141114111411141114111411141114111411141114111411141114111411141114111411141114111411141114111411141114111411141114111411141114111411141114111411141114111411141114111411141114111411141114111411141114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421142114211421143114311431143114311431143114311431143114311431143114311431143114311431143114311431143114311431143114311431143114311431143114311431143114311431143114311431143114311431143114311431143114311431143114311431143114311431143114311431143114311431143114311431143114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411441144114411451145114511451145114511461146114611461146114611461146114611461146114611461146114611461146114611461146114611461146114611461146114611461146114611461146114611471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114711471147114811491149114911491149114911491149114911491149114911491149114911491149114911491149114911491149114911491149114911491149114911491149114911491149114911491149114911491149114911491149114911491149114911491150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115011501150115012501250125012501250125012501250125012501250125012501250125012501250125012501250125012501250125012501250125012501250125012501250125012501250125112511251125112511251125112521252125212521252125212521252125212521252125212531253125412551255125512551255125512551255125512551255125512551255125512551255125512551255125512551255125512551255125512551255125512551255125512551255125512551255125512551255125512551255125512551255125612561256125612561256125612561256125612561256125612561256125612561256125612561256125612561256125612561256125612561256125612561256125612561256125612561256125612561256125612561256125612561256125612561256125712571257125712571257125712571257125712571257125712571257125712571257125712571257125712571257125712571257125712571257125712571257125712571258125812581258125812581258125812581258125812581258125812581258125812581258125812581258125812581258125812581258125812581258125812581258125812581259125912591259125912591259125912591259125912591259125912591259125912591259125912591259125912591259125912591259125912591259125912591259125912591259125912591260126012601260126012601260126012601260126112611262126212621262126212621262126212621262126212621262126212621262126212621262126212621262126212621262126212621262126212621262126212621262126212621262126212621262126212621262126212621262126212621262126212621262126212621262126212621262126212621262126212621262126212631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631263126312631264126412641264126412641264126412641264126412641264126412641264126412641264126412641264126412641264126412641264126412641264126412641264126412641264126412641264126412641264126412641264126412641264126412641264126412641264126412641264126412641264126412641264126412641265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126512651265126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126612661266126613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661366136613661466146614661466146614661466146614661466146614661466146614661466146614661466146614661466146614661466146614661466146614661466146614661466146614661466146614661466146614661466146614661466146614661466146614661466146614661466146614661466146614661466146614661466146614661466146614661466146614661466146614661466146614661466146614661466146614661467146714671467146714671467146714671567166716671667166716671667166716671667166716671667166716671667166716671667166716671667166716671667166716671667166716671667166716671667166716671667166716671667166716671667166716671667166716671667166716671667166716671667166716671667166716671667166716671667166716671667166816681668166816681668166816681669166916691769186918691869186918691869186918691869186918691869186918691869186918691869186918691869186918691869186918691869186918691869196919691969196919691969196919691969196919691969196919691969196919691969196920692069206920692069206920692069206920692069206920692069206920692069206920692069206920692069206920692069206920692069206920692069206920692070207020702070207020702070207020702070207020702070207020702070207020702070207020702070207020702070207020702070207020702070207020702070207020702070207020702070207020702070207020702070207020702070207020702070207020702070207020702070207020702070207021702170217021702170217021702170217021702170217021702170217021702170217021702170217021702170217021702170217022702270227022702270227022702270227022702270227022702270227022702270227022702270227022702270227022702270227022702270227023702371247124712471247124712471247124712471247124712471247124712471247124712471247124712471247124712471247124712471247124712471247124712471247124712471247124712471247124712471247124712471247124712471247124712471247124712471247124712471247124712471247124712571257125712571257125712571257125712571257125712571257125712571257125712571257125712571257125712571257125712571257125712571267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712671267126712771277127712771277127712771277127712771277127712771277127712771277127712771277127712771277127712771277127712771277127712771277127712771277127712771277127712771277127712771277127712771277127712771277127712771277127712771277127712771277127712771277127712771277128712871287128712871287128712871287128712871287128712871287128712871287128712871287128712871287128712871287128712871287128712871287128712871287128712871287128712871287128712871287128712871287128712871287128712871287128712871287128712871287128712871287128712871287128712871287128712871287128712871287128712871287129712971297129712971297129712971297129712971297130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713071307130713072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307230723072307231723172317231723172317231723172317231723172317231723172317231723172317231723172317231723172317231723172317231723172317231723172317231723172317231723172317231723172317231723172317231723172317231723172317231723172317231723172317231723172327232723272327232723272327232723272327232723272327232723272327232723272327232723272327232723272327232723272327232723272327232723272327232723272327232723272327232723272327232723272327233723372337233723372337233723372337233723372337233723372337233723372337233723372337233723372337233723372337233723372337233723372337233723372337233723372337233723372337233723372337233723372337234723572357236723672367236723672367236723672367236723672367236723672367236723672367236723672367236723672367236723672367236723672367236723672367236723672367236723672367236723672367236723672367236723672367236723672367236723672367236723672367236723672367236723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237723772377237