Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
result of running `python pi_monte-carlo.py 1`
Calculated pi: 3.1411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063007875984498062257782222777847230903862982872859107388423552944118014751843980497562195274409301162645330666333291661457682210276284535566945868233529191148893611701462682835354419302412801600200025003125390673834229278659832479059882485310663832979122390298787348418552319039879984998124765595699462432804100512564070508813601700212526565820727590948868608576072009001125140642580322540317539692461557694711838979872484060507563445430678834854356794599324915614451806475809476184523065383172896612076509563695461932741592699087385923240405050631328916114514314289286160770096262032754094261782722840355044380547568446055756969621202650331291411426428303537942242780347543442930366295786973371671458932366545818227278409801225153144143017877234654331791473934241780222527815976997124640580072509063632954119264908113514189273659207400925115639454931866483310413801725215651956494561820227528441055131891486435804475559444930616327040880110013751718964870608826103262907863482935366920865108138517314664333041630203775471933991748968621077634704338042255281910238779847480935116889611201400175021877734716839604950618827353419177397174646830853856732091511438929866233279159894986873359169896237029628703587948493561695211901487685960745093136642080260032504063
Difference to exact value of pi: -0.0004500107594393217736854337898408685539465931776628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495936992124015501937742217777222152769096137017127140892611576447055881985248156019502437804725590698837354669333666708338542317789723715464433054131766470808851106388298537317164645580697587198399799974996874609326165770721340167520940117514689336167020877609701212651581447680960120015001875234404300537567195899487435929491186398299787473434179272409051131391423927990998874859357419677459682460307538442305288161020127515939492436554569321165145643205400675084385548193524190523815476934616827103387923490436304538067258407300912614076759594949368671083885485685710713839229903737967245905738217277159644955619452431553944243030378797349668708588573571696462057757219652456557069633704213026628328541067633454181772721590198774846855856982122765345668208526065758219777472184023002875359419927490936367045880735091886485810726340792599074884360545068133516689586198274784348043505438179772471558944868108513564195524440555069383672959119889986248281035129391173896737092136517064633079134891861482685335666958369796224528066008251031378922365295661957744718089761220152519064883110388798599824978122265283160395049381172646580822602825353169146143267908488561070133766720840105013126640830103762970371296412051506438304788098512314039254906863357919739967495937
Error: (approx-exact)/exact = -0.014324287361861172295955528667973661437131505599280820998091490286782775028962373846966587872795859199338191524021188299817197568693619533917278420614193284507460468320723822114230134243482105364212757512110738482235630686396483649116378025553987271809347381506917971891288025238299572285137216242749449503072614624180087002704041147357573496961520335184234497942729428029670223186835175259669131457579733983005573005280891054281800614888136837272169743534196207793334577119794368133123107635057701075970686002948695280336231472734815157330203951383079700015741979376011361568871377618115281747876128141523735887113098917386155102368773501738610080394382300916291341651410484559353732014684503761767235963656026320231113428603904595347931517721891748979554364128479725419813957024247046787065219499956846846913615638164108357291223461047050863756551795151824877874539658595467303126556504231035970237897474990269961877643098988379891680076444228493953563543058195028395502712733174942142067195188019304766040426678937627060833300924221074275813289425557974750169426871801580652168240481452399007653364620988393192432357383577328231710958692689128016843497671639906412854857261044495228098782394597351272732664082498347255073035420760419154130011035907707895929953537119798161906205119118668789821100233649585461817961710788849248543164045469871562601019211310545072937556872262856524535589131590715451684970143624689137948065601622918016333938700483364459193042278674908758829822681731285223884355691229365991422981343694140238451519318796190588161078274027612012363201733551798782034894772120302755282128279179230201102667514017056531519760356961628582936716364043410670985492237011619350274147742260314676838786993086619765458122549019688629248953969927982790844592489662571008656233994228607769163348987320439210346480082553942807538404524526778364704706559237375282627669123985894283276324387657740290123081660111760494054144524735613535128249445809122413445197188049377038089296873310422112462642613439885741707727926039063984379268005220670495676633178342799317653632620241381622933896527419435117487294854269736422360426283865171891983203345621067466005876790178595380810501722126940969088143082664893876358061653588106144460311079499173217052210600917661954538997616076679076475503694320330582688169978856132886071472871147708623777102535497687470723802855831348571888632455770896138381847597347796310856399752248162603228299094152082776743333549642634653978925614794859802651530656941854690859057059258751460219803590922682657393238612440869019917341509292827781011181015590374505927734433553144851231496060976842412048459078716672913211644114977998841969372004420434642753509550440222789058183981441759150167734763817819707141775261499487516646567102807867135846308809413813801223082284478486298096951448510287183684997127760032361768944660042752611500571858298727606511589016969417337678885168161900282593533930508168655049602368849497776705995312648881715643923995416815396640201208149433648728241333812160183610728913253573195843265914865193240284096175518889506079152550640560034791529025686026530610430416249417816748393641915498438699412019533498512130525075785939875134440783684711458292804073441773127103333145720193331763086589702175837121148906185517523102557449452730990626942010500881517808227321367945620733716723009942688411253433093563776543794681805704306650566420135048903394748098265600251456256078983390305241307257816998434174732777154559282374332891266024839042579339165954103991091751427156199210166816509505008438850355459655324591076496315836343694739649030408528381187435740811194541374312722161345884586965034547340269886963291105952739152843211121590600061581447003293129921126196842249873533927073244949523648777749813218833085724540231616042448142658749894527937933722019135170460314950153008715389177821800216125739417539717647753959032570068157098014017651497485607029673566315175773267076487927296646208477775241150271242640006207778519464930690740603857225959529322771489162826377814319269961249601610209991711279538393946982611381086679879331215973096886335239784246407065876125466943497734073799026072855116285012004249051089783124687615517212437778032047278434392963712663202755285618653880021055466586023324817635333873125384929146094262694363438948602858103253261803298986573384816180529352013714622841730163130088689659613165637231290616607119530196614917717756793142692505407896693530097794641471020483422994678115728004091741483356609788485218231689543385982902757297435359950463931035345983212826122654371061834402477732571501636846434955765004098520519246622965990631453508747130758556061519290953227548432138159394544936465478062633340374803377536615474725858129739008624897858404846768020685004632261016702345370741786198878010018056273604438678458552673206105453478156955335118056233494177770365138582818470119430264282698747278856648185908328252811063223160959449865144678725391697942922717514099114624692960995698915487899325399508182846609759127210078132706360338165086065144575026390343000915703577533020668515857285044064838102949099748867023191480087193060305686175298541316362759109881379824622871816715280234102929913238813693427029551208694368605708520356994531483598036325205557015679072872837120167792081813727944671334936589995629136472388348143272926611509691979463478003157511136376480094972376889833802062537398901381350280752610093769135535732627677891865605446804399800362219182960294902071870015737742762112033021749089228892893951366154999630598710110005827504893882080774149812864893433394314061315811925771228181511801488580998405084058516421349147374633506472191797822734409889190155832313557855553592293581291690563885449320843899878404153817140199941868670190981083779666276852079944239001349203164096045951048347086244830527607809508591396048844917876183635214784411915214450085315968096577809497947502822472815611325714591418466177247312082124071723967420470063919932138687794031165194122240526865483783351894350922441732038890132778909883887012419694701791255091894887123248221266738045684739559753343908652761328317805972517905053121639297247112576263395761750256757401298094091983599286313326777081311822497402741660968795125862532433091415342350219264773184263926188832492823339745959787054733944502190729454388958601965521991512262836110267163259393422407602633450552391697642419845243387084882054108760816065193159022364171854269232703495504113745584370756537633676669599090887774004593171746140509470583380776214352684413236990195611849498049517903613190553407434981929603854331891098663482961918975280208606816708702698950161052586932973750592936174608043847524744150580153718707008870619292752134090027045853395564758971695464311799162961544203662724023684737849206540956417310215781526207088210059383314030684876879573854666133949610876289138261986146401379434444628247288776760541959245497081226275029978802282897009871956596171656985402007328480612647716272925836985393224705311376756275622890076097672039855123034237547631671349899610594220663512578382897068731759328406248172129009510049358836260789460399544446303686247749318463170542602226629381776489102306597612035894752311075161189216668061602396603695802605504555927320541628171336101313409649706449547438386655883045169648792035785519965303130254687217761399842389916913026470028866629630716758664473447566589018978422798264941469278512021689813344184383673631575991953397021652842435518844718722959213614051742536651252870316524471154438108489096814323124153424892970013101947360683819363089913198001607383074634716501218824378904163552186263855740887048186179924398768231960863668248346089068114990008109852684127244760425562040071201660879392824888842923995738484909036578693979563745174054393989495609655750724400531813552117175956823162540869718759856725992103809569049668877624597301346444653757968233621434155774260441064472315206373115207668850100774875327420697976022868294016565216040754267064244916117923007502592782030091845132371817713501694251049865704983418653974841559815001976518301576929620078598696721214528144106046497422287631553689397119465278480170292827995843948217715984926356848635192106790972915849572996262136180894742409965915243528411443690291956947342327844311261626404948553497134575151336980912380586263092394614000262237157234438328139932856471369018323930345027539313054006925199344258652218249594567567155978589374100379301384304346529348347574267861946881958300840033007295725270456235402541093168905689344207007409830487018394744806612893749127697158452878677268475622716588111820211567697700270300269081997708717464645249998080508856331294412612358772661215669885180910372640297328043181542711869595216183113032007018443308268618341325176692003798214176038953946965694903297519928065175117003237539249623282839391601631660852594847202106200844540808591759472377735075611439478907889359090421861257399837419326266120662731941087728406988037468264686282073219026291437097122072987041220213440993684966897367129964537425487213169344604805283626367191270126904251609963377993960289071406623559526191208034537413288136225296874767262926910943997217559475855204158559446905925267526099427451467513548414180336128602940712682093884381787961813405966650476463611104547037686616892051025757764757981956799647941857269785204948929245348338068713283367688484700461021641257015863473783383958401325453772298906582437505940851620814772211935429328881404752017771392795102526920739309075932693814030725165902304462678937316616685328343264995581688687884967831185485110926830739850006302745122337419497138177066959940951558229849274511718470445084060640683279647809822273623946579375467792769192593517473282910415115467556531182421134086140571397633716023127020323418107988436570304545934980381641888978902706053155612274487439372517228920327203744419739050266434551576991823424436169102772465787415868666892193432169254168738535982459115722116604110393965922901824357656831006840465399447454010205793779788208137547353157497807006213240958291145584352608843496020481781605223089056564169664956675789395494975302131958241142665451820977633275584436215587650298627590472788052125947056857569728768643212489270720960506307843595058881401018292016948461124254641015837804381297567524651178102191199187818011056840156079167407565068635501551117061070185176070838101560795403960052304710591238613035892302065834442812627197666717261269605998258331763650940817485173834747105646747019820732518366689648197000828300132687618746440629591031140140905080462307416950660293030758768578885425591576033688512758971622671725952058370386410800514160387993585348335811863553774301009948879586138334169359079726252297552511866873697292176591206257018411438659468489357840832793544493152190397574642705401527251584150594771687358085024239724963103260659393153377200407320690358100364081542629061108761559622623234378314400287271916344406264595912665545878070214869859334134275339943795005379398290266391357971837230872444695657956009598454739351030736664112159579761769645995407149056762524177201235350532797420409022408080705861283185015583209368347068247767611022513086598798880938618322878064658233546497317767776914484149191975932383488461547322621029093297499593008950705319758610893524890591947132418976888607034898234515674872719649838900317870641522908009808742944068546819749346047636725055770617530832751995092779004424088961985974767816512115059638585924822628881990622575125070354608817829922095266817211904447683663485950710125395399554771768564377047033155310257689130180795330913969130925029896666080140616070545103201513050874034658014675075553349666785981464276498031605564579376145229680941541150203240578793444214831741725921858407470319586850561236031368740972153038234231639972657411121153283925659704896756531925936044431614875631330395823250608745487911520238856072355313904791058190799034125471598540068037561136907424574317273458268596561800737564607481978475895253008904409904845352828738411695468071760179092780890971564124871975096045374041523820216331977858413902524066266352760662318471312035164581602483354147159344410185161692027156447225394911737806008627920657178001255710577835410539320169685929309935041412251424610335822861362041757953645489820259538818044692130268355492709962392833689539257603445374437417998100914290020177338996477814639512763984288019161016399930129662070834289133592686287627808384062077237371608644578183505925385538454936168602955653236946107218336769969039238632862958093654311593169542193873742067283218117090152140171177575393236211171576738328424654902776648956436171880582561547387005463903227652816246733595564665782522680926844403356027838383327533552903798774948487273913601053504997813412704096075576346748338381913130957615990105810996906801078818651391418572629441631469844814115203756074712044203860472737714550346738587548976895541255841548388752931783823741419476749280791189186932190631328492228216388185285729228322266239256785246173663994618417333475057219479374379246732156136450665947710717066121171191861318428277469333931914157238880682808725573290916592216964188342610786589423828553596567087278963897410101420179963192068518886767640575118605321043051546243772170075225958720755797224455825752026481254824172046501689248799659391934416377565833673493003500025430973482611958738635942746992103058743793142991496535240213518754778710388132636091710314982446626719632636284238965475275358187677611054116906039630951724717874976619955652525922969571726660340138269526116101761439980079321812023730268413824668269473739343389870970204046955052461824095801588219226465530731599476364380904626442009124368800057882609325532234781972374409307777680727055621351743878071480361588106374930906578771289651115840583046918315634719396673267866249351092083393809293409927318451882134764304719403611706672394029247081236766808245189400816446559092541088723060729784649803268920016628078389783779567899414447903554320727588042715825038106834052894088387000873936815844929557416910229942696113513610020946940180851434664003410203733844347412795812694999941918465084830634586487322233804423957734612166890133800120058568354903853929225644263595644472867977840657223411929081143457083907322100380063056431468569897309944530047995274493013865161478333685728577919958981743580875318010183044844543644036912741626080053539846943612097786016674412012564209547305207210129200984303538571517130060867027601778908153112676649381971908497991031197333095142175464231961749582679006379105434685947685665241508899354804846340893621706383545987732852511836401622009598258698913804112802265891613013943063767992863416062007816928623074694180369814503646535114749341998884386665326262578762872341648344006950188928767319242745159180607798402725378450164349510554409632890540989512222685946742338626377724928217399506628887400457625984804891826297006277288032137440636459450590009401727629982947475315963019727978773266077403428974851207337940321158799546190480948151774237045181510709345154149023532246028430623358800675383343653088934607080646514359220886719888390139206947547064525807955392809241971179484355520898235706676857946249381260009875889806645214939856460677206480202006640823410582583311899918867938254635794449098046573052749457165842087652271373575362974591293370268297663769306010262598770925272362786780063718340991751602807813788512462180973941558525647067576953735203396416981604176334236894937686015791215918291288283014924279360785201977025099911707392955174437865803969479885796468967363396405306386700706396221158355503792830203814839497567655364534153253328801342872399760138883460793032342838204366646152648343365294154112634177794996578171516877937164288378097464492627960771007751372759320000764905387488870907670948684248983394982323751088886471051222207517768792086833427606303305190505916462999546455893904789730242510450551006844735575537599028748300109369774361866289867071972011042420364110361922873530618734311500945191877670227885584571815492164244915443237543502748758891371939106239497427198386247639948997842674833333459915953473032381967538615374611770208768352439469578538351243862657100778606659526071712654108823874884539475341039950687806293622221218984051599364778438347495989781224263730721364419807570406738081055600859438010144266201524148053980740472815795903381125553881012243651719999653784861095618604734667072195065957665377145105226998704468166383594206583797895402577441650599388088722903459425792451537911923326016097576819218056045700575595016391166351762407831597055105568807150892471136544560791071765842712909602739345202190678073751763775098783357529011799683613860877169295539687706352623328893359214932101323441880390463589908356800246277893906475573913958789917621955959758548186105091595079053623240074118108517747684247235642344490613596700142287582888129634274758654853615171998733011398790238832929890824327409725846372465630920740177210700560164972171590499923725444171868699084774224152958138842248359970386370602642963210911009009412319690272715987328295882508735323980760799154569682717285664848955138406474628390664643149350116577444455453044270048837327021180682930143747490557210971167525101164196921000060202206418947960538817614238813483821123562047307015884182918319911710758254772469696448502707212190370331231758799550936974010379339677253842182768145948011967902203830629502003061303365337081682543060279496132166105329123197283001632364303582756395996839432022339880446340570891939070408148251932332939389275089613248476032475585390177295851611810931985047799572826157180500671481083682636124957463113935073940244520662789604909960498701584933064031448200628414926271041657230748917836578959273174000921851463962624878160953829515239629351534289586022200437673923812850383302059124364670724513848161808767086529124942748431643591852549636222974843633138801671599912520133147052693906154242332484196207714640039241955221180032225810538727599975602151929353995582794311747398904060688110502300175001405764544928871075751912791790988612955064731787194901922030217610920957843501960597185872823050787091983327139430816112154632181063176101318581816067768856779443260640213475301957017504676333381540667973956049326529922285517295389849740161345355048064472991837516549690008883700709506831391955386842409297808224264527646780073402978970819534796020984771191350739131195791106524300925114930268767179851352095603871721666596475473219347036759725012611922580435661636915684780279835241471388138439884979810887944500905335522341976591444160856615861971802309633089802848233432245600036117603081653530194241095448395806671704631676945047867084979735006008668741204769231351509530783025789300026434959940989862633029558165108618219704327839822178172934787522804355072969986015665986490603109906753115782153016424243696576239109617875731468871124047580735862250233978452770569711657140624203226492790416092546875552814378542212305399547483802306680765793226557430419669685799437813582512702111779117842901867798733468631114938852623025953459936453154340794975332988432386812489307490651928654185712446303593799931558480982008713099320015836969257342673986112593471554328072243696871616089832303731329417618452249446445558535921371310850430812747802795311069564127938432669995543270331382772522778703704559849883316091369563752500577283638026212993317309200992109430365423590811431779262872370824574006681752055488538774607725955214461677461636087446123702669239707467540716459250100912544451080944225312572674393840684034661432064220487139743862748572879591067279171868181646731448098996002617772848787832453434269793318434562460483079902711479081057581573164406270138467459191701903354213879377628603457939531685779223601931655310008827090029171332587643978065312045033596740769400633025897522025563587987774238608221279648003749508133002914848933622025910296252663876492708502420247380589239801323179743197492076947480890545505748694494846587657159797752998196749299007731885388634713188583802608999604867490133718486274023656904641796439482098387540189626454360151530129108181072891018873768552033033922655081538728622808385318756261263621164427097622508425724836028774267961685737287364361655726121261985448695395313211058341184268837316821533933996421356845388926806298651187595243899641425926011890444194112457500427733639048380378088074712972108947636020984515959237588343376339011925486078555041138901949297798280538936857720054668670124602267446781622865620120380876647532661221458603686509290845260711803626301264718746863177605815229845797945717261390311153908674106070554369992889100816335638282682234682333277326034228529366058291559303657346917268493474178343489525607874868592621457029011466755979819053328644721856015109745226780400626381895316442148969551452860675246229545075887200044871475864102148184954855900743591017387605302901741685786763530264847601997401728260633022408380736454215945438492786322498492839666396196442715449667159583610360495384547605871401683134476378675148891590171066901355480304234878549752481638253668832334441649732265680960290132930054656131504925525510294100200784901864635011662730244900809505879577529032952720974122813096239183637124518940713559583389985908966620594148822328171471397072858815625521614269742540078408454989320695781872286295991704722846644294078991576438591177110326741684232788227439186211570025545727280377961431731532355438023899950066211900235124270483304426272623272980049208204590205595780350972204690238659783301187597583531330346283233870250659113121449387836961450833077271251653671178725958008967444391910326390462631448562445236048234150180760056895467064337919310332564130892883446671049026074002414133977042402917029039889482410406936803233130786238173663730402729434336226112120151834135480456247286390278088121324903844751686836711955304570781820749749889286540968105605959526766161773574037578436226474987659915486963111700508226894568069109566968758467452098222211957134655112559849170177085336962530167313076075101791058534837598699067664069117777183240696491820377289105895098847441649819719918350893772154160652212345218963847436907940300032109742880078505330678382643898123551363567951789089189530390381062492557564331910168158393274977805971023154357416908982511351060268789060703602452260000397514332401412694188790929255620321416180224998547877701360435357838180325454863765476798152644554541733370015019294916509275329854291499544572126592461132713083062971321330851263188565944791960029082441650672060835431709870904678812193799446883902036122263087464444096264199583740351255563113176825452416105478578130876698220168738906395367842387932286608644958487251999411819039867553309983950853362723513682298067460163939983961922848208180932610713148352634221990002546272025579119911456030804785763017210714689608239421311129402407535569400714059521213795910839672640693706128574480102229394137005302441040123983004411338478048921701570639552591361064172439351634181063594415838518274043505514665794136945955992959827049968197332277049204199830229997351596233940783137253907014346391757858427089202730502003309073307262914927540068355922898893534359973844425198314659890301759777821115155081429002912973458117422192461978589524171251199070036586142457744371599476036892377597736053565705208339445277253275333012328090302804827023221200163018588557385487250803823017331946734798725610393831108202997189611854620362667601240747314763260506511890694362864889400478917365293182185966530943024416096366691956397610865021143437554265989444409379806251316431892689084426550437804098950720825225890919205378287647280398457971780486609581150012003967614142977320670857232705814496415565959065321545260365489374023171051760071662104609782454981535921312309186952691752946305845351012149069066489802060609636535015689873028676334537845786873886666942397763781434478296565914645624115596846654924732526909967072588156521013638931719708602236110000199936151431904924328646597662601525529691395929791242376130744052118642616211603981695371705037327322561331887728012748490607964939036367082968244576952379731181816256572486913449559016282842109772022463838754078361092666847950795983492559461893067927280404981073004825015547745763686024911144322684756967834237472726768631527205015426480125895263591173153970723753172540676296239185246954385435735507930460488157225942084470934724921014699842415609664589494098009892946286416994130186058026645916079516826450290815595980446543959913436081214430199946647800754480676809511094308121541701067012010353915916496104249400436105438296929788090226970627879972992503293813973244218978235163158911532865936131347977411232450962112462532064322927121252933491120943703163219511652879277960604788819141824459049033918911414309063902198592279657226766820118830718649327319360685408237385741453251332732353061445843792857936159522486231091097516000077298766811219941871873148639681176588311812106637439129270500272820897271879865051155087544236729834763106559692294547472692183498611731213494475772467197492520436214501901556876595765932640345007736616357977547985015866058743427255968789891516524600033050768625680507721126351761794099453002841117352032180436572327508321714901348736191735325363870997360286510949332712475306212200197266687700366841986809345079443101718335685066200069903204670599331933488640267280325547374105022554410505326449829391635102541952525390803451025994130386473746084316014785163076624528640384061843999823294612322478755233240375576214516704875250633233204873204492703185938849105164994721404234228401488310694184607607537930326720636369328875775110870303231337342745483957070524144239962053817705621813968141860926252158220899967062546254367584444449551883821398637891689599781809585664100128000103695689817627818159319968679160840510927759829204606494552562831219096057620069110525646109515482727249099697250522751796140121596426424997884522848372009186829804090938556817262576675743393930860811143385180286091958016400911678956972418542322374532566224675825753884965923173136625312871326440037985423042087741113248763147890364658262874426077246131170474278509321575481154694982181193996698729236616072152233587514873926530926380311265032496281299215063635243550489181810682095878375448621471966614492917565827060382873570742757766055679597652601070696689874072848060844003615634279986059062591829036493477239433466154558562179416781445824770310031244962265386943178122502535886951224143723506443842543643644276109937542275272073063211197358290263993929422764128898016276865666593359601920201556155908400328794969467153027004020847984689374236002029902109908420862162158743146253243682822596710895528692746177358704621737696604686860676677508969538828839827883482639588539886528451148040114894656051783637779700985260797332023661304694531401751395804145836034444002438218423355210822262645520867519868477962773006363853136529468622168444290608915353174849841267434259746462568468237864627899565508261299942579626991202830715034305836766611449334931449389540870661892895828432743894421687089655838115038074712546631392395538053101232697873879605949395375610746552137182786489008506068003719340714435151648474188749104302836573719526404464160973619583011051793432935022044553387316218765691589797352362046174442146707814741633283013264122566770075033922239825698314501240649142303197687547064436515299261235446089762750832027790889553968022868380201791777461372309283078597403650812512912130422462641743219928256636320202705601394635506110736741493118731898357665963178391900652434623508281737614071249831960753236805188340922878081530912157882141024756873842867183658929365333068824286974491251935126482156043323878198804454310543601009507200559440624071923191186818531922236664185451874754803000343722750817210206842254868268658464376400815031148974920287808986689359387682498148418299628308799861722971959031195999893994985932265568348694950068271565414202099626620264253068957623919202522924446748767149437667701663704493758100527726740005161106932641590658866840201842953684014426412609360201668153875270001973276683036694462284004101448028298179540315662019706992435567674726703668850051845697240269177057948786615949392847972328729285228224437673286294993777771354942419780135622839624032753363570937380070296680882941960937574784678617004325979806861378238701291995890221897267114989987101371609805612117222045176678240669279434010793876416655323520902765072414999082534431430605916133695663995741151760900344110344710271990525108721764277846893774989202877485536629521220823056256756010948278312301453111966131159110128720246321150528044593506819732164486352821018639421961616191450999291904602754654408206063214922159197776510624537326196815071312733651833901482075495207898232905000995104814474815673937597967651300564475841955166764522892960693239321424874394972703907967250619351065111301701706473869838792398502051186212018835148992236787011624253242027265875764699555273908940192570743380077654594759871027446313640213980144610137326493734313795081120352179063225472660596605839530748493880635620222044497783882337836310673642755433505420405865961624231745969854354066549495281589065023827047020244419403335556058683960024654996349579947243741815916082778788788193986338362279274070273577208063194624314103515525419686645883462648377576716386068602675752393681860338903030106586387086197342704302673608156125026561778145335869452478646782610684029050352838783225181309200190676007637131681300766347809829612535740217089664639310173855789127535026807395765007195126748519169799183735615664312293718911844939088050346716414196857353853413778647861780322631774713264869705734737580334688339767637181352973706522030789029872686456075808719379696948838575442108775804203095410052961382433426107748389246063136865277527117884160231919317482120100511146405922860710851903971893547399613946618589749728532132506803599175317129684931562775814126194760841270384038239123232016891583835128165972650330771148702805573808151048628186049103679231791508872313019975338438759082742166478178344195916118229023990285468250472631006303735232251178466132640343804857554494548961882533359893233449527337895467635641906842516467562958873918320166253033507015843409716020884389473932116362527376002375637753883561482904849490715652885208008994767685859985121310025411990174608038321429776180905808794484465662906573225688447768542505554702473131228258471170138238941945729639798743545292111521085046168660055445184595184548298295098867589119268248792701215666351898365447014161431513584342187434442968815451599302529638383418929073349623159032698821074730540208883866493252695591355464695423013107597359875414504164166573821973787401402236659398817030173005076845367579285314930398503985187531780895176152649547353721636086788399567446427505582721109730830814385524434583224580509403380367437959829998610869952071511217653123836850408161926542796923363799028828934025994158904923001404572749371945850593350510457834006207146963108696246721812191775838843787846007886509110273424302222808328211251110653093804177018940441824014697284344561657526234352114076640880324705168141589063103043441918706585550389338038894934342020265403851831562402032314919426022952216511260074875823395011015136244552821408794841622831122170433660284667352200601978699967165567251385718695117231924927176167976188441030976573279509715739836636601568157329216230065258448762604735216699904488298994613470550310670735245800028091682993744556002353946458131731151845280745878896342530792997424202401268907016667593722047038688121911267828422197458892969806787583905929155460988401133914011892164022652762042184201174929715254765218919163210361899385340208075317947421476369010334315683684523930056597122588398468995530042629061541506710770937412510437300786326624035746107960024646627791736524024072813878646472660294188403908577309980968774098304528345648122902307703820090785621889275735025145981129480424471745739551013914805449490487030596827019693652829618699292868959424355290489415859987438338237604384767701898025699312013001445865216763595609459670810183878662189728440940078968489602650804909518350782118257877402787416195342602672320934376744449816657191195329634019006918002642048207661796319049063349950365955133136577455431413759372233078326750806061111784089780762589839746099261670808149010803509028011246484027936115556200803945229449650363270349920538604796404341440854363089006934916400354250403662307463778747885810638304781651683840456489168387652833893767316197504053423707287314183008539023230049357839856742498659319126973560501180732994976532636023800124134714860492863989659305014182006921092949615196553004457213228046450834021932498024745702370754244674818611208118618948599691783399068572159330397552029876586529955964750553263494682524238632756298365170719193845238791222572091512181407388636142387677313958083405698300975835528696097576147765867039044890447558178088529312852868070856747323612343857134209361724769516399217812538162498223235205192002495998907886220643720688276600445657289439841299743177809458027272419395452503903331317644322657909294289301932519435614099274572513082603544269334539473852692765514158133247335657832668276459424015006742002394969114834406973521716340210946404883230214793852536345804699423187670034510507326260768167901819335963661270800287245588308245334966339852577380371774616062951545434125927642261066868969771698433044607384674838170517130151920799616189083028086099540534767467684780246183343743974965499031036760689426074833087069894044391496871086498845336139099963613452355086804284770382476894530233517426841890950192923949396350702964478309405406294766599359954452081044878819555000009565633130438450749311415793024501250188567210803684007189587602149440492626183120744047722488532822164440229213476299188854780858213612117641436994442360020057579749067466626831761852864609393461252179731835106607730389312729640837126674092109149151575743892721106708126054662940478175671188228541595217148260343771582871815068187238848425346756992574462370080021213227468108390654069123936089027038652169915148642376502523025112395760331454637431975159082546932195103965497949737200820575439198668969506865643225129367925892567881543977835413602583135664298388350510357937558003167203308614553833453620255684429858463182282592606692664313440059163392922317100629122926322579364263777615197321869747889045845842916105157476005744114530744850866111709869591997328234473780628508410398948671659646460165502492423660514771144616201409455221092965363261052053286156833202747804347431847838407465935430953008576247546259216755263771853923652382154104471912138660056052329670029484194981010184912951762333720903041415049495306041919613183188220841795802619948553791341114167341888191406164046210385263559163279711728856684438291532852852775713852029163052589893212773579796198500353686341484197222350557796051418487887326949903751393928513413969391154590174319837691129390674946876642463978919884863675942687001462870327558206836117294909315846312656140243693073204806776798440737400148693809786669419269495091127128807236380427112873140742514687323779709279350297227372088003616260448058919968923976411492511124426937194286785939991777445878073185866132427025945711974998757155771679736903681234627544649212695486324036410299211476356210947526804515210182906098010504420789506946242727070271293863068799517426643582122087374974900127076299593761834501171581455399252737841026301978925880259493514350700138376848653254983251377620437425125158411399734626624724494355630429798231233377476156737400558820385778755212536209222615755626750271215326258358426289190035975241376052413855753854361147750727229413072263888937951570548228561710904054310593730738138198633642847291330968272935853905989407856117284877198908894644775936027510459544315522819427209965457253938294395270095719170104661475382926158836962519001338688298197464385396782375386528647005206114854265425762570234177831690393033742046312793979955925447751331770679930563615024024286188057383043829443440390552255929587184405085866934620906983567731297499213653122891175214577118565880874481572963855259578360360920122269691651065830021656806732975360730635919802498938142562773719233477621261023919587590538167700113736624819840368236223474706834513438715608832819703405988880241852051641458044884217375072865203314163030070365918484753177952721742605974125124819201310146368587820089259428046476676897869152936530886440642814218900212209458216444150531224502832052591128695853494609270617882572663259583712152250872827821857106819800033254678527409917977991364818244553837269951454220790525295458942216834064966259111302325955024710086515230186940258247650672625747303564250597501702579415494997671500368927872469261319941243621393472751493943415581274334264087638321770982185303324986785194250420957545003527733185815949250510266064591447132046942361832804583250799157203374971586036342054650383330059175312829499601680061034581251291109823888754094486639541364469811741899049852087965958912582389095268790739255347519863899615988786261944575533187638181695613941899982168701950736069970023359434228584680253216029179233294240460910137956244469928048315931037261095335653086406725727277357950599708814717911001965338505527107586859202132234366553181209053955886234203746770830620126197751426468499895094724949153370314346023301655839270016966357367776521700669743593223811171563532147163151911085296521378029862531082617192093732387813947118848790776523692677345634435678550357048245674716015403016077323659227241729136978561585477123440124383945655266734850566939975070845697386588753281118111427488509650258869502665750858629816263627252259616752297893077088187455031756728023074800463712476516177765216691827067694748221910683946241487484955772757561873856213276327892655130595210052974658901250970859796061033657631050272777503389268689027739464526147434939163369465859558796592099569361668483880723893375282036860633461587806059128360387093328673839391649159559227965778486508997824826528795389026217727902533297077941192708723858528125394484792113244528566649521408879342165340183486650804181137785248490065516343220647238377457841252558836842677419977530408207540092604728798650007848831087056416174957950279623819404820272692580405368730502697270141327710791414398807060859959711461539048623147275760146143347909547920011323210467510450184235721211055081199601051264190111617618062118653734301914810383116808047197114101486250848312861653794054001161776970467011020649841224277826044113891812669896237637482136804852487490123664432310892531017679965934104088725177415610556457501348224057618426175627022169226470775475812738139431033770401478189751637561909505805609802715060079722069976170050798577241633064375054485975690682007865012707208984285862849359173342346537672478630433778163413703479230655155233098286445106828093608730581686896247313685035949439471561885526279720967018435618252367896485438097625360414167528475465996385895803336429891125219875834656282221545756823228101020848545400674097010232702650034971116629515360375939428919914641525734771539892762237714508489917493206814479489760705923359096800752292254109528171376434071980437496788722523415976515511358707740921137491947381388992118811495911146507606643016187164882955105095020696172667589907615553531363173573428310011865387134942613367875336181196739544039374294385826372331597007592393123485907967194273227327586247930276608267536979448584207297677098556663752412670511228915305655036246237803904792336289891259798081183624964238280569114029188979964779022400101335427499087539670762704247969288867304889126248248997113682719524966892310886928075269432000954290008434554858379201232355105115934522506402449514521637111667088017481967040084078844619234397172413318568741586371471542287651052727687308038355712237901191764400610030642138631169308479706894392132980054938774970433690321378303481837050525169798981623136164085356261358133168369794767771371494338523880291889581385658217760771300969570868374941992056931807591798627966456279113854270811009341877291383069128392088639525733505610996070691820478411990546791946664337022102881548685398131524155220214551576283591815240992813890685536123468827133574178754609715336784888773578217453485625334482995173847809377573316456927949525312259084250658671741623474703096256273070706788799943526650378551718522699476366801201226565186458523138986360621102835742169163086400362148608744671260498877697322229672795690766601150317553876560012736677398840108159745458541059161309245506144809487748772934065064160018650789635939964793917186139562559711503484109746486068435243257095546378742336532171730242705895931818364015488884513833496519912614585501993817510031328559868293522742727932500806827905227917265503718964521218835723903847966295468594883907758199755692287669120844126500046301955358492225445130344137581977148566857609328905701907507413177033885866484869302024212115734062455599747970340261774657420083202172656328168789264997259914948173108515823787472141793871627529314632954761057739487855254839601765241439440473075288277806352581776564984122779598452048861151056370881039226057211481595713631052346120724040130012834200424289326487979366622004342773941230997125289264962347023826690542928198595513533857841156553704672139610157272970012440452977939177483298948232364532197202499031679894500049810470991479149556718359157033478034591618922984085590693505181475550706375772893794079855877588096215408077422429451338200940301404833899056707524379802911431705552023333575841851707936583029181738234783733378467862633564011579474140349720202282116564336902540596797011804453896557738257348434083233894610458295155341435950561587217998855677391629451586930011935312027432485347208384110659816739694659458935264445885371453515045795228685197412432903012226781544739229622512534367739713799687557912630672498192374247036651243842635841965810163549043953595666603758638227817904721946140493329536918733185837085641557352652249293463794347951511752297000317502794753247708743091409415449381908175027391715650865486662129773264365947246191651385505779458180846172408912635395287790841467080616173237382021638055693382631927591539476168649275784023896105607636992982927270291642656902895405456363051600194286838474049126579871422763215413417849132155285490163545056039256587184716712149448863604081771941887629873702082284741478372524929458008782535594169943583960919001494030553835262581473863495216997522561357694728931847246115412361634485377391694197438721011653329978644560801470476999089608740671095820905386982323945194582861723075705781791429062208827566919649699937176276351388232971299876016506980429962502326091562782416254747591780695431196326107501908078295160552317943578373245338840830387846376387612380031286704949944519504499783739535761944227809667930569143515147404385784664422307748189067612837151838863883567991545584932247020065664253608650590959716248701317024439681302150455701265651683901931649758379633493563079389587291691116173649906771284816992404956706141352325800000719773440723686749935553644109804541273724556360386976200394204654311160898982357607194650761588714910092004165871075473942844415653208867494324578156763737772816109631381866476152675832252631233021791428064203243732414976999183249392207946398599937289499941793367540926385846472419462451156114228233392303061981129769014029636661798019940198961034145491224349843375501323600413174761287194254711715753740516896553595420131157653141292518468588608995784552340953534088802131123212550551412518378664184560690506784377485558718851669833700032120259085062209261559069073235350185602686729443430596308866042722480018281028676628191482434813889772493366737855256699739947965980857753593952223553914520171123638856142082748850293494748729184359687980389394083151946316193574121596819655157915230310974171760041784577134911366832304226356259333993855271056200055978180593810046030664905862488288573916748993136290060071605170776146114038200218431195450119084251359604009706670250598303828816149079362909897328529589495869719028384607775573047578245969257786825888925568461835369058955681894576999640997331520367077942609449492304548855111170887763260249621955093317746983078256818966842245932353677594196266333934987423367660401093751707467090845807048543067836627815941168343162795998715948851410251171824624833457425712554043436422186611835413031046535386061120269230416934431959474673002226824543832644806573251895321973286141758427303338150807807404026925207598791067383510946052589823300562438233921726542038585475425458429239899758986725973479357135197524516868806304255308400034903415655934239608868562102823400604776195532682012704276458456810435557706339489168647325661111505963867145595681698743553876193059240612039021101900762058925682576957912314011910968575787665970526737952794441011421959708005298507584833785138052195677262386689500303786117039559988202286836441932930516654353485771121316809773893915571143821519815475621291530186343186129201232279970337101466252608882866034329481691272933635001001670748169061890284404442341067534086860431785197456448734292159726149181832230683075097982465044836413251452599635744545537495643042669186434500224512273041566332791794683373236084193684873148862404455070340611880971127597061154068778878075748421819736250788307894662843954860975890590708365943358620437218274100667315212217056562366735551283547754356549678718526793418453796932961228899874293459654159028708846363261694726925294336403974799121210940423697146532221875256572104328363029833674658946669245748242909810125257231298622057274223501041865915350391698194961048251292359041836758043247754057776042487888756933647376967814433406489405299581029971455876664012167445479757789902516613555645641364591796700810453369173642887700527933849933636050343473090136824235048619459847165233281172710901372897048918528175857526203185101091635655592080474993451910395934309469303946135987582423366911293920539142904984779351930927664267742939401181971166992150854580316313175046563412518645400471676282582141424181178929384364711723315973572328110216922132518150994005883106309663471388579386728993766447856091318380410387448682368360341869254797978374399626550804854299071473576282256577668140915442222662524748348446442115898419458876735052203306518461420305177980964205786898098691405793323214293236109300028464743542757518077882423703221490820654326100226395240109842846792697202278284238099724620218002256517340670055135061996831176093789019625621918755287155900567599617332906912902138775421802862849609326950513002756606840402605625509327769461341052104302791996011927119083412758744108341581063920296942556242939409974247116577178094500132658195256228560729249071247386201580406060928847324378379953524340466089203079656827582071094248437691374361376461565082594309606376459827253705629511243407139537017692115987371293852447271270094440690808918400730637785350425937418569193015638604286439647177983183627641364589291156013437364326483579661921793148377332847100894974927582765460875395173877425466999935133135542990318119913395908903747071509461341254592896258591915348223603805347160653444706377675874905636717755554442564163836302763021044300367050933024107121017786907111471897568401473108090943122695005312384883278300206406908493669956949703879229263630925270310325400954952991939959386357665869810655826751246206892735145700827990543801110502403656433456411974180196719038537558025214312384033571850425005420392543134539961662464306937541202934790703631166532186181015594710274986224142666921195440574058475063093041797071291398072216710820902887254152874162746086377478224177977318287403360143926993043110930075855259344896452562545175294462490677149026647571071994486823745316560600254370843384627250042143684360870147411200977300523631516261975777183093745839081312800229466109334002589327930156794738838278877323321691660891483317782594460927365441738515826074721441999950980623390155155762908060789515209287062265501437741250998655444892366232839750947663657944799733122946236433394907918426277172285477266365478955321681416085033035824521786274857088695773074691173908471238304445066566910102086263586542256079189395051990411135134559412027577990506635891850052144646520980663350449641663135461885232854247609774701277148555483056480180160540553124242735704033070630443595405503527629264029939240856392653318174101540659829212079449646130590551652957469215801119657330418183039737280511919594647457174398996276212708061978851656273968331141845881948437769172464415956666900081275582036921549285355597883691803890953759581654072465342260304979157877855115563943750952819493922386319713948217532409844575159445023654563098823656679075096559139763040065991978004119582181667485192350284005429240751877925526452436230111787727630898530185494805520115720411418598972467226833235669584492517576333559515923952288694073524937068519778174980553047264061529557997440910628769799660518189705094811995819889232317745341096650594649617990783832581005759199058786037282487146516473384100625410126087213702009740427700601778533533784255071084974715912266391964813059433859391580991364493104057135341567947159282209515611757672350624146168267168237811350204537712831560558447512435724036022385884138122847594363424606065463690130368968849048498355750584923717522609130858040007112307973816947784627400364811610475320664444208905690518006023633628189132610636018136961446814960349092465387365398799943940236801173243252247691401516917732972236421179039287537931679140738072046657271351719109990425160243709485352244418874677427438526419556214273225273730196373906418591165594596835073874510331623500569047576773702967124570242934272677596739264719702368966132925286536776399612035894753621077557686819200922312997495971702073812693336539123345264957949018598660692125183752398729783807696134485349800500484793693012089395421057464079565328440368957094041126894282031295330617037286688104638463455411052566453049425681047334249205891942338801405838825342308049672298391397923987529886562541424138068850569310101871096829582337596602336264430011081968476156974538814044232844732863438578858252044622583556417807473822031655511486357378106298730000646868405304117868390880639273691880976568479105302023499186802861519031312961892886253513310186645720132853847274497521081158624150167978324084080868984227702795765190705905932468748173957007713844178427930609734883536641240151773473735859690943757590319892464764645945707510119024432808518854781132951114740355864785482783683778488231075295601218007672872446835316818041357464819845282448785066222833187791087520041569962010018200704566021381022621553510053331871928232858591876168733497464392924147676715945772582762914031735154830415812211194350050654506739210204637627114497072620274449913065992935376141215933014823937206814983919669714139681727202456234453966808283164220001935329609299530632278165088846169618339742448182001909520712923893123793116295180322804903907151622989950924328133069616719203800432511032408317106043289019202188773323971949491133713651026773489678970847780289618983745174163306026921115915862780114088790473735803466638536328199023618453595200032820175713223601997734964758131345716104989180801184327004522031337557225317571079418787288501257836649928612106924462316174962745781800727452439808906343754533569795089293047767002743353890102721466945755539988815138046420212028212278858081610193961273454326935561155595984926897809436653465883746873892972697188954396156011650026354301446291523411938035911260568148139790054529794323062488725304064936738019219680053540002211018470087639118734930671460685367499437551453028177548833003697861898882502469107322021762481482010631391761485940049444697508482820605020475166267742686384346689828549523482931064235523870240270222265545714634235330927146085638812729937930667976557423121644715629853575716011124526465512403291105233037362069012125586756912350801348721710176362348304358302526641720876227895670385883262405820923902520423342557445665990323465745682573794550035780618808095869822257155936885994744061244252789549227851753617803798392374601227615122397185093013993683647025219564739133855707681374488882904265164706034771747940879686880539669362500178618387661486353768691993804237187305271263958609324581480678399448649247411217175041969612491051005306347227122474528882643955359156810459043862465977813514740592330054238241268787233235943420570242897896224938564542611350816504380199408340449491210161306602644067242271530048061840167177929071336851741275933961933850211913236062474988890867907348402246196345753963048659856769782157990668761195897310780256110402833460011118711445488152957574595624448934835821246870153135578098879591961393052884946502001644229494745915261165344714631242618367618996072112635790100170232455709111404362424687960671706267193237674605992658913151916625978098323759401487865504449692965614733996341512038117955871469288173651399637117522553666615881201374332581990382596785518735215954531487872846190310120820558738615482811970681164441203395334412266994620494760535812789811993690103409617102755931056192522339608407265476537429806359467456185835583004307377251999531559090646249650576347127523158925172016632823626852343762892725433146931544382733251344553660575305948058216971380772343132418402741288069648890517796950119670013081332263806172338904996244247060126198912799482920717306831513455535123335392893802559211374792941456182399247798512267702850957932891139306603793782662068698096012078627730107831994786674927939463333655352391645024650156083118804773474297049557526088540840039072087704228882071351856126428378962832996092440744146153176262228197142182592581959384796110909927718142205441827962693339737132619339084041151418310563664619201328339054347518897083055593961457608217660282465652582613664783389317767860352512995120012847560088804805127543943671646758965895685922511941264866193219553414362360638291044983744775050440874393371031599002173606632690256129017032440097107610980518458964374147963008186282313187264806217357966511430528089728397150776774268649967162526312273605138548785895962888935248039559014280722437965739628283084973705165448870664769369047619536197414506221713563617498030369309963092993677542235914435275967117089666368273766213498414715748272948351133794996150384205913530857961055255731850284834425191665099647811394987275773725767873564522746405311356569330503366799505676975311482858613355322581600754400772188661365253582191944370711495163674647025460828559001720524217573677067693641034343441810287441896578286756850309612488380503821408337656194893055431829558336539288619679654109995730578607974048745199688743058010928743476015196440965436718858067961946196796863112227329714790300113707144538461341215285636555900656814309994231575550231036263274075667461057142656513391592387628385547573439631869919431603384096884594116193843680348321786889388318772951612846299319051452149358498491112151392901914315173451210302829002902535169657494084810485936759886376707080239773973829803057512828719389226606881253727831128005773855689698154903891784446012824616312274847151854686986355615638368928212821076058810657837189310353575491584338556132744451585898436040690060939246242746813244746723025701303323969859294989306516676833010737482847414351086376420488017397430631716554050529361876481357312949378883281996363577056808048597978754368470251399121984288529475748559280362039300389852233011249831534177174953885199953729489625059668195634201349956710916914176584497626365418376250849219078198611677894674934528252387021239171192572293292488242153844830949177130622189363283804670197124563659838591168164281593407530408761260100940636099550573740833463096007163862336788012268310818662997747345982248689501243114521228680873397064689841152226379296408554394282324317673255002970412461850509812557163285245855027691312535786960837398703600531886738749242709755363769476715529746867658899153275871348027664955606075725107799774214626608737251477652428984067069033582622083993402303499444031142336354532862534917736312658201525258603338172098078540771272286420942197410218985997098156937908102608261909152926919810350081793436096004616565289281325265116680161445438362597397633857600084308029416924355154334284159343277446790234816108530123487676837028930296647972104461578941369245963973767759216735949843446088025041615787128310987619641283655128381658588836822795650981553126997299795030421749411840735874837835586778691554767632667734603627939596067437455035494113880750416509414819921932691036459201364282491684065704188456064386754083226094389560471723709718562936853394668625903793594333086256678987248391663110662279058715620026131940529317142150825158883744953191341629222312367068560312216045524625490793075090956321235749552020483510160488557503664513784797319172031167299463969466059453119725841783577117428673220616271192271302956469535888285391354457261223922475308531149888634866006410527812503610601849087994467401018425992179861597829147174079713371500936825754575522854475511177153687913673063162501253329523294444186925290774235313450800685083071662674619094028180736139351671748542300769855282656748758924489036023144764064113936944170408804510221601623877826394493101091578092030234744044512148521026327553271411776904643034305227232884223863673346292376657163901031836659594887078793831130932290274057151284109851901915225315915735419205278606543322745847456564240159681994414948668257042595203851901199961128902309831312539062307742992521533428666248776134236839567830508891623957424368201054857752695458616976808722096064318046511009839200962310115644194145940105745444992020781260728438269196336007959356336641953847870885896462769371014111617547975305854014431531118891230255015230400776391976686419443624212462881148911931735400650457655361758188054796303178256092493687587261461564359551639839276738293082977817765846730479451790261891395616723211250861773271430444030903442928393465769382878705809567686964320638429829027467573350161939531833585886567786506860757501219082168443862556008545530325803330852591629897244760088788740535777274919788100862073404652262028272543478619310070705329397593018270790415953564064491764996132787283929648858204212734021696481049349103988207920806980084009669374489623493134057986024555226466236741747849384177525576395324138092735058509726202916370149958513170214254038501304143789191271718493841933988991070394866014415441885928695591944839952788579952492883701161418952443688671381047718527062371810114056091923535563752551562479209237067693102736349554501416018246139768179233921248251416748303444481841317254940112758797836141846702145210486202775784788702202725561586953155578410299068436657693002698697282824485390947479526959907137165510605200160569851564714767863595460763266204223319481689899638241440178876413812473518418777997385488402642182445438190375938588454417954139298930786837158088657732642594388981401541457795244746646208878686286505413295318138094688592455507995934705888973406326836468953248886209592466617097992841721797227670366221853478757474652359972436338060509271487137949175216924573146822197471584928615780728676350537740930888124518714139563392055615097940091918794623350851108585062189471637559354531299366238902429741359461844659169135281060144102028649923219974108429412342380329740056670523945376750222451663196835584092811170289670200919555407283485612266836126372436126101424755597114801474611637162477636355964232634634503574033422111965296614331147432906182591745732403897220961760065678817738055969745171109061044064856178480625286457431801024732623408892661081596301365825619180962412380162638001764276142046610655032564131782668247209950774671108033049924793302071355107763972457549612538811623874246943131371888389817360294322096311496309855617939242674838801343124167054820476608152494659490365425737035160415212505178351691806710089085110548662804064853862629988480703380012583117094564763888451572442510783217469821981352337596187286420089138807846480021660148573490370682728877832927865469542803214184744081465875203217386898362932432281676007323327349991095654840121155323951816546128281278217716945350508525019811050533581494109046723650728950803184321877033822968918769549049680300915098082532005238167599904214152012825866633356559255650617072187457464465025506448665807669988908689666696598198779959085264857823213021880175950018137470233848629541462361320908678436189497752143067574559542390465952209926179390377360931780868624005878112290042702086196319154945424934167390573091507397827389572752443361419138627938571594122719211329226058153520843014871920443462739876440331000423467133724159068232983197833248795899811040829634916250644842773033092229824973473776631480640821908377466385832776473956610334009790513971609395651859536771767048955134929810444242256034622470733760981447390681230359481895541461193104897458502150480166412293012332350700593623075297522737162875273724995951866398589760038292828530702841605490847346445013022117265368080466689192422124971302010553550147653777107914449510053351307971662357060437405988990224599614800044894977914193209661200788094772930598533948293734857879328226763504861435284313179768096363187929531051957899241934708359066086966685496716113780332665747147090826712969805687356378722163718374986366901877774800170099224658792663348512333509091534267989759024517977838595210684677672815685256475903317333493389614760782887481931260380925607594654225442961886165824193053186170703308007313225533722763387069368909651048118326533629753417486844372460377170744847654762523981445910873878936751571978905794702335748886692904786320996646524912443799105744655558820091538347657239742580726729945485296845800552400877636203338349068332221490899389808255222589428126951838504955887266991134945826371584424081781511567977404734125903447957352449224643293282301751897184442654651380690343975226809973632637915633996579580804268517737146235613149070179358167450654429317109458950082831566234067051669992981461962778981202784001027778510348293233366979179582185961804719461735142567683398807570276785888894775101734691849066510728598066355984344975900293847919806374585817456848822145040648630686916604190613057204754462637998241689371706005899152809926111540150768154958433772177030138777376780188551544609265100266270150469165866567512919582538352986865753508265948785622332135761383653824099471481857255644056014852023942708362151834710508295055688220671316220624905368113772895927666961013819352705456049860846336031560471842784576140357508470106320674193632516170615474730195942629332356566183413102967830508478117178150543451322612505742552015660172937423723274401971751385040122629543793039380277235221763565956081304616021764530397857535640853171907599756060648125772290803957309918827319434002525090472793286553401791623209445476370969306108845871729901009307141470036531807921477726092543151403708007174300568368648032518758042261902547203471230238119389554428849079112923898215979482069987165894502879749479566775997611597473293603668940616013292889608435020889592045700953752630166781756543297387777482551312875962587299013382464988616211856206474893080052372519628762224780046040573973968972388396359028137010853370460317440591281023091494571673881846407524804395583230267629180277499982949624363377002124588752952371868854829201243621298681930799797245046765667102792706755268793564077966595940086834348937807046971340083100153673162777276292013686220234817503640945006975267334780957638674154981434112468622010246963582127686155750190573805519657305924308806497109330921238822809872335993125976420373857066495218422247906431491438821332334107223297601704892427147660598098271655899779846058583745007701006944677471193697287300253896460678076895322119368853009902660846536607358112672819745204529375726086240763686605126959323518930022626571404516777439232669446658135175202790928904365126132012070665501386688819849601380314631887550656160285366437338980197949806446152535158483944006244230399621223332436945589343744077232938536476865334628238972603248737476242770074959596939403754259948006435800538345225335387475923597356277104617805563317417818248944398821836585325098355082750542305691519012370475395657163203989232079390809526205076116764289834358507405680300294892447171939667698507558123753339469552653027328229258172305981742711138126097109141664643904625482175813109391729480141753492347347759303622993631495307976942065064302629186568593700891040754784279359210487346785746605014727644290052454642501657744370751152668423580986655199824477232420366329632282668618895268717521825017135286358383418973749943382698982019812504642023112371476063920920213752003723973931760556974082934768217365785584187378787366334135629769733694509790989980682002932052416782887182652172857983824218999810160507668927118142404626544573072992681719928956924827734371228546124997431544244233288730265824241937160105997901593826101124519995898180108669373813700404210014920434360833483854138689298519256220553070303435830046903917184115221975714799290246601742814411464403161134951950803857452565526115643180947655137232065342944722353085238164604093055617988012294882032359835022848437919792860253696664430841878624295384388981451091939023431737389700819900147837356163868270779732038936569398099898376597936500165937605083524144485330247703305085655942723336335564733839697969174708403508561242690104499558818573767723496023435457354666255732854031709920572554664621007126167200298308399745145453586236851480559286229017503828989386008218936701101425098628401676042615421175622455245120495342153079144845695694311727427666203918357492655622001868130409541357410517251227002604991425547396384098466199753167953826204577222645986803230473754852590475155122136716418599824452185292747645074923082315020781526128940395110087052146153410689238162276261986205303608373099527080916089797371305160444363126851232474889397211097224968259745433015519252789674822656410672045542986428908143809606496468328425830425599409177515748195032257670695698483828851467918286752534899163145484335343390896423188571957378537285812329032576061252858221986762505412566405004034017728942007395115402995725162500724020867754062249778709750180539827858513055727373913578065072978819502976306021753177407927593543488133295496374019374818472673423190874237464070467920344334684656079619046334388397626510778307843353174113484650823746827604748530243669794886566618187580608923987718568749898484138068438799692889592259721465365169901842452586363956635248792184586933655202129768000854292406715015470765888438355453085770614087413000854387954128363433895658161920758459367433423611275799200375060060465489310164093258914874233972527360699307479178098902687104048869184177506464274441133249561069208996052973382255333850918751796670220393617705545937749582721297174532392487301976576717099304411432504264216913225262521938151669542314064282352827238288942801427229686269807996339618711307079349267059513186716048881781651842999436121983549636667842753603090555758677164750202470899084461076225903419666085991539315973224669350655864286748398898155066614987480032995598393740411016800555130255817780580318184529918583999502972559457568474286039311195454149985031310431326781584377015574832410801484999975243550346190807156045403034250166513732712159493859077591131479608774330374970250094340780716189023247594025327714055175574887881120760687865198375463179224457807301332320446516020371366684899744356114257529506252015035040902759153161209446900745077998926444038560340638977817688040696810345203085544873097274497917358319764638610406045461046939926774417096588491266718423036912964889004142838676553905113215110473543063690227040277803829709920733129619108494706503317713558525099254494275306508694886880193521398235557572104118903602173930296699529161789852436064136542151547632483710330453576709779147593741395288418912820961296637137267453953386847232970118177415415305849244373738462891714811037089841184574149951123888383592899035034144691950028397069107066838506651956713511815525776826375206463453135044430597270700976914409118765099679867058220866372593393715931160356135093749585009096288903029664922583632867939689530923471428793219996742042550663192810829184194948636060537157770337506061105641812648482531264443153630783143709391824586119267063260324176534964938518128114158707615099964758242049095434247779437617314069622618608455072327849985251896687069783504754822003241325825644985617852313350124580289306855322408496083553929048451864110300300628901694889165210274821968958556467983276254713868578500529658652918041504794396956781120318622022836396480590698331841474641369024429748888300338619322662506034109164083637387254275416510522253180010412023501889124941262228269710735342626775046771155305231779172396234003993045071227040797945680934805929233283108927760834952211748512793091708363485087431669978719625601282516169751533485329130876071294700139758970812735877497350135161358507216334928575794843831067224018348107465220104704175644745413920668037581472497126984063807825683297571991801727315929236280997136806687670214504998387205042234362204689340895211884022186261397459875471260668267085634928539410424807473243117410500903796452743519833340436054767565699346814597969830238497956901445471842617042881421122729713979043547028107287030746618684265742377786013073055152013750556204627127783282295584418999048563055826874738947952768918211140566911322158166801117715602456621025124812244541131058260892995148293557392279263402846897099815182724428730443732497099167751525971063263888898016993108996809102595138889582318889623052010250039345962169987773988769565837335786917549561112185848881911349890287813837221197314906145838972133969291464303408519115091222527598239932884282450703355581164213293170150351753789167209571053770626516647846873679573544505062264937564292027236039493679955707888038447231393630665344114522327795313173063195901326738461057200121097763945151522384906362265685547462292029890711162627273916520426861431800978447699990084932390134282161479897078063730717683278769881159359301986396669519592753673715651751249670727785067996468086846811215410184929878383880446609555452638367293756702811361447424513893725980617142884493711952271175873258437050126983767530912294326598029234864149722723989362064861476724011143158246474483655796934842384700330224900007291036860438605191416329217600506558136851416839662621921903815083809092557749775825179340361559915470752524708866951033563949494956738928276344631860786772727277668577998111347224930428020967550620501977322311077630521875459568760451599597585160865824721114251997656323179293686939844233462675124111705041255563059912256033550507325904542366001194235371686171270714092415475019913094192792488785159943389241913790962846279135869504628471487831204307305632608865988468593307285925989256521416967772569936560039677643439814948790955330726086147770888698162040830461421630404443328382493302359505450752279967687876903991084541862888608611512928435235005509061808010790231697877822252664368564697913913776784180990647851438523069839874571620766655970642276676811101903663094456252526379295018810410472835069206378146503216257622414996451504318542185090558437549979913405885522494962194622555315172378588357531555779788272739126462536681539534862309551664556396686657176590095768416622336049943285716389292190076658901719370259116375412969083407758395696274735330636880429318918693232453805515419311395412087727411637299214221130118824368579801770128093556335545100735511736757616453374655746031157521212775008538539329591273923028767435282608561838090202584217567308222583177247922580973427981531580641178982498778587131642887188073170561182240844427166836766652601495924750025428866813545498981793003055697264242214714751450704786808939967255372972023033232685605017981619197180933230800172571847803464893901546387267666199549613022331468626659923936081406241541291154920053674975115725646930419143659405960735520433029787511229638429331939811446784829897432926642890191555476993784215648874633988106011763021971516274070161032791107161205302673784233191715038920665535050946853034607134633103446054886494768337041502847531852504232149100893406663829961913432444748750436340315801311993851996866570077191450925976077368168319422019835837835777716787133079033431445384154970926513797509174049411242448264280775049043743941286694293074055580316031479035153079172920796054051326307373364889279975273512442648317350636656871682373405775385121903649488559341583789880360834226636280299788663681249982025382004323189561198173582681904352889378401929789105419538253159031135352394189785549192991624375780672542414558494266370985523068919690571783148823100043305353705462359410265613603252303580180245054504219821223912812401005494433274795259249297367345682686377799170083550986137597002853887308545102813831666132678804207718939865686442212737365917543759330427407202654916717930290930755931974520605895593861979194102147273195548650352522017410975441515178340488741490788340496857677137332071210772115518003032843341525010916089077888449005597054125721523459709288612891118499746875242736998839611920783859472596850439347032208070566253787542044285244961179333133326339745481446569548166977291640424650968023725213048271341135300654009746383224017831725227867070508712730533427467759594137063806426947375520763067546128006183038278714170643349373939642784309470642591036008178266851466393984166057523524008736298485786246715382502630076269369695942876157016221213226771809269129757483374137760131515764092248807313363100230128428858278663029136237360217582420653851761765650036396519889572307842810849491599533049023537209374476729756442920630128603700973908430453281712870266519063889075518032507650334979249605503238429607130690323146731120410996803741968320248498197161732793619021378704628567471460449451180578518630615485541449281610580457946414092156737847643805217942902951123336410272412585104617710824330078450019990888114732100956340351621083095419258875106852393584472148967911797724147293149537200302300169757896033807487366102748511851939865244655394162792205442351153672729845808257351438592816519961156417877083044205482761972068114486924661546917393151887671018742004420591600512611544820097081372736322738819965530675926380618619096447108476411553863673482542383379270956830431011213947001809356362014662823795051210743621373592588926358902088285336370603749373583004970766926495459684747063725774320793975434923835609497989394871362923315152576147766926160514548039302747131811432489485847642946126392530312575700266873618572646538341212178139842734358080210956147209279021841121985493842694533086631983101994442803044293727792674712147629689392064238937848097221662741873747873145400589321429046991569889606556151530483674911916776114524817099831841647338054141972444157968205323671020992291952141060031267635799749970975940877890338190385211764307466930882161284693784817848238068706835390921305156773186925717366067802463013856799504045507175014594709843095338791849658968687186025342615712456268591087934539065629612273223315467224738824802287895898849575494045083651287315540113026802469142897663778904042577649181430395169828863106998844655190253567295594235713529891517107159206267742980279480071487174305917489276532163901867035844642281658272869650670744590119651372136375111831361342464581148911277322755414919102949476201833551613224472448233363822287746313328828367894926435513421183408124354967693747325975392309465786364462144500934585793672393839398177746785270077134448039212402675711905030061421517394822424902964115212783093646304062569826226759975979908675086284683859305370108984094907121686553599347697132859458247115191892305695806085696863151678304437306249989607790468262700497656665762045122140905719107702941782115965146962766003726151569375454916448616066050935821145870374309135903585020451099094813674200581240048904475863520845808538691997889828699235550362956550558494168422877990731069374427473110978835699023527974915130825810964468728750236670663849085205329711685806825032236842115683770140548199571654548691751947227549054207378880810857968438567718851651275739721090931985303212411654659876759755048199480575712751412715613947149360362716747325212283575487495742114280157892202727488379375420910975118653441047460271191612918931436568896211252339031815898937173904369302474565375866337135763011369769986718860215733612737004111903041444337187603053896312735116085767788624342863943414123744250406433780023179834944026280138829421967174457248030574493303780390728422216029229716545528963552946253337421469963151152255597078472762955495206758094256031863034603140570414503978581273382237309265495075328609230674865381994836734965583056383816864296013108106297996152819219093006744074132970001909085606816060631986775173157012985679338389338808603350251625208739893048559237132009909724748852170751913847866585848174320227277569963434118724369069154052209703144738711718150472855664419382274326690591822347160463175962586820696740048508599166511492488577944025118025078028857146647895223004123557457800093669559668443249042747901052719006047579417954570943864314829427250748995405236565459524410262667978131207763376389812934320828375447648543308419911967494843706513616743459389087181114881373042845719011298264725780545599826283942201575597912457749373339906633357163225157997730602084439266719467787327894628874166948560291520392578724470405688092444753787202657137220997525868371780168473884858662120596197495663136480453283945533144116471301132641382386296639068131494516567159270088356844343924796608099942780611755563806225607090208043158010473707990407883158236163223872891330824338220590822731832331934992632426722291861831520669128865366450153087178002456682241687016737941092213234725760092689527370900103967208960567304795180170521096219705427183870193227778345369551636844999979417224321395267737331013861643629914499382917642159223238530453555864336342250835963873854885031359269236023904760093812681445193968861179190896252160698054729926272971355358130707625288082307092776899758165066144274267396476848031588770942210863545788733622050075818258337270723302264419393456354278020705349185288290418921219877167967576744029489549743067015011865460959953383613721621405328339323334086961069912523586333347069081175772180094374426374163393852779967441878877095592326161492298942091851835067155612478642581685589938109852308229665308357202387445189237544645076940094490248161838641607989029687387689912767771249397951867831254536198751235887414535266086872855480415188620894861015245731733265382325719388543454874630297508137379289418552442598148870668563451352930627634894294485646701689896599741580524219895426131499166943669006459697190060690532069472490729679165600069225977195486457899862974700470933162713762739594819262736021569334835089680883349920603440718433452981737218397030305403495371048053584647569889548020794215049484897567200483631594246693226585385721122327470969366194464853490766086383187539069307738413287485262323163566261096335735707512521073145624028859254092314533635725887401252164711285368887498091664849714097667643465726032023532706793969462023860631156193697019807464623023957873342400005800695191729993258471005121320871272256656126743367873437594102170759005958427741110417718143608699445556242742295914092594480934369762398472194209598534649963587251745072719783440882073838891503287094021601036681738591050138914076615256372694917039099963955802572558597608117047455529557012284517468222158937244319107064997500391315491372212485053702459285264837519915533466830076807979090291030489401507108787251550294734743175020361665015584630995703281345650919895887109306961115879425336677001510264089420498884006366636049628844389553222489181218695167410506330180159992086290450623416851310670913375970531732538408938136496950145179660971102869242103765800949861874715809072781327653580013215617794194055824966108792 %
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment